Android SystemProperties设置/取得系统属性

来源:互联网 发布:儿童 编程培训 编辑:程序博客网 时间:2024/04/30 18:38

一、介绍 SystemProperties

我们可以通过SystemProperties.set()和 SystemProperties.get()这两个接口来对系统属性进行读取和设置。系统属性是对整个系统全局共享的,属性系统是android的一个重要特性。它作为一个服务运行,管理系统配置和状态。所有这些配置和状态都是属性。这些属性是以键值对存在的,都是字符串类型。

这些属性可能是进程状态,资源使用情况,系统特有属性等等。。。

二、特殊属性介绍

  如果属性名称以“ro.”开头,那么这个属性被视为只读属性。一旦设置,属性值不能改变。

  如果属性名称以“persist.”开头,当设置这个属性时,其值也将写入/data/property。

  如果属性名称以“net.”开头,当设置这个属性时,“net.change”属性将会自动设置,以加入到最后修改的属性名。(这是很巧妙的。 netresolve模块的使用这个属性来追踪在net.*属性上的任何变化。)

  属性“ ctrl.start ”和“ ctrl.stop ”是用来启动和停止服务。每一项服务必须在/init.rc中定义.系统启动时,与init守护进程将解析init.rc和启动属性服务。一旦收到设置“ ctrl.start ”属性的请求,属性服务将使用该属性值作为服务名找到该服务,启动该服务。这项服务的启动结果将会放入“ init.svc.<服务名>“属性中。客户端应用程序可以轮询那个属性值,以确定结果

三、使用SystemProperties

  创建与修改android属性用Systemproperties.set(name, value),获取android属性用Systemproperties.get(name),需要注意的是android属性的名称是有一定的格式要求的
1、前缀必须用system\core\init\property_service.c中定义的前缀 ,
2、进行系统属性设置的程序也必须有system或root权限,
如何将android程序的权限提升到system权限?方法是这样的:
(1)在AndroidManifest.xml中,在manifest加入android:sharedUserId="android.uid.system "
(2)在Android.mk中,將LOCAL_CERTIFICATE := XXX修改成LOCAL_CERTIFICATE :=platform
阅读全文
0 0
原创粉丝点击