system.prop学习笔记

来源:互联网 发布:高并发web架构 java 编辑:程序博客网 时间:2024/06/01 09:03
最近在项目中修改fastmmi的audio测试,在pcba测试与audiotest的测试项中的receiver测试,一个需要播放一种音源,一个需要三种音源,但是布局都是一样的,这就需要func_map.cpp与audio.cpp里面来判断需要将当前其他音源布局显现出来以及播放出来,这就需要判断当前text_menu,由于func_map.cpp和mmi.cpp在同一目录下,由于声明了全局变量,包含mmi.h头文件即可,而audio.cpp在其他目录,想用全局变量去传,在大家都包含的头文件中去定义了一个变量,编译却出现multi_define的错误,网上百度一下是因为头文件不能定义变量,,,,最后在同事的提醒下用了属性property去传值(以前没有接触过),然后问题解决。  这里就学习一下property.
    Android系统的属性(Property)机制有点儿类似Windows系统的注册表,其中的每个属性被组织成简单的键值对(key/value)供外界使用。
  在system.prop
#for fastmmi test
debug.audio.fastmmi.test=false  //定义属性
在 func_map.cpp
property_set("debug.audio.fastmmi.test", "true");//设置属性
在audio.cpp
   property_get("debug.audio.fastmmi.test", value, "");//获取属性
   这是在c++中使用propperty_set/property_get方法
    我这里修改的是device目录下的system.prop,一般有两种属性
   (1)persist.*:如果以persist开始的属性会在/data/property存一个副本,重启后属性还在,如果property_set其他属性,因为是在内存里存,重启之后就没有这个属性了
   (2)ro.*,以ro为前缀的属性不能改
    其他属性的话,应该是可用更改,并且重启之后设置为默认值
    修改属性之后,需要整编才能生效,最后在out文件夹的build.prop中会有此属性,也可以通过adb shell 进去,getprop 属性 或者 setprop 属性 属性值
  
0 0
原创粉丝点击