Android Open Source Project (AOSP) adalah kode sumber Android yang tersedia dan dapat diubah secara publik. 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 menerapkan 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 di Vendor Test Suite (VTS) dan Compatibility Test Suite (CTS). Untuk informasi lebih lanjut tentang kompatibilitas Android, lihat program kompatibilitas Android.
Arsitektur AOSP
Tumpukan 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 lainnya. Dalam beberapa kasus, produsen perangkat mungkin ingin melakukan prainstal 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 Android dan API sistem. Aplikasi ini harus diinstal sebelumnya 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.
- API Sistem
- System API mewakili Android API yang hanya tersedia untuk partner dan OEM untuk disertakan dalam aplikasi gabungan. 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 informasi tentang Android API, lihat Referensi Android API.
- Framework Android
- Grup class Java, antarmuka, dan kode prakompilasi lainnya yang digunakan untuk membuat 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 dan terfokus 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 dijalankan oleh lingkungan runtime perangkat.
- Hardware abstraction layer (HAL)
- HAL adalah lapisan abstraksi dengan antarmuka standar untuk diterapkan oleh vendor hardware. HAL memungkinkan Android tidak bergantung pada implementasi driver tingkat yang lebih rendah. Menggunakan HAL memungkinkan Anda menerapkan fungsi tanpa memengaruhi atau mengubah sistem tingkat yang lebih tinggi. Untuk informasi lebih lanjut, 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
Kernel adalah bagian inti 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 langkah selanjutnya?
- Jika Anda baru menggunakan AOSP, dan ingin mulai mengembangkan, lihat bagian Memulai.
- Jika Anda ingin mempelajari lebih lanjut lapisan AOSP tertentu, klik nama bagian di navigasi kiri dan mulai dengan ringkasan untuk bagian tersebut.