Android系统主要通过SystemProperties这个类,直接本地调用来实现创建、获取及修改系统属性。
Systemproperties类在android.os下,路径为:
/frameworks/base/core/java/android/os/SystemProperties.java
在手机系统中,我们可以通过如下命令查看到系统属性文件build.prop。
jinzhimin@jinzhimin:~$ adb remount //连接到手机系统
remount succeeded
jinzhimin@jinzhimin:~$ adb shell //进入到手机系统
# cd system //连接system目录
# ls //查看文件
usr
xbin
bin
res
media
lib
vendor
etc
app
build.prop
fonts
secro
lost+found
framework
# exit //退出手机系统
jinzhimin@jinzhimin:~$ adb pull /system/build.prop /home/jinzhimin/00 //将系统属性文件build.prop拷贝出来
43 KB/s (3543 bytes in 0.079s)
jinzhimin@jinzhimin:~$
这样,我们就可以通过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(“_”, “#”);
(这当中以” _”代替” #”)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/34216.html