Project Open Source Android (AOSP) adalah kode sumber Android yang tersedia secara publik dan dapat diubah. Siapa saja dapat mendownload dan mengubah AOSP untuk perangkat mereka. AOSP menyediakan implementasi platform seluler Android yang lengkap dan berfungsi penuh.
Ada dua tingkat kompatibilitas untuk perangkat yang mengimplementasikan AOSP: Kompatibilitas AOSP dan kompatibilitas Android. Perangkat yang kompatibel dengan AOSP harus sesuai dengan daftar persyaratan dalam Compatibility Definition Document (CDD). Perangkat yang kompatibel dengan Android harus sesuai dengan daftar persyaratan dalam CDD dan Vendor Software Requirements (VSR) serta pengujian seperti yang ada dalam Vendor Test Suite (VTS) dan Compatibility Test Suite (CTS). Untuk mengetahui informasi selengkapnya tentang kompatibilitas Android, lihat program kompatibilitas Android.
Arsitektur AOSP
Stack software untuk AOSP berisi lapisan berikut:
Gambar 1. Arsitektur stack 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 lainnya. Dalam beberapa kasus, produsen perangkat mungkin ingin pra-menginstal aplikasi Android untuk mendukung fungsi inti perangkat. Jika Anda tertarik untuk mengembangkan aplikasi Android, lihat developers.android.com.
- Aplikasi dengan hak istimewa
- Aplikasi yang dibuat menggunakan kombinasi API Android dan sistem. Aplikasi ini harus diprainstal sebagai aplikasi dengan hak istimewa di perangkat.
- Aplikasi produsen perangkat
- Aplikasi yang dibuat menggunakan kombinasi Android API, API sistem, dan akses langsung ke implementasi framework Android. Karena produsen perangkat mungkin 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 API Android 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 untuk publik bagi developer aplikasi Android pihak ketiga. Untuk mengetahui informasi tentang Android API, lihat Referensi Android API.
- Framework Android
- Sekelompok class, antarmuka, dan kode prakompilasi Java lainnya yang menjadi dasar pembuatan aplikasi. Sebagian framework dapat diakses secara publik melalui penggunaan Android API. Bagian lain dari framework hanya tersedia untuk OEM melalui penggunaan API sistem. Kode framework Android berjalan di dalam proses aplikasi.
- Layanan sistem
- Layanan sistem adalah komponen modular yang terfokus seperti
system_server
, SurfaceFlinger, dan MediaService. Fungsi yang ditampilkan oleh API framework Android berkomunikasi dengan layanan sistem untuk mengakses hardware yang mendasarinya. - Runtime Android (ART)
- Lingkungan runtime Java yang disediakan oleh AOSP. ART melakukan penerjemahan bytecode aplikasi menjadi petunjuk khusus prosesor yang dijalankan oleh lingkungan runtime perangkat.
- Hardware abstraction layer (HAL)
- HAL adalah lapisan abstraksi dengan antarmuka standar untuk diterapkan oleh vendor hardware. HAL memungkinkan Android menjadi agnostik terhadap implementasi driver level bawah. Dengan menggunakan HAL, Anda dapat menerapkan fungsi tanpa memengaruhi atau mengubah sistem level yang lebih tinggi. Untuk 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
. Library Native ini berinteraksi langsung dengan kernel atau antarmuka lainnya dan tidak bergantung pada implementasi HAL berbasis ruang pengguna.- Kernel
{i>Kernel<i} adalah bagian pusat dari setiap sistem operasi dan berkomunikasi dengan hardware yang mendasarinya pada perangkat. Jika memungkinkan, kernel AOSP akan dibagi menjadi modul yang tidak bergantung pada hardware dan modul khusus vendor. Untuk deskripsi, termasuk definisi, komponen kernel AOSP, lihat Ringkasan kernel.
Apa selanjutnya?
- Jika Anda baru menggunakan AOSP, dan ingin memulai pengembangan, lihat bagian Mulai.
- Jika Anda ingin mempelajari lebih lanjut lapisan AOSP tertentu, klik nama bagian di navigasi sebelah kiri dan mulailah dengan ringkasan untuk bagian tersebut.