声明
- 只要是操作系统,不用说的就是其中肯定会运行着一些很多守护进程(daemon)来完成很多杂乱的工作。通过系统中的init.rc文件也可以看出来,其中每个service中就包含着系统后台服务进程。
- 而这些服务被分为:core类服务(adbd/servicemanager/healthd/lmkd/logd/vold)和main类服务;
- main类服务又分为:网络类服务(netd/mdnsd/mtpd/rild)、图形及媒体类服务(surfaceflinger/bootanimation/mediaserver/drmserver)、其他类服务(installd/keystore/debuggerd/sdcard/Zygote)
1 功能概述
代码所在位置:frameworks/native/cmds/installd
installd 这个守护进程是负责安装或卸载 App 包的。不论你的 App 包是应用市场下载安装的,还是用adb install 安装的,最终都还是要调用 installd 。installd 守护进程本身,还是被动式的:它会去监听一个由 init 安装的socket,Android 框架产生的命令将由这个 socket 传递给它。在这个守护进程的/init.rc 中定义了这个socket,如下所示:
service installd /system/bin/installdclass mainsocket installd stream