android属性服务,Android Property属性的实现细节

本文详细介绍了Android属性服务的工作原理,从init进程的启动开始,包括创建共享内存、读取属性文件、启动Socket服务等步骤。重点讨论了property_set的实现,涉及权限检查、内存更新及触发相应动作。同时,文章提到了客户端如何通过SystemProperties类与属性系统交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

属性(property)是一对键/值(key/value)组合,键和值都是字符串类型。Androd中非常多的应用程序和库直接或者间接的依赖于属性系统,并由此决定其运行期的行为。它的处理流程同android的其他模块一样,也分为服务端和客户端,property设置必须在服务端,读取直接在客户端。

工作原理图如下:

34f65fb5b762730fbceea56175be4cd1.gif

我们就来看系统的守护进程init,服务断就在这个进程里,分析它的main()@system/core/init/init.c函数。

1. 创建文件目录,打开中断设备,读取/init.rc,/init.**.rc。

这些都跟我们要分析的关系不大,但是还是要说明一下读取.rc文件的过程:

init有三个全局列表service_list,action_list,queue_list

init.rc文件格式(截图):

35347cc9c2d20c5ce90406aa11bafa7f.gif

当读取文件扫描到以on开头的一行数据时,将紧跟on后面的数据和下面几行数据组装成struct action@system/core/init/init.h变量,并加到action_list列表里。以service开头的就组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值