码迷,mamicode.com
首页 > 移动开发 > 详细

Android进程二

时间:2015-01-09 00:06:57      阅读:175      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!