Google berkomitmen untuk memajukan ekuitas ras untuk komunitas kulit hitam. Lihat bagaimana.
Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

Kesehatan Android

Android 9 mencakup android.hardware.health HAL 2.0, peningkatan versi utama dari health@1.0 HAL. HAL baru ini memiliki keuntungan sebagai berikut:

  • Pemisahan yang lebih bersih antara kerangka kerja dan kode vendor.
  • healthd daemon healthd tidak perlu.
  • Tingkat kebebasan yang lebih besar untuk penyesuaian vendor dalam laporan informasi kesehatan.
  • Lebih banyak informasi kesehatan perangkat dari sekadar baterai.

Persyaratan

Perangkat yang diluncurkan dengan Android 9 harus menyediakan 2.0 HAL (dan tidak harus menyediakan 1.0 HAL). Perangkat yang tidak meluncurkan dengan Android 9 tetapi berencana untuk memperbarui gambar vendor ke Target Framework Compatibility Matrix Versi 3 (dirilis di Android 9) harus menghapus implementasi 1.0 HAL yang ada dan menyediakan 2.0 HAL.

AOSP mencakup beberapa perpustakaan penolong yang dirancang untuk membantu Anda menerapkan HAL 2.0 dan transisi dari HAL 1.0 yang lama.

Terminologi

  • health@1.0 : singkatan dari android.hardware.health@1.0 . Mengacu pada kesehatan HIDL HAL versi 1.0 yang dirilis di Android 8.0.
  • health@2.0 : singkatan dari android.hardware.health@2.0 . Mengacu pada kesehatan HIDL HAL versi 2.0 yang dirilis di Android 9.
  • charger : dapat dieksekusi berjalan dalam mode off-mode yang menampilkan animasi pengisian daya ponsel.
  • pemulihan : eksekusi yang dapat dijalankan dalam mode pemulihan yang harus mengambil informasi baterai.
  • healthd : warisan lama yang berjalan di Android yang mengambil informasi terkait kesehatan dan menyediakannya untuk kerangka kerja.
  • storaged : daemon yang berjalan di Android yang mengambil informasi penyimpanan dan menyediakannya untuk kerangka kerja.

Kesehatan di Android 8.x

Di Android 8.x, komponen kesehatan berfungsi seperti yang dijelaskan dalam diagram berikut:

Kesehatan di Android 8.x

Gambar 1 . Kesehatan di Android 8.x

Dalam diagram ini:

  • Satu (1) panggilan binder dan satu (1) panggilan hwbinder digunakan oleh kerangka kerja untuk berkomunikasi dengan perangkat keras.
  • healthd secara statis menghubungkan ke libhealthd_android , libbatterymonitor , dan libbatteryservice .
  • health@1.0-impl tautan statis ke libhealthd. BOARD

Setiap papan dapat menyesuaikan libhealthd. BOARD berbeda libhealthd. BOARD ; ditentukan pada waktu pembuatan apa charger, health@1.0-impl, dan tautan pemulihan.

Untuk mode lain:

Mode nonaktif charing dan recovery di Android 8.x

Gambar 2. Kesehatan di Android 8.x, mode pengisian dan pemulihan off-mode

  • pengisi daya secara statis menghubungkan ke libhealthd. BOARD , libhealthd_charger , dan libbatterymonitor .
  • pemulihan tautan secara statis ke libhealthd. BOARD dan libbatterymonitor .

Kesehatan di Android 9

Di Android 9, komponen kesehatan berfungsi seperti yang dijelaskan dalam diagram berikut: Kesehatan di Android 9

Gambar 3 . Kesehatan di Android 9

Kerangka kerja ini mencoba untuk mengambil layanan hwservicemanager dari hwservicemanager . Jika gagal, ia memanggil ke health@1.0 (di Android 8.x). Jalur kode lama disimpan sehingga gambar sistem Android 9 kompatibel dengan gambar vendor Android 8.x. Kerangka kerja tidak mengambil informasi dari kedua HAL karena hanya satu versi layanan (1.0 atau 2.0) yang dapat ada pada perangkat.

Untuk mode lain:

Charing dan pemulihan off-mode di Android 9

Gambar 4. Kesehatan di Android 9, mode pengisian dan pemulihan off-mode

Antarmuka HAL

Health@2.0 HAL menyediakan fungsionalitas yang sama dengan kerangka kerja seperti daemon healthd lama. Ini juga menyediakan API yang mirip dengan apa yang sebelumnya disediakan oleh kesehatan sebagai layanan binder (yaitu, IBatteryPropertiesRegistrar ).

Antarmuka utama, IHealth , menyediakan fungsi-fungsi berikut:

  • registerCallback , untuk menggantikan IBatteryPropertiesRegistrar.registerListener
  • unregisterCallback , untuk menggantikan IBatteryPropertiesRegistrar.unregisterListener
  • update , untuk mengganti IBatteryPropertiesRegistrar.scheduleUpdate
  • IBatteryPropertiesRegistrar.getProperties diganti dengan yang berikut:
    • getChargeCounter
    • getCurrentNow
    • getCurrentAverage
    • getCapacity
    • getEnergyCounter
    • getChargeStatus
    • getHealthInfo

Selain itu, IHealth menyediakan API baru berikut untuk storaged untuk mengambil informasi terkait penyimpanan khusus vendor:

  • getStorageInfo
  • getDiskStats

Sebuah struct baru, @2.0::HealthInfo , dikembalikan melalui panggilan balik dan getHealthInfo . Struct ini berisi semua informasi kesehatan perangkat yang tersedia melalui health@2.0 HAL, termasuk:

  • Informasi pengisian daya (AC / USB / nirkabel, arus, tegangan, dll.)
  • Informasi baterai (keberadaan, level baterai, arus, tegangan, pengisian daya, teknologi, dll.)
  • Informasi penyimpanan (informasi perangkat penyimpanan, statistik disk)

Untuk informasi tentang penerapan layanan Kesehatan, lihat Menerapkan Kesehatan .