1. 概述
Android 项目开发调试过程中常常需要修改系统属性来实现某种功能或开关的切换。本文介绍具体的修改方法
2. 方法
方法1,调试阶段,adb 修改属性的方法:
adb shell setprop prop_name prop_value
如,adb shell setprop net.multi.support true
修改后马上生效,该方法的局限是如果设备重启,修改不保存,ro.开头的属性也不能改。另外很多系统属性只是开机初期访问一次,所以开机后再用这个方法修改将不起作用。读属性的方法adb shell getprop
方法2,修改系统文件build.prop 该方法可以修改任意属性,重启后才生效
adb pull /system/build.prop .
//文本编辑器修改build.prop..
adb remount
adb push build.prop /system/
方法3,代码修改
android并不直接提供访问系统属性的方法,可以用反射机制:
public static void setProperty(String key, String value) {
try {
Class<?> c = Class.forName("android.os.SystemProperties");
Method set = c.getMethod("set", String.class, String.class);
set.invoke(c, key, value );
} catch (Exception e) {
e.printStackTrace();
}
}
**该方法不能修改ro.开头的属性
//读
public static String getProperty(String key, String defaultValue) {
String value = defaultValue;
try {
Class<?> c = Class.forName("android.os.SystemProperties");
Method get = c.getMethod("get", String.class, String.class);
value = (String)(get.invoke(c, key, defaultValue ));
} catch (Exception e) {
e.printStackTrace();
}finally {
return value;
}
}