1. Trang chủ
  2. » Luận Văn - Báo Cáo

Lập trình android (rss) ứng dụng đọc báo online

71 9 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Lập Trình Android (RSS) - Ứng Dụng Đọc Báo Online
Tác giả Chu Hoàng Anh
Người hướng dẫn ThS. Trương Trọng Cần
Trường học Trường Đại Học Vinh
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2014
Thành phố Nghệ An
Định dạng
Số trang 71
Dung lượng 2,4 MB

Cấu trúc

  • CHƯƠNG I: MỞ ĐẦU (7)
    • 1.1. Giới thiệu chung về Android (7)
    • 1.2. Lý do chọn đề tài (8)
  • CHƯƠNG II: TÌM HIỂU VỀ ANDROID (9)
    • 2.1. Lịch sử Android (9)
    • 2.2. Delving với máy ảo Dalvik (10)
    • 2.3. Kiến trúc của Android (10)
      • 2.3.1. Tầng ứng dụng (11)
      • 2.3.2. Application framework (11)
      • 2.3.3. Library (12)
      • 2.3.4. Android Runtime (12)
      • 2.3.5. Linux kernel (13)
    • 2.4. Android Emulator (13)
    • 2.5. Hướng dẫn cài đặt Android với Eclipse (13)
      • 2.5.1. Download Android SDK (14)
      • 2.5.2. Tích hợp Android SDK vào Eclipse (15)
      • 2.5.3. Android Virtual Device (Emulator) (16)
      • 2.5.4. Một số chức năng cần biết khi lập trình Android với Eclipse (18)
      • 2.5.5. Một số thủ thuật trong Android và Eclipse (19)
    • 2.6. Các thành phần trong một Android Project (20)
      • 2.6.1. AndroidManifest.xml (20)
      • 2.6.2. File R.java (21)
      • 2.6.3. Chu kì ứng dụng Android (23)
      • 2.6.4. Chu kỳ sống thành phần (23)
      • 2.6.5. Activity Stack (23)
      • 2.6.6. Các trạng thái của chu kỳ sống (24)
      • 2.6.7. Chu kỳ sống của ứng dụng (25)
      • 2.6.8. Các sự kiện trong chu kỳ sống của ứng dụng (26)
      • 2.6.9. Thời gian sống của ứng dụng (26)
      • 2.6.10. Thời gian hiển thị của Activity (26)
      • 2.6.11. Các phương thức của chu kỳ sống (26)
    • 2.7. Các thành phần giao diện trong Android (28)
      • 2.7.1. View (28)
      • 2.7.2. ViewGroup (28)
      • 2.7.3. LinearLayout (29)
      • 2.7.4. FrameLayout (29)
      • 2.7.5. AbsoluteLayout (30)
      • 2.7.6. RetaliveLayout (30)
      • 2.7.7. TableLayout (31)
      • 2.7.8. Button (32)
      • 2.7.9. ImageButton (32)
      • 2.7.10. ImageView (33)
      • 2.7.11. ListView (33)
      • 2.7.12. TextView (34)
      • 2.7.13. EditText (35)
      • 2.7.14. CheckBox (35)
      • 2.7.15. MenuOptions (35)
      • 2.7.16. ContextMenu (37)
      • 2.7.17. Quick Search Box (38)
      • 2.7.18. Activity & Intend (39)
    • 2.8. Content Provider và URI (42)
    • 2.9. Background Service (43)
    • 2.10. Telephony (46)
    • 2.11. Sqlite (46)
    • 2.12. Android & Websevice (48)
      • 2.12.1. Khái niệm Web service và SOAP (48)
      • 2.12.2. Giới thiệu về XStream (48)
      • 2.12.3. Thao tác với web service trong Android (50)
  • CHƯƠNG III: TÌM HIỂU KỸ THUẬT LẬP TRÌNH TRÊN ANDROIND CHO ỨNG DỤNG LẤY TIN TỰ ĐỘNG TRÊN MỘT SỐ TRANG BÁO CÓ CHUẨN (53)
    • 3.1. Giới thiệu cấu trúc và định dạng tệp tin RSS (Really Simple Syndication) . 53 3.2. Những điểm mạnh của RSS (0)
    • 3.3. Các đối tƣợng làm việc với XML trong Android (54)
      • 3.3.1. XML(Extensible Markup Language) trong Android (54)
      • 3.3.2. Các trình phân tích XML (55)
      • 3.3.3. Trình đọc tin Android ...................................... Error! Bookmark not defined. 3.4. Trình đọc tin Android (Ứng ụng Đọc Báo Online) (0)
      • 3.4.1. Áp dụng trình phân tích kéo (55)
      • 3.4.2. Tạo menu (0)
      • 3.4.3. Kết nối để l y tin về (0)
      • 3.4.4. S dụng lớp RSSListAdapter (0)
      • 3.4.5. Giao diện chính (0)
  • CHƯƠNG IV: PHÂN TÍCH VÀ THIẾT KẾ ỨNG DỤNG LẤY TIN TỰ ĐỘNG TRÊN MỘT SỐ TRANG CÔNG BỐ TIN CÓ CHUẨN RSS (62)
    • 4.1. Phân tích bài toán (63)
    • 4.2. Các biểu đồ hệ thống (63)
      • 4.2.1. Chức năng Actor (63)
      • 4.2.2. Biểu đồ Usercase tổng quát (0)
    • 4.3. Phân tích chức năng (64)
      • 4.3.1. Demo màn hình khởi động (64)
      • 4.3.2. Demo Màn Hình Chính (0)
      • 4.3.3. Demo Màn Hình Chi Tiết (0)
      • 4.3.4 Các Chức Năng (68)
  • Kết luận (8)
  • TÀI LIỆU THAM KHẢO (71)

