Các Thành Phần Cơ Bản Trong Android Là Gì?

Hôm nay mình sẽ giới thiệu đến các bạn các thành phần cơ bản để tạo nên được một ứng dụng trong Android. Việc hiểu được các thành phần này là gì, ứng dụng của từng thành phần sẽ giúp các bạn khá nhiều trong việc tiếp cận với lập trình trong Android.

Đây cũng là câu hỏi thường được dùng để phỏng vấn các ứng viên ở mức junior. Chúng ta hãy cùng tìm hiểu nhé.

Trong Android, chúng ta có thể liệt kê ra 4 thành phần cơ bản như sau:

  • Activity
  • Service
  • Broadcast Receiver
  • Content Provider

Bây giờ, mình sẽ cùng các bạn tìm hiểu chi tiết và ứng dụng của các thành phần trên.

1. Activity

Trong ứng dụng Android, Activity đóng vai trò đặc biệt quan trọng, là nơi giúp người dùng tương tác trực tiếp với ứng dụng, ví dụ như gọi điện thoại, chụp ảnh, gửi e-mail hoặc xem bản đồ.

Activity được coi là xương sống của một ứng dụng Android, một ứng dụng có thể có một hoặc nhiều Activity (bất kì ứng dụng nào cũng cần có ít nhất 1 Activity).

Activity có thể hiển thị ở chế độ toàn màn hình, dạng cửa sổ hoặc với một kích thước nhất định

Một Activity có thể gọi đến một Activity khác, Activity được gọi đến sẽ tương tác với người dùng tại thời điểm được gọi tới.

Một ứng dụng bên ngoài có thể gọi tới bất kỳ Activity nào trong ứng dụng (nếu được cấp quyền). Ví dụ: Một ứng dụng chụp ảnh sau khi chụp ảnh xong, sẽ gửi yêu cầu để start một activity có chức năng soạn e-mail trong ứng dụng email nhằm mục đích gửi ảnh vừa chụp đi.

Khai báo Activity trong AndroidManifest

<activity android:name=”com.example.myapplication.MainActivity” android:configChanges=”orientation|screenSize” android:exported=”false” android:screenOrientation=”landscape”> <intent-filter> <action android:name=”android.intent.action.MAIN” /> <category android:name=”android.intent.category.LAUNCHER” /> </intent-filter> </activity>

2. Service

Service là một thành phần ứng dụng chạy ngầm trên hệ điều hành ví dụ như nghe nhạc, hoặc tương tác với một content provider. Service không tương tác trực tiếp với người dùng, khi service chạy thì người dùng vẫn có thể tương tác với một thành phần khác trong ứng dụng hoặc có thể tương tác với một ứng dụng khác trong hệ thống.

Ví dụ: Chúng ta có thể vừa nghe nhạc, vừa lướt facebook là do ứng dụng nghe nhạc có một service chạy ngầm trong background để phát nhạc trong khi người dùng đang tương tác với ứng dụng facebook.

Theo trang chủ android, Service trong Android được chia thành 3 loại đó là: Foreground Service, Background Servie Bound Service.

Khai báo Activity trong AndroidManifest

<service android:name=”.ExampleService” android:enabled=”true” android:exported=”false” android:stopWithTask=”true”/>

3. Broadcast Receiver

Broadcast Receiver là một thành phần của ứng dụng giúp lắng nghe các sự kiện mà hệ thống phát ra thông qua Intent, hệ thống có thể truyền phát ngay cả khi app không chạy. Broadcast Receiver không có giao diện cụ thể nhưng nó có thể thực hiện thông báo thông qua thanh Notification. Có rất nhiều broadcast được phát ra từ hệ thống, chúng ta có thể lấy ví dụ như một broadcast thông báo rằng màn hình điện thoại đã tắt, hay điện thoại đang ở trạng thái “Battery Low”, “Power Connected”, “Power Disconnected” hoặc một bức ảnh đã được chụp. Cũng có những broadcast được phát ra từ ứng dụng như sau khi download một tệp, ví dụ: Sau khi hoàn thành download một tệp tin, ứng dụng A phát ra thông báo là dữ liệu đã download xong, tệp đã sẵn sàng cho các ứng dụng khác có thể sử dụng.

Khai báo Broadcast Receiver trong AndroidManifest

<receiver android:name=”.BatteryLevelReceiver”> <intent-filter> <action android:name=”android.intent.action.BATTERY_LOW”/> <action android:name=”android.intent.action.BATTERY_OKAY”/> </intent-filter> </receiver>

4. Content Provider

Content Provider là một thành phần giúp các một ứng dụng có thể đọc và ghi dữ liệu từ một file hoặc từ SQLite của một ứng dụng khác trong cùng một hệ thống. Bất kỳ ứng dụng nào có quyền (permisson) đều có thể truy xuất, chỉnh sửa dữ liệu của một ứng dụng khác.

Content Provider được chia thành 2 loại:

  • Native Content Provider: Là những Content Provider có sẵn, được tạo ra bởi hệ thống, ví dụ như Contacts, Message, …
  • Custom Content Provider: Bao gồm các Content Provider được tạo ra bởi các developer phụ thuộc vào đặc điểm của từng ứng dụng.

Khai báo Content Provider trong AndroidManifest

<provider android:name=”android.support.v4.content.FileProvider” android:authorities=”com.example.codelearn.read.fileprovider” android:exported=”false” android:grantUriPermissions=”true”> <meta-data android:name=”android.support.FILE_PROVIDER_PATHS” android:resource=”@xml/file_path”/> </provider>

Tạm kết

Vậy là mình đã giới thiệu tới các bạn các thành phần cơ bản trong một ứng dụng Android, hi vọng bài viết mang tới cho các bạn những kiến thức bổ ích. Trong các bài viết tới, mình sẽ đi sâu hơn về cách sử dụng cũng như code ví dụ của các thành phần này.