【写在前面】
网上资料梳理,侵删烦请联系。或有表达错误,欢迎指出纠正。
【参考引用】
https://www.cnblogs.com/bhlsheji/p/5069100.html
android代码中大量存在:
SystemProperties.set()
与
SystemProperties.get()
;通过这两个接口能够对系统的属性进行读取/设置,且对整个系统全局共享。
System Properties
- 是什么
android的一个重要特性。作为一个服务执行,管理系统配置和状态。全部配置和状态都是属性。
每一个属性是一个键值对(key/value pair),其类型都是字符串。
属性可能是有些资源的使用状态、进程的运行状态、系统的特有属性等。 - 如何用
getprop
//查看手机上全部属性状态值。
getprop <init.svc.bootanim
>
//制定查看某个属性状态
setprop <init.svc.bootanim
> <start
>
//设置某个属性的状态 - 特别属性
①以“ro.”开头
被视为仅读属性。一旦设置,属性值不能改变。
②以“persist.”开头
当设置这个属性时,其值也将写入/data/property。
③以“net.”开头
当设置这个属性时,“net.change”属性将会自己主动设置,以增加到最后改动的属性名。
④属性“ ctrl.start ”和“ ctrl.stop ”
用来启动和停止服务。
每一项服务必须在/init.rc中定义。系统启动时,init守护进程将解析init.rc和启动属性服务。一旦收到设置“ ctrl.start ”属性的请求。属性服务将使用该属性值作为服务名找到并启动该服务。这项服务的启动结果将会放入“ init.svc.<服务名>“属性中。client应用程序能够轮询那个属性值,以确定结果。
framework访问系统服务流程
framework通过SystemProperties接口操作系统属性,SystemProperties通过JNI调用访问系统属性。