Android Open Source Project (AOSP) jest publicznie dostępny i można go modyfikować. Każdy może pobrać i zmodyfikować AOSP na swoje urządzenie. AOSP zapewnia kompletną i w pełni funkcjonalną implementację mobilnej platformy Android.
Urządzenia z AOSP są 2 poziomy zgodności z AOSP: z AOSP i z Androidem. Urządzenie zgodne z AOSP musi spełniać wymagania podane w dokumentacji dotyczącej zgodności (CDD). Urządzenie zgodne z Androidem musi spełniać wymagania określone w dokumentach CDD i VSR oraz przechodzić testy takie jak Vendor Test Suite (VTS) i Compatibility Test Suite (CTS). Więcej informacji o zgodności z Androidem znajdziesz w Programie zgodności z Androidem.
Architektura AOSP
Stos oprogramowania dla AOSP zawiera te warstwy:
Rysunek 1. Architektura stosu oprogramowania AOSP.
Poniżej znajdziesz listę definicji terminów użytych na rysunku 1:
- Aplikacja na Androida
- Aplikacja utworzona wyłącznie przy użyciu interfejsu Android API. Sklep Google Play jest często używany do wyszukiwania i pobierania aplikacji na Androida, ale istnieje wiele innych alternatyw. W niektórych przypadkach producent urządzenia może chcieć wstępnie zainstalować aplikację na Androida, aby umożliwić korzystanie z podstawowych funkcji urządzenia. Jeśli chcesz tworzyć aplikacje na Androida, odwiedź stronę developers.android.com.
- Aplikacja z podwyższonymi uprawnieniami
- Aplikacja utworzona przy użyciu kombinacji interfejsów API Androida i systemowych interfejsów API. Te aplikacje muszą być wstępnie zainstalowane jako aplikacje uprzywilejowane na urządzeniu.
- Aplikacja producenta urządzenia
- Aplikacja utworzona przy użyciu kombinacji interfejsu API Androida, interfejsu API systemu i bezpośredniego dostępu do implementacji platformy Androida. Producent urządzenia może mieć bezpośredni dostęp do niestabilnych interfejsów API w ramach platformy Androida, dlatego te aplikacje muszą być wstępnie zainstalowane na urządzeniu i można je aktualizować tylko po zaktualizowaniu oprogramowania systemowego urządzenia.
- System API
- Interfejs System API to interfejsy API Androida dostępne tylko dla partnerów i wytwórców OEM do umieszczania w aplikacji w pakiecie. Te interfejsy API są oznaczone w źródlecznym kodzie jako @SystemApi.
- Interfejs API Androida
- Interfejs Android API jest publicznie dostępny dla deweloperów aplikacji na Androida. Informacje o interfejsie Android API znajdziesz w dokumentacji interfejsu Android API.
- Platforma Androida
- Grupa klas, interfejsów i wstępnie skompilowanego kodu Java, na których są tworzone aplikacje. Niektóre części tej platformy są publicznie dostępne dzięki interfejsowi API Androida. Inne części tej platformy są dostępne tylko dla producentów OEM za pomocą interfejsów API systemu. Kod platformy Android działa w ramach procesu aplikacji.
- Usługi systemowe
- Usługi systemowe to modułowe, wyspecjalizowane komponenty, takie jak
system_server
, SurfaceFlinger i MediaService. Funkcje udostępniane przez interfejs API Androida komunikują się z usługami systemowymi, aby uzyskać dostęp do sprzętu. - środowisko wykonawcze Androida (ART)
- Środowisko wykonawcze Java udostępniane przez AOSP. ART dokonuje translacji bajtkodu aplikacji na instrukcje procesora, które są wykonywane przez środowisko uruchomieniowe urządzenia.
- Warstwa abstrakcji sprzętowej (HAL)
- HAL to warstwa abstrakcji z interfejsem standardowym, który mogą wdrażać producenci sprzętu. Interfejsy HAL pozwalają Androidowi nie przejmować się implementacjami sterowników niskiego poziomu. Użycie HAL pozwala wdrożyć funkcje bez wpływu i modyfikowania systemu wyższego poziomu. Więcej informacji znajdziesz w omówieniu HAL.
- Natywni demony i biblioteki
Do natywnych demonów na tym poziomie należą
init
,healthd
,logd
istoraged
. Te demony współpracują bezpośrednio z jądrem lub innymi interfejsami i nie są zależne od implementacji HAL w przestrzeni użytkownika.Biblioteki natywne w tej warstwie to
libc
,liblog
,libutils
,libbinder
ilibselinux
. Te biblioteki natywne współdziałają bezpośrednio z jądrem lub innymi interfejsami i nie wymagają implementacji HAL opartej na przestrzeni użytkownika.- Rdzeń
Rdzeń jest centralną częścią każdego systemu operacyjnego i komunikuje się z podstawowym sprzętem na urządzeniu. W miarę możliwości jądro AOSP jest dzielone na moduły niezależne od sprzętu i specyficzne dla producenta. Opis wraz z definicjami komponentów jądra AOSP znajdziesz w omówieniu jądra.
Co dalej?
- Jeśli dopiero zaczynasz korzystać z AOSP i chcesz zacząć programowanie, zapoznaj się z sekcją Pierwsze kroki.
- Jeśli chcesz dowiedzieć się więcej o konkretnej warstwie AOSP, kliknij jej nazwę w panelu nawigacyjnym po lewej stronie i zacznij od ogólnego omówienia tej sekcji.