Hidden in the configuration of our Android phones, there are a number of options that are used for debugging and developing applications. While many, barely know that you can change the virtual machine or activate USB debugging, there is a long list of options that, although most users will never use them, it is worth knowing what they are used for.
To begin with, if we want to access the hidden development options, we will have to go to Settings -> About phone -> Compilation number. Once we have located that last option, we will press several times on it until you get a message telling you that you have unlocked the Developer options, a menu that we can see by going back to the previous screen, just above the About phone option.
What are the developer options for?
Once there, if we go into the Developer Options, it is very possible that most people will be shocked what they will see there, so I will explain what each one of the options offered consists of:
In this article we talk about:
Report an error:
When touching this option the system prepares the current log files of the device, the packages to send them to whomever we want. It takes a minute or two after touching it, and it will show us a notification once it is ready. Tap the notification to send or swipe to cancel.
We can use ADB to back up and restore things like applications and their data associated with or from the computer. This option requires us to use a password for those backup copies, which can not be restored without it.
By checking this box we will force the screen to stay on while the phone is connected to a charger. It is not recommended to use this option unless it is strictly necessary.
This is where we can decide between using the Dalvik or ART ( Android RunTime ) virtual machine. ART is in an experimental phase so I do not recommend activating it to the crazy unless it is for development purposes.
Bluetooth search record:
Sometimes, a developer (or security specialist ) will have to capture and analyze Bluetooth HCI ( Host Controller Interface ) packets. Activation of this option will place them in a file in the phone’s internal memory ( /sdcard/btsnoop_hci.log ) for recovery. Then, they can be analyzed with a program like Wireshark.
Everything we need to know about the processes that run on our phone is here. Tap on the option and then on one of the entries. For laymen, they are just a bunch of numbers, but for a developer, this information is essential to be able to debug their applications.
This is what allows the phone to communicate through the USB port of your computer through the Android debug bridge ( ADB, Android Debug Bridge ). We will need to enable this option to use things like DDMS ( Dalvik Debug Monitor Server ) the debug monitor of the Dalvik virtual machine, or use the ADB commands.
Registry buffer sizes:
Shown in some mobiles in English as Logger Buffer Size. Before explaining the usefulness of this function, you must know what a buffer is. A buffer is a memory space in which data is temporarily stored, usually for a single use. Its main function is to prevent the app or resource that requires them, whether hardware or software, from running out of data during an irregular data transfer or due to the speed of the process. In the case of Android, the size of the buffer depends on the architecture of the processor, ranging from 64K ( in 64-bit CPUs ) to 16 MB, and its increase could reduce latencies in the audio engine, especially useful if we use sound processing interfaces like the iRig.
When using a computer to debug via USB for the first time, we must authorize it and establish a pair of keys. This setting revokes all permissions and forces us to do it again.
Activate an option in the menu that appears when the power button is held down to collect and send an error report.
Allow false locations:
This setting will allow us to manually enter the location information, so the phone will believe it is in a place where it really is not.
Select an application to debug:
This option allows us to choose an application to debug. It will prevent the appearance of error messages in case of forced closure of the application. If you do not understand the purpose of this function, it is probably because you do not need it, so do not touch it.
Wait for the debugger:
This configuration is disabled unless we have sent an application to debug. It simply prevents the chosen application from starting until the debugger is attached. It is another application debugging setting that most of us will never need.
Check applications through USB:
Let Google scan applications installed through ADB for malicious behavior. This is a good thing.
When selecting this option we will see a pointer where we touch.
This setting shows an information bar at the top of the screen that indicates the coordinates of the last touch on it.
Show screen updates:
Causes the screen to flash when some element of it is updated. Annoyed like a toothache.
Show design limits:
Mark the borders of all the elements of a dialog box so that we know which elements can be activated.
Force RTL design:
Forces the screen to be arranged from right to left to adapt to different language settings.
Scale window animation:
Adjusts the playback speed of the window animation. The lower the value, the faster the animation.
Transition animation scale:
Adjusts the playback speed of the transition animation. Again, the lower value means faster.
Animation duration scale:
Modifying this setting we can determine the duration of the animation. Again, less is more.
Simulate secondary screens:
This option allows developers to simulate different screen sizes. It is quite unstable.
Force GPU rendering:
Forces applications to use 2D rendering hardware if they were written so as not to use it by default. Sometimes, it works wonders. Other times, everything goes to hell. Be careful here.
Show GPU view updates:
With this setting, anything that is drawn with the GPU hardware creates a red overlay.
Show hardware layer updates:
This setting will tell us when the hardware layers are updated.
Debug GPU superoposition:
The overlap occurs every time an application asks the system to draw something over something else. This adjustment allows you to see when and where it is happening to know if it causes problems.
This setting forces a multi-sampling anti-aliasing ( MSAA, Multi-Sampling Anti-Aliasing ). Like any other computer graphics hardware, more Anti-Aliasing makes things look better, but performance is seriously affected.
Blinks the screen when an application uses the main thread to perform long and intensive operations.
Show CPU usage:
Place a small window on the top right of the screen with information about the CPU and how it is being used.
GPU rendering profile:
Draw a graphic on the screen or write to a file. The graphic is a visual representation of the work of the GPU.
Activate OpenGL traces:
This setting collects OpenGL errors and places them in a log file that you chose when it was activated.
Do not maintain activities:
This option forces the total closure of each and every application as soon as we leave them. Despite what is said on the Internet, it is not recommended to activate it.
Limit processes in the background:
Allows a custom configuration of how many processes can run in the background simultaneously. Better to leave the configuration by default.
Show all ANRs:
This option allows background processes to display a “Not Responding” dialog box if they get stuck, it even works with background processes that the user did not start.
Even with how long this list is, you can find more or less options depending on the terminal and the manufacturer. Anyway, the ones you see here are common to all the devices.
Again, I think that I do not need to tell you to be very cautious and not to touch anything if you are not sure about it.