Proyek Open Source Android (AOSP) tersedia secara publik dan dapat diubah Kode sumber Android. Siapa pun dapat mendownload dan memodifikasi AOSP untuk perangkat mereka. AOSP menyediakan implementasi lengkap dan berfungsi penuh dari perangkat seluler Android terkelola sepenuhnya.
Ada dua tingkat kompatibilitas untuk perangkat yang mengimplementasikan AOSP: AOSP kompatibilitas dan kompatibilitas Android. Perangkat yang kompatibel dengan AOSP harus sesuai dengan daftar persyaratan dalam Compatibility Definition Document (CDD). Channel Perangkat yang kompatibel dengan Android harus sesuai dengan daftar persyaratan dalam CDD dan Persyaratan Perangkat Lunak Vendor (VSR) dan pengujian seperti yang ada dalam Paket Pengujian Vendor (VTS) dan Compatibility Test Suite (CTS). Untuk selengkapnya tentang kompatibilitas Android, lihat Program kompatibilitas Android.
Arsitektur AOSP
Tumpukan software untuk AOSP berisi lapisan-lapisan berikut:
Gambar 1. Arsitektur stack software AOSP.
Berikut adalah daftar definisi istilah yang digunakan dalam Gambar 1:
- Aplikasi Android
- Aplikasi yang dibuat hanya menggunakan Android API. Kebijakan Privasi Play Store banyak digunakan untuk menemukan dan mengunduh aplikasi Android, meskipun ada banyak alternatif lainnya. Dalam beberapa kasus, produsen perangkat mungkin ingin melakukan pra-instal aplikasi Android untuk mendukung fungsi inti perangkat. Jika Anda tertarik dalam mengembangkan aplikasi Android, lihat developers.android.com.
- Aplikasi hak istimewa
- Aplikasi yang dibuat menggunakan kombinasi Android dan API 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 resource akses ke implementasi framework Android. Karena produsen perangkat dapat langsung mengakses API yang tidak stabil dalam framework Android, aplikasi ini harus diprainstal pada perangkat dan hanya dapat diperbarui jika software sistem diupdate.
- API Sistem
- System API mewakili API Android yang hanya tersedia untuk partner dan OEM untuk disertakan dalam paket aplikasi. API ini ditandai sebagai @SystemApi dalam kode sumber.
- API Android
- Android API adalah API yang tersedia secara publik untuk aplikasi Android pihak ketiga developer. Untuk informasi tentang Android API, lihat Referensi Android API.
- Framework Android
- Grup class, antarmuka, dan kode Java lain yang telah dikompilasi sebelumnya aplikasi dibangun. Sebagian dari kerangka kerja ini dapat diakses secara publik melalui penggunaan Android API. Bagian lain dari kerangka kerja ini adalah hanya tersedia untuk OEM melalui penggunaan API sistem. Android kode framework berjalan di dalam proses aplikasi.
- Layanan sistem
- Layanan sistem adalah komponen modular yang berfokus seperti
system_server
, SurfaceFlinger, dan MediaService. Fungsi yang diekspos oleh API framework Android berkomunikasi dengan layanan sistem untuk mengakses hardware yang mendasarinya. - Android Runtime (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 vendor hardware untuk diimplementasikan. HAL memungkinkan Android menjadi agnostik tentang driver di level yang lebih rendah implementasi yang tepat. Menggunakan HAL memungkinkan Anda mengimplementasikan fungsionalitas tanpa mempengaruhi atau memodifikasi 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
. {i>Daemon<i} ini berinteraksi langsung dengan {i>kernel<i} atau antarmuka lainnya dan tidak tergantung pada implementasi HAL berbasis userspace.Library native di lapisan ini mencakup
libc
,liblog
,libutils
,libbinder
, danlibselinux
. Library Native ini berinteraksi langsung dengan {i>kernel<i} atau antarmuka lain dan tidak tergantung pada HAL berbasis userspace terlepas dari implementasi layanan.- Kernel
{i>Kernel<i} adalah bagian pusat dari setiap sistem operasi dan berkomunikasi dengan perangkat keras yang mendasarinya pada suatu perangkat. Jika memungkinkan, kernel AOSP akan dipisah menjadi modul agnostik hardware dan modul khusus vendor. Untuk deskripsi, termasuk definisi, komponen {i> kernel<i} AOSP, Ringkasan Kernel.
Apa selanjutnya?
- Jika Anda baru mengenal AOSP, dan ingin memulai pengembangan, lihat bagian Memulai.
- Jika Anda ingin mempelajari lebih lanjut tentang lapisan AOSP tertentu, klik di navigasi sebelah kiri dan mulailah dengan ikhtisar untuk bagian tersebut.