I was writing an article this week for my upcoming Locals Only column at Search Engine Land (“Google Instant Provides A Hint For Local & Mobile Optimization“), and I experienced the mildly flummoxing issue of being unable to take screen grabs from my Android phone (I use an HTC Thunderbolt ‘droid) to use as examples in the article. I followed the instructions found on a few webpages and forums which described how to go about it in a seemingly-straightforward manner, but after following their instructions, I seemed to keep getting an error where the software (called “DDMS”) just kept closing right after launch. It would start opening a window which would just blink closed immediately. Galling.
I discovered what the solution to the problem was, so I thought I’d share it here. I saw a number of people on other forums and sites which described the same exact issue where the Android software would seem to crash on launch, mystifying them. No one seemed to post any solutions.
Getting screencaps from your Android cellphone would seem to be something very easy to accomplish, but it’s an ellusive function. There are Android apps which provide this functionality, but they require you to have root admin access on your phone. Rooting your phone shouldn’t be necessary, just to get a screengrab! While I’m confident I could do this without breaking my phone’s core functionality, it apparently negates warranty and goes against the phone’s terms and conditions.
The solution most sites list requires that you load the Android developer toolkit, or “SDK”, which is used by those who want to program apps for Droid phones. As part of the development kit, there are a couple of ways to obtain screengrabs (App pages in the Marketplace often show a few representative screen grabs of the app interfaces, so developers would naturally need to be able to obtain the screen caps without having to photograph their phones separately.) In one method, I believe that one can launch an Android emulator on one’s PC, then perform a normal screen grab, just as you would traditionally — using a desktop application or hitting ALT-PRINTSCREEN, then pasting into some paint or image-saving program. The other, better method allows you to obtain the screengrab directly through your mobile phone when it’s connected to your PC with the USB cord, through the developer toolkit debugger software.
Here are the steps I used to get my Android screen shots:
- You should download and install the Android drivers on your PC if you have not done so already. Usually, once you plug in your phone to your USB port, a Windows PC will offer to search for the driver software for you. Different hardware phones and networks may have different drivers. I had already installed Verizon’s driver for mine, and then also tried installing HTC’s driver.
- On your Android phone, select Settings and then go to Applications -> Development and enable “USB Debugging”.
- Download the Android SDK package of files/software from the developer site at: http://developer.android.com/sdk/index.html
- Unzip the files and install them. Notice where you install the files on your machine.
- Download and install the Java JDK developer toolkit at: http://www.oracle.com/technetwork/java/javase/downloads/index.html
All you need is the JDK, not the bundles that include other things.
- Plug in your Android phone to the USB port.
- Find the directory on your PC where you installed the Android SDK files. In it, open the “tools” subdirectory and then doubleclick “DDMS” or “DDMS.bat” to launch the software. On my system, a window for “cmd.exe” opens, along with another window for the Dalvik Debug Monitor. It can take a minute for the Debug monitor to open.
- On your phone, navigate to the screen you want to capture, then in the Dalvik Debug Monitor window, go to the “Device” menu at the top of the interface, then select “screen capture” from the menu. You can fine-tune the window state you want to grab by clicking the “Refresh” button in the debug monitor window to coincide with the thing happening on the phone screen which you wish to capture.
- Once you have the image you want, click the “Copy” button, then click “Done” to close the window out.
- Now, you can past the captured image into the image software of your choice and save it. Voila! You’ve now got a screen grab directly off of your Android phone.
I highlighted Step #5 above, “Install Java JDK”, because that step seemed to be neglected by a number of other the webpages explaining how to get screengrabs from Androids. Perhaps some sites assumed that one would know to do this as a dependency of the Android SDK installation, but for many others, leaving out this key instruction makes the entire set of instructions infuriatingly faulty.
Leaving out this key step caused the debugging software to refuse to launch for me.
Hopefully, my set of instructions will help you troubleshoot and fix your problems in getting DDMS to execute without promptly closing after launch. I actually had to use another piece of software to video everything happening on my desktop’s screen, so I could slow it down enough to read the error message and respond to it.
Please post a comment below if this helped you to successfully get screen grabs from your Android mobile phone!