Nội dung

TÌM HIỂU VỀ ANDROID

Lịch sử Android

Android là hệ điều hành cho thiết bị cầm tay, được phát triển dựa trên lõi Linux bởi công ty Android Inc tại California, Mỹ, và sau đó được Google mua lại vào năm 2005.

2005 và bắt đầu xây dựng Android Platform Các thành viên chủ chốt tại ở Android Inc gồm có: Andy Rubin, Rich Miner, Nick Sears, and Chris White

In late 2007, the Open Handset Alliance was established, comprising prominent members from the telecommunications and handheld device industries, including Texas Instruments, Broadcom Corporation, Google, HTC, Intel, LG, Marvell Technology Group, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel, T-Mobile, ARM Holdings, Atheros Communications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, and Vodafone Group.

Liên minh này nhằm mục tiêu đổi mới nhanh chóng để đáp ứng tốt hơn nhu cầu người tiêu dùng, với kết quả đầu tiên là nền tảng Android Android được phát triển để phục vụ nhu cầu của các nhà sản xuất thiết bị, nhà khai thác và lập trình viên thiết bị cầm tay.

GVHD: Trương Trọng Cần SVTH:Chu Hoàng Anh Trang 10

Phiên bản SDK đầu tiên được phát hành vào tháng 11 năm 2007, cùng lúc với việc T-Mobile ra mắt chiếc điện thoại Android đầu tiên, T-Mobile G1 Chỉ vài ngày sau, Google công bố phiên bản Android SDK release Candidate 1.0 Đến tháng 10 năm 2008, Google nhận được giấy phép mã nguồn mở cho nền tảng Android Một trong những mục tiêu của kiến trúc Android là cho phép các ứng dụng tương tác và tái sử dụng các thành phần từ ứng dụng khác, bao gồm cả dịch vụ, dữ liệu và giao diện người dùng.

Cuối năm 2008, Google phát hành thiết bị Android Dev Phone 1, cho phép các nhà phát triển thử nghiệm ứng dụng Android mà không cần hợp đồng với nhà mạng Cùng thời điểm, Google ra mắt phiên bản vá lỗi 1.1 của hệ điều hành Android Cả hai phiên bản 1.0 và 1.1 đều không hỗ trợ bàn phím ảo, yêu cầu thiết bị phải có bàn phím vật lý Để khắc phục, Google phát hành SDK 1.5 vào tháng 4 năm 2009, bổ sung nhiều tính năng mới, bao gồm cải tiến khả năng ghi âm và live folder.

Delving với máy ảo Dalvik

Dalvik là máy ảo cho phép chạy các ứng dụng Java trên thiết bị di động Android, thông qua việc chuyển đổi chúng thành file thực thi Dalvik (dex) Định dạng này được tối ưu hóa cho các hệ thống có hạn chế về bộ nhớ và tốc độ xử lý Dalvik được thiết kế và phát triển bởi Dan Bornstein, người đã đặt tên cho nó từ một ngôi làng nhỏ tên Dalvök ở đảo Eyjafjörður, nơi có nguồn gốc tổ tiên của ông.

Từ góc độ phát triển, Dalvik khác biệt so với máy ảo Java, mặc dù có vẻ tương tự Khi phát triển ứng dụng Android, mã nguồn được viết trong môi trường Java và biên dịch thành bytecode Java Tuy nhiên, để chạy ứng dụng trên Android, nhà phát triển cần sử dụng công cụ dx để chuyển đổi bytecode thành dex bytecode, viết tắt của "Dalvik executable", nhằm thực thi các ứng dụng Android.

Kiến trúc của Android

Mô hình dưới đây tổng quát các thành phần chính của hệ điều hành Android, với mỗi phần sẽ được mô tả chi tiết trong các phần tiếp theo.

GVHD: Trương Trọng Cần SVTH:Chu Hoàng Anh Trang 11

Hình 2-2 C u trúc stack hệ thống Android 2.3.1 Tầng ứng dụng

Android tích hợp nhiều ứng dụng cơ bản như danh bạ, trình duyệt, máy ảnh và điện thoại Tất cả ứng dụng trên hệ điều hành Android đều được phát triển bằng ngôn ngữ Java.

Android cung cấp một nền tảng phát triển mở, cho phép các nhà phát triển tạo ra các ứng dụng phong phú và sáng tạo Họ có thể tận dụng các thiết bị phần cứng, thông tin địa điểm, dịch vụ chạy nền, thiết lập hệ thống báo động và thêm thông báo vào thanh trạng thái, mang đến nhiều tính năng đa dạng cho người dùng.

Nhà phát triển có thể truy cập các API trong cùng một khuôn khổ được sử dụng bởi các ứng dụng lõi, giúp đơn giản hóa việc tái sử dụng các thành phần Mỗi ứng dụng có thể xuất bản khả năng của mình, cho phép các ứng dụng khác sử dụng những khả năng này, mặc dù có thể có các hạn chế bảo mật do khuôn khổ đặt ra Cơ chế này cho phép người dùng thay thế các thành phần tương tự một cách linh hoạt.

Cơ bản tất cả các ứng dụng là một bộ các dịch vụ và các hệ thống, bao gồm:

GVHD: Trương Trọng Cần SVTH:Chu Hoàng Anh Trang 12

 Một tập hợp rất nhiều các View có khả năng kế thừa lẫn nhau dùng để thiết kế phần giao diện ứng dụng như: gridview, tableview, linearlayout,…

