Android DDMS allows one to take screenshot easily by clicking a button. However, sometimes a developer may want to take screenshot from the command line in order to automate it. This post discusses how we can do this and provides a java program at the end.

0. How DDMS Capture Screenshot

DDMS capture screenshots through Android Debug Bridge (adb). It creates adb client, which communicates with adb server. Both adb client and server runs on the developer’s machine. DDMS sends screenshot command through adb client to adb server, the adb server then communicates with the daemon process runs on Android phone or emulator to get a screenshot.

Note that one needs to enable USB debugging in order for DDMS to capture screenshot.

1. Capture Screenshot from Command Line

Android source code contains a program to capture screenshot, but one needs to compile by oneself.

The code uses similar way DDMS uses to capture screenshot. First, it initiates a Android Debug Bridge instance by calling the code below,

AndroidDebugBridge.init(false); //initialize the library

AndroidDebugBridge bridge = AndroidDebugBridge.createBridge();

The debug bridge will get a list of devices available. We can then query the list of devices by calling the code below,

IDevice[] devices = bridge.getDevices();

If there’s only one device available, we can proceed to screen capture by calling,

RawImage rawImage = device.getScreenshot();

If there’re multiple devices, one can select a device based on the serial number of the device. device.getSerialNumber() returns a string contains the serial number for the device.

2. Downloads

One can download the code from here or my github here. If you only want to executable, you can get it here. Note that you’ll need to rename the file from screenshot.jar.zip to screenshot.jar.

Below is a screenshot of a sample execution and the phone screen captured.

 
Figure 1. Execution of screenshot.jar


Figure 2. Screenshot Captured

References:
1. Android debug bridge: http://developer.android.com/guide/developing/tools/adb.html

 

4 comments on “A Program for Taking Screenshot for Android Device from Command Line

  1. Is there any sofware that takes the screens and gives the source code for that screens in Java, plz do reply fast, its my project work,& i m suppose to complete it within a week.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Set your Twitter account name in your settings to use the TwitterBar Section.