Dự án nguồn mở Android (AOSP) được cung cấp công khai và có thể sửa đổi Mã nguồn Android. Bất cứ ai cũng có thể tải và sửa đổi AOSP cho thiết bị của họ. AOSP (Dự án nguồn mở Android) cung cấp triển khai hoàn chỉnh và đầy đủ chức năng của thiết bị di động Android chủ.
Có hai mức độ tương thích cho các thiết bị triển khai AOSP: AOSP và khả năng tương thích với Android. Thiết bị tương thích với AOSP (Dự án nguồn mở Android) phải phù hợp với danh sách các yêu cầu trong Tài liệu định nghĩa về khả năng 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à các yêu cầu về phần mềm nhà cung cấp (VSR) cũng như các bài kiểm thử chẳng hạn như Bộ thử nghiệm dành cho nhà cung cấp (VTS) và Bộ kiểm tra 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.
Kiến trúc AOSP (Dự án nguồn mở Android)
Ngăn xếp phần mềm cho AOSP chứa các lớp sau:
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 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. Điều khoản Cửa hàng Play được sử dụng rộng rãi để tìm và tải các ứng dụng Android xuống, mặc dù có nhiều giải pháp 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ị
- Một ứng dụng được tạo bằng cách kết hợp API Android, API hệ thống và API trực tiếp quyền truy cập vào phương thức 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, các ứng dụng này phải được cài đặt trước trên thiết bị và chỉ có thể cập nhật khi phần mềm hệ thống được cập nhật.
- API Hệ thống
- System API biểu thị 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 cung cấp công khai cho ứng dụng Android bên thứ ba nhà phát triển. Để biết thông tin về API Android, hãy tham khảo Tài liệu tham khảo về API của 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 mà trên đó các ứng dụng được tạo. Các phần của khung có thể truy cập công khai thông qua việc sử dụng API của Android. Các phần khác của khung này là chỉ dành cho OEM thông qua việc sử dụng API hệ thống. của Android mã khung sẽ 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 chuyển mã byte của ứng dụng thành các lệnh dành riêng cho đơn vị xử lý được thực thi theo 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 tầng trừu tượng có giao diện tiêu chuẩn dành cho các nhà cung cấp phần cứng để triển khai. HAL cho phép Android độc lập về trình điều khiển cấp thấp hơn thực tế. Việc sử dụng HAL cho phép bạn triển khai chức năng mà không cần ả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 bài viết 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
,logd
vàstoraged
. Các trình nền 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.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 hệ điều hành hoặc các giao diện khác và không phụ thuộc vào lớp trừu tượng phần cứng (HAL) dựa trên không gian người dùng trong quá trình triển khai.- Hạt nhân
Kernel 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 hệ điều hành AOSP sẽ được tách thành các mô-đun không phụ thuộc vào phần cứng và mô-đun dành riêng cho nhà cung cấp. Để cung cấp nội dung mô tả, bao gồm các định nghĩa, của các thành phần nhân AOSP, tham chiếu đến Tổng quan về kernel.
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ể, nhấp vào trong bảng điều hướng bên trái và bắt đầu bằng phần tổng quan cho phần đó.