Android中使用setprop、getprop动态设置参数

前言:开发过程中会在一些位置添加log打印,在release版本中通常会把调试log关闭。此时就需要对系统的log打印进行封装,并且设置log打印级别。当发布release版本给到测试后发现有个bug,此时log等级较高,基本看不到什么信息,不方便定位问题,所以本文的目的在于实现通过adb命令动态控制log打印级别,方便动态控制log的打印级别。

首先讲一下getprop和setprop的作用:

在android系统中,有一些初始化的配置文件,例如:
/init.rc
/default.prop
/system/build.prop
文件里面配置了开机设置的系统属性值,
这些属性值,可以通过getprop获取,setprop设置,
它的格式如下:

getprop [key]

获取指定key的配置值,如果不带参数,只是getprop则是显示系统所有的配置值。

setprop [key] [value]//设置指定key的属性值。

下面通过这两个命令设置自定义的属性:

1、通过adb命令设置key为testprop,value为200的属性。
在这里插入图片描述
2、在代码中获取该属性:

     try {
            Process process =Runtime.getRuntime().exec("getprop testprop");
            InputStreamReader ir = new InputStreamReader(process.getInputStream());
            BufferedReader input = new BufferedReader(ir);
            String str = null;
            while ((str=input.readLine())!=null){
                Log.i("LogUtil","testprop = "+str);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

打印结果:
在这里插入图片描述


版权声明:本文为YeYaLing123原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。