Phần này tìm hiểu các thành phần cơ bản nhất tạo nên một ứng dụng Android. Hiểu về các thành phần này giúp cho có một cái nhìn tổng quan về cấu trúc ứng dụng.

Các Activity trong Android

Các ứng dụng được tạo ra bằng sự hòa hợp với một hay nhiều thành phần được gọi là Activity. Một Activity có thể là một module, thành phần chức năng độc lập của ứng dụng mà mỗi Activity thường tương ứng với một giao diện người dùng (UI) và các chức năng đáp lại sự tương tác với người dùng. Một ứng dụng có thể có một hay nhiều Activity

Các Activity được xây dựng để có thể sử dụng lại và tương tác, chia sẻ giữa các ứng dụng. Ví dụ có một ứng dụng với Activity để hiện thị hình ảnh, thì trong ứng dụng khác thay vì xây dựng mới Activity có chức năng này thì có thể gọi từ ứng dụng khác.

Một Activity được xây dựng bằng cách kế thừa lớp Activity, một Activity không thể gọi trực tiếp các phương thức hay truy cập vào dữ liệu của một Activity khác. Thay vào đó, phải dùng tới thành phần gọi là Intent từ Activity này kích hoạt Activity khác và Content Provider. Mặc định thì một Activity không trả về kết quả cho một Activity khác gọi đến nó

Xem thêm: Vòng đời của Activity

Các Intent trong Android

Các Intent là cơ chế để một Activity có thể khởi chạy Activity khác trong ứng dụng. Trong Intent có thông tin về nhiệm vụ, các tùy chọn, dữ liệu để Activity thi hành được. Intent có thể là dạng tường minh, nghĩa là chúng yêu cầu chạy một Activity cụ thể chỉ ra bởi tên lớp của Activity đó. Intent cũng có thể ở dạng không tường mình, bằng cách chỉ cung cấp hoạt động mong muốn, hoặc cung cấp dữ liệu mà căn cứ vào dữ liệu đó tương ứng với hành động, hệ thống Android ở thời điểm chạy sẽ chọn Activity để kích hoạt.

Broadcast Intent

Đây là một Intent đặc biệt, Broadcast Intent sẽ gửi thông tin ra bên ngoài, gửi đến tất cả các ứng dụng (ứng dụng có đăng ký nhận bằng Broadcast Receiver). Ví dụ, hệ thống Android gửi Broadcast Intent để thông báo trạng thái thiết bị như khởi động hệ thống, thay đổi kết nối ... ứng dụng của bạn muốn nhận thông tin nào thì phải đăng ký trước.

Broadcast Receiver

Đây là cơ chế để ứng dụng phản ứng lại với các Broadcast Intent, nó cần được đăng ký bởi ứng dụng và cấu hình với Intent Filter để biết được loại Intent nào muốn nhận. Nếu Intent Broadcast từ đâu đó trong hệ thống phát ra, phù hợp với loại ứng dụng đăng ký thì nó sẽ nhận được khi chạy. Khi nhận được thì Receiver có 5 giây để hoàn thành tác vụ (như tạo notification chẳng hạn). Broadcast Receiver thi hành ở background (nền) và không có giao diện người dùng.

Broadcast Services

Android Service là process (tiến trình) chạy ngầm (background) và không có giao diện người dùng. Nó có thể khởi chạy và quản lý bởi các Activity, Broadcast Receiver, hay bởi Service khác. Android Service dùng trong tình huống một ứng dụng cần tiếp tục thi hành các tác vụ nhưng không cần tới sự xuất hiện của giao diện người dùng.

Cho dù Service thiếu đi giao diện người dùng, nó vẫn có thể thông báo cho người dùng các tự kiện bằng sử dụng Notification hoặc Toast. Service có mức độ ưu tiên cao hơn khi chạy so với các loại tiến trình khác, cần giải phóng tài nguyên nó được xem xét kết thúc sau nhất và tất nhiên trong quá trình này Service sẽ tự động khởi động lại ngay khi có đủ tài nguyên hệ thống. Một Service có thể giảm đi nguy cơ kết thúc bằng cách khai báo bản thân nó chạy ở nền, bằng cách gọi hàm startForeground()

Content Provider

Content Provider là cơ chế cho phép chia sẻ dữ liệu giữa các ứng dụng với nhau. Bất kỳ ứng dụng nào đều có thể cung cấp cho ứng dụng khác khả năng truy cập dữ liệu của mình thông qua Content Provider với các chức năng thêm, bớt, truy vấn dữ liệu. Việc truy cập này được cung cấp thông qua URI định nghĩa và cung cấp bởi Content Provicder

Dữ liệu chia sẻ ở dạng một file hoặc CSDL SQLite. Các ứng dụng gốc Android cung cấp sẵn nhiều Content Provider cho phép ứng dụng truy cập dữ liệu như trình danh bạ, quản lý file media. Hiện nay Content Provider tồn tại trong hệ thống Android với Content Resolver.

Manifest

Manifest của ứng dụng định nghĩa trong file định dạng XML, nó mô tả để hệ thống Android hiểu khái quát về ứng dụng như các Activity, các Service, Broadcast Receiver, Content Provider, các quyền truy cập. Những thông tin này cần thiết để hệ thống Android chạy được ứng dụng như mong muốn.

Resource

Ứng dụng Android được đóng gói ngoài các loại file byte code, nó còn chứa tập hợp các file tài nguyên (Resource) như chuỗi ký tự, hình ảnh, font chữ, màu sắc ... những thành phần xuất hiện trong giao diện người dùng và được trình bày với file XML. Mặc định những file này lưu trữ bên trong thư mục /res

Context ứng dụng

Khi ứng dụng biên dịch, một lớp có tên là R được tự động tạo ra, nó chứa các tham khảo trỏ đến tài nguyên của ứng dụng. Các file manifest và tài nguyên sẽ được kết hợp lại với nhau được hiểu là Context ứng dụng. Context trong ứng dụng được biểu diễn bằng lớp Context, được sử dụng trong ứng dụng để thông qua nó truy cập tới các loại tài nguyên khi ứng dụng đang chạy. Ngoài ra, có nhiều phương thức dựa vào context để lấy các thông tin về môi trường ứng dụng hoạt động khi chạy.


Đăng ký nhận bài viết mới