Nền tảng hệ thống mở Android (AOSP) là mã nguồn Android có sẵn công khai và có thể sửa đổi. Bất kỳ ai cũng có thể tải xuống và sửa đổi AOSP cho thiết bị của họ. AOSP cung cấp triển khai đầy đủ và đầy đủ chức năng của nền tảng di động Android.
Có hai cấp độ tương thích cho các thiết bị triển khai AOSP: tương thích AOSP và tương thích Android. Một thiết bị tương thích với AOSP phải tuân thủ danh sách các yêu cầu trong Tài liệu Định nghĩa Tương thích (CDD) . Một thiết bị tương thích với Android phải tuân thủ danh sách các yêu cầu trong CDD và Yêu cầu phần mềm của nhà cung cấp (VSR) và các thử nghiệm như các thử nghiệm trong Bộ thử nghiệm của nhà cung cấp (VTS) và Bộ thử nghiệm 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 .
kiến trúc AOSP
Ngăn xếp phần mềm cho AOSP chứa các lớp sau:
Hình 1. Kiến trúc ngăn xếp phần mềm AOSP.
Sau đây là danh sách các đị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 xuống các ứng dụng Android, 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 sẵn ứ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 sử dụng kết hợp Android và API hệ thống. Các ứng dụng này phải được cài đặt sẵn dưới dạng ứng dụng đặc quyền trên thiết bị.
- Ứng dụng nhà sản xuất thiết bị
- Một ứng dụng được tạo bằng cách sử dụng kết hợp API Android, API hệ thống và quyền truy cập trực tiếp vào triển khai khung Android. Do 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.
- API hệ thống
- API hệ thống đại diện cho các API Android chỉ dành cho các đố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.
- API Android
- API Android là API có sẵn công khai dành cho 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 Tham chiếu API Android .
- khuôn khổ Android
- Một nhóm các lớp Java, giao diện và mã được biên dịch trước khác để xây dựng ứng dụng. Các phần của khung có thể truy cập công khai thông qua việc sử dụng API Android. Các phần khác của khung chỉ khả dụng cho 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
- Các dịch vụ hệ thống là các thành phần tập trung, theo mô-đun chẳng hạn như
system_server
, SurfaceFlinger và MediaService. Chức năng được cung cấp bởi API khung Android 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. - Thời gian chạy Android (ART)
- Môi trường thời gian chạy Java do AOSP cung cấp. ART thực hiện dịch mã byte của ứng dụng thành các hướng dẫn dành riêng cho bộ xử lý được thực thi bởi môi trường thời gian chạy của thiết bị.
- Lớp trừu tượng phần cứng (HAL)
- HAL là một lớp trừu tượng với 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 biết gì về việc triển khai trình điều khiển cấp thấp hơn. 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 .
- Daemon bản địa và thư viện
Daemon bản địa trong lớp này bao gồm
init
,healthd
,logd
vàstoraged
. Các daemon 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 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
,libbinder
vàlibselinux
. Các thư viện Gốc 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 triển khai HAL dựa trên không gian người dùng.- hạt nhân
Nhân là phần trung tâm của bất kỳ hệ điều hành nào 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 đượ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 mô tả, bao gồm các định nghĩa, về các thành phần nhân AOSP, hãy tham khảo Tổng quan về nhân .
Cái gì tiếp theo?
- 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 cụ thể của AOSP, hãy nhấp vào tên của phần trong điều hướng bên trái và bắt đầu với phần tổng quan cho phần đó.