Android的属性系统

Android的属性系统贯穿了从linux系统到Android应用的全过程,在每个层次都有相应的API进行调用。 当各层之间需要进行基本的数据传递的时候,可以使用该系统进行传递,非常方面。其各层的类或者头文件名称均为SystemProperties。 对于显示设置相关的内容,均应该采用该属性系统进行通信,以保证系统可以在启动时就进行相关的配置。
Android的属性系统具有生命期的区分:当次启动有效和持久化方式。对于该功能的区分是通过属性的前缀来实现的:
以“persist.”开头为持久化数据
其他未非持久化数据,当次启动有效
对于所有支持的前缀,Android中有明确的规定,规定的代码在:
$(ANDROID_ROOT)/system/core/init/property_service.c中:
   { "net.rmnet0.",      AID_RADIO,    0 },
   { "net.gprs.",        AID_RADIO,    0 },
   { "net.ppp",          AID_RADIO,    0 },
   { "net.qmi",          AID_RADIO,    0 },
   { "net.lte",          AID_RADIO,    0 },
   { "net.cdma",         AID_RADIO,    0 },
   { "ril.",             AID_RADIO,    0 },
   { "gsm.",             AID_RADIO,    0 },
   { "persist.radio",    AID_RADIO,    0 },
   { "net.dns",          AID_RADIO,    0 },
   { "net.dns",          AID_DHCP,     0 },
   { "sys.usb.config",   AID_RADIO,    0 },
   { "net.",             AID_SYSTEM,   0 },
   { "dev.",             AID_SYSTEM,   0 },
   { "runtime.",         AID_SYSTEM,   0 },
   { "hw.",              AID_SYSTEM,   0 },
   { "sys.",             AID_SYSTEM,   0 },
   { "service.",         AID_SYSTEM,   0 },
   { "wlan.",            AID_SYSTEM,   0 },
   { "dhcp.",            AID_SYSTEM,   0 },
   { "dhcp.",            AID_DHCP,     0 },
   { "debug.",           AID_SHELL,    0 },
   { "log.",             AID_SHELL,    0 },
   { "service.adb.root", AID_SHELL,    0 },
   { "service.adb.tcp.port", AID_SHELL,    0 },
   { "persist.sys.",     AID_SYSTEM,   0 },
   { "persist.service.", AID_SYSTEM,   0 },
   { "persist.security.", AID_SYSTEM,   0 },
通过AID_SYSTEM、AID_SHELL、AID_RADIO、AID_DHCP来区分属性可以被访问的进程 通过前缀net来区分是否为网络属性,如果是网络属性,还会触发通知机制:
   if (strncmp("net.", name, strlen("net.")) == 0)  {
       if (strcmp("net.change", name) == 0) {
           return 0;
       }
      /*
       * The 'net.change' property is a special property used track when any
       * 'net.*' property name is updated. It is _ONLY_ updated here. Its value
       * contains the last updated 'net.*' property.
       */
       property_set("net.change", name);
   }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值