Kiến trúc các tầng của hệ điều hành mã nguồn mở Android

Kiến trúc các tầng của hệ điều hành Android

Chia sẻ kiến thức 04/05/2022

Android là một hệ điều hành mã nguồn mở dựa trên nền tảng Linux. Gồm có 6 tầng là Linux Kernel, Hardware Abstraction Layer - HAL, Android Runtime, Native C/C++ Libraries, Java API Framework, System Apps.

>> Học lập trình Android – 3 Bí quyết giúp bạn trở nên thành thạo

>> Stock Android là gì? 5 lý do bạn nên sử dụng phiên bản hệ điều hành này

>> 10 tính năng Developer Options trên Android bạn nên thử ngay

Android là một hệ điều hành mã nguồn mở dựa trên nền tảng Linux. Gồm có 6 tầng là Linux Kernel, Hardware Abstraction Layer – HAL, Android Runtime, Native C/C++ Libraries, Java API Framework, System Apps. 

Kiến trúc các tầng của hệ điều hành Android
Android là một hệ điều hành mã nguồn mở dựa trên nền tảng Linux gồm có 6 tầng.

1. Linux Kernel 

Nhân Linux (Linux Kernel) là tầng dưới cùng và là nền tảng trong kiến trúc của hệ điều hành Android. Đây là Linux 3.6 với khoảng 115 bản vá. Tầng này cung cấp mức độ trừu tượng giữa phần cứng của thiết bị, và nó chứa tất cả các trình điều khiển phần cứng thiết yếu như máy ảnh, bàn phím, màn hình,… Ngoài ra, hạt nhân (kernel) xử lý tất cả những thứ mà Linux có thể làm tốt nhất như kết nối mạng và một loạt các trình điều khiển thiết bị, giúp làm giảm bớt khó khăn khi giao tiếp với phần cứng ngoại vi.

2. Hardware Abstraction Layer – HAL

Lớp trừu tượng phần cứng (Hardware Abstraction Layer – HAL) là tầng thứ hai tính từ dưới lên trong kiến trúc của hệ điều hành Android. Tầng này sử dụng khung API (Application Programming Interface) Java cấp cao hơn để cung cấp các giao diện tiêu chuẩn, thực hiện các khả năng của phần cứng thiết bị. 

HAL bao gồm nhiều mô-đun, mỗi mô-đun sẽ thực hiện một giao diện cho một loại thành phần phần cứng cụ thể, ví dụ như mô-đun camera hoặc mô-đun bluetooth.

Khi API thực hiện việc truy cập vào phần cứng của thiết bị, hệ điều hành Android sẽ tải mô-đun cho thành phần của phần cứng đó.

>>> Đọc thêm: Khóa học lập trình android online từ cơ bản dành cho người mới

3. Android Runtime

Hệ điều hành Android
Hệ điều hành Android

Với những thiết bị chạy Android phiên bản 5.0 (API cấp 21) trở lên, mỗi ứng dụng sẽ có quy trình chạy riêng và với thời gian chạy Android (Android Runtime – ART) riêng. 

Tầng này cung cấp một thành phần chính được gọi là máy ảo Dalvik (Dalvik Virtual Machine – Dalvik VM), đây là  một loại máy ảo Java được thiết kế và tối ưu hóa đặc biệt cho Android. 

Dalvik VM sử dụng các tính năng cốt lõi của Linux như quản lý bộ nhớ và đa luồng, cho phép mọi ứng dụng Android chạy trong quy trình riêng với phiên bản Dalvik VM của riêng nó.

ART cũng cung cấp một bộ thư viện cốt lõi, cho phép các nhà lập trình viết các ứng dụng Android bằng ngôn ngữ lập trình Java tiêu chuẩn.

4. Native C/C++ Libraries

Những thành phần và dịch vụ hệ thống cốt lõi như ART và HAL được xây dựng từ mã gốc, được viết bằng ngôn ngữ C và C++. Android cung cấp các khung API Java để hiển thị chức năng của một số thư viện C/C++ gốc (Native C/C++ Libraries) cho các ứng dụng. 

Ví dụ: Chúng ta có thể  thêm thao tác hỗ trợ vẽ và đồ họa 2D và 3D cho ứng dụng bừng cách truy cập OpenGL ES (Open Graphics Library for Embedded System) thông qua API Java OpenGL.

Nếu bạn đang phát triển một ứng dụng yêu cầu mã C/C++, có thể sử dụng Android NDK (Native Development Kit) để truy cập trực tiếp vào một số thư viện C/C++ gốc  từ mã gốc của mình.

Android NDK
Android NDK

>>> Đọc thêm: Nguồn học lập trình Android miễn phí cấp tốc

5. Java API Framework

Java API Framework cung cấp nhiều dịch vụ cấp cao hơn dưới dạng các lớp Java dành cho các ứng dụng. Các nhà lập trình được phép sử dụng các dịch vụ này trong các ứng dụng của họ.

Các dịch vụ chính của Java API Framework bao gồm:

  • Trình quản lý hoạt động (Activity Manager): Kiểm soát tất cả các khía cạnh trong vòng đời của ứng dụng và activity stack.
  • Nhà cung cấp nội dung (Content Providers): Cho phép ứng dụng xuất bản và chia sẻ dữ liệu với các ứng dụng khác.
  • Trình quản lý tài nguyên (Resource Manager): Cung cấp quyền truy cập vào các tài nguyên không code như chuỗi, cài đặt màu, bố cục giao diện người dùng.
  • Trình quản lý thông báo (Notifications Manager): Cho phép ứng dụng hiển thị những cảnh báo và thông báo đến người dùng.
  • Hệ thống xem (View System): Tập hợp nhiều dạng khung hình có thể mở rộng, sử dụng để tạo giao diện cho người dùng ứng dụng.

6. System Apps

Tầng trên cùng trong kiến trúc của hệ điều hành Android là System Aps. Chúng ta sẽ tìm thấy tất cả các ứng dụng mình tạo ra sẽ được cài đặt trên tầng này. Ví dụ như Contacts Books, Browser, Games

Trên đây là bài viết chia sẻ của FUNiX về Kiến trúc các tầng của hệ điều hành Android. Hy vọng những kiến thức này sẽ có ích cho các bạn trong quá trình học tập và theo đuổi nghề nghiệp. Cảm ơn các bạn đã đón đọc.

>>>  Tìm hiểu ngay các khóa học lập trình của FUNiX tại:

>>> Xem thêm nhiều hơn bài viết tại đây:

 

Phạm Thị Thanh Ngọc

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
FUNiX V2 GenAI Chatbot ×

yêu cầu gọi lại