Android系统主要通过SystemProperties这个类,直接本地调用来实现创建、获取及修改系统属性。
   Systemproperties类在android.os下,路径为:
   /frameworks/base/core/java/android/os/SystemProperties.java
   
   在手机系统中,我们可以通过如下命令查看到系统属性文件build.prop。
   [email protected]:~$ adb remount        //连接到手机系统
   remount succeeded
   [email protected]:~$ adb shell           //进入到手机系统
   # cd system                              //连接system目录
   # ls                                     //查看文件
   usr
   xbin
   bin
   res
   media
   lib
   vendor
   etc
   app
   build.prop
   fonts
   secro
   lost+found
   framework
   # exit                                   //退出手机系统
[email protected]:~$ adb pull /system/build.prop /home/jinzhimin/00          //将系统属性文件build.prop拷贝出来
   43 KB/s (3543 bytes in 0.079s)
   [email protected]:~$
   
   这样,我们就可以通过build.prop查看手机系统属性了。
   当然了,我们在成功编译完源代码后,在以下目录下也可以看到build.prop。
   /out/target/product/huaqin75_cu_ics/system/build.prop
   
   build.prop是如何生成的呢?Android的build.prop文件是在Android编译时刻收集的各种property,编译完成之后,文件生成在/out/target/product/huaqin75_cu_ics/system/目录下。在Android运行时刻可以通过SystemProperties_get*()读取这些属性值。
   build.prop的生成是由make系统解析build/core/Makefile完成。
二、Android手机build.prop参数详解(手机型号不同,有些内容可能不一样)
  ro.build.version.sdk=10         sdk版本 10对应2.3ROM
  ro.build.version.release=2.3.4    android版本
  ro.build.date=三 12月 15 20:41:26 CST 2010   时区时间CST可以代表4个时区
  ro.product.model=GT540           手机型号    
  ro.product.locale.language=zh   刷机后默认语言
  ro.product.locale.region=CN     刷机后启动的默认语言
  ro.build.description=soju-user 2.3.3 GRI40 102588 release-keys    内部版本号
  Default network type.   # 0 => WCDMA preferred.         默认网络类型
  wifi.supplicant_scan_interval=120    WIFI扫描时间单位为秒 调大这个值可节约耗电
  ## opengles 2.0               LINUX下针对多媒体的一些功能
  debug.sf.hw=1                    硬件加速设定 0是关闭, 1是开启
  dalvik.vm.heapsize=24m               虚拟内存范围由12M-48M, 默认是24M
  ro.config.ringtone=Playa.ogg                       默认来电铃声
  ro.config.notification_sound=regulus.ogg                            默认通知铃声
  ro.config.alarm_alert=Alarm_Beep_03.ogg                         默认闹钟铃声
  ro.modversion=CyanogenMod-7.0.3-GT540-MUR4IK   MOD版本号
  ro.setupwizard.mode=DISABLED   刷机后设置向导,ENABLED为显示,DISABLED为禁用,OPTIONAL为可选
  persist.sys.timezone=Asia/shanghai"默认时区
  media.stagefright.enable-player=true   与多媒体效果有关 
  media.stagefright.enable-meta=false  与多媒体效果有关 
  media.stagefright.enable-scan=false  与多媒体效果有关 
  media.stagefright.enable-http=false  与多媒体效果有关 
  persist.service.adb.enable=1 开启调试模式
  ro.secure=0 默认开启未知源APK
  ro.allow.mock.location=1 开启模拟位置
  settings.display.autobacklight=1       自动背光默认为开
  debug.sf.nobootanimation=0             控制开机动画的,0为关闭,1为开启!
  ro.config.hw_menu_unlockscreen=true 控制唤醒屏幕的设置
  ro.sf.lcd_density=120 (显示屏分辨率,数值越大分辨率越底)
  view.touch_slop=15 (触摸屏灵敏度,数值越大越灵敏)
  view.minimum_fling_velocity=25 (滑动速度)
  view.scroll_friction=0.008 (滑动误差)
  # RIL specific configuration. (特定设置)
  ro.ril.hsdpa.category=8 (hsdpa全称High Speed Downlink Packet Access中文意思:高速下行分组接入,设置的数越大传输越快)
  ro.ril.gprsclass=12 (GPRS设置)
  # For HSDPA low throughput (HSDPA低输量)
  ro.ril.disable.power.collapse=1 (关闭电源)
  # Modify MMS APN retry timer from 5s to 2s. (修改短信的APN设置5秒为2秒)
  keyguard.no_require_sim=true (手机卡保护设置)
  ro.com.android.dateformat=MM-dd-yyyy (默认时间格式,改为yyyy-MM-dd,显示效果就是XXXX年XX月XX日)
三、设置系统属性值(实例)
1.定义: RO_CONFIG_REMOVE_FOCUSMODE
  在mediatek\build\tools\Configoption.pm中
  定义,RO_CONFIG_REMOVE_FOCUSMODE
2.赋值:RO_CONFIG_REMOVE_FOCUSMODE = true
  在mediatek\config\huaqin75_cu_ics\XXX\ProjectConfig.mk中
  赋值,RO_CONFIG_REMOVE_FOCUSMODE = true
3.使用:在代码XXX.java中使用

实例一:
    import android.os.SystemProperties;        //导包
  ……
final boolean RemoveFocusMode = SystemProperties.getBoolean(
"ro.config.remove.focusmode",false);  //获得属性值

if (RemoveFocusMode == true) {            //使用属性值
        // Remove the focus mode if we can use tap-to-focus.
                removePreference(group, focusMode.getKey());
}
else{
           ……
}
  可以定义这样的系统属性值(布尔值)来取代宏FeatureOption,从而达到控制代码的目的。
  
实例二:
另外,这样的用法在情景模式中用得非常多,对初始音量值的定义。
赋值:RO_CONFIG_GENERAL_VOLUME_RING = 7
  RO_CONFIG_OUTDOOR_VOLUME_RING = 7(ProjectConfig.mk中)
使用: private static final int DEFAULT_RINGER_VOLUME_GENERAL = SystemProperties.getInt("ro.config.general.volume.ring", 4);
      private static final int DEFAULT_RINGER_VOLUME_OUTDOOR = SystemProperties.getInt("ro.config.outdoor.volume.ring", 6);
  也即在生成的build.prop中:
  ro.config.general.volume.ring=7
  ro.config.outdoor.volume.ring=7
  
实例三:
  还可以定义初始的字符串的值,例如查询命令:*#8375#。
  赋值:RO_CONFIG_VERSIONCODE = *_86556_(客户要求指令)
  使用:final String specialVersionCode = SystemProperties.get(
   "ro.config.versioncode", "defaultVersionCode");
  specialCode = specialVersionCode.replace("_", "#");
  (这当中以” _”代替” #”)

更多相关文章

  1. android之自定义组合控件
  2. Android系统的编译命令
  3. Spinner 改变字体,颜色等...
  4. android——api
  5. Android(安卓)Studio中常用设置与快捷键(私人珍藏,Eclipse转AS必看
  6. android 音频系统/声卡驱动 codec
  7. Android:Animator使用指南
  8. Android使用Notification通知栏功能的封装
  9. Android(安卓)8.0系统Bug Only fullscreen opaque activities ca

随机推荐

  1. android AutoCompleteTextView
  2. android view的触摸事件坐标
  3. Android中获取时间
  4. Android(安卓)以流的方式读取服务器图片
  5. Android(安卓)Power Management
  6. Android自定义对话框的使用
  7. Android之自定义Adapter的ListView
  8. 页面跳转采用滑动效果
  9. Android版本对照
  10. android文件操作的实例