1. Introdução
No desenvolvimento customizado do sistema rom em 12.0, durante o desenvolvimento de algumas camadas hal, para algumas interfaces da camada hal que precisam ser chamadas no app para implementar determinadas funções, é necessário abrir a interface do app para o hal para realizar as funções. Requisitos,
esta seção primeiro fala sobre fornecer a interface na camada hal e, em seguida, implementar a chamada de interface da camada hal na camada jni. Em seguida,
crie um arquivo jni na camada de estrutura para chamar a interface da camada hal.
2. O aplicativo chama a classe principal da série 2 de implementação de função de interface de camada hal (implementação de função de camada jni)
frameworks/base/services/core/jni/com_android_server_TestService.cpp
frameworks/base/services/core/jni/Android.bp
frameworks/base/services/core/jni/onload.cpp
3. Análise e implementação das funções principais da segunda série de implementação de função de interface de camada hal de chamada de aplicativo (implementação de função de camada jni)
HAL é a camada de abstração de hardware. Ela protege os detalhes de implementação do hardware para baixo e fornece interfaces abstratas para cima.
HAL é a interface direta entre o hardware subjacente e a estrutura da camada superior. A camada da estrutura pode operar o dispositivo de hardware
HAL e o driver do kernel através de HAL. HAL é implementado no espaço do usuário, o driver está no espaço do kernel, portanto, para proteger
os interesses dos principais fabricantes, algoritmos centrais e similares precisam ser implementados na camada hal
O nome completo do HIDL é linguagem de definição de interface HAL (Linguagem de definição de interface de camada de abstração de hardware).Antes disso, o Android tinha AIDL, que era
construído no Android binder e usado para definir a interface entre o cliente e o serviço Android com base na comunicação do Binder.
HIDL tem uma função semelhante, mas define o Android Framework