Android系统内存优化之一


获得进程列表

基础知识

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 这个进程。

我们了解了进程列表的中的一些类型以后,我们就可以有针对性的分析一些我们比较关心的进程的内存使用情况了。

  • 1
  • 2
  • 下一页

相关内容