首页 > 移动平台 > 详细

Android进程二

时间:2015-01-09 00:06:34      阅读:409      评论:0      收藏:0      [点我收藏+]

一、IPC通信设定
1、AndroidManifest.xml文件
  一个App可以占用多个进程
  <service android:name=".MyService"
  android:process=":remote">// 独立一个进程取名remote(远程)
  Android每个进程都有一个VM

二、IBinder接口
1、使用Java Interface定义的接口,用于跨进程调用
  Android框架的IPC沟通依赖单一的IBinder接口,客户端调用IBinder接口的transact(业务)函数,透过IPC机制而调用远程的onTransact函数
2、Android源码中,Java层的IBinder接口定义于IBinder.java代码的文档里
  public interface IBinder{
  // code编码 Parcel(包裹)传出的数据 返回的数据
    public boolean transact(int code, Parcel data, Parcel replay, int flags) throws RemoteException
  }
3、IBinder两个实现类
  Binder和BinderProxy

  IBinder ---> BinderProxy(代理)
  ------------------------IPC机制
  IBinder ---> Binder
4、基本流程
  Client端BinderProxy
    |
  java ---> transact()(JNI本地模块的transact()函数) ---> Binder Driver驱动服务
                               |
     --------------------------Linux转址-----------------
    |
  Service端Binder

  <-- init()调用java -->
  c/c++ ---> execTransact() ---> onTransact() ---> IOC(实现类实现onTransact())

Android进程二

原文:http://www.cnblogs.com/zhuchengyi/p/4212058.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!