【移动应用开发技术】 Android init.rc文件浅析_第1页
【移动应用开发技术】 Android init.rc文件浅析_第2页
【移动应用开发技术】 Android init.rc文件浅析_第3页
【移动应用开发技术】 Android init.rc文件浅析_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】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

提交评论