This page
https://source.android.com/devices/architecture/hidl/binder-ipc describes a change to how HALs work in Android O:
"Starting in Android O, the Android framework and HALs now communicate with each other using binder"
Previously it seems most Android services would search for the vendor implementation of HAL functionality in shared library (.so file) and then use dlopen to load it and run the functionality in the same process. Now there are processes for all the HALs. Does anyone have any insight into the advantage of this change? It seems that if vendor HAL code crashes then the system process would crash in pre-O versions but in O it might be able to continue executing if it handles the remote error properly. Of course even if it keeps executing during a HAL process crash the device might not perform what the user wanted anyway. Is there some other advantage? Disadvantages to having a bunch more processes running and communicating over IPC seem obvious: increased memory usage and decreased performance.
Jacob