我想观看App的布局而不用无聊和点击。
我尝试adb shell setprop debug.layout true
但无法正常工作,除非重启或打开设置
这可能是由于设置没有更新造成的。
我尝试用代码SystemProperties.set("debug.layout", "true")
编写一个小应用程序,也没用
也许该应用程序的权威......
抱歉我的英语不好并感谢您的帮助:p
答案 0 :(得分:9)
您不需要启动设置应用。只需退出您的应用,设置属性,然后启动您的应用。
adb shell am force-stop com.company.appname ; adb shell setprop debug.layout true ; adb shell monkey -p com.company.appname -c android.intent.category.LAUNCHER 1
答案 1 :(得分:8)
这对我有用:
adb shell setprop debug.layout true
adb shell service call activity 1599295570
使用adb shell setprop debug.layout true
启用Show layout bounds之后,我们必须查看SystemProperties以查看更改
正如Show layout bounds QS Tiles所做的那样:
@Override
public void onClick() {
setIsEnabled(getQsTile().getState() == Tile.STATE_INACTIVE);
new DevelopmentSettings.SystemPropPoker().execute(); // Settings app magic
refresh();
}
此处the original method from AOSP source:
public static class SystemPropPoker extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
String[] services = ServiceManager.listServices();
for (String service : services) {
IBinder obj = ServiceManager.checkService(service);
if (obj != null) {
Parcel data = Parcel.obtain();
try {
obj.transact(IBinder.SYSPROPS_TRANSACTION, data, null, 0);
} catch (RemoteException e) {
} catch (Exception e) {
Log.i(TAG, "Someone wrote a bad service '" + service
+ "' that doesn't like to be poked: " + e);
}
data.recycle();
}
}
return null;
}
}
号码1599295570
称为SYSPROPS_TRANSACTION
参考:https://github.com/dhelleberg/android-scripts/blob/master/src/devtools.groovy
答案 2 :(得分:5)
我发现一个DevelopQuickSetting工具可以很容易地做到这一点。 https://github.com/kyze8439690/DevelopQuickSetting
并且核心代码转换为adb shel:
adb shell setprop debug.layout true
adb shell service check SurfaceFlinger
答案 3 :(得分:2)
这个工具运行正常。 在启动此程序之前,您需要安装groovy。
答案 4 :(得分:1)
这是我的fish shell函数,该函数还将帮助您从fzf的多个设备中进行选择。将其保存在〜/ .config / fish.functions /中,并像这样使用它:
如果您拥有一台以上的设备,则会提示您使用fzf选择一个设备