Android Open Source Project (AOSP) adalah kode sumber Android yang tersedia untuk umum dan dapat dimodifikasi. Siapa saja dapat mendownload dan mengubah AOSP untuk perangkat mereka. AOSP menyediakan implementasi lengkap dan berfungsi penuh dari platform seluler Android.
Ada dua tingkat kompatibilitas untuk perangkat yang menerapkan AOSP: kompatibilitas AOSP dan kompatibilitas Android. Perangkat yang kompatibel dengan AOSP harus mematuhi daftar persyaratan dalam Compatibility Definition Document (CDD). Perangkat yang kompatibel dengan Android harus mematuhi daftar persyaratan dalam CDD dan Persyaratan Software Vendor (VSR) serta pengujian seperti yang ada di Vendor Test Suite (VTS) dan Compatibility Test Suite (CTS). Untuk mengetahui informasi lebih lanjut tentang kompatibilitas Android, lihat program kompatibilitas Android.
Arsitektur AOSP
Stack software untuk AOSP berisi lapisan berikut:
Gambar 1. Arsitektur tumpukan software AOSP.
Berikut adalah daftar definisi untuk istilah yang digunakan dalam Gambar 1:
- Aplikasi Android
- Aplikasi yang dibuat hanya menggunakan Android API. Google Play Store banyak digunakan untuk menemukan dan mendownload aplikasi Android, meskipun ada banyak alternatif lain. Dalam beberapa kasus, produsen perangkat mungkin ingin menginstal aplikasi Android secara pra-instal untuk mendukung fungsi inti perangkat. Jika Anda tertarik untuk mengembangkan aplikasi Android, lihat developers.android.com.
- Aplikasi istimewa
- Aplikasi yang dibuat menggunakan kombinasi Android API dan sistem API. Aplikasi ini harus diprainstal sebagai aplikasi istimewa di perangkat.
- Aplikasi produsen perangkat
- Aplikasi yang dibuat menggunakan kombinasi Android API, system API, dan akses langsung ke implementasi framework Android. Karena produsen perangkat dapat langsung mengakses API yang tidak stabil dalam framework Android, aplikasi ini harus diinstal sebelumnya di perangkat dan hanya dapat diupdate saat software sistem perangkat diupdate.
- System API
- System API mewakili Android API yang hanya tersedia bagi partner dan OEM untuk disertakan dalam aplikasi paket. API ini ditandai sebagai @SystemApi dalam kode sumber.
- Android API
- Android API adalah API yang tersedia secara publik untuk developer aplikasi Android pihak ketiga. Untuk mengetahui informasi tentang Android API, lihat referensi Android API.
- Framework Android
- Grup class Java, antarmuka, dan kode pra-dikompilasi lainnya yang menjadi dasar pembuatan aplikasi. Bagian framework dapat diakses secara publik melalui penggunaan Android API. Bagian framework lainnya hanya tersedia untuk OEM melalui penggunaan API sistem. Kode framework Android berjalan di dalam proses aplikasi.
- Layanan sistem
- Layanan sistem adalah komponen modular yang berfokus seperti
system_server
, SurfaceFlinger, dan MediaService. Fungsi yang diekspos oleh Android framework API berkomunikasi dengan layanan sistem untuk mengakses hardware yang mendasarinya. - Runtime Android (ART)
- Lingkungan runtime Java yang disediakan oleh AOSP. ART melakukan terjemahan bytecode aplikasi ke dalam petunjuk khusus prosesor yang dieksekusi oleh lingkungan runtime perangkat.
- Hardware abstraction layer (HAL)
- HAL adalah lapisan abstraksi dengan antarmuka standar yang dapat diterapkan oleh vendor hardware. HAL memungkinkan Android tidak terpengaruh oleh implementasi driver tingkat yang lebih rendah. Dengan menggunakan HAL, Anda dapat menerapkan fungsionalitas tanpa memengaruhi atau mengubah sistem tingkat yang lebih tinggi. Untuk mengetahui informasi selengkapnya, lihat ringkasan HAL.
- Daemon dan library native
Daemon native di lapisan ini mencakup
init
,healthd
,logd
, danstoraged
. Daemon ini berinteraksi langsung dengan kernel atau antarmuka lainnya dan tidak bergantung pada implementasi HAL berbasis ruang pengguna.Library native di lapisan ini mencakup
libc
,liblog
,libutils
,libbinder
, danlibselinux
. Pustaka Native ini berinteraksi langsung dengan kernel atau antarmuka lain dan tidak bergantung pada implementasi HAL berbasis ruang pengguna.- Kernel
Kernel adalah bagian utama dari sistem operasi apa pun dan berkomunikasi dengan hardware yang mendasarinya di perangkat. Jika memungkinkan, kernel AOSP dibagi menjadi modul yang tidak bergantung pada hardware dan modul khusus vendor. Untuk mengetahui deskripsi, termasuk definisi, komponen kernel AOSP, lihat Ringkasan kernel.
Apa selanjutnya?
- Jika Anda baru menggunakan AOSP dan ingin memulai pengembangan, lihat bagian Memulai.
- Jika Anda ingin mempelajari lebih lanjut lapisan AOSP tertentu, klik nama bagian di navigasi kiri dan mulailah dengan ringkasan untuk bagian tersebut.