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:
1
Average: 1 (3 votes)
 

Reader comments

Android 201: What is adb?

15 Comments

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.

LINUX FTMFW ! ! ! !

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.

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

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

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.
--http://developer.android.com/guide/developing/tools/adb.html

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

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.