[RK3288][Android6.0] Android中的Properties
2017-08-31 17:14
183 查看
Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92
Android系统可以通过properties来共享一些比较简单的字符串值。
/system/build.prop:
编译时产生,主要内容来自device下的system.prop
/default.prop:
默认的一些关键属性,例如虚拟机的内存配置:
/data/property:
此目录下的properties在下一次重启后依然存在,都以persist打头:
也就是说,设置了persist的property会被放到此目录下并且重启后不会丢失。
例如本项目平台的文件是:
device/rockchip/rk3288/system.prop
修改编译生成prop的脚本
build/tools/buildinfo.sh
通过PRODUCT_PROPERTY_OVERRIDES变量
系统中的*.mk通过PRODUCT_PROPERTY_OVERRIDES属性,最后会变编译到prop文件中
setprop <属性名> <值>
Java中:
SystemProperties.set();
set()声明如下:
public static void set(String key, String val);
C/C++中:
int property_set(const char* name, const char* value);
persist.* properties: 前面有提到了,设置后就一直被保存下来了。
ctl.start/ctl.stop: 动态start/stop service. 例如开机动画时就会用到这个。
net.change:记录了每一次最新设置和更新的net.属性。例如net.bt.name有更新,那么属性服务就会自动更新net.change,将其值设置为net.bt.name。
Android SystemProperties.get()和System.getProperty()的区别
OS: Android 6.0
Kernel: 3.10.92
介绍:
系统通过init进程来管理properties.Android系统可以通过properties来共享一些比较简单的字符串值。
文件分布:
Properties被分成若干个文件(这里指设备上):/system/build.prop:
编译时产生,主要内容来自device下的system.prop
/default.prop:
默认的一些关键属性,例如虚拟机的内存配置:
dalvik.vm.image-dex2oat-Xms=64m dalvik.vm.image-dex2oat-Xmx=64m
/data/property:
此目录下的properties在下一次重启后依然存在,都以persist打头:
root@rk3288:/data/property # ls persist.sys.country persist.sys.language
也就是说,设置了persist的property会被放到此目录下并且重启后不会丢失。
修改值:
系统有很多方法和地方可以修改,分静态和动态两种:静态:
直接修改prop文件例如本项目平台的文件是:
device/rockchip/rk3288/system.prop
修改编译生成prop的脚本
build/tools/buildinfo.sh
通过PRODUCT_PROPERTY_OVERRIDES变量
系统中的*.mk通过PRODUCT_PROPERTY_OVERRIDES属性,最后会变编译到prop文件中
动态:
init.rc/命令行/shell脚本中:setprop <属性名> <值>
Java中:
SystemProperties.set();
set()声明如下:
public static void set(String key, String val);
C/C++中:
int property_set(const char* name, const char* value);
特殊的properties:
ro.* properties: 只读,只能修改一次。persist.* properties: 前面有提到了,设置后就一直被保存下来了。
ctl.start/ctl.stop: 动态start/stop service. 例如开机动画时就会用到这个。
net.change:记录了每一次最新设置和更新的net.属性。例如net.bt.name有更新,那么属性服务就会自动更新net.change,将其值设置为net.bt.name。
参考:
Android 系统属性SystemProperty分析Android SystemProperties.get()和System.getProperty()的区别
相关文章推荐
- [RK3288][Android6.0] 调试笔记 --- AndroidTool两种低格方式
- [RK3288][Android6.0] 调试笔记 --- Android预编译拷贝多个文件方法
- [RK3288][Android6.0] PWM backlight 驱动流程小结
- [RK3288][Android6.0] WiFi之Framework连接过程小结
- [RK3288][Android6.0] 调试笔记 --- Audio之分离DTMF tones
- [RK3288][Android6.0] 调试笔记 --- 屏蔽系统下拉菜单显示
- [RK3288][Android7.1.2] Launcher3 源码阅读之step6:根据布局文件找到对应的自定义View
- [RK3288][Android6.0] External stroage转成Internal storage
- [RK3288][Android6.0] WiFi在Setting中的开启过程小结
- [RK3288][Android6.0] 调试笔记 --- 同时支持两颗USB UVC Camera
- [RK3288][Android6.0] 调试笔记 --- eMMC分区号和名字的对应【转】
- [RK3288][Android6.0] 调试笔记 --- GPU DVFS的控制开关
- RK3288 平台(Android 5.1)+ PN548 调试流水账(一、前期编译篇)
- [RK3288][Android6.0] 调试笔记 --- home key触发启动launcher调用
- 基于Ubuntu14.04的RK3288_PopMetal Android开发环境搭建过程小记
- [RK3288][Android6.0] 调试笔记 --- 开机语言默认为简体中文
- [RK3288][Android6.0] PMIC之RK818驱动小结
- [RK3288][Android6.0] 控制总线通用接口regmap小结
- [RK3288][Android6.0] 系统按键驱动流程分析【转】