android 系统核心机制binder(09)binder java层实现
本章关键点总结 & 说明: 这里关注➕ Binder Java实现部分,主要谈了 java实现框架和demo,最后分析了 关键类 Binder、JavaBBinderHolder、JavaBBinder以及他们之间的关系。 1 binder java层的整体框架 1.1 整体框架图说明 Binder机制在C++层已经有了完整的实现。因此Java层完全不用重复实现,而是通过JNI衔接了C++层以复用其实现。因此java层的架构相对比较简单。如下所示: 同时这里用另一个图来说明下binder java层、 JNI的衔接以及binder C++层,如下所示: 1.2 binder相关类解读 类 名称 类 说明 IBinder Java层,提供了使用transact方法来调用远程服务的机制,以及DeathRecepient接口 Binder 实现IBinder接口,封装JNI实现,Java层Binder服务基类,BnXXX代表 BinderProxy 实现IBinder接口,封装JNI实现。提供transact方法调用远程服务,BpXXX代表 JavaBBinderHolder 内部存储了JavaBBinder JavaBBinder 将C++端的onTransact调用传递到Java端 BinderInternal 仅供Binder框架使用的类,内部有一个GcWatcher类