Android 平台实现了一个软件的WatchDog来监护SystemServer。SystemServer无疑是Android平台中最重要的进程了,里面运行了整个平台中绝大多数的服务。
SystemServer退出反而问题不大,因为 init进程会重新启动它,但是它死锁就麻烦了,因为整个系统就没法动了。所以我们需要使用看门狗来监护它,当很长一段时间没有喂狗,就会重启SystemServer进程。...
分类:
移动开发 时间:
2016-05-12 19:35:43
阅读次数:
421
大家都知道android系统的Zygote进程是所有的android进程的父进程,包括SystemServer和各种应用进程都是通过Zygote进程fork出来的。Zygote(孵化)进程相当于是android系统的根进程,后面所有的进程都是通过这个进程fork出来的,而Zygote进程则是通过linux系统的init进程启动的,也就是说,android系统中各种进程的启动方式init进程 –>...
分类:
移动开发 时间:
2016-04-10 14:47:54
阅读次数:
222
上面一文中我们讲过android系统中比较重要的几个进程:init进程,Zygote进程,SystemServer进程已经各种应用进程,其中Zygote进程是整个android系统的根进程,包含SystemServer进程已经各种应用进程在内的进程都是通过Zygote进程fork出来的,具体可参见:http://blog.csdn.net/qq_23547831/article/details/51...
分类:
移动开发 时间:
2016-04-10 14:46:33
阅读次数:
220
DropBoxManager会在下面时机抓取相关信息: a、出异常关机前 SystemServer会收集下面类型报错:watchdog、anr、wtf、lowmem、native_crash、crash TAG = watchdog、anr、wtf、lowmem、native_crash、crash ...
分类:
其他好文 时间:
2016-04-01 14:26:06
阅读次数:
277
Android5.0.1 的启动流程与之前的版本相比变化并不大,OK,变化虽然还是有:SystemServer 启动过程的 init1(), init2()没有了,但主干流程依然不变:Linux 内核加载完毕之后,首先启动 init 进程,然后解析 init.rc,并根据其内容由 init 进程装载 Android 文件系统、创建系统目录、初始化属性系统、启动一些守护进程,其中最重要的守护进程就是 Zygote 进程...
分类:
移动开发 时间:
2016-02-25 12:02:26
阅读次数:
295
上一篇文章最后结束在RootViewImpl.setView()函数,这个函数之后发生了什么事情,我们接着分析。1. RootViewImpl简介ViewRootImpl作为视图层次中的顶层,实现了View和WindowManager之间需要的协议,与SystemServer进程的WindowMan...
分类:
其他好文 时间:
2016-01-24 19:40:53
阅读次数:
170
在上篇添加账户源码解析的博文中,我们发现功能是由AccountManager的mService成员来实现。而mService其实是AccountManagerService,如果对android系统有了解的话一定会发现AccountManagerService是运行在SystemServer进...
分类:
移动开发 时间:
2016-01-18 22:47:50
阅读次数:
303
为了在手机画面上显示Activity的window,android内部会做一下内容: 1) 创建一个Window在Window里构建View Hierachy。 2) 与WindowManager建立联系。 3) 为了与SystemServer通信,打开Binder设备。 4) 把Windo...
分类:
其他好文 时间:
2015-10-13 16:36:26
阅读次数:
250
Zygnote如何创建? Zygnote的作用是什么? SystemServer如何创建? 有源码对着源码(4.4之后的源码),花点时间看;没有源码,看流程即可,代码实现带过去就好了。 文章写给懂的人看,我转载的最后也进行一定的总结...
分类:
系统相关 时间:
2015-09-29 17:06:54
阅读次数:
394
继System进程的启动流程第一部分,我们接着分析com.android.server.SystemServer的main函数。如下:public class SystemServer
{
......
native public static void init1(String[] args);
......
public static void main(St...
分类:
系统相关 时间:
2015-09-21 22:35:11
阅读次数:
265