Android framework
longshan_2009
这个作者很懒,什么都没留下…
展开
-
SystemService
SystemServer的进程名叫“system_server”SystemServer的创建:systemServer是由Zygote通过Zygote.forkSystemServer函数来fork诞生出来的。SystemServer的重要使命.SS(SystemServer)诞生后,便和Zygote分裂了。它有自己的使命:SS调用handle转载 2014-01-03 15:28:23 · 740 阅读 · 0 评论 -
Android init启动理解
本节涉及源码有:根目录为system:Init.c (core\init)Parser.c (core\init)Builtins.c (core\init)Keywords.h (core\init)Init.rc (core\rootdir)Property_service.c (core\init)Properties.c (cor转载 2013-08-22 12:08:44 · 901 阅读 · 0 评论 -
JNI层理解
涉及的源码:MediaScanner.java (base\media\java\android\media) ------------------------- > JAVA层android_media_MediaScanner.cpp (base\media\jni) -------------转载 2013-08-21 14:46:46 · 1222 阅读 · 0 评论 -
阅读前的准备
Android的系统架构:从上图可以看出,Android系统大体可以分为4层,从下往上依次是:1. Linux内核层:包含了Linux内核和一些驱动模块(eg: USB驱动,Camera驱动,蓝牙驱动等)。2. Libraries层: 这一层提供动态库(也叫共享库),Android运行时库,Dalvik虚拟机等。从编程语言角度来说,这一层大部分都是用C或C++写的,所以也可以简转载 2014-01-10 10:47:11 · 664 阅读 · 0 评论 -
Binder机制(4)
纯Native的Service纯Native的Service表示代码都在Native层。Native层有很多Service,前面的MS不就是一个重量级的吗?假设Service叫ITest,我们该如何实现呢?完全可以模仿MS!具体实现过程如下所示:Test是怎么定义的呢?我们是跨进程的C/S,所以本地需要一个BnTest,对端需要提供一个代理BpTest。为了不暴露Bp的转载 2014-01-10 10:11:05 · 591 阅读 · 0 评论 -
Binder机制(3)
StartThreadPool和joinThreadPool分析:startThreadPool()的实现如下所示:上面spawnpooledThread()函数的实现如下所示:PoolThread是在IPCThreadState中定义的一个Thread子类,它的实现如下所示:下面看看IPCThreadState的joinThreadPool的实现,因为转载 2014-01-09 15:58:22 · 737 阅读 · 0 评论 -
Binder机制(1)
参考:http://www.cnblogs.com/innost/archive/2011/01/09/1931456.html基于Binder通信的C/S架构体系中,除了C/S架构所包括的Client端和Server端外,Android还有一个全局的ServiceManager端,它的作用是管理系统中的各种服务(Service)。这三者的关系如下:注意:一个Ser转载 2014-01-07 14:44:48 · 634 阅读 · 0 评论 -
Binder机制(2)
注册MediaPlayerService下面分析MediaPlayerService,代码如下:根据前面的分析可知,defaultServiceManager()实际返回的对象是BpServiceManager,它是IServiceManager的后代,代码如下所示:这里addService函数中把请求数据打包为data后,传给了BpBinder的transac转载 2014-01-08 16:13:23 · 534 阅读 · 0 评论 -
Android中的常见类
本节源码位置:framework\native\include\utils\RefBase.hframework\native\libs\utils\RefBase.cpp framework\native\libs\utils\Threads.cpp framework\native\include\utils\Threads.hframework\base\co转载 2014-01-03 17:13:37 · 548 阅读 · 0 评论 -
zygote和system_server分析
使用的源码: framework\base\cmds\app_process\App_main.cpp framework\base\include\android_runtime\AndroidRuntime.h framework\base\core\jni\android_debug_JNITest.cpp framework\base\core\java转载 2014-01-02 15:41:10 · 1188 阅读 · 0 评论