ADB stands for "Android Debug Bridge".
It comes with the android 2.0 sdk and can be run from the windows command prompt or a mac/linux terminal.
In order to run ADB from your machine, you will need to set up the following in your android device :
Settings -> Application Settings -> Development
Be sure to have the "USB Debugging" box checked.
Once you have ADB and have your android device set for development, you can plug your android device into your computer by USB.
On a Mac or Linux machine, you will have to "cd" to the "Tools" directory, under wherever you located the "android-sdk-(mac or linux)" folder.
EX. On a mac you would do the following:
Now that you can start adb here is how you can use it. I pulled the following from my terminal:
-d - directs command to the only connected USB device
returns an error if more than one USB device is present.
-e - directs command to the only running emulator.
returns an error if more than one emulator is running.
-s <serial number> - directs command to the USB device or emulator with
the given serial number. Overrides ANDROID_SERIAL
-p <product name or path> - simple product name like 'sooner', or
a relative/absolute path to a product
out directory like 'out/target/product/sooner'.
If -p is not specified, the ANDROID_PRODUCT_OUT
environment variable is used, which must
be an absolute path.
devices - list all connected devices
connect <host>:<port> - connect to a device via TCP/IP
disconnect <host>:<port> - disconnect from a TCP/IP device
Here are the device commands:
adb push <local> <remote> - copy file/dir to device
adb pull <remote> <local> - copy file/dir from device
adb sync [ <directory> ] - copy host->device only if changed
(see 'adb help all')
adb shell - run remote shell interactively
adb shell <command> - run remote shell command
adb emu <command> - run emulator console command
adb logcat [ <filter-spec> ] - View device log
adb forward <local> <remote> - forward socket connections
forward specs are one of:
localabstract:<unix domain socket name>
localreserved:<unix domain socket name>
localfilesystem:<unix domain socket name>
dev:<character device name>
jdwp:<process pid> (remote only)
adb jdwp - list PIDs of processes hosting a JDWP transport
adb install [-l] [-r] <file> - push this package file to the device and install it
('-l' means forward-lock the app)
('-r' means reinstall the app, keeping its data)
adb uninstall [-k] <package> - remove this app package from the device
('-k' means keep the data and cache directories)
adb bugreport - return all information from the device
that should be included in a bug report.
adb help - show this help message
adb version - show version num
Here are some data optional commands:
(no option) - don't touch the data partition
-w - wipe the data partition
-d - flash the data partition
Here are some scripting commands:
adb wait-for-device - block until device is online
adb start-server - ensure that there is a server running
adb kill-server - kill the server if it is running
adb get-state - prints: offline | bootloader | device
adb get-serialno - prints: <serial-number>
adb status-window - continuously print device status for a specified device
adb remount - remounts the /system partition on the device read-write
adb reboot [bootloader|recovery] - reboots the device, optionally into the bootloader or recovery program
adb root - restarts the adbd daemon with root permissions
adb usb - restarts the adbd daemon listening on USB
adb tcpip <port> - restarts the adbd daemon listening on TCP on the specified port
Here are some networking commands:
adb ppp <tty> [parameters] - Run PPP over USB.
Note: you should not automatically start a PPP connection.
<tty> refers to the tty for PPP stream. Eg. dev:/dev/omap_csmi_tty1
[parameters] - Eg. defaultroute debug dump local notty usepeerdns
adb sync notes: adb sync [ <directory> ]
<localdir> can be interpreted in several ways:
- If <directory> is not specified, both /system and /data partitions will be updated.
- If it is "system" or "data", only the corresponding partition is updated.
From the above, you should be able to see that you can send adb commands from your machine to your android device using the following:
adb -s [yourdeviceserialnumberhere] shell
The above will start an interactive shell from your machine, but running on your device.
So if you "cd" to a directory, it will be on your device.
Use "ls" or "ls -l" to see what is in the directory that your are currently in.
If you wanna do some practice, you can "pull" some data from your device using:
adb -s [yourdeviceserialnumberhere] pull /system /somedirectoryonyourmachine
This will try and write all the files and folders from the "/system" directory on your android device,
to wherever you decide you want it on you machine.
Hope this throw a little more light on the adb commands and just a few of them are mainly used.
For more infos, please take a look at http://developer.android.com/guide/developing/tools/adb.html
Enjoy it ☺