Android系统内存优化之一(进程理解)
2011-05-17 10:12
309 查看
获得进程列表
(本文原创转载请注明出处:http://blog.csdn.net/rickleaf
)
基础知识
PID 进程ID
PPID 父进程ID
分析
(1)
初始化进程:
我们先看
init
和
kthread
的两个进程,
Linux
启动的时候加载第一个进程是
init
他的
PID
是
1
,因为是由
kernel
创建的所以
PPID
是
0
,在
Linux
启动以后内核把自己抽象成进程
kthread
,他的
PID
是
2
也是有最初的
kernel
创建的因此他的
PPID
也是
0
。
系统的其他进程都是源于这两个进程,其他的内核进程源于
kthread
,其他的用户进程源于
init
。
(2)
内核进程
有了上一节的基础,我们就可以分析以上的这些进程的
PPID
都是
2
,那么我们可以下一个结论,这些进程都是内核进程。
(3)
用户基础进程
以上这些进程都是有
init
创建的,在
Android
系统中
init
这个可执行文件通过阅读配置脚本
init.rc
来创建这些进程。
(4)
Android
java
用户进程
以上这些进程
的父进程都是
zygote
,他是
dalvik
虚拟机的孵化器,因此这些进程都是
dalvik
虚拟机的实现体,或者说是
Android
Java
的用户进程。
(5)
Android
调试进程
因为我采用的调试终端是
adb
shell
,可以看到
adb
shell
创建了两个
sh
进程并且通过这两个进程创建了
logcat
和我们刚才查看进程列表的
ps
这个进程。
我们了解了进程列表的中的一些类型以后,我们就可以有针对性的分析一些我们比较关心的进程的内存使用情况了。
(本文原创转载请注明出处:http://blog.csdn.net/rickleaf
)
基础知识
PID 进程ID
PPID 父进程ID
分析
(1)
初始化进程:
我们先看
init
和
kthread
的两个进程,
Linux
启动的时候加载第一个进程是
init
他的
PID
是
1
,因为是由
kernel
创建的所以
PPID
是
0
,在
Linux
启动以后内核把自己抽象成进程
kthread
,他的
PID
是
2
也是有最初的
kernel
创建的因此他的
PPID
也是
0
。
系统的其他进程都是源于这两个进程,其他的内核进程源于
kthread
,其他的用户进程源于
init
。
(2)
内核进程
有了上一节的基础,我们就可以分析以上的这些进程的
PPID
都是
2
,那么我们可以下一个结论,这些进程都是内核进程。
(3)
用户基础进程
以上这些进程都是有
init
创建的,在
Android
系统中
init
这个可执行文件通过阅读配置脚本
init.rc
来创建这些进程。
(4)
Android
java
用户进程
以上这些进程
的父进程都是
zygote
,他是
dalvik
虚拟机的孵化器,因此这些进程都是
dalvik
虚拟机的实现体,或者说是
Android
Java
的用户进程。
(5)
Android
调试进程
因为我采用的调试终端是
adb
shell
,可以看到
adb
shell
创建了两个
sh
进程并且通过这两个进程创建了
logcat
和我们刚才查看进程列表的
ps
这个进程。
我们了解了进程列表的中的一些类型以后,我们就可以有针对性的分析一些我们比较关心的进程的内存使用情况了。
相关文章推荐
- [笔记]Android系统进程Zygote启动过程的理解
- 深入理解计算机系统003——第一章(进程及并发)
- 理解 Android Build 系统_在 Build 系统中添加新的内容_6
- Android系统进程Zygote启动过程的源代码分析
- Android系统编译脚本理解
- Android中获取系统内存信息以及进程信息
- Android结束系统中其他进程
- 分析Android 根文件系统启动过程(init守护进程分析)
- 由Monkey测试引发的跨多个进程的Android系统死锁问题分析
- 深入理解Android消息处理系统——Looper、Handler、Thread
- Android源码阅读与理解(二):Android系统Build流程详解
- Android4.0.3 显示系统深入理解
- Android系统在新进程中启动自定义服务过程(startService)的原理分析
- 理解 Android Build 系统
- Android系统的进程分类
- 深入理解:Android 编译系统
- Android系统getprop、dumpsys等相关命令的理解
- Android系统中SystemServer进程中初始化的系统service
- Android中获取系统内存信息以及进程信息-----ActivityManager的使用(一)
- 同一台系统下的用户进程之间的通信理解