专栏首页Android 研究Android系统启动——8 附录2:相关守护进程简介

Android系统启动——8 附录2:相关守护进程简介

init.rc中定义了很多系统的守护进程,这里主要是做一些简单的介绍

一、uevent

负责相应uevent事件,创建设备节点文件: 代码在init.rc 550行

550service ueventd /sbin/ueventd
551    class core
552    critical
553    seclabel u:r:ueventd:s0

二、console

包含常用的shell命令、如ls、cd等 代码在init.rc 574行

574service console /system/bin/sh
575    class core
576    console
577    disabled
578    user shell
579    group shell log
580    seclabel u:r:shell:s0

三、adbd

abd的守护进程: 代码在init.rc 585行

585# adbd is controlled via property triggers in init.<platform>.usb.rc
586service adbd /sbin/adbd --root_seclabel=u:r:su:s0
587    class core
588    socket adbd stream 660 system system
589    disabled
590    seclabel u:r:adbd:s0

四、servicemanager

binder的服务总管,负责binder服务的注册和查找 代码在init.rc 602行

602service servicemanager /system/bin/servicemanager
603    class core
604    user system
605    group system
606    critical
607    onrestart restart healthd
608    onrestart restart zygote
609    onrestart restart media
610    onrestart restart surfaceflinger
611    onrestart restart drm

五、vold

负责完成系统USB存储卡等扩展存储自动挂载的守护进程 代码在init.rc 613行

613service vold /system/bin/vold \
614        --blkid_context=u:r:blkid:s0 --blkid_untrusted_context=u:r:blkid_untrusted:s0 \
615        --fsck_context=u:r:fsck:s0 --fsck_untrusted_context=u:r:fsck_untrusted:s0
616    class core
617    socket vold stream 0660 root mount
618    socket cryptd stream 0660 root mount
619    ioprio be 2

六、netd

Android 网络守护进程 代码在init.rc 621行

621service netd /system/bin/netd
622    class main
623    socket netd stream 0660 root system
624    socket dnsproxyd stream 0660 root inet
625    socket mdns stream 0660 root system
626    socket fwmarkd stream 0660 root inet

七、debuggerd

负责异常退出的诊断。如果侦测到程序崩溃,debuggerd将把崩溃时的进程状态信息输出到文件和串口中,供开发人员分析和调试使用: 代码在init.rc 628行

628service debuggerd /system/bin/debuggerd
629    class main
630    writepid /dev/cpuset/system-background/tasks
631
632service debuggerd64 /system/bin/debuggerd64
633    class main
634    writepid /dev/cpuset/system-background/tasks

八、ril-deamon

手机底层的通信系统的守护进程 代码在init.rc 636行

636service ril-daemon /system/bin/rild
637    class main
638    socket rild stream 660 root radio
639    socket sap_uim_socket1 stream 660 bluetooth bluetooth
640    socket rild-debug stream 660 radio system
641    user root
642    group radio cache inet misc audio log

九、surfaceflinger:

负责合成系统所有显示图层的服务进程 代码在init.rc 644行

644service surfaceflinger /system/bin/surfaceflinger
645    class core
646    user system
647    group graphics drmrpc
648    onrestart restart zygote
649    writepid /dev/cpuset/system-background/tasks

十、media:

系统多媒体部分的守护进程,包含了audio、mediaplayer以及camera 等系统服务 代码在init.rc 656行

656service media /system/bin/mediaserver
657    class main
658    user media
659    group audio camera inet net_bt net_bt_admin net_bw_acct drmrpc mediadrm
660    ioprio rt 4

十一、bootanim:

播放开机动画的进程 代码在init.rc 644行

676service bootanim /system/bin/bootanimation
677    class core
678    user graphics
679    group graphics audio
680    disabled
681    oneshot

十二、installd:

Android的安装服务守护进程

687service installd /system/bin/installd
688    class main
689    socket installd stream 600 system system

官人[飞吻],你都把臣妾从头看到尾了,喜欢就点个赞呗(眉眼)!!!!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Android跨进程通信IPC之11——AIDL

    设计这门语言的目的是为了实现进程间通信,尤其是在涉及多进程并发情况的下的进程间通信IPC。每一个进程都有自己的Dalvik VM实例,都有自己的一块独立的内存,...

    隔壁老李头
  • OKHttp源码解析(六)--中阶之缓存基础

    1.什么是缓存 2.为什么要用缓存 3.HTTP缓存机制 4.CacheControl类详解 5.CacheStrategy类详解 6.CacheIn...

    隔壁老李头
  • APK安装流程详解13——PMS中的新安装流程下(装载)

    而在handleReturnCode()方法里面也是调用processPendingInstall(args, ret)方法,如下:

    隔壁老李头
  • 【性能】688- 前端性能优化——从 10 多秒到 1.05 秒

    关于 性能优化 是个大的面,这篇文章主要涉及到 前端 的几个点,如 前端性能优化 的流程、常见技术手段、工具等。

    pingan8787
  • 8.python之面相对象part.3

    在python这门编程语言中,一个类可以去继承一个父类甚至多个父类,只继承一个父类就是单继承,如果一个子类继承了多个父类,那么这就是多继承。原始类被称为“基类”...

    py3study
  • Linux中Chrome无界模式动态代理IP的配置(Selenium)

    Python 爬虫设置代理的方式有很多, 比如给urlib、request、selenium等方式设置代理,这部分的细节代码在网上一搜一大堆。那么问题来了,比如...

    蒋老湿
  • static关键字有何魔法?竟让Spring Boot搞出那么多静态内部类

    各位小伙伴大家好,我是A哥。上篇文章了解了static关键字 + @Bean方法的使用,知晓了它能够提升Bean的优先级,在@Bean方法前标注static关键...

    YourBatman
  • Scrapy(6)Item loader 加载器详解

    接下来,收集数据后,调用 ItemLoader.load_item() 方法来获得 Item 对象。

    公众号---志学Python
  • 【GitLab CI/CD】记一个问题 `too large archive`

    事情是这样子的,我自己搭建了 GitLab ,并导入了我在 GitHub 所有的仓库,并打算未来就在这里提交我的代码了。一方面是因为 GitHub 实在是太慢了...

    宋天伦
  • Python和Scala的类和对象(二)

    继承 继承类似于生物学的进化,子类通过继承父类,获得父类的性质,并且在此之上增加新的功能。在设计上,应该保证子类和父类的统一,过多的继承会导致耦合,提高复杂度。...

    哒呵呵

扫码关注云+社区

领取腾讯云代金券