- 博客(15)
- 资源 (8)
- 收藏
- 关注
原创 Activity的Window和WindowManager的创建过程(三)
page9 在这里我们分析一下DisplayManager的getDisplay函数的实现: 1 public Display getDisplay(int displayId) { 2 synchronized (mLock) { 3 return getOrCreateDisplayLocked...
2017-07-05 11:49:06 111
原创 Acitivy创建Context的过程(一)
page1 从本篇文章开始,我们分析一下Activity创建Context的过程. Context是在ActivityThread的performLaunchActivity函数中创建的, 因此我们就从performLaunchActivity函数作为入口开始分析: 1 private Activity performLaunchActivity(ActivityClientR...
2017-06-21 14:15:01 64
原创 应用程序进程与SurfaceFlinger的连接过程
我们从SurfaceComposerClient对象的创建开始分析应用程序与SurfaceFlinger的连接过程.每一个需要SurfaceFlinger渲染的应用程序都会创建一个SurfaceComposerClient对象,是这样么,我不确定,需要验证. SurfaceComposerClient类的声明(在SurfaceComposerClient.h文件中)如下: class Su...
2017-06-21 11:49:28 124
原创 Android源码之SurfaceFlinger的启动(三)
page11 我们来看一下SurfaceFlinger的onFirstRef函数的定义: 1void EventThread::onFirstRef() { 2 run("EventThread", PRIORITY_URGENT_DISPLAY + PRIORITY_MORE_FAVORABLE); 3} 我靠, 又调用run函数, 这会导...
2017-04-20 11:09:06 98
原创 Android源码之SurfaceFlinger的启动(二)
page6 我们看一下Thread的run函数的实现: 1 status_t Thread::run(const char* name, int32_t priority, size_t stack) 2 { 3 Mutex::Autolock _l(mLock); 4 5 if (mRunning) { 6 ...
2017-04-18 15:15:03 96
原创 Android源码之Zygote
当ActivityManagerService启动一个应用程序的时候,当这个应用程序的进程不存在的时候,就会通过Socket与Zygote进程进行通信,请求它fork一个子进程来作为这个即将要启动的应用程序的进程。 接下来,我们就看一下Zygote是怎么样生成一个新的应用进程的。 在Linux系统中,所有的进程都是init进程子孙进程,所有的进程都是直接或者间接地由进程fork出来的。Z...
2015-12-15 11:45:58 78
原创 Android源码之Handler(三)
public Handler(Looper looper, Callback callback, boolean async) { mLooper = looper; mQueue = looper.mQueue; [// mQueue = looper.mQueue 这里可以看出,Handler类的MessageQueue成员变量mQueue其实就是Looper...
2015-12-03 22:20:17 72
原创 Android Frameworks源码分析之Binder(六)---Service Manager(2)
在这篇文章中,我们看一看Service Manager的
2014-08-27 21:16:44 64
原创 Android Frameworks源码分析之Binder(一)---Binder概述
在Android系统中,进程间通信(IPC)用的是Binder机制。
2014-08-15 11:04:53 61
下载android源码的repo文件
2013-08-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人