Một "Content Provider" cho phép các ứng dụng truy xuất và chia sẻ dữ liệu với nhau, chẳng hạn như thông tin từ danh bạ (Contacts).

 Một “Resource Manager” cung cấp truy xuất tới các tài nguyên không phải là mã nguồn, chẳng hạn như: localized strings, graphics, and layout files

A "Notification Manager" enables all applications to display custom alerts in the status bar, while the Activity Manager is utilized to manage the application lifecycle and navigate between activities.

Android là một hệ thống bao gồm nhiều thư viện C/C++ hỗ trợ các thành phần khác nhau, được thể hiện qua nền tảng ứng dụng Android Dưới đây là danh sách một số thư viện cơ bản.

 System C library : a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devices

PacketVideo's OpenCORE powers versatile media libraries that facilitate the playback and recording of various popular audio and video formats, including MPEG4, H.264, MP3, AAC, and AMR, along with support for static image files like JPG and PNG.

 Surface Manager– Quản lý việc truy xuất vào hệ thống hiển thị

 LibWebCore- a modern web browser engine which powers both the Android browser and an embeddable web view

 SGL- the underlying 2D graphics engine

 3D libraries- an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizer

 FreeType- bitmap and vector font rendering

 SQLite- a powerful and lightweight relational database engine available to all applications

Android cung cấp một bộ thư viện cơ bản, mang lại hầu hết các chức năng có sẵn trong thư viện lõi của Java Mỗi ứng dụng Android hoạt động trong một tiến trình riêng biệt, và máy ảo Dalvik được thiết kế để cho phép thiết bị chạy các ứng dụng này.

GVHD: Trương Trọng Cần, SVTH: Chu Hoàng Anh, Trang 13 Các máy ảo Dalvik (VM Dalvik) thực thi các tập tin thực thi Dalvik (dex), với định dạng tối ưu hóa cho bộ nhớ tối thiểu VM Dalvik dựa trên kiến trúc register-based và chạy các lớp đã được biên dịch từ Java sang định dạng dex Hơn nữa, VM Dalvik sử dụng nhân Linux để quản lý các chức năng cơ bản như luồng và quản lý bộ nhớ.

Android is built on the Linux 2.6 kernel, which provides essential services such as security, memory management, process management, network stack, and driver model The Linux kernel acts as an abstraction layer between the hardware and the rest of the software stack.

Android Emulator

The Android SDK and Eclipse Plugin, collectively known as Android Developer Tools (ADT), are essential for Android developers These tools provide an Integrated Development Environment (IDE) that facilitates the development, debugging, and testing of applications However, developers also have the option to bypass the IDE and utilize the command line for compilation, while still having access to an emulator for testing purposes.

Android Emulator cung cấp hầu hết các tính năng của một thiết bị di động thực, nhưng có một số hạn chế như kết nối USB, camera, video, nghe gọi, nguồn điện giả lập và Bluetooth Công nghệ này sử dụng một bộ xử lý mã nguồn mở mang tên QEMU, được phát triển bởi Fabrice Bellard, để thực hiện các tác vụ.

Hướng dẫn cài đặt Android với Eclipse

GVHD: Trương Trọng Cần SVTH:Chu Hoàng Anh Trang 14

Android SDK thực chất là tập hợp các công cụ và thư viện để phát triển các ứng dụng trên nền tảng hệ điều hành Android

3.1.1.1 Bước 1: Vào trang http://developer.android.com/sdk/index.html để tải Android

SDKStarter Tùy thuộc vào hệ điều hành mà bạn chọn bản Mac, Linux hay

Window Ởđây mình chọn tải bản cho Window

Hình 2-4 :Android SDK cho Window

3.1.1.4 Bước 2: Giải nén file zip bạn vừa tải về Chạy SDK Setup.exe Bạn có thể gặp thôngbáo lỗi Fetching https://dl-sl Failed to fetch Close thông báo này lại cửa sổ Choose Packages to Install xuất hiện Nếu cửa sổ này trống rỗng ->

Cancel.Tiếp theo -> Quay về cửa sổ Android SDK and AVD manager -> Chọn Setting, đánh dấuvào ô Force https:// -> Chọn Available Packages

Hình 2-5 : C a sổ Choose Packages to Install

3.1.1.5 Bước 3: Đánh dấu các Packages bạn muốn tải: Documents chính là phần

Javadoc cung cấp mô tả chi tiết về các phương thức và lớp, là phần không thể thiếu trong tài liệu lập trình Bên cạnh đó, Sample bao gồm các đoạn mã mẫu giúp lập trình viên dễ dàng hiểu và áp dụng SDK Platform tương ứng với các công cụ phát triển phần mềm, hỗ trợ tối ưu cho quá trình lập trình.

GVHD: Trương Trọng Cần, SVTH: Chu Hoàng Anh Để phát triển phần mềm liên quan đến dịch vụ của Google, như Google Map cho lập trình GPS, bạn cần tải các phiên bản hệ điều hành (2.2 - API level 8, 2.1 - API level 7, ) và Google API Nếu bạn muốn tối ưu hóa, hãy đánh dấu những gì cần thiết (lưu ý rằng USB drivers chỉ dành cho người dùng Windows và những ai muốn phát triển ứng dụng thử nghiệm trên điện thoại thật) Sau đó, chọn "Install Selected" và nhấn "Install" để mở cửa sổ cài đặt.

Hình 2-6 : Các gói Packages bạn muốn tải 2.5.2 Tích hợp Android SDK vào Eclipse

