修改系统属性的方法

Chinese, Simplified

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;

        }  

    }



 


文档中心

以上内容是否对您有帮助?