专用通道>

您当前所在位置: 首页 > 行业新闻 > IT技术讨论 >

Android中IPC框架的理解

发布者:北大青鸟沈阳三好
首先我们得理解整个android的架构 1.如果将Android 泛化,我们可以将系统划分为下面几部分 android;DalvikVM; linux 2.从Linux 角度看到的空间划分:进程空间和内核空间。Android 构建在JVM 之上

先我们得理解整个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 的对象直接通过方法调用,获取服务。


 

北大青鸟咨询老师

辽宁优越教育科技有限公司介绍

辽宁优越教育科技有限公司是北大青鸟总部在沈阳设立的一家定点校区。涵盖ACCP、Java、.Net、网络营销、市场营销,游戏开发等多专业校区,承担教学、以及教师培养输送等职责。
北大青鸟作为北京大学下属的专业计算机学校,以北京大学强大师资作为依托,连续13年被评为“中国IT教育品牌”,累计培养60+万优秀软件工程师,是名符其实的软件工程师的摇篮……请认准品牌名校——辽宁优越教育科技有限公司,地址:辽宁省沈阳市和平区三好街54号。