Android系统注册表(prop属性)的研究与分析

本文探讨了Android系统中的prop模块,它是用于存储少量配置信息的内存数据区,类似于Windows的注册表。prop模块在系统启动时加载build.prop等文件,并在内存中保存,便于跨进程共享。Android提供了SystemProperties类进行Java接口封装,但set方法有权限限制。此外,通过shell命令getprop、setprop和watchprops可操作prop属性。
摘要由CSDN通过智能技术生成

在程序开发的时候,会使用很多的环境变量,有时候会遇到以下几种情况:

1.该变量在多处需要使用,并且是跨进程或者跨线程的。

2.该环境变量一般只需读取一次,不需要频繁保存。

3.这个变量信息在关机重启后任然可以保存。

对于这些需求,通常的做法是将这些信息保存到一个文件中,通过对该文件的读写来提取和保存信息,这些信息的数据量都比较小。这种方法是可以的,但是不是很系统完善,而且当需要读取信息时都需要进行一次文件的io操作,这就很费时和浪费系统资源;还有一种情况,就是一个变量信息,开机启动的时只需从flash中读取一次,在系统运行时很少对它进行修改;如果保存到文件,每次读取都要进行一次IO操作,如果保存不当很容易出错,所以这种信息保存到内存更显得合适。

Window中有注册表这样完善的模块对少量配置信息进行存储,使用起来安全、方便、快捷,android中是否也有类似的接口呢?答案是肯定的,那就是Prop模块(目前还没有更合适的名字)Prop模块存储着系统运行的很多配置信息,当程序运行时需要某种系统状态时,会到该模块中进行读取和寻找。Prop模块本质上来说,是系统运行时内存中保存的一块数据区,读写数据都是对这一块区域进行操作;好处是读写速度快,数据跨进程共享,缺点是突然断电会丢失数据;当然Prop也能保存数据,这个在后面提到。

系统中的一些有用的配置信息:

本分基于android4.2源码进行分析,Android的启动后,在property_service.cproperty_init中完成prop的初始化。系统中存在着几个文件,如build.propdefault.prop等,这些文件在系统构建时候生成的,里面包含很多系统的配置。系统开机时回去加载这些文件中的信息并保存到prop模块(内存)中去,以便其它程序进行读取和使用。

例如在build.prop

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔波的IT人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值