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

更多相关文章

  1. Android跨进程通信IPC之9——Binder之Framework层C++篇2
  2. Android(安卓)多进程之Messenger的使用
  3. mk中的android:sharedUserId和LOCAL_CERTIFICATE作用
  4. Android跨进程通信IPC之9——Binder之Framework层C++篇1
  5. Android(安卓)Binder原理(一)学习Binder前必须要了解的知识点
  6. Android(安卓)7.1.2(Android(安卓)N) Android系统启动流程
  7. Android(安卓)基本概念
  8. Android应用程序进程启动过程(后篇)
  9. Android编程: MVC模式、应用的生命周期

随机推荐

  1. Android开发之数据保存技术(一)
  2. Android 对多个EditText监听
  3. Android(安卓)ProGuard代码混淆
  4. 简单的三方登录SDK示例,Android Activity
  5. Android知识梳理:消息机制之Looper
  6. Android程序调试时生成main.out.xml文件
  7. Android 通知栏系列....
  8. android WebView 预览office文档
  9. Android 文字链接 文字点击时的背景颜色
  10. 对Activity比较复杂的style设置