3.1.1.6 Bước 1: Tải Eclipse nếu bạn chưa có Chúng ta có thể dùng 1 trong 2 bản sau:Eclipse for Java Developers, hoặc Eclipse for Java and Report Developers 3.1.1.7 Bước 2: Khởi chạy Eclipse, vào Help -> Install new softwares.Chọn Add, gõ vào ô Name tên bạn muốn và Location gõ vào địa chỉ để tải về ADT: HTML Code:https://dl-ssl.google.com/android/eclipse/ hoặc HTML Code:http://dl- ssl.google.com/android/eclipse/nếu https không hoạt động Ngoài ra bạn cũng có thể tải thẳng ADT về máy theo link http://dl.google.com/android/ADT-0.9.7.zip(bản mới nhất 0.9.7 ứng vớiAndroid 2.2), chọn Archive và browse tới file này (lưu ý không giải nén).OK -> Check vào phần dưới ô Name (sẽ hiện ra dòng Developer Tools)

GVHD: Trương Trọng Cần SVTH:Chu Hoàng Anh Trang 16

Hình 2-7:Tích hợp Android SDK vào Eclipse

3.1.1.8 Bước 3: Next, next, Accept, next, Finish (như Install mọi chương trình bình thường)

3.1.1.9 Bước 4: Eclipse -> Windows -> Preferences -> Android Nhấn nút Browse và chỉnh đường dẫn tới thư mục của Android SDK bạn tải lúc trước -> Apply->

Hình 2-8 : Android SDK 2.5.3 Android Virtual Device (Emulator)

AVD là máy ảo cho developer phát triển ứng dụng Để tạo 1 AVD bạn vào Windows

GVHD: Trương Trọng Cần SVTH:Chu Hoàng Anh Trang 17

-> Android SDK and AVD Manager -> Virtual Devices chọn New.-> Cửa sổ Create new AVD hiện ra, bạn điền thông tin cho AVD bạn muốn:

 Name : Tùy ý (nhưng chỉ được sử dụng các ký tự "a-z", "A-Z", ".-_", nghĩa là cả khoảng trắng cũng ko đc)

 Target : Chọn phiên bản hệ điều hành bạn muốn (thường mình tạo một Android1.6 và một Android 2.2 để test)

SD Card: Nhập kích thước thẻ SD ảo cho AVD hoặc chỉnh sửa đến file đã có sẵn Nhiều AVD có thể chia sẻ cùng một thẻ SD, chỉ cần tạo một lần đầu và các lần sau chỉ cần điều chỉnh đường dẫn tới file đó.

Khi tạo AVD, bạn có thể chọn kích thước màn hình mặc định (HVGA) hoặc tùy chỉnh theo nhu cầu Chỉ cần chú ý đến ba tùy chọn chính: HVGA (độ phân giải 320-480, ví dụ như G1, G2, i5700), QVGA (240-320, như HTC Wildfire) và WVGA854 (480-854, như Milestone, Nexus One).

GVHD: Trương Trọng Cần SVTH:Chu Hoàng Anh Trang 18

2.5.4 Một số chức năng cần biết khi lập trình Android với Eclipse

Bài viết này cung cấp những kiến thức cơ bản cho những người mới bắt đầu, nhằm giúp họ tiết kiệm thời gian tìm kiếm thông tin Dù các chuyên gia có thể đã biết những điều này, nhưng hy vọng rằng những nội dung được nêu ra sẽ hữu ích cho các newbie trong việc gia tăng kiến thức của mình.

Debug cho ứng dụng Android

Nhiều lập trình viên chuyển từ J2SE hoặc J2ME sang Android sẽ nhận thấy rằng câu lệnh debug kinh điển System.out.println() không còn hiển thị trên cửa sổ Console nữa Thay vào đó, Google đã giới thiệu Logcat, một công cụ ghi lại toàn bộ hoạt động của hệ điều hành Để mở Logcat, người dùng cần chọn Window -> Open Perspective -> Debug; nếu không thấy tùy chọn Debug, hãy chọn Other và tìm Debug trong cửa sổ mới Sau khi mở, hãy chọn tab Debug ở góc trên bên phải của Eclipse và nên tối đa hóa Logcat để dễ quan sát hơn.

Khi mới sử dụng Logcat, mình cảm thấy khá rối rắm và khó khăn Tuy nhiên, theo thời gian, mình đã quen và nhận ra rằng Logcat tiện lợi hơn rất nhiều so với Console Trong khi Console chỉ hiển thị những thông báo mà chúng ta gọi, Logcat cung cấp cả thông tin từ hệ điều hành, giúp chúng ta hiểu rõ hơn về các hoạt động của hệ thống, như những gì đang được khởi chạy và các cuộc gọi đang diễn ra.

Hình 2-10 : Debug ứng dụng File Explorer của Android

File Explorer là một chức năng hữu ích Google đưa vào giúp chúng ta quản lý file trong

SD card và hệ thống dữ liệu (chỉ quản lý trên emulator, không thể truy cập dữ liệu hệ thống của thiết bị thật) được hỗ trợ bởi FE, cho phép bạn dễ dàng đưa và lấy file từ sdcard ảo của emulator Ngoài ra, bạn có thể xóa cơ sở dữ liệu của chương trình để khởi tạo lại (chỉ áp dụng cho emulator).

GVHD: Trương Trọng Cần SVTH:Chu Hoàng Anh Trang 19

Mở FE bằng cách vào Window -> Show View -> Others -> Android -> FileExplorer Mình để FE trong cửa sổ Debug cho tiện quản lý

Hình 2-11 :File Explorer của Android

