03 2015 档案
Binder框架(2)
摘要:通过MediaServer详细解析Binder内部实现细节。1. MediaServer的入口函数int main(int argc, char** argv) { sp proc(ProcessState::self()); //获得一个ProcessState实例 // ... 阅读全文
posted @ 2015-03-19 09:45 Jackwen 阅读(279) 评论(0) 推荐(0)
Binder框架(1)
摘要:Binder工作在linux层,是一个不需要硬件的驱动,从线程角度看,Binder代码运行在内核态,客户端程序使用Binder是通过系统调用完成的。 Binder是一种整体架构,包含服务端接口,Binder驱动,客户端接口三个模块。1. 服务端 一个Binder服务端实际上就是一个Binder类的... 阅读全文
posted @ 2015-03-16 19:16 Jackwen 阅读(430) 评论(0) 推荐(0)
Looper和Handler类分析
摘要:一. Looper 1. 如何使用Looper? (1) 定义一个LooperThread. (2) 应用程序中使用LooperThread: 2. Looper.prepare()函数: 3. Looper的创建: 由此可见, 在调用prepare线程中,为该线程设置了一个Looper对象,Loo 阅读全文
posted @ 2015-03-14 15:59 Jackwen 阅读(367) 评论(0) 推荐(0)
RefBase, sp和wp (3)
摘要:RefBase提供了一个函数: extendObjectLifetime(int32_t mode); 用于在构造函数中设置mFlags的值. 以及定义了一个枚举: enum { OBJECT_LIFETIME_WEAK = 0x0001; // 二进制为B01 OBJECT_LIFETIME_F... 阅读全文
posted @ 2015-03-14 14:17 Jackwen 阅读(242) 评论(0) 推荐(0)
RefBase, sp和wp (2)
摘要:1. 通过wp创建sp的例子, 如: int main() { A* pA = new A(); wp wpA(pA); // 弱引用计数为1, 强引用计数为初始值0x1000000. sp spA = wpA.promote(); // 通过promote()得到一个sp. }2. promote... 阅读全文
posted @ 2015-03-14 13:41 Jackwen 阅读(307) 评论(0) 推荐(0)
RefBase, sp和wp (1)
摘要:RefBase是Android中所有对象的始祖,类似于MFC中的CObject,Java中的Object对象。在Android中,RefBase结合sp(strong pointer)和wp(weak pointer),实现来一套通过引用计数的方法来控制对象生命周期的机制。sp和wp存在的目的就是... 阅读全文
posted @ 2015-03-13 14:53 Jackwen 阅读(471) 评论(0) 推荐(0)
《深入理解Android》学习笔记(三) ——— zygote
摘要:1. zygote 本身是一个Native的应用程序,与驱动,内核无关,由init进程根据init.rc的配置项创建起来的。2. zygote 是创建java世界的盘古,创建java世界的步骤: (1) 创建AppRuntime对象,并调用它的start。此后的活动由AppRuntime控制。 (2... 阅读全文
posted @ 2015-03-06 14:22 Jackwen 阅读(281) 评论(0) 推荐(0)
《深入理解Android》学习笔记(二) ——— init
摘要:1. init :是Android系统中用户空间的第一个进程。有以下两个重要职责:负责创建系统中的几个关键进程,如zygote.提供一个property service(属性服务)来管理Android系统的属性。2. init工作流程: (1) 解析两个配置文件:与系统相关的配置文件init.rc,... 阅读全文
posted @ 2015-03-06 10:01 Jackwen 阅读(257) 评论(0) 推荐(0)
《深入理解Android》学习笔记(一) ——— 初识JNI
摘要:1. JNI, Java Native Interface,即 Java本地调用。 作用:JNI层作为连接Java世界与Native世界的桥梁,使Java程序中函数可以调用Native(C/C++)编写的函数,Native(C/C++)程序中可以调用Java的函数。2. Java要调用Native函... 阅读全文
posted @ 2015-03-05 09:44 Jackwen 阅读(213) 评论(0) 推荐(0)