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

Nền tảng hệ thống mở Android (AOSP) là mã nguồn Android có thể sửa đổi và có sẵn công khai. Bất kỳ ai cũng có thể tải xuống và sửa đổi AOSP cho thiết bị của mình. AOSP cung cấp triển khai đầy đủ và đầy đủ chức năng cho nền tảng di động Android.

Có hai mức độ tương thích đối với 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 AOSP phải tuân theo danh sách các yêu cầu trong Tài liệu Định nghĩa Tương thích (CDD) . Thiết bị tương thích với Android phải tuân theo 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) cũng như các thử nghiệm như các yêu cầu trong Bộ thử nghiệm của nhà cung cấp (VTS)Bộ thử nghiệm tương thích (CTS) . Để biết thêm thông tin về khả năng tương thích của 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:

Kiến trúc ngăn xếp phần mềm AOSP.

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 chỉ 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 ứ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ảodevelopers.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 API Android và 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 của 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 việc 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 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 đố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 tài liệu tham khảo API Android .
Khung Android
Một nhóm các lớp, giao diện Java 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ỉ dành 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 mô-đun, tập trung như system_server , SurfaceFlinger và MediaService. Chức năng được API khung Android cung cấp sẽ 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 việc 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 có giao diện 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 và thư viện gốc

Các daemon gốc trong lớp này bao gồm init , healthd , logdstoraged . Các daemon này tương tác trực tiếp với kernel 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 kernel 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.

hạt nhân

Kernel là phần trung tâm của bất kỳ hệ điều hành nào và liên kết với phần cứng cơ bản trên thiết bị. Nếu có thể, hạt 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 hạt nhân AOSP, hãy tham khảo Tổng quan về hạt nhân .

Cái gì tiếp theo?

  • Nếu bạn mới làm quen với 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 điều hướng bên trái và bắt đầu với phần tổng quan cho phần đó.