Google is committed to advancing racial equity for Black communities. See how.
Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

Arsitektur Android

Arsitektur sistem Android berisi komponen berikut:

Ringkasan arsitektur sistem Android
Gambar 1. Arsitektur sistem Android
  • Kerangka aplikasi . Kerangka aplikasi paling sering digunakan oleh pengembang aplikasi. Sebagai pengembang perangkat keras, Anda harus mengetahui API pengembang karena banyak yang memetakan langsung ke antarmuka HAL yang mendasarinya dan dapat memberikan informasi berguna tentang mengimplementasikan driver.
  • Binder IPC . Mekanisme Binder Inter-Process Communication (IPC) memungkinkan framework aplikasi melewati batas proses dan memanggil kode layanan sistem Android. Ini memungkinkan API kerangka kerja tingkat tinggi untuk berinteraksi dengan layanan sistem Android. Pada tingkat kerangka aplikasi, komunikasi ini disembunyikan dari pengembang dan segala sesuatunya tampak "berfungsi".
  • Layanan sistem . Layanan sistem adalah modular, komponen terfokus seperti Window Manager, Search Service, atau Notification Manager. Fungsionalitas yang diekspos oleh API kerangka aplikasi berkomunikasi dengan layanan sistem untuk mengakses perangkat keras yang mendasarinya. Android menyertakan dua kelompok layanan: sistem (seperti Window Manager dan Notification Manager) dan media (layanan yang terlibat dalam pemutaran dan perekaman media).
  • Lapisan abstraksi perangkat keras (HAL) . A HAL mendefinisikan antarmuka standar untuk diterapkan oleh vendor perangkat keras, yang memungkinkan Android bersikap agnostik tentang implementasi driver tingkat yang lebih rendah. Menggunakan HAL memungkinkan Anda untuk mengimplementasikan fungsionalitas tanpa mempengaruhi atau memodifikasi sistem tingkat yang lebih tinggi. Implementasi HAL dikemas ke dalam modul dan dimuat oleh sistem Android pada waktu yang tepat. Untuk detailnya, lihat Hardware Abstraction Layer (HAL) .
  • Kernel Linux . Mengembangkan driver perangkat Anda mirip dengan mengembangkan driver perangkat Linux pada umumnya. Android menggunakan versi kernel Linux dengan beberapa tambahan khusus seperti Low Memory Killer (sistem manajemen memori yang lebih agresif dalam menjaga memori), kunci penguncian (layanan sistem PowerManager ), driver Binder IPC, dan fitur penting lainnya. untuk platform tersemat seluler. Penambahan ini terutama untuk fungsionalitas sistem dan tidak mempengaruhi pengembangan driver. Anda dapat menggunakan kernel versi apa pun selama kernel tersebut mendukung fitur-fitur yang diperlukan (seperti driver binder). Namun, kami merekomendasikan menggunakan kernel Android versi terbaru. Untuk detailnya, lihat Membangun Kernel .

Bahasa definisi antarmuka HAL (HIDL)

Android 8.0 merancang ulang kerangka kerja OS Android (dalam proyek yang dikenal sebagai Treble ) untuk membuatnya lebih mudah, lebih cepat, dan lebih murah bagi produsen untuk memperbarui perangkat ke versi baru Android. Dalam arsitektur baru ini, bahasa definisi antarmuka HAL (HIDL, dilafalkan "hide-l") menentukan antarmuka antara HAL dan penggunanya, memungkinkan kerangka kerja Android diganti tanpa membangun kembali HAL.

HIDL memisahkan penerapan vendor (khusus perangkat, perangkat lunak tingkat rendah yang ditulis oleh produsen silikon) dari kerangka kerja OS Android melalui antarmuka vendor baru. Vendor atau pembuat SOC membangun HAL sekali dan menempatkannya di partisi /vendor pada perangkat; kerangka kerja, di partisinya sendiri, kemudian dapat diganti dengan pembaruan over-the-air (OTA) tanpa mengkompilasi ulang HAL.

Perbedaan antara arsitektur Android lama dan arsitektur berbasis HIDL saat ini terletak pada penggunaan antarmuka vendor:

  • Di Android 7.x dan sebelumnya, tidak ada antarmuka vendor resmi, jadi pembuat perangkat harus memperbarui sebagian besar kode Android untuk memindahkan perangkat ke versi Android yang lebih baru:

    Gambar 2. Lingkungan pembaruan Android lama
  • Di Android 8.0 dan yang lebih tinggi, antarmuka vendor baru yang stabil menyediakan akses ke bagian khusus perangkat keras Android, sehingga pembuat perangkat dapat mengirimkan rilis Android baru hanya dengan memperbarui kerangka kerja OS Android — tanpa pekerjaan tambahan yang diperlukan dari produsen silikon:

    Gambar 3. Lingkungan pembaruan Android saat ini

Semua perangkat baru yang diluncurkan dengan Android 8.0 dan lebih tinggi dapat memanfaatkan arsitektur baru. Untuk memastikan kompatibilitas implementasi vendor ke depan, antarmuka vendor divalidasi oleh Vendor Test Suite (VTS) , yang serupa dengan Compatibility Test Suite (CTS) . Anda dapat menggunakan VTS untuk mengotomatiskan pengujian kernel HAL dan OS di arsitektur Android lama dan saat ini.

Sumber daya arsitektur

Untuk mengetahui detail tentang arsitektur Android, lihat bagian berikut:

  • Jenis HAL . Menjelaskan binderized, passthrough, Same-Process (SP), dan legacy HALs.
  • HIDL (Umum) . Berisi informasi umum tentang antarmuka antara HAL dan penggunanya.
  • HIDL (C ++) . Berisi detail untuk membuat implementasi C ++ dari antarmuka HIDL.
  • HIDL (Java) . Berisi detail tentang antarmuka Java untuk antarmuka HIDL.
  • ConfigStore HAL . Menjelaskan API untuk mengakses item konfigurasi hanya-baca yang digunakan untuk mengonfigurasi framework Android.
  • Hamparan Pohon Perangkat . Memberikan detail tentang penggunaan hamparan pohon perangkat (DTO) di Android.
  • Vendor Native Development Kit (VNDK) . Menjelaskan kumpulan pustaka eksklusif vendor untuk mengimplementasikan HAL vendor.
  • Objek Antarmuka Vendor (VINTF) . Menjelaskan objek yang mengumpulkan informasi relevan tentang perangkat dan membuat informasi tersebut tersedia melalui API yang dapat dikueri.
  • SELinux untuk Android 8.0 . Detail perubahan dan kustomisasi SELinux.

Selain sumber daya di situs ini, anggota tim Treble menerbitkan Treble: Pembaruan Perangkat Lunak Cepat dengan Menciptakan Ekuilibrium dalam Ekosistem Perangkat Lunak Aktif Pemangku Kepentingan yang Didistribusikan Secara Global . Makalah ini gratis untuk anggota ACM dan non-anggota dapat membeli atau membaca abstrak.