Android中IPC框架的理解

首先我们得理解整个android的架构

  1.如果将Android 泛化,我们可以将系统划分为下面几部分 
   android;DalvikVM; linux

  2.从Linux 角度看到的空间划分:进程空间和内核空间。Android 构建在JVM 之上,从Android 动态运行逻辑上我们需要将Android 划分成Android 空间和非Android 空间。在Andoid 系统中我们面对的是Andoid 概念空间,而不是Linux 进程了,在Andoid 概念空间中已经没有了Lliux 进程的概念,而是Service,proxy,Activity,provider 等

  3.更加升入的理解。在这个分类中我将JVM 分为Java 空间和C++空间。Android 应用开发者是工作在Android 外特性概念空间中,也就是说在我们应用开发时面对的是一个新的空间,空间概念中包含了:Activity,Provider,Interface,Events,Provider,Service 等。

  4.首先从宏观的角度观察Binder,Service,Service Manager,并阐述各自的概念。从Linux 的概念空间中,Android 的设计每个Activity 都是一个独立的进程,每个Service也都是一个独立的进程,Activity,Service 之间要交换数据属于IPC。Binder 就是为了Activity 通讯而设计的一个轻量级的IPC 框架。

  5.在代码分析中,我发现Android 中只是把Binder 理解成进程间通讯的实现,有点狭隘,而是应该站在公共对象请求代理这个高度来理解Binder,Service 的概念,这样我们就会看到不一样的格局,从这个高度来理解设计意图,我们才会对Android 中的一些天才想法感到惊奇。从Android 的外特性概念空间中,我们看不到进程的概念,而是Activity,Service,AIDL,INTENT。一般的如果我作为设计者,在我们的根深蒂固的想法中,这些都是如下的C/S 架构,客户端和服务端直接通过Binder 交互数据,打开Binder 写入数据,通过Binder读取数据,通讯就可以完成了。该注意到Android 的概念中,Binder 是一个很低层的概念,上面一层根本都看不到Binder,而是Activity 跟一个Service 的对象直接通过方法调用,获取服务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值