前言
Android调试时,有序需要修改系统的属性。使用adb shell setprop xxxx 后,重启机器后就恢复了。
然后实际中,有些属性如果没重启,会遇到属性值在代码中不生效,重启后,属性值又还原的问题。
比如SurfaceView的一个日志打印DEBUG开关,通过adb改变debug.surfaceview.log属性值后需要重启才有效。
SurfaceView中的DEBUG
public class SurfaceView extends View implements ViewRootImpl.WindowStoppedCallback { private static final String TAG = "SurfaceView"; private static final boolean DEBUG = SystemProperties.getBoolean( "debug.surfaceview.log", false); ...... }
解决上面方法有如下两种:
改SurfaceView找那个的DEBUG的值为true
缺点就是SurfaceView的日志一直开放着,无法关闭。
通过adb修改debug.surfaceview.log的默认属性,机器断电后恢复默认。
缺点:需要重启SurfaceView,也就是framework
优点:方便可控,断电即恢复默认。
重启framework
百度了一下,发现还是有方法只重启framework的。
Android早就为我们这些开发者想好了,可以通过adb命令来重启framework。
改变debug.surfaceview.log的值
adb shell setprop debug.surfaceview.log true
方式一
# 停止 adb shell stop # 启动 adb shell start # 进入开机logo界面 # 等开机logo过去后,看一下属性是否改变 adb shell getprop debug.surfaceview.log
方式二
# 一口气输入,跟上面一样的 adb shell stop & adb shell start # 或者用下面那种 adb shell stop && adb shell start
参考文章
© 版权声明