init.rc初始化启动的服务

http://bdxnote.blog.163.com/blog/static/844423520127754018855/



1、sh/bash:
#service console /system/bin/sh
service console /system/bin/bash
   console 
sh和bash服务是控制台服务,其实它是从NetBSD移植过来的,因此它的命令也是比较有限的,不过作为嵌入式系统,使用shell的机会不多.
sh服务的源码位置:system/core/sh;
sh和bash服务使用flex工具生成词法分析代码,使用bison生成语法分析代码.

2、adbd:
#adbd is controlled by the persist.service.adb.enable system property
service adbd /sbin/adbd
   disabled
adbd服务的源码位置:system/core/adb;
adbd服务使用c语言实现,它不但可以在虚拟机里运行,也可以在实际的设备里运行.adbd服务是adb调试系统中的一部分,整个adb调试系统包括有三部分:手机运行的adbd服务、PC运行的服务器、PC运行的客户端.当android启动时,就运行adbd服务,创建一个调试端口,这样就可以让开发机器上的服务器连接过来,通过这个连接就可以发送调试信息给服务器,也可以接收到外面发送过来的调试命令.

3、servicemanager:
service servicemanager /system/bin/servicemanager
   user system
   critical
   onrestart restart zygote
   onrestart restart media
servicemanager服务的源码位置:frameworks/base/cmds/servicemanager;
servicemanager服务的作用主要是服务管理,所谓的服务管理其实就是获取服务、检查服务、添加服务、枚举所有服务.服务管理器是一个容器管理器,方便服务添加、调用和删除.在应用层的程序,都向这个服务管理器获取需要使用的服务,而所有提供服务的程序,都向这个服务器管理器注册自己的服务.服务管理器是应用程序与服务沟通的桥梁.

4、vold:
service vold /system/bin/vold
   socket vold stream 0660 root mount
vold服务的源码位置:system/core/vold;
vold服务的主要作用是负责完成系统的动态卷管理,比如CD-ROM、U盘、MMC卡等外存储的管理.当有这外存储设备插入时,就需要监视这种变化,并加载相应的驱动程序,然后报告给系统和应用程序有新存储设备可以使用.
vold处理过程大致分为三步:
1).创建链接:
在vold作为一个守护进程,一方面接受驱动的信息,并把信息传给应用层;另一方面接受上层的命令并完成相应.所以这里的链接一共有两条:
(1)vold socket: 负责vold与应用层的信息传递;
(2)访问udev的socket: 负责vold与底层的信息传递;
这两个链接都是在进程的一开始完成创建的.
2).引导:
这里主要是在vold启动时,对现有外设存储设备的处理.首先,要加载并解析vold.conf,并检查挂载点是否已经被挂载; 其次,执行MMC卡挂载; 最后,处理USB大容量存储.
3).事件处理:
这里通过对两个链接的监听,完成对动态事件的处理,以及对上层应用操作的响应.

5、nexus:
service nexus /system/bin/nexus
   socket nexus stream 0660 root system
   disabled
nexus服务的源码位置:system/core/nexus;
nexus服务的主要作用就是监听网络命令,提供网络管理的功能.

6、zygote:
service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server
   socket zygote stream 666
   onrestart write /sys/android_power/request_state wake
   onrestart write /sys/power/state on
   onrestart restart media
zygote服务的源码位置:frameworks/base/cmds/app_process;
zygote服务主要作用就是创建一个服务监听用户的命令,并且根据用户的命令创建应用程序运行.称为Android运行时环境虚拟机;

7、mediaserver:
service media /system/bin/mediaserver
   user media
   group system audio camera graphics inet net_bt net_bt_admin
mediaserver服务的源码位置:frameworks/base/media/mediaserver
mediaserver服务是多媒体服务的守护进程,负责多媒体/照相机/音频等三项服务.

8、bootanimation:
service bootanim /system/bin/bootanimation
   user graphics
   group graphics
   disabled
   oneshot
bootanimation 服务的源码位置:frameworks/base/cmds/bootanimation;
bootanimation服务是开机动画,主要用来加载动画资源.

9、dbus:
service dbus /system/bin/dbus-daemon --system --nofork
   socket dbus stream 660 bluetooth bluetooth
   user bluetooth
   group bluetooth net_bt_admin
dbus服务的源码位置:external/dbus/bus;
dbus服务是android使用的一种特殊的进程间通讯系统.它具有面向对象接口的协议,以及应用程序之间互相发现和监视的守护进程.dbus设计用来作为用户与系统服务之间的分隔以及系统服务之间的通讯.因此,dbus通讯安全,但效率有点差.

10、installd:
service installd /system/bin/installd
   socket installd stream 600 system system
installd 服务的源码位置:frameworks/base/cmds/installd
installd服务是提供安装dex文件的服务.

11、keystore:
service keystore /system/bin/keystore /data/misc/keystore
   user keystore
   group keystore
   socket keystore stream 666
keystore服务的源码位置:frameworks/base/cmds/keystore;
keystore服务是加解密储存键值的服务.它主要作用就是验证应用程序与签名文件是否一致.

12、netd:
service netd /system/bin/netd
   socket netd stream 0660 root system
netd服务的源码位置:system/netd;
netd服务是Android专用的一个守护进程;主要负责整个系统的网络服务,包括nat、uab tethering、wifi tethering、soft ap设置,还有网络接口的add、remove、change事件的通知;在Framework层,有NetworkManagementService负责与netd服务进行通信;

13、debuggerd:
service debuggerd /system/bin/debuggerd
该服务是配合adb和adbd用于调试用的;


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值