Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Arsitektur Android

Arsitektur sistem Android berisi komponen-komponen berikut:

Ikhtisar arsitektur sistem Android
Arsitektur sistem Gambar 1. Android
  • Aplikasi framework. Kerangka kerja 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 bermanfaat tentang pengimplementasian driver.
  • Binder IPC. Mekanisme Binder Inter-Process Communication (IPC) memungkinkan kerangka kerja aplikasi untuk melintasi batas proses dan memanggil kode layanan sistem Android. Ini memungkinkan API kerangka kerja tingkat tinggi untuk berinteraksi dengan layanan sistem Android. Pada tingkat kerangka kerja aplikasi, komunikasi ini disembunyikan dari pengembang dan semuanya tampak "berfungsi".
  • Layanan sistem. Layanan sistem adalah komponen modular dan 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 mencakup dua kelompok layanan: sistem (seperti Window Manager dan Pemberitahuan Manager) dan media (layanan terlibat dalam bermain dan media rekaman).
  • Lapisan abstraksi perangkat keras (HAL). HAL mendefinisikan antarmuka standar untuk diimplementasikan vendor perangkat keras, yang memungkinkan Android menjadi agnostik tentang implementasi driver tingkat 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 rincian, lihat Hardware Abstraction Layer (HAL) .
  • Linux kernel. Mengembangkan driver perangkat Anda mirip dengan mengembangkan driver perangkat Linux pada umumnya. Menggunakan Android versi kernel Linux dengan tambahan khusus beberapa seperti Low Memory Pembunuh (sistem manajemen memori yang lebih agresif dalam melestarikan memori), bangun kunci (a PowerManager layanan sistem), pengemudi Binder IPC, dan fitur lainnya yang penting untuk platform tertanam seluler. Penambahan ini terutama untuk fungsionalitas sistem dan tidak memengaruhi pengembangan driver. Anda dapat menggunakan versi kernel apa pun asalkan mendukung fitur yang diperlukan (seperti driver binder). Namun, kami menyarankan untuk menggunakan kernel Android versi terbaru. Untuk rincian, lihat Building Kernel .

Bahasa definisi antarmuka HAL (AIDL/HIDL)

Android 8.0 re-architected kerangka Android OS (dalam proyek yang dikenal sebagai Treble) untuk membuatnya lebih mudah, lebih cepat, dan lebih murah bagi produsen untuk perangkat update ke versi baru dari Android. Dalam arsitektur baru ini, bahasa definisi antarmuka HAL (HIDL, diucapkan "hide-l") menentukan antarmuka antara HAL dan penggunanya, memungkinkan kerangka kerja Android diganti tanpa membangun kembali HAL. Di Android 10, fitur HIDL dimasukkan ke dalam AIDL. Sejak itu, HIDL tidak digunakan lagi dan hanya digunakan oleh subsistem yang belum dikonversi ke AIDL.

Treble memisahkan implementasi 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 menempatkan mereka dalam /vendor partisi pada perangkat; kerangka, di partisi sendiri, kemudian dapat diganti dengan update over-the-air (OTA) tanpa mengkompilasi ulang HAL.

Perbedaan antara arsitektur Android lama dan arsitektur berbasis IDL saat ini adalah dalam penggunaan antarmuka vendor:

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

    Lingkungan pembaruan Gambar 2. Legacy Android
  • 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 memberikan rilis Android baru hanya dengan memperbarui kerangka kerja OS Android—tanpa perlu pekerjaan tambahan dari produsen silikon:

    Lingkungan pembaruan Gambar 3. Saat Android

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

Sumber daya arsitektur

Untuk detail tentang arsitektur Android, lihat bagian berikut:

  • Jenis HAL . Menjelaskan binderized, passthrough, Same-Process (SP), dan HAL warisan.
  • AIDL . Dokumentasi tentang AIDL, apakah digunakan secara umum atau sebagai antarmuka HAL.
  • 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 frontend Java untuk antarmuka HIDL.
  • ConfigStore HAL . Menjelaskan API untuk mengakses item konfigurasi hanya-baca yang digunakan untuk mengonfigurasi kerangka kerja Android.
  • Perangkat Pohon Hamparan . Memberikan detail tentang penggunaan hamparan pohon perangkat (DTO) di Android.
  • Vendor asli Development Kit (VNDK) . Menjelaskan set perpustakaan vendor-eksklusif untuk mengimplementasikan HAL vendor.
  • Vendor Antarmuka Object (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 penyesuaian SELinux.

Selain sumber daya di situs ini, anggota tim Treble diterbitkan Treble: Cepat Software Update oleh Membuat Keseimbangan dalam Software Ekosistem aktif global Distributed Stakeholders . Makalah ini gratis untuk anggota ACM dan non-anggota dapat membeli atau membaca abstrak.