Read the Fucking Source
文章平均质量分 75
tiutiu2011
这个作者很懒,什么都没留下…
展开
-
Init进程启动Zygote进程的过程
Android系统启动时在加载完内核之后会启动Init进程,Init进程的启动过程中会读取根目录下的脚本文件Init.rc,以便将Zygote进程启动起来。 //Android系统在加载内核之后会启动init进程,以下为Init进程的main函数int main(int argc, char **argv){ int fd_count = 0; st原创 2015-10-21 22:31:08 · 811 阅读 · 0 评论 -
Binder 驱动程序
Android系统Binder驱动程序的初始化,打开文件和映射内存相关源码。原创 2015-09-13 14:18:40 · 490 阅读 · 0 评论 -
Binder进程间通信机制的Service Manager组件的启动过程
Service Manager组件在Binder进程间通信中是上下文管理者,负责管理Service组件,并且向Client组件提供获取Service代理对象的服务,其启动过程可以分为以下三个阶段:1.打开并映射Binder设备文件;2. 成为上下文管理者;3.循环等待Client进程请求。下面从源码中了解这三个阶段。原创 2015-09-13 11:20:03 · 573 阅读 · 0 评论 -
Binder进程间通信机制的Service Manager代理对象获取过程
在Android系统Binder进程间通信机制中,Service组件和Client组件在使用Service Manager提供的服务之前必须获取Service Manager代理对象,下面从源码中来了解Main_mediaserver程序获取Service Manager代理对象的过程。原创 2015-10-05 15:10:22 · 473 阅读 · 0 评论 -
Handler消息处理机制
public void dispatchMessage(Message msg) { if (msg.callback != null) { //通过post(Runable r)发送消息,会把Runable 封装成 Message,最后调用handlerCallback来处理消息 handleCallback(msg); } e原创 2015-10-25 17:07:16 · 577 阅读 · 1 评论 -
Binder进程间通信机制的Service Manager组件响应Service组件的注册过程
在Android系统的Binder进程间通信机制中,Service Manager组件在启动之后,主线程会进入到Binder驱动程序的函数binder_thread_read中等待todo队列有新的工作项需要处理。当有Service组件通过Service Manager注册时,Binder驱动程序将类型为BINDER_WORK_TRANSACTION的工作项添加到Service Manager进程的todo队列中,Service Manger主线程被唤醒,继续执行binder_thread_read函数。原创 2015-10-07 23:38:56 · 560 阅读 · 0 评论 -
Binder进程间通信机制Service组件启动过程
在Android系统Binder进程间通信机制中,Service组件运行在Server进程中,Service进程启动时,会首先在Service Manager中注册,接着再启动一个Binder线程池来等待和处理Client组件,也就是Client进程的通信请求。接下来,从源码中了解一下MediaPlayerService这个Service组件的启动过程。原创 2015-10-06 15:53:10 · 882 阅读 · 0 评论 -
Zygote进程启动System Server进程的过程
Android系统启动时,Init进程会把Zygote进程启动起来,而Zygote进程会把System Server进程启动起来。原创 2015-10-25 16:56:47 · 489 阅读 · 0 评论