Menerapkan shutdown dinamis melibatkan pengkabelan aliran data dan menjalankan proses dinamis seperti yang dijelaskan di bagian berikut.
Perubahan definisi HAL
Shutdown dinamis memerlukan informasi tentang proses mana yang melayani antarmuka HAL (informasi ini mungkin juga berguna nanti dalam konteks lain) serta tidak memulai proses saat boot dan tidak memulai ulang (sampai diminta lagi) saat keluar.
# some init.rc script associated with the HAL
service vendor.some-service-name /vendor/bin/hw/some-binary-service
    # init language extension, provides information of what service is served
    # if multiple interfaces are served, they can be specified one on each line
    interface android.hardware.light@2.0::ILight default
    # restarted if hwservicemanager dies
    # would also cause the hal to start early during boot if disabled wasn't set
    class hal
    # will not be restarted if it exits until it is requested to be restarted
    oneshot
    # will only be started when requested
    disabled
    # ... other propertiesPerubahan pada init dan hwservicemanager
 Shutdown dinamis juga memerlukan hwservicemanager untuk memberi tahu init untuk memulai layanan yang diminta. Di Android 9, init menyertakan tiga pesan kontrol tambahan (misalnya ctl.start ): ctl.interface_start , ctl.interface_stop , dan ctl.interface_restart . Pesan-pesan ini dapat digunakan untuk memberi sinyal init untuk membuka dan menurunkan antarmuka perangkat keras tertentu. Saat layanan diminta dan tidak terdaftar, hwservicemanager meminta layanan dimulai. Namun, HAL dinamis tidak memerlukan penggunaan semua ini.
Menentukan keluar HAL
Di Android 9, keluar HAL harus ditentukan secara manual. Untuk Android 10 dan lebih tinggi, ini juga dapat ditentukan dengan siklus hidup otomatis .
 Shutdown dinamis memerlukan beberapa kebijakan untuk memutuskan kapan harus memulai HAL dan kapan harus mematikan HAL. Jika HAL memutuskan untuk keluar karena alasan apa pun, HAL akan dimulai ulang secara otomatis saat dibutuhkan lagi menggunakan informasi yang diberikan dalam definisi HAL dan infrastruktur yang disediakan oleh perubahan pada init dan hwservicemanager . Ini dapat melibatkan beberapa strategi yang berbeda, termasuk:
- HAL dapat memilih untuk memanggil exit dengan sendirinya jika seseorang memanggil API yang mirip atau mirip dengannya. Perilaku ini harus ditentukan dalam antarmuka HAL yang sesuai.
- HAL dapat dimatikan ketika tugasnya selesai (didokumentasikan dalam file HAL).
Siklus hidup otomatis
 Android 10 menambahkan lebih banyak dukungan ke kernel dan hwservicemanager , yang memungkinkan HAL dimatikan secara otomatis kapan pun mereka tidak memiliki klien. Untuk menggunakan fitur ini, lakukan semua langkah di Perubahan definisi HAL serta:
-  Daftarkan layanan di C++ dengan LazyServiceRegistraralih-alih fungsi anggota,registerAsService, misalnya:// only one instance of LazyServiceRegistrar per process LazyServiceRegistrar registrar; registrar.registerAsService(myHidlService /* , "default" */); 
-  Verifikasi bahwa klien HAL menyimpan referensi ke HAL tingkat atas (antarmuka yang terdaftar dengan hwservicemanager) hanya ketika sedang digunakan. Untuk menghindari penundaan jika referensi ini dijatuhkan pada utas hwbinder yang terus dijalankan, klien juga harus memanggilIPCThreadState::self()->flushCommands()setelah menjatuhkan referensi untuk memastikan bahwa driver pengikat diberitahu tentang jumlah referensi terkait perubahan.
