android 初始化语言,3.4.1 Android初始化语言(1)

news/2024/7/2 9:27:50

3.4 init.rc文件解析过程

init.rc文件按照一定的格式组织,要分析init.rc文件的解析过程,首先要熟悉它的格式。init.rc的文件格式由Android初始化语言(Android Init Language)定义,所以这里首先分析Android初始化语言。

3.4.1 Android初始化语言(1)

Android初始化语言定义了六个基本概念、两个基本关键字和多个指令关键字。

六个基本概念分别是Section、Action、Service、Trigger、Command、Option。

两个基本关键字是on和service。

指令关键字则定义在Trigger、Command和Option中。

其帮助文档位于/system/core/init/readme.txt,其关键字定义位于/system/core/init/keyword.h。

关键字on用来声明一个Action。

关键字service用来声明一个Service。

每一个Action或者Service都隐含是一个Section,init.rc就是由不同的Section组成的。

Command是最小的功能单位,代表一个Linux命令或者一个方法调用。

Trigger代表一个自定义的触发条件,用来触发Action的执行,也可以认为它是Action的名称。

一个Action便是由关键字on声明、由Trigger触发的一组Command序列。

Option是Service的修饰符,由它来指定何时、如何启动Service程序。

每一个Service都是init进程的子进程,由关键字service、服务名、服务对应的命令的路径、命令的参数和Option组成,代表一些要在初始化阶段启动的程序。

下面将分别介绍上述几个基本概念的组成格式。

1.Action

Action的格式如下:

on

……

# Trigger是Action的触发条件,在满足触发条件的情况下执行一个或多个相应的Command Android初始化语言中定义Action的Trigger如表3-1所示。

表3-1 初始化语言中定义的Trigger

781021503da3d0e08097b2561c01b3e7.png

除了表3-1中列举的Trigger外,还有在代码中显式使用的Trigger,它们并没有列入Android初始化语言定义的Trigger中。比如可以在init.rc中搜索到early-init、init、charger、nonencrypted、post-fs-data、post-fs、fs等Trigger,这些Trigger其实是当作Action名字使用。

2.Command

Android初始化语言中定义的Command如表3-2所示。

表3-2 初始化语言中定义的Command

02a2b521c32767915e108cd77bd03430.png

(续)

61050217440ff2b40e9e0274fecfaacd.png

【责任编辑:book TEL:(010)68476606】

点赞 0


http://lihuaxi.xjx100.cn/news/236256.html

相关文章

旅行家的预算[贪心]

题目 Problem description 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的)。给定两个城市之间的距离D1、汽车油箱的容量C(以升为单位).每升汽油能行驶的距离D2、出发点每升汽油价格P和…

CODING 最佳实践:快课网研发效能提升之路

快课企业移动学习平台是上海快微网络科技有限公司自主研发的企业级 SaaS 平台,提供移动学习、考试练习、培训管理、知识分享、统计分析等学习和培训功能,为员工、经销商及客户等全价值链合作伙伴提供全面的知识服务。本文将详细介绍快课网的研发团队是如…

织梦html引入html代码,织梦标签引入共html.doc

织梦标签引入共html1.无法在这个位置找到: {dede:include filename"织梦模板include插入非模板目录文件出现“无法在这个位置找到”错误的解决办法以下是dede V55_UTF8查dede include标签手册(3) include 引入一个文件,形式为:{dede:include file文…

101种设计模式

https://sourcemaking.com/design-patterns-and-tips

htcd816+android密码,HTC Desire 816刷机解锁教程

一、解锁前的准备:1.解锁将会丢失所有数据,请先做好备份,如电话本、短信、照片、应用程序。2.下载并安装驱动程序HTC Driver。3.注册HTC Dev帐号,为提交解锁码做好准备。4.下载并解压 “Desire 816 解锁工具”:5.手机关…

学习 JavaScript (四)核心概念:操作符

JavaScript 的核心概念主要由语法、变量、数据类型、操作符、语句、函数组成,前面三个上一篇文章已经讲解完了。后面三个内容超级多,这篇文章主要讲解的是操作符。 操作符 什么叫做操作符? 这是一种工具,帮助我们操作字符串、数字…

android设备未指定怎么办,APKpath未指定为模块“示例 – 示例”

退出Android工作室 。 用pipe理员权限启动它。这解决了Windows 7中的 Android Studio v0.1的问题。我有同样的问题,我没有select 2个文件,然后收到错误"ERROR: APK path is not specified for module"我刚刚重新启动Android Studio并重新打开该…

Java多线程编程实战:模拟大量数据同步

背景 最近对于 Java 多线程做了一段时间的学习,笔者一直认为,学习东西就是要应用到实际的业务需求中的。否则要么无法深入理解,要么硬生生地套用技术只是达到炫技的效果。 不过笔者仍旧认为自己对于多线程掌握不够熟练,不敢轻易应…