Ringkasan arsitektur

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:

Arsitektur stack software AOSP.

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, dan storaged. {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, dan libselinux. 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.