adb running in a terminal

You hear the phrase "adb" thrown around a lot in Android forums and blogs.  We're guilty of it, too.  But what exactly is adb, and why do you need (or not need) to use it? 

According to Google "Android Debug Bridge (adb) is a versatile tool lets you manage the state of an emulator instance or Android-powered device."  That certainly sounds like Google, doesn't it?  To put it simply, adb is two different applications -- one running on your computer (Windows, Linux or Mac) and one running on your phone.  When your phone is connected, and USB debugging is enabled, you can issue commands and communicate with the phone using your computer screen and keyboard. 

Your Android phone uses a modified Linux kernel and tools as a base.  This means that quite a few Linux commands can be sent via the adb server (the one running on your computer) to the adb client (the one running on your phone) and they will be executed.  In our example picture, I've sent the "top" command over the wire to my phone, and my phone sent me back the information and printed it to my terminal. 

This can be awfully handy for debugging things that aren't going right, as well sending those weird commands you need when you're hacking away in the middle of the night.  Chances are, if you aren't actively debugging something or trying to break hack at your phone, you won't have much use for adb.  And that's OK -- there's more than one way to have fun with an Android device. 

If you do have a use for adb, be sure to check out the Android Central forums for tips and tricks about using it.

Learn more in the Android Dictionary!

Rate this tip:
Average: 1 (3 votes)
There are 15 comments

icebike says:

The funny part is after you read Jerry's description, then, (and only then) Google's definition starts to make sense. Still, you'd have to believe their definition was purposely obfuscated.

jelly roll says:

How's Natty narwhal going for you, Jerry? I absolutely hate it. What about you?

I'm still using 10.4 :p

I like my phones bleeding edge, but my computers all use LTS releases. They're harder to restore lol.

Leif says:

Arch? :P

Although I'm currently running 11.04. :(

jhotmann says:

adb has saved my phone from peril countless times. Gotta love being a command line ninja!

mjneid says:


anyway, i'm glad you guys posted this, i've been in a two day debate with a member over @ XDA on how important ADB is. At XDA OF ALL PLACES ! ! !

Anyway glad you posted, love you, love the show, keep up the good work.

briankurtz79 says:

Do they make an adb for dummies book? Imma need one if so.

wpavlik2 says:

Or heck, even an O'Riley's book on ADB. (Lemmie go check Amazon)

wpavlik2 says:

Or heck, even an O'Riley's book on ADB. (Lemmie go check Amazon)

uberspeed says:

Great article Jerry, as usual sir.

crxssi says:

Ug, the link you posted: "adb-basics-windows-only.html", is exactly what it says. So much for Linux or Mac users :(

mjneid says:

the commands are exactly the same, the only difference is the way you set ADB up and get the ./adb server running.

RandolphF says:

Three applications, not two. As the Google documentation itself says:

It is a client-server program that includes three components:

A client, which runs on your development machine. You can invoke a client from a shell by issuing an adb command. Other Android tools such as the ADT plugin and DDMS also create adb clients.
A server, which runs as a background process on your development machine. The server manages communication between the client and the adb daemon running on an emulator or device.
A daemon, which runs as a background process on each emulator or device instance.

If you care about this subject, there is no substitute for reading Google's own docs on it.

Angelworks says:

Kind of amusing how everyone in the tips/tricks forum is banned ;).

Now if I could only get adb to recognize my rooted phone....weird huh? Shows up on desktop, can transfer files, but once I rooted abd no longer sees it.