美文网首页
java层调用cpp层的Binder

java层调用cpp层的Binder

作者: tzlf | 来源:发表于2021-07-22 11:11 被阅读0次

基于android 8 分析

以BatteryService里调用IBatteryPropertiesRegistrar为例

IBinder b = ServiceManager.getService("batteryproperties");

        final IBatteryPropertiesRegistrar batteryPropertiesRegistrar =

                IBatteryPropertiesRegistrar.Stub.asInterface(b);

batteryPropertiesRegistrar.registerListener(new BatteryListener());

1.BatteryService.java位于

android\frameworks\base\services\core\java\com\android\server

2. IBatteryPropertiesRegistrar 的定义

android\frameworks\native\services\batteryservice

实现在

android\system\core\healthd\BatteryPropertiesRegistrar.cpp

3. java和cpp层的定义需要对应

java层编译

frameworks/base/Android.mk:254: core/java/android/os/IBatteryPropertiesRegistrar.aidl

java 传递的参数如 BatteryProperty和 BatteryProperties 实现Parcelable接口

PS:Camera2的接口也是java调用cpp层的binder,实现在

\LA.UM.6.6\LINUX\android\frameworks\base\core\java\android\hardware\camera2\CameraManager.java

相关文章

网友评论

      本文标题:java层调用cpp层的Binder

      本文链接:https://www.haomeiwen.com/subject/bluemltx.html