Chức năng Device trên Android là công cụ hữu ích giúp quản lý cả thiết bị ảo và thật Để mở Device, bạn có thể vào Window -> Show View -> Device hoặc Window -> Show View -> Others -> Android -> Device Một trong những tính năng tôi thường sử dụng nhất là Screen Capture, rất tiện lợi để chụp ảnh minh họa cho thuyết trình hoặc giới thiệu sản phẩm trên Google Market.

2.5.5:Một số thủ thuật trong Android và Eclipse

Window -> Preferences -> General -> Workspace.Trong Workspace phần Text File Encoding chọn Other -> UTF-8

Tổ hợp phím kinh điển Ctrl + Space (điều kỳ lạ là khá nhiều người không biết)

Sử dụng phím tắt Ctrl + "/" để tự động thêm cụm "//" vào đầu dòng, tuy nhiên tính năng này không quá tiện lợi Để thêm "/* */" vào đoạn văn bản đã được bôi đen, bạn có thể sử dụng phím tắt Ctrl + Shift + "/" Nếu bạn muốn xóa "/* */" khỏi đoạn văn bản đã được bôi đen, chỉ cần nhấn Ctrl + Shift + "\".

GVHD: Trương Trọng Cần, SVTH: Chu Hoàng Anh Đôi khi, bạn cần ghi đè phương thức của một lớp có sẵn mà không cần tìm kiếm tên phương thức trên mạng Nhiều người gặp khó khăn khi cố gắng viết lại phương thức này và không tìm ra lỗi, thực tế đây không phải là lỗi mà chỉ là một vấn đề trong cách ghi đè.

To override a method from a parent class in Eclipse, simply navigate to the Source menu and select "Override/Implement Method." This allows you to efficiently implement the desired functionality, ensuring that you do not miss any necessary syntax, such as the letter "s" in method names.

Các thành phần trong một Android Project

Trong mọi dự án Android, file AndroidManifest.xml đóng vai trò quan trọng trong việc định nghĩa các màn hình, quyền truy cập và giao diện cho ứng dụng File này cũng chứa thông tin về phiên bản SDK và hoạt động chính sẽ khởi chạy đầu tiên Khi tạo một dự án Android, file này sẽ được tự động sinh ra và luôn bao gồm ba thành phần chính: application, permission và version.

Dưới đây là nội dung của một file AndroidManifest.xml

GVHD: Trương Trọng Cần SVTH:Chu Hoàng Anh Trang 21

Thẻ , bên trong thẻ này chứa các thuộc tính được định nghĩa cho ứng dụng Android như:

 Android:icon = “drawable resource” Ở đây đặt đường dẫn đến file icon của ứng dụng khi cài đặt VD: android:icon = “@drawable/icon”

 Android:name = “string” thuộc tính này để đặt tên cho ứng dụng Android Tên này sẽ được hiển thị lên màn hình sau khi cài đặt ứng dụng

Trong Android, thuộc tính android:theme = "drawable theme" được sử dụng để thiết lập giao diện cho ứng dụng, giúp định hình cách hiển thị của các thành phần trong giao diện Bên cạnh đó, còn nhiều thuộc tính khác cũng hỗ trợ trong việc tùy chỉnh giao diện ứng dụng.

Các thuộc tính trong file manifest của ứng dụng xác định quyền truy xuất và sử dụng tài nguyên Để sử dụng một loại tài nguyên cụ thể, cần khai báo các quyền truy xuất tương ứng trong file manifest của ứng dụng.

Thẻ xác định phiên bản SDK được khai báo như sau:

Ở đây chỉ ra phiên bản SDK nhỏ nhất mà ứng dụng hiện đang sử dụng

File R.java được tạo ra tự động khi ứng dụng được khởi tạo, có chức năng quản lý các thuộc tính khai báo trong file XML và các tài nguyên hình ảnh của ứng dụng.

File R.java được tự động tạo ra khi có sự kiện thay đổi thuộc tính trong ứng dụng, như khi kéo và thả một file hình ảnh vào project, dẫn đến việc thêm đường dẫn file vào R.java Ngược lại, nếu xóa một file hình ảnh, đường dẫn tương ứng cũng sẽ bị xóa khỏi R.java.

GVHD: Trương Trọng Cần, SVTH: Chu Hoàng Anh Trong quá trình xây dựng ứng dụng, file R.java không cần phải can thiệp, vì mọi thay đổi sẽ tự động được cập nhật và không cần phải chỉnh sửa thủ công.

Dưới đây là nội dung của một file R.java:

