ADB is the acronym for Android Debug Bridge, which is part of the Android SDK (Software Development Kit). It uses a client-server-model (i.e.
adbd, the ADB daemon, is running on the device and can be connected to), and in most cases is used via an USB connection. It is also possible to use it via WiFi (wireless adb).
There's nothing you need to install on your Android device, as the ADB daemon (
adbd) is already integrated into the Android OS. It is usually accessed via a command line interface from the PC, where either the full Android SDK is installed (several 30 MB download archive currently), or a massively stripped-down version for "non-developers", sometimes referred to as "Mini ADB" or "ADB essentials" (for Linux, this is only the
adb executable; for Windows it's
adb.exe plus two or three
adb [-d|-e|-s <serialNumber>] <command>
(serialNumber is only needed if there are multiple devices connected at the same time, so you have to specify the target)
It would become a rather long answer to explain all the options/commands available to
adb. So I will only name some of the more important:
adb backup /
adb restore: To backup/restore your device, either single apps with/without their data, or data with/without their apps, up to a full backup of all apps and data, including system apps
adb push /
adb pull: copy files to/from the device
adb shell: open a shell on the device to execute commands directly
adb logcat /
adb bugreport: display the system log or generate a complete bug report including system log, device information and more
adb [un]install: (un) install an app
This is just a small selection. There are additional commands for scripting, and especially
adb shell has a lot of options (basically, all Linux and Java commands available on the device can be run through it).