属性(property)是一对键/值(key/value)组合,键和值都是字符串类型。Androd中非常多的应用程序和库直接或者间接的依赖于属性系统,并由此决定其运行期的行为。它的处理流程同android的其他模块一样,也分为服务端和客户端,property设置必须在服务端,读取直接在客户端。
工作原理图如下:
我们就来看系统的守护进程init,服务断就在这个进程里,分析它的main()@system/core/init/init.c函数。
1. 创建文件目录,打开中断设备,读取/init.rc,/init.**.rc。
这些都跟我们要分析的关系不大,但是还是要说明一下读取.rc文件的过程:
init有三个全局列表service_list,action_list,queue_list
init.rc文件格式(截图):
当读取文件扫描到以on开头的一行数据时,将紧跟on后面的数据和下面几行数据组装成struct action@system/core/init/init.h变量,并加到action_list列表里。以service开头的就组