Projekt Android Open Source (AOSP) to publicznie dostępny i modyfikowalny kod źródłowy Androida. Każdy może pobrać i zmodyfikować AOSP na swoim urządzeniu. AOSP zapewnia kompletną i w pełni funkcjonalną implementację mobilnej platformy Android.
Urządzenia z AOSP mogą być zgodne na 2 poziomach: zgodność z AOSP i zgodność z Androidem. Urządzenie zgodne z AOSP musi spełniać wymagania wymienione w dokumencie definicji zgodności (CDD). Urządzenie zgodne z Androidem musi spełniać wymagania zawarte w dokumentach CDD i VSR oraz przechodzić testy, takie jak te w pakiecie VTS i pakiecie CTS. Więcej informacji o zgodności z Androidem znajdziesz w programie zgodności z Androidem.
Architektura AOSP
Stos oprogramowania AOSP zawiera te warstwy:
Rysunek 1. Architektura stosu oprogramowania AOSP.
Poniżej znajdziesz definicje terminów użytych na ilustracji 1:
- Aplikacja na Androida
- Aplikacja utworzona wyłącznie przy użyciu interfejsu Android API. Sklep Google Play jest powszechnie 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 obsługiwać podstawowe funkcje urządzenia. Jeśli interesuje Cię tworzenie aplikacji na Androida, odwiedź stronę developers.android.com.
- Aplikacja z uprawnieniami
- Aplikacja utworzona przy użyciu kombinacji interfejsów API Androida i systemowych. Te aplikacje muszą być wstępnie zainstalowane na urządzeniu jako aplikacje uprzywilejowane.
- Aplikacja producenta urządzenia
- Aplikacja utworzona przy użyciu kombinacji interfejsu Android API, interfejsu systemowego API i bezpośredniego dostępu do implementacji struktury Androida. Ponieważ producent urządzenia może mieć bezpośredni dostęp do niestabilnych interfejsów API w ramach Androida, te aplikacje muszą być wstępnie zainstalowane na urządzeniu i można je aktualizować tylko wtedy, gdy aktualizowane jest oprogramowanie systemowe urządzenia.
- System API
- Interfejs System API reprezentuje interfejsy API Androida dostępne tylko dla partnerów i producentów OEM do uwzględnienia w aplikacjach pakietowych. Te interfejsy API są oznaczone w kodzie źródłowym jako @SystemApi.
- Android API
- Android API to publicznie dostępny interfejs API dla deweloperów aplikacji na Androida innych firm. Informacje o interfejsie Android API znajdziesz w dokumentacji interfejsu Android API.
- Framework Androida
- Grupa klas, interfejsów i innego wstępnie skompilowanego kodu w języku Java, na których opierają się aplikacje. Części platformy są publicznie dostępne dzięki interfejsowi Android API. Pozostałe części platformy są dostępne tylko dla producentów OEM za pomocą interfejsów API systemu. Kod platformy Android działa w procesie 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 platformy Android komunikują się z usługami systemowymi, aby uzyskać dostęp do sprzętu. - Android runtime (ART)
- Środowisko wykonawcze Java udostępniane przez AOSP. ART tłumaczy kod bajtowy aplikacji na instrukcje specyficzne dla procesora, które są wykonywane przez środowisko wykonawcze urządzenia.
- Warstwa abstrakcji sprzętowej (HAL)
- HAL to warstwa abstrakcji ze standardowym interfejsem, który mogą wdrażać dostawcy sprzętu. Warstwy HAL umożliwiają Androidowi niezależność od implementacji sterowników niższego poziomu. Korzystanie z warstwy HAL umożliwia wdrażanie funkcji bez wpływu na system wyższego poziomu i bez jego modyfikowania. Więcej informacji znajdziesz w omówieniu HAL.
- Usługi i biblioteki natywne
Do natywnych demonów w tej warstwie należą
init
,healthd
,logd
istoraged
. Te demony wchodzą w bezpośrednią interakcję z jądrem lub innymi interfejsami i nie zależą od implementacji HAL opartej na przestrzeni użytkownika.Biblioteki natywne w tej warstwie to
libc
,liblog
,libutils
,libbinder
ilibselinux
. Biblioteki natywne wchodzą w bezpośrednią interakcję z jądrem lub innymi interfejsami i nie zależą od implementacji HAL opartej na przestrzeni użytkownika.- Kernel
Jądro to centralna część każdego systemu operacyjnego, która komunikuje się z podstawowym sprzętem urządzenia. W miarę możliwości jądro AOSP jest dzielone na moduły niezależne od sprzętu i moduły specyficzne dla dostawcy. Opis komponentów jądra AOSP, w tym definicje, znajdziesz w omówieniu jądra.
Co dalej?
- Jeśli dopiero zaczynasz korzystać z AOSP i chcesz rozpocząć tworzenie aplikacji, zapoznaj się z sekcją Wprowadzenie.
- Jeśli chcesz dowiedzieć się więcej o konkretnej warstwie AOSP, kliknij nazwę sekcji w panelu nawigacyjnym po lewej stronie i zacznij od jej omówienia.