/* AUTO-GENERATED FILE DO NOT MODIFY

* This class was automatically generated by the

* aapt tool from the resource data it found It

* should not be modified by hand

*/ package dtu.k12tpm.pbs.activity; public final class R { public static final class array { public static final int array_timeout=0x7f050000;

} public static final class attr { } public static final class drawable { public static final int add=0x7f020000; public static final int backup_icon=0x7f020001; public static final int checkall=0x7f020002;

} public static final class id { public static final int Button01=0x7f070006; public static final int Button02=0x7f070007; public static final int CheckBox01=0x7f070017;

} public static final class layout { public static final int contact_list=0x7f030000; public static final int content_sender=0x7f030001; public static final int friend_list=0x7f030002;

} public static final class menu { public static final int context_menu=0x7f060000; public static final int menu_options=0x7f060001; public static final int options_menu=0x7f060002;

} public static final class string { public static final int app_name=0x7f040001; public static final int context_menu_item_delete=0x7f04000b; public static final int context_menu_item_edit=0x7f04000a;

GVHD: Trương Trọng Cần SVTH:Chu Hoàng Anh Trang 23

2.6.3 Chu kì ứng dụng Android

Một tiến trình Linux gói gọn một ứng dụng Android đã được tạo ra cho ứng dụng khi codes cần được run và sẽ còn chạy cho đến khi:

Hệ thống Android cần giải phóng bộ nhớ mà nó đã chiếm giữ cho các ứng dụng khác Một đặc điểm nổi bật của Android là thời gian sống của tiến trình ứng dụng không được kiểm soát trực tiếp bởi chính ứng dụng đó, mà thay vào đó, được xác định bởi hệ thống thông qua một sự kết hợp các yếu tố khác nhau.

 Những phần của ứng dụng mà hệ thống biết đang chạy

 Những phần quan trọng như thế nào đối với người dung Bao nhiêu vùng nhớ chiếm lĩnh trong hệ thống

2.6.4 Chu kỳ sống thành phần

Các thành phần ứng dụng trải qua một chu kỳ sống, bắt đầu từ khi được khởi tạo cho đến khi kết thúc Trong suốt quá trình này, chúng có thể ở trạng thái hoạt động (active) hoặc không hoạt động (inactive), và trong trường hợp hoạt động, chúng có thể hiển thị (visible) hoặc không hiển thị (invisible).

Hình 2-12: Chu kì sống một thành phần

Trong hệ thống, các activity được quản lý như một ngăn xếp (stack) Khi một activity mới được khởi động, nó sẽ được đặt ở đỉnh ngăn xếp và trở thành activity đang chạy.

GVHD: Trương Trọng Cần SVTH:Chu Hoàng Anh Trang 24 trước sẽ ở bên dưới activity mới và sẽ không thấy trong suốt quá trình activity mới tồn tại

Nếu người dùng nhấn nút Back thì activity kết tiếp của stack sẽ di duyển lên và trở thành active

2.6.6 Các trạng thái của chu kỳ sống

GVHD: Trương Trọng Cần SVTH:Chu Hoàng Anh Trang 25

Hình 2-14: Chu kỳ sống của Activity

Một Activity chủ yếu có 3 chu kỳ chính sau:

 Active hoặc running: Khi Activity là được chạy trên màn hình Activity này tập trung vào những thao tác của người dùng trên ứng dụng

Activity được coi là tạm dừng (paused) khi người dùng mất tập trung nhưng vẫn có thể nhìn thấy nó Điều này có nghĩa là có một Activity mới hiển thị ở trên nhưng không chiếm toàn bộ màn hình Một Activity tạm dừng vẫn đang hoạt động nhưng có thể bị hệ thống kết thúc nếu thiếu bộ nhớ.

Khi một Activity bị dừng, nó sẽ bị che khuất hoàn toàn bởi một Activity khác, nhưng vẫn giữ trạng thái và thông tin thành viên bên trong Người dùng không thể nhìn thấy Activity này, và trong trường hợp hệ thống cần giải phóng bộ nhớ cho các tác vụ khác, nó có thể bị loại bỏ.

2.6.7 Chu kỳ sống của ứng dụng

Trong một ứng dụng Android, mỗi thành phần đều có chu trình sống riêng và ứng dụng chỉ kết thúc khi tất cả các thành phần này hoàn tất Activity là một trong những thành phần cho phép người dùng tương tác với ứng dụng Tuy nhiên, khi tất cả các Activity kết thúc và người dùng không còn tương tác, ứng dụng vẫn chưa thực sự kết thúc vì còn nhiều thành phần khác tồn tại.

GVHD: Trương Trọng Cần, SVTH: Chu Hoàng Anh Trong hệ thống, các thành phần có khả năng tương tác với người dùng bao gồm nhiều loại, bên cạnh đó còn có các thành phần không tương tác như Service và Broadcast Receiver Những thành phần này hoạt động trong nền dưới sự giám sát của hệ điều hành và chỉ dừng lại khi người dùng quyết định tắt chúng.

2.6.8 Các sự kiện trong chu kỳ sống của ứng dụng

Khi một Activity bị tạm dừng hoặc dừng hẳn, hệ thống có thể xóa thông tin của nó khỏi bộ nhớ bằng cách gọi hàm finish() hoặc đơn giản là kết thúc tiến trình Khi Activity được hiển thị lại cho người dùng, nó cần được khởi động lại hoàn toàn và phục hồi trạng thái trước đó Trong quá trình chuyển đổi giữa các trạng thái, Activity phải thông báo việc chuyển đổi bằng cách gọi hàm transition.

Hình 2-15: Các sự kiện trong một chu kì ứng dụng

Tất cả các phương thức trong ứng dụng đều có thể được override để tương thích với các trạng thái thay đổi Mỗi Activity đều cần phải có phương thức onCreate() để khởi tạo ứng dụng Ngoài ra, nhiều Activity cũng thực hiện phương thức onPause() nhằm xác nhận thay đổi dữ liệu và chuẩn bị dừng hoạt động với người dùng.

2.6.9 Thời gian sống của ứng dụng

Các thành phần giao diện trong Android

Trong ứng dụng Android, giao diện người dùng được tạo ra từ các đối tượng View và ViewGroup, bao gồm nhiều kiểu khác nhau, tất cả đều là hậu duệ của class View và được gọi là các Widget Mỗi widget này chia sẻ các thuộc tính cơ bản như vị trí, background, kích thước và lề, tất cả được thể hiện trong đối tượng View.

In the Android platform, screens are organized in a hierarchical structure, where each screen consists of a collection of layouts and widgets arranged in a specific order To display a screen, the setContentView(R.layout.main) function must be called within the onCreate method of each Activity, which loads the interface from an XML file and compiles it into bytecode.

Hình 2-16: C u trúc một giao diện ứng dụng Android

GVHD: Trương Trọng Cần SVTH:Chu Hoàng Anh Trang 29

ViewGroup thực chất là một loại View, cụ thể hơn là các widget Layout dùng để sắp xếp các đối tượng khác trên màn hình Một số loại ViewGroup bao gồm:

LinearLayout là một thành phần giao diện cho phép bố trí các yếu tố theo chiều ngang hoặc dọc trên cùng một dòng mà không có xuống dòng Nó giúp các thành phần bên trong không bị ảnh hưởng bởi kích thước màn hình, đồng thời sắp xếp chúng theo tỷ lệ cân xứng dựa trên các ràng buộc giữa các thành phần.

Hình 2-17: Bố trí các widget s dụng LinearLayout 2.7.4 FrameLayout

FrameLayout được sử dụng để sắp xếp các đối tượng theo kiểu lớp, tương tự như các Layer trong Photoshop, với các đối tượng ở Layer dưới bị che khuất bởi các đối tượng ở Layer trên Loại layout này thường được áp dụng khi cần tạo ra các đối tượng có khung hình bên ngoài, ví dụ như nút hình ảnh liên hệ.

GVHD: Trương Trọng Cần SVTH:Chu Hoàng Anh Trang 30

Hình 2-18: Bố trí các widget trong FrameLayout

Layout này cho phép bố trí các widget dựa trên tọa độ x, y, nhưng ít được sử dụng do vị trí các đối tượng cố định và không tự điều chỉnh khoảng cách Khi ứng dụng được chuyển sang màn hình có kích thước khác, vị trí các đối tượng sẽ không còn chính xác như ban đầu.

Layout này cho phép sắp xếp các widget theo trục đối xứng ngang hoặc dọc, với điều kiện các widget phải có mối ràng buộc với nhau Các ràng buộc này có thể là trái, phải, trên, dưới so với một widget khác hoặc so với layout cha Nhờ vào những mối ràng buộc này, RetaliveLayout không phụ thuộc vào kích thước màn hình của thiết bị Thêm vào đó, layout này giúp tiết kiệm tài nguyên sử dụng và tăng tốc độ xử lý khi tải.

GVHD: Trương Trọng Cần SVTH:Chu Hoàng Anh Trang 31

Hình 2-19: Bố trí widget trong RetaliveLayout

Layout này được áp dụng khi cần thiết kế bảng chứa dữ liệu hoặc sắp xếp các widget theo hàng và cột, ví dụ như giao diện của một chiếc máy tính đơn giản hoặc danh sách dữ liệu.

Hình 2-20: Bố trí widget trong TableLayout

GVHD: Trương Trọng Cần SVTH:Chu Hoàng Anh Trang 32

Widget button là đối tượng được sử dụng phổ biến nhất trong các ứng dụng Android, vì vậy nó được giới thiệu đầu tiên trong số các widget khác Để thiết kế giao diện với button, có hai phương pháp chính mà bạn có thể áp dụng.

Thuộc tính android:onClick="touchMe" được sử dụng để xử lý sự kiện click vào button, khi đó phương thức “touchMe” sẽ được gọi Nếu phương thức này chưa được định nghĩa trong mã nguồn, một exception sẽ xảy ra Ngược lại, phương thức “touchMe” nhận một tham số là đối tượng View phát sinh sự kiện, và đối tượng này có thể được ép kiểu thành Button vì nó thực chất là một button.

VD: trong file mã nguồn khai báo một hàm như sau: public void touchMe(View v){

Nếu không cần tùy chỉnh widget, thì không cần sử dụng code Tuy nhiên, trong một số trường hợp như trong game, việc tùy chỉnh các widget như menu và nút điều khiển là cần thiết Để khai báo một nút Button trong code, ta thực hiện theo cách sau:

To customize a widget in Android, you need to create a class that extends the desired widget class Then, you can override the draw method to redraw the widget using a Canvas For example, you can create a button with the text "Touch Me!" and set an onClick listener for user interaction.

VD: canvas.drawPicture(Picture.createFromStream( ));

Cũng tương tự như Button, ImageButton chỉ có thêm một thuộc tính android:src “@drawable/icon” để thêm hình ảnh vào và không có thẻ text

GVHD: Trương Trọng Cần SVTH:Chu Hoàng Anh Trang 33

Hình 2-21: ImageButon 2.7.10 ImageView Được dùng để thể hiện một hình ảnh Nó cũng giống như ImageButton, chỉ khác là không có hình dáng của một cái button

ImageView iv = new ImageView(this); iv.setImageResource(R.drawable.icon);

ListView là một thành phần quan trọng trong giao diện người dùng, được sử dụng để hiển thị danh sách thông tin qua từng cell Mỗi cell thường được tải từ một file XML, trong đó đã xác định số lượng và loại thông tin cần hiển thị Để trình bày danh sách thông tin trên màn hình, cần có ba yếu tố chính.

Ngày đăng: 27/08/2021, 11:17

HÌNH ẢNH LIÊN QUAN

Hình 2-1 Android timeline - Lập trình android (rss)    ứng dụng đọc báo online
Hình 2 1 Android timeline (Trang 9)
Hình 2-2 Cu trúc stack hệthống Android - Lập trình android (rss)    ứng dụng đọc báo online
Hình 2 2 Cu trúc stack hệthống Android (Trang 11)
Hình 2-3 Android emulator - Lập trình android (rss)    ứng dụng đọc báo online
Hình 2 3 Android emulator (Trang 13)
Hình 2-5: Ca sổ Choose Packages to Install - Lập trình android (rss)    ứng dụng đọc báo online
Hình 2 5: Ca sổ Choose Packages to Install (Trang 14)
Hình 2- 6: Các gói Packages bạn muốn tải - Lập trình android (rss)    ứng dụng đọc báo online
Hình 2 6: Các gói Packages bạn muốn tải (Trang 15)
Hình 2-8 :Android SDK - Lập trình android (rss)    ứng dụng đọc báo online
Hình 2 8 :Android SDK (Trang 16)
Hình 2-7:Tích hợp Android SDK vào Eclipse - Lập trình android (rss)    ứng dụng đọc báo online
Hình 2 7:Tích hợp Android SDK vào Eclipse (Trang 16)
 Skin: có thể để Default (HVGA) hoặc chọn kích cỡ màn hình bạn muốn. Chỉ cầnquan tâm tới 3 option:  HVGA (phân giải 320-480  như G1, G2, i5700...),  QVGA(240-320  như  HTC  Wildfire...),  WVGA854  (480-854  như  Milestone,  NexusOne...)  ->  Create  A - Lập trình android (rss)    ứng dụng đọc báo online
kin có thể để Default (HVGA) hoặc chọn kích cỡ màn hình bạn muốn. Chỉ cầnquan tâm tới 3 option: HVGA (phân giải 320-480 như G1, G2, i5700...), QVGA(240-320 như HTC Wildfire...), WVGA854 (480-854 như Milestone, NexusOne...) -> Create A (Trang 17)
Hình 2-1 0: Debug ứng dụng - Lập trình android (rss)    ứng dụng đọc báo online
Hình 2 1 0: Debug ứng dụng (Trang 18)
Hình 2-11 :File Explorer của Android Device của Android  - Lập trình android (rss)    ứng dụng đọc báo online
Hình 2 11 :File Explorer của Android Device của Android (Trang 19)
Hình 2-12: Chu kì sống một thành phần - Lập trình android (rss)    ứng dụng đọc báo online
Hình 2 12: Chu kì sống một thành phần (Trang 23)
Hình 2-13: Activity stack - Lập trình android (rss)    ứng dụng đọc báo online
Hình 2 13: Activity stack (Trang 24)
Hình 2-14: Chu kỳ sống của Activity - Lập trình android (rss)    ứng dụng đọc báo online
Hình 2 14: Chu kỳ sống của Activity (Trang 25)
Hình 2-16: Cu trúc một giao diện ứng dụng Android - Lập trình android (rss)    ứng dụng đọc báo online
Hình 2 16: Cu trúc một giao diện ứng dụng Android (Trang 28)
Hình 2-17: Bố trí các widge ts dụng LinearLayout - Lập trình android (rss)    ứng dụng đọc báo online
Hình 2 17: Bố trí các widge ts dụng LinearLayout (Trang 29)
Hình 2-18: Bố trí các widget trong FrameLayout - Lập trình android (rss)    ứng dụng đọc báo online
Hình 2 18: Bố trí các widget trong FrameLayout (Trang 30)
Hình 2-19: Bố trí widget trong RetaliveLayout - Lập trình android (rss)    ứng dụng đọc báo online
Hình 2 19: Bố trí widget trong RetaliveLayout (Trang 31)
Hình 2-21: ImageButon - Lập trình android (rss)    ứng dụng đọc báo online
Hình 2 21: ImageButon (Trang 33)
Hình 2-23: Minh hoạ cho một ListView - Lập trình android (rss)    ứng dụng đọc báo online
Hình 2 23: Minh hoạ cho một ListView (Trang 34)
Hình 2-24: Minh hoạ option menu - Lập trình android (rss)    ứng dụng đọc báo online
Hình 2 24: Minh hoạ option menu (Trang 36)
Hình 2-25: Minh hoạ context menu - Lập trình android (rss)    ứng dụng đọc báo online
Hình 2 25: Minh hoạ context menu (Trang 38)
Hình 2-26: Minh hoạ Quick Search Box - Lập trình android (rss)    ứng dụng đọc báo online
Hình 2 26: Minh hoạ Quick Search Box (Trang 39)
Hình 2-28: Các thuộc tính của Intend - Lập trình android (rss)    ứng dụng đọc báo online
Hình 2 28: Các thuộc tính của Intend (Trang 41)
Hình 2-29: Các Action đã được định nghĩa sẵn trong Intend - Lập trình android (rss)    ứng dụng đọc báo online
Hình 2 29: Các Action đã được định nghĩa sẵn trong Intend (Trang 42)
Hình 2-30: Chu trình sống của một Service - Lập trình android (rss)    ứng dụng đọc báo online
Hình 2 30: Chu trình sống của một Service (Trang 45)
Hình 2-31: SQLite Manager - Lập trình android (rss)    ứng dụng đọc báo online
Hình 2 31: SQLite Manager (Trang 47)
Mô hình usercase dưới đây thể hiện cho số lượng chức của hệthống mà ngườidùng có thể tương tác được trực tiếp - Lập trình android (rss)    ứng dụng đọc báo online
h ình usercase dưới đây thể hiện cho số lượng chức của hệthống mà ngườidùng có thể tương tác được trực tiếp (Trang 64)
4.3.2. Dem on hình chính - Lập trình android (rss)    ứng dụng đọc báo online
4.3.2. Dem on hình chính (Trang 65)
ìn h: Gi iện àn hình ch nh - Lập trình android (rss)    ứng dụng đọc báo online
n h: Gi iện àn hình ch nh (Trang 66)
4.3.3. Deno Màn Hình tin chi tiết - Lập trình android (rss)    ứng dụng đọc báo online
4.3.3. Deno Màn Hình tin chi tiết (Trang 66)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w