安卓进阶(2)之android Binder通信理解

关键字

  1. aidl
  2. 进程间通信
  3. binder机制

aidl

全名安卓接口定义语言,用于进程间通信。简单理解的话,就是类似应用的服务器和客户端。服务器开启一个服务处理数据,客户端传递数据以及响应回调。具体使用方法见AndroidStudio实现AIDL建议自己跟着文章手写一遍,并细看build之后由aidl文件生成的java文件中内容。

4种进程间通信

  1. Activity(应用跳到拨打电话页面)
  2. ContentProvider(获取手机系统联系人信息,音视频等)
  3. BroadcastReceiver(类似听收音机的广播,被动接收)
  4. Service(远程Service,跟aidl结合使用)

Binder机制

Binder是安卓进程间通讯的一种方式,aidl是Binder通信的一个实践,Binder采用的是C/S架构,最上层的java层(C/S),经过framework层,JNI层,native层,最终通过ioctl(对设备io通道进行管理)跟内核层进行通信。贯穿始终的是一个叫做ServiceManger的管理类。每启动一个server进程,就会默认生成16个线程大小的线程池(每个应用的客户端跟server交互产生一个线程,就算是百度或者360全家桶,16个线程也已足够)。

参考文章
AndroidStudio实现AIDL
Android 进程间通信的几种实现方式
Android Binder 进程间通讯机制

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章