We explain what are Android Developer Options, and show you how to access and enable Android Developer Options on any Android phone or Android tablet. PLUS: 34 things you can do in Android Developer Options. (See also: Best Android phones of 2016 UK.)
Updated 23 May 2016 with general updates.
What are Android Developer Options?
Every Android smartphone and Android tablet contains a secret set of options: Android Developer Options. As the name suggests these are intended principally for developers - people who need additional functions to test software and apps they are writing for Android devices. There are many options that allow you to simulate app stresses or enable debugging options.
Android Developer Options allow you to enable debugging over USB, capture bug reports on to your Android device, and show CPU usage on screen to measure the impact of your software.
Android Developer Options also allow you to draw debugging information on screen including layout bounds, updates on GPU views and hardware layers, and other information. There are many more options, most of which I will outline below. But first, let's look at how to access and enable Android Developer Options. (See also: How to install Ubuntu Touch on your Android phone or tablet.)
How to access and enable Android Developer Options
Android Developer Options are available on all Android devices, but OEMs do make accessing them slightly different on occasion. They all make them impossible to accidentally access, for good reason. This is because the options offer great power - power most people can't usefully use. Regardless, generally speaking the following process works. I enabled Android Developer Options on my LG G3.
Go to Settings > General > About phone. Then scroll and select Software information > Build number. Now rapidly tap on 'Build Number' five times and you will see the message 'You are now a developer!'
The critical thing is to get to 'Build number', and then tap rapidly until you see the message. Some OEMs make it seven- rather than five taps. Under Settings > General, you will now see 'Developer Options'. Enable this to access the options outlined below.
Once you have enabled the options, there is no obvious way to delete the Developer Options apart from factory resetting your handset. But you can easily set the Developer Options slider to off, and do no harm. (See also: Install Android L on Nexus 5 and Nexus 7.)
34 things you can do in Android Developer Options
I will list alphabetically these options and what they do. If you know of any other options, let me know in the comments below. If you don't understand any of what follows, you shouldn't be using that tool!
1. Animator duration scale: This setting changes the duration of the animations which take place when opening and closing the app menu.
2. Background process limit: Right down the bottom of the list, this option lets you set how many processes can run in the background at any one time.
3. Bluetooth HCI snoop log: The 'Enable Bluetooth HCI snoop log' allows you to capture and analyze Bluetooth HCI (Host Controller Interface) packets. Enabling this will places them for analysis in a file on the device storage (/sdcard/btsnoop_hci.log) for retrieval.
4. Bug report: Right at the top of the list you will find 'Take Bug Report'. Tapping this option surfaces the log files on your device, allowing you to send them wherever you wish to view them.
5. Debug GPU overdraw: GPU overdraw happens every time the application asks the system to draw something on top of something else. Debug GPU overdraw gives you information about this.
6. Desktop backup password: Android Developer Options allow you to backup and restore to and from your PC things such as apps and their associated data. This option requires a password for such backups.
7. Don't keep activities: Be very careful about using this setting: it force closes every application as soon as you leave its main view.
8. Enable OpenGL traces: A setting that records OpenGL errors. Enable OpenGL traces places errors in a log file of your choosing.
9. Force 4x MSAA: This setting forces multi-sample anti-aliasing (MSAA). This makes things look better, but puts more strain on the CPU / RAM.
10. Force GPU rendering: This setting forces apps to use hardware 2D rendering, even if they were written to not use it. It can make things look great, or it can temporarily bork your phone. Use with care.
11. Force RTL layout direction: This forces screen orientation for right-to-left language support. Useful principally for developers of multi-language apps.
12. Keep your phone awake: Check the 'Stay awake' opotion and the screen on your phone to stay on anytime and every time it is plugged in. Useful if you are working on Android development and find it annoying that the screen keeps timing out. But it won't do your screen any good in the medium term.
13. Mock locations: Hit the 'Allow Mock Locations' option, and you will be able to manually write location information. This is useful if you are developing an app that uses location information.
14. Pointer location: Places an information bar at the top of your screen that tells you the coordinates of the last place the screen was touched.
15. Power menu bug reports: This adds an option to the menu you see when you press and hold the power key, allowing you to collect and send a bug report.
16. Process stats: This is one of only a couple of options that remains enabled even when you switch off Developer Options. It shows you a tonne of data about what is going on in your smartphone or tablet.
17. Profile GPU rendering: This setting draws a graph - a visual rendering of how hard the GPU is working. You can either view onscreen or save to a file.
18. Select debug app: Choose an app, debug it.
19. Select USB configuration: Select how your Android device should react when it's connected to a PC over USB.
20. Select runtime: Here you can choose to use either Dalvik or ART. Important for developers creating apps to run on Android L. (See also: How to fix Wi-Fi problems with Android Lollipop.)
21. Show all ANRs: Makes every process show an 'App Not Responding' dialog if it hangs. Even if it is running in the background, which is useful if the app you are developing is interfering with another process, and you need to work out what is happening.
22. Show CPU usage: Allows you to view CPU information inscreen at all times.
23. Show GPU view updates: Enable this setting and any onscreen element drawn with GPU hardware is viewed with a red overlay.
24. Show hardware layer updates: Tells you when hardware layers update.
25. Show layout bounds: This useful tool marks the edges of all the elements in a dialog so you know where a touch will activate them.
26. Show surface updates: Selecting this option makes the edge of an onscreen window flash when its contents are updated.
27. Show touches: This option adds a visual cue on the screen wherever a touch is registered.
28. Simulate secondary displays: Allows you to simulate different screen sizes.
29. Strict mode enabled: Flashes the screen when an app uses the main thread to perform long and intensive operations.
30. Transition animation scale: This setting sets the speed for transition-animation playback.
31. USB debugging: Allows your Android device to communicate via USB to your computer via the Android Debug Bridge (ADB). You can also revoke USB debugging authorizations: When you use a computer to debug over USB for the first time, you have to authorize it and set up a keypair. This setting revokes that.
32. Verify apps over USB: Use this setting and Google scans apps you installed looking for malicious behavior.
33. Wait for debugger: Not enabled unless you are set up to debug an app. When enabled it prevents that app from starting until the debugger is attached.
34. Window animation scale: Sets the speed for window-animation playback.
Also see: Best Android tablets 2016.