下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】Androidinit.rc文件浅析
本文主要来自$ANDROID_SOURCE/system/init/readme.txt的翻译.1简述Android
init.rc文件由系统第一个启动的init程序解析,此文件由语句组成,主要包含了四种类型的语
句:Action,Commands,Services,Options.在init.rc文件中一条语句通常是占据一行.单词之间是通过空格符来相隔
的.如果需要在单词内使用空格,那么得使用转义字符"\",如果在一行的末尾有一个反斜杠,那么是换行折叠符号,应该和下一行合并成一起来处理,这样做主
要是为了避免一行的字符太长,与C语言中的含义是一致的。注释是以#号开头。
Action和services显式声明了一个语句块,而commands和options属于最近声明的语句块。在第一个语句块之前
的commands和options会被忽略.在具体讲解这之前,有些关键词得先了解.2关键字token:
计算机语言中的一个单词,就跟英文中的单词差不多一人概念.Section:语句块,相当于C语言中大括号内的一个块。一个Section以Service或On开头的语句块.以Service开头的Section叫做服务,而以On开头的叫做动作(Action).services:服务.Action:动作commands:命令.options:选项.trigger:触发器,或者叫做触发条件.class:类属,即可以为多个service指定一个相同的类属,方便操作同时启动或停止.3语句解析3.1动作(Action)动作表示了一组命令(commands)组成.动作包含一个触发器,决定了何时执行这个动作。当触发器的条件满足时,这个动作会被加入到已被执行的队列尾。如果此动作在队列中已经存在,那么它将不会执行.
一个动作所包含的命令将被依次执行。动作的语法如下所示:[plain]viewplaincopyon
<trigger>
<command>
<command>
<command>
3.2服务(services)服务是指那些需要在系统初始化时就启动或退出时自动重启的程序.它的语法结构如下所示:[plain]viewplaincopyservice
<name>
<pathname>
[
<argument>
]*
<option>
<option>
...
3.3选项(options)选项是用来修改服务的。它们影响如何及何时运行这个服务.3.4触发器(trigger)触发器用来描述一个触发条件,当这个触发条件满足时可以执行动作.3.5命令(commands)3.6属性(Properties)init程序在运行时会更新属性系统的一些属性,提供程序内部正在执行的信息.4一个init.conf例子[plain]viewplaincopy#
not
complete
--
just
providing
some
examples
of
usage
#
on
boot
export
PATH
/sbin:/system/sbin:/system/bin
export
LD_LIBRARY_PATH
/system/lib
mkdir
/dev
mkdir
/proc
mkdir
/sys
mount
tmpfs
tmpfs
/dev
mkdir
/dev/pts
mkdir
/dev/socket
mount
devpts
devpts
/dev/pts
mount
proc
proc
/proc
mount
sysfs
sysfs
/sys
write
/proc/cpu/alignment
4
ifup
lo
hostname
localhost
domainname
localhost
mount
yaffs2
mtd@system
/system
mount
yaffs2
mtd@userdata
/data
import
/system/etc/init.conf
class_start
default
service
adbd
/sbin/adbd
user
adb
group
adb
service
usbd
/system/bin/usbd
-r
user
usbd
group
usbd
socket
usbd
666
service
zygote
/system/bin/app_process
-Xzygote
/system/bin
--zygote
socket
zygote
666
service
runtime
/system/bin/runtime
user
system
group
system
on
device-added-/dev/compass
start
akmd
on
device-removed-/dev/compass
stop
akmd
service
akmd
/sbin/akmd
disabled
user
akmd
group
akmd
5调试注意事项在默认情况下,通过init程序启动的程序的标准输出stdout和标准错误输出stderr会重定向到/dev/null.如:[plain]
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论