Debugging the layout is one of the important task for any Android developer. Have you have ever tried enabling
Show layout bounds during debugging. These are the Steps that I usually take during debugging the layout.
- Some view doesn’t look right (The bug)
- Go to settings
- Then go to systems
- Then developer options
- Then enable Show layout bounds
- Return to the app (And most probably forget which view I was going to debug 😂).
This is real pain when you have to constantly enable and disable this option for debugging. But fear not my friend ADB to the rescue. We can use adb shell commands to enable this option from the command line.
adb shell setprop debug.layout true// poke the system properties to activate the changes
adb shell service call activity 1599295570
You might be wondering where the 1599295570 number came from. This is called
SYSPROPS_TRANSACTION and used by settings app to refresh the setting.
Typing these two commands every time you want to enable or disable is quite inconvenient. So I made a simple bash script to handle this.
adb "$@" shell setprop debug.$flag $value
adb "$@" shell service call activity 1599295570
Save this script in whatever location you like (I save this in /usr/local/bin) with some name like
debug. Then use
chmod +x command to make this executable. Now whenever you want to enable this option just type
debug layout true and to disable type
debug layout false. You can also further optimize the command by using alias in bash. To handle multiple options I have used
shift commands in the script. So, let’s say you have two devices connected and run this command then the output will be
error: more than one device/emulator
To fix this you need to pass the device serial number which you can get from command
adb devices . Let’s say the serial number is
emulator-5554 then you can use the above command like this
debug layout true -s emulator-5554 .
Again like I said you can use alias to make this a shortcut. You can look here to see different debug properties that you can configure like
force_rtl . You can also use this app that provides various debug options if you don’t like to work with terminal.
That’s it for this story. If you have any questions or suggestions let me know in the comments below.