Tổng quan về cấu trúc

Dự án nguồn mở Android (AOSP) là mã nguồn Android có thể truy cập công khai và có thể sửa đổi. Bất cứ ai cũng có thể tải và sửa đổi AOSP cho thiết bị của họ. AOSP cung cấp cách triển khai hoàn chỉnh và đầy đủ chức năng cho nền tảng di động Android.

Có 2 mức độ tương thích cho các thiết bị triển khai AOSP: khả năng tương thích AOSP và khả năng tương thích Android. Thiết bị tương thích với AOSP phải tuân thủ danh sách yêu cầu trong Tài liệu định nghĩa về khả năng tương thích (CDD). Thiết bị tương thích với Android phải tuân thủ danh sách yêu cầu trong CDD và Yêu cầu về phần mềm của nhà cung cấp (VSR) cũng như các bài kiểm thử như trong Bộ kiểm thử của nhà cung cấp (VTS)Bộ kiểm thử tính tương thích (CTS). Để biết thêm thông tin về khả năng tương thích với Android, hãy tham khảo chương trình tương thích với Android.

Cấu trúc AOSP

Ngăn xếp phần mềm cho AOSP chứa các lớp sau:

Cấu trúc ngăn xếp phần mềm AOSP.

Hình 1. Cấu trúc ngăn xếp phần mềm AOSP (Dự án nguồn mở Android).

Dưới đây là danh sách định nghĩa cho các thuật ngữ được sử dụng trong Hình 1:

Ứng dụng Android
Một ứng dụng được tạo hoàn toàn bằng API Android. Cửa hàng Google Play được sử dụng rộng rãi để tìm và tải ứng dụng Android xuống, mặc dù có nhiều lựa chọn thay thế khác. Trong một số trường hợp, nhà sản xuất thiết bị có thể muốn cài đặt trước một ứng dụng Android để hỗ trợ chức năng cốt lõi của thiết bị. Nếu bạn quan tâm đến việc phát triển ứng dụng Android, hãy tham khảo developers.android.com.
Ứng dụng đặc quyền
Một ứng dụng được tạo bằng cách kết hợp API của Android và API hệ thống. Các ứng dụng này phải được cài đặt trước dưới dạng ứng dụng đặc quyền trên thiết bị.
Ứng dụng của nhà sản xuất thiết bị
Ứng dụng được tạo bằng cách kết hợp API Android, API hệ thống và quyền truy cập trực tiếp vào quá trình triển khai khung Android. Vì nhà sản xuất thiết bị có thể truy cập trực tiếp vào các API không ổn định trong khung Android, nên các ứng dụng này phải được cài đặt sẵn trên thiết bị và chỉ có thể cập nhật khi phần mềm hệ thống của thiết bị được cập nhật.
System API (API hệ thống)
API hệ thống đại diện cho các API Android chỉ dành cho đối tác và OEM để đưa vào các ứng dụng đi kèm. Các API này được đánh dấu là @SystemApi trong mã nguồn.
Android API
Android API là API công khai dành cho các nhà phát triển ứng dụng Android bên thứ ba. Để biết thông tin về API Android, hãy tham khảo tài liệu tham khảo về API Android.
Khung Android
Một nhóm các lớp Java, giao diện và mã được biên dịch trước khác mà ứng dụng được xây dựng dựa trên đó. Bạn có thể truy cập công khai vào một số phần của khung này thông qua việc sử dụng API Android. Các phần khác của khung này chỉ được cung cấp cho nhà sản xuất thiết bị gốc (OEM) thông qua việc sử dụng API hệ thống. Mã khung Android chạy bên trong quy trình của ứng dụng.
Dịch vụ hệ thống
Dịch vụ hệ thống là các thành phần tập trung theo mô-đun như system_server, SurfaceFlinger và MediaService. Chức năng do API khung Android hiển thị giao tiếp với các dịch vụ hệ thống để truy cập vào phần cứng cơ bản.
Android runtime (ART)
Môi trường thời gian chạy Java do AOSP cung cấp. ART thực hiện việc dịch mã byte của ứng dụng thành các lệnh dành riêng cho bộ xử lý do môi trường thời gian chạy của thiết bị thực thi.
Lớp trừu tượng phần cứng (HAL)
HAL là một lớp trừu tượng có giao diện tiêu chuẩn để các nhà cung cấp phần cứng triển khai. HAL cho phép Android không cần biết về việc triển khai trình điều khiển cấp thấp hơn. Việc sử dụng HAL cho phép bạn triển khai chức năng mà không ảnh hưởng hoặc sửa đổi hệ thống cấp cao hơn. Để biết thêm thông tin, hãy xem tổng quan về HAL.
Trình nền và thư viện gốc

Các trình nền gốc trong lớp này bao gồm init, healthd, logdstoraged. Các trình nền này tương tác trực tiếp với nhân hoặc các giao diện khác và không phụ thuộc vào việc triển khai HAL dựa trên không gian người dùng.

Các thư viện gốc trong lớp này bao gồm libc, liblog, libutils, libbinderlibselinux. Các thư viện gốc này tương tác trực tiếp với nhân hệ điều hành hoặc các giao diện khác và không phụ thuộc vào việc triển khai HAL (Lớp trừu tượng phần cứng) dựa trên không gian người dùng.

Kernel

Hạt nhân là phần trung tâm của mọi hệ điều hành và giao tiếp với phần cứng cơ bản trên thiết bị. Nếu có thể, nhân AOSP sẽ được chia thành các mô-đun không phụ thuộc vào phần cứng và các mô-đun dành riêng cho nhà cung cấp. Để biết nội dung mô tả, bao gồm cả định nghĩa về các thành phần hạt nhân AOSP, hãy tham khảo phần Tổng quan về hạt nhân.

Tiếp theo là gì?

  • Nếu bạn mới sử dụng AOSP và muốn bắt đầu phát triển, hãy tham khảo phần Bắt đầu.
  • Nếu bạn muốn tìm hiểu thêm về một lớp AOSP cụ thể, hãy nhấp vào tên của phần trong thanh điều hướng bên trái và bắt đầu bằng phần tổng quan về phần đó.