Whenever you create an android app or when you develop an Rom , it is important that you must deliver GOOD QUALITY APP or ROM , that are rid of Bugs ..Eventually you might come across a situation when your APP or ROM isn't working or it is bricking the device or some things are not working .These situation can be tackled only with a proper debugging tools ..So ADB ( android debug bridge) is a powerful Debugging tool and a tool which allows us to step through each line of code and examine the value of each variable.It offers us some of the powerful tools ..Debugging is not a big deal for the people who come from a JAVA programming background .Dalvik VM in android supports java debug wire protocol to attach to the device over ADB
ADB or ANDROID DEBUG BRIDGE is a command-line utility that is often used to communicate over the debug channel with a connected phone or virtual device (emulator). ADB can control your device over USB from a computer, copy files back and forth, install and uninstall apps, run shell commands, and more...
SETTING UP ADB :-
1) Install Java JDK :-
Before installing the Android SDK, you’ll have to install Oracle’s Java development kit. You can download it from here...(click me !!)
Even if you already have the Java runtime (JRE) installed, you’ll need to install the JDK as well.
After installing Java JDK , you can now download the Android SDK from Google .
NOTE:- If you see a any type of Java-related error during installation, then download and install the x86 version of the JDK, not the x64 one ..
If you used a different install location, you’ll find ADB in the platform-tools directory,inside your ANDROID-SDK directory .
Browse to platform tools and hold Shift and right-click inside it, and select Open command window here...
NOW YOU WILL SEE THIS :-
Note :- To use ADB with your Android device
1) you must enable USB debugging on it. You’ll find this option under Developer Options on your device’s Settings screen
2)You must install your device drivers :- Individual OEM USB drivers for windows are available for each manufacturer and are listed in the official document ..
After you have downloaded you device drivers, then we have to install on our pc. for that :-
a) connect the device to the computer
b) right click on MY COMPUTER and click manage
c) go to devices > other devices and right click on device and select update driver software.
d) you should see an option to " BROWSE MY COMPUTER FOR DRIVER SOFTWARE" , which you nedd to click on and point to the location of your device driver installation file..
To test whether ADB is working properly, connect your Android device to your computer using a USB cable and run the following command:
Now it will show the devices connected
Now you have sucessfully installed ADB and now we are good to go further..
WHAT IS A LOGCAT :-
Logcat is the command to view the internal logs of the Android system. Viewing logs is often the best way to diagnose a problem, and is required for many issues. This way you'll find out what apps are doing in the background without you noticing.
TAKING AN LOGCAT :-
Now type this in the terminal
adb logcat -v long > logcat.txt
adb logcat > logcat.txt
you shall have a log file called name of logcat.txt inside your ADB folder.
SOME OF THE USEFULL ADB COMMANDS :-
adb install C:\package.apk
– Installs the package located at C:\package.apk on your computer on your device.
EG -adb install G:\xda.apk
adb uninstall package.name
– Uninstalls the package with package.name from your device.
EG :- you’d use the name com.quoordy.xdadevelopers to uninstall the Xda developers app.
adb push C:\file /sdcard/file
– Pushes a file from your computer to your device. the command here pushes the file located at C:\file on your computer to /sdcard/file on your device .
EG :-adb push G:\system\framework\framework-res.apk /system/framework
adb pull /sdcard/file C:\file
– Pulls a file from your device to your computer – works like adb push, but in reverse. EG :-adb pull /system/app G:\rom\system\app\
– View your Android device’s log. Can be useful for debugging apps.
– Gives you an interactive Linux command-line shell on your device.
adb shell command
– Runs the specified shell command on your device.
Originally Posted by doctor_droid
When you guys are experimenting on a custom rom (i.e. nightlies, betas, RC's, "just cooked", etc.), it's very likely that your phone might not boot correctly, fear not and instead, try using ADB there are loads of guides regarding how to properly set-up your PC for using ADB, starting by the Android SDK's page itself :P lol
Now, to do the said logcat, open a command window and do:
C:\Users\Dark> cd \\sdk\platform-tools [Hit ENTER!]
C:\\sdk\plarform-tools> adb.exe devices (just to make sure your computer detected your phone lol)
C:\\sdk\plarform-tools> adb.exe logcat -v long > somefile.txt (the "-v long" part creates a nicely formatted file )
That's it!! Remember to zip the file if it's too big
Another tip: Some phones are very catchy when under heavy issues (like mine ) in those cases, timing is essential between rebooting and getting your log, however!!! The adb logcat command makes sure to wait for the device to get detected
The Dalvik Debug Monitor Service (DDMS) as it is known is one of the application debugging tools that must be a part of every ANDROID app developers's toolkit..This is very very useful to the app developers.Its is a very powerful debugging tool environment and offers various unparalleled debugging features like heap information , logcat monitoring , file manager.It is available by default in ECLIPSE IDE environment or even in the ANDROID SDK.It works on top of ADB for device communication..
DDMS can be stated as a standalone application as part of ANDROID DEVICE MONITOR.The Android Device Monitor is a standalone which can be used in case you do not use the eclipse development environment , though the integration with Eclipse is something that other IDE'S could be envious of.
HOW TO USE DDMS ??
1)AS EXPLAINED IN THE ABOVE POST , INSTALL ANDROID SDK....AFTER YOU HAVE INSTALLED PLATFORM-TOOLS & SDK TOOLS..NOW GO TO ANDROID FOLDER AND OPEN TOOLS
2)NOW RUN MONITOR.bat AS ADMINISTRATOR
3)NOW ANDROID DEBUG MONITOR WILL APPEAR ..
Now let's learn about its components and it's use's
DDMS VIEW COMPONENT'S :-
DDMS offers a set of view components , each of which show relevant information related to the connected Emulator.
The device panel shows the details of each process that are running in the connected device.There are various operations that can be performed from this panel.
Each of the icons present in this panel performs the functions as follow's :
Debug Process Icon :- It show's the state of connection of the debugger.
Update Heap :-Clicking on this enables Heap information for the process so that we do not have to do memory deallocation manually.
Dump HPROF :- Generates a Heap Dump , useful for tracing memory leaks in your app.
Cause GC :-Invokes the Garbage collector to collect heap data.
Update thread :-Show's the information about the running thread in the thread tad for selected process
Start Method Profiling :- Tracks the metric's related a method. It collects information like the amount of time taken to execute a method,number of calls.
Stop Process :-Stops the currently selected process.
Screen Capture :- Takes a screenshot of whatever is displayed on the screen.
Reset ADB :- Ast he name suggets,it resets ADB.
The thread tab on the right of devices view shows informatiom related to the thread for each process selected in the devices view.The information shown can described as follows.
ID :- A unique ID assigned to each thread dby Dalvik V,, which are only odd numbers that start from 3 .
Tid :-The linux thread associated with each thread , ehich matches the process ID for each main thread in a process.
Status :- Status of the thread in VM , out of daemons are marked with an asterix.other values can be among running?sleeping/init/starting.
the heap view show a information and statistics about memory heap .To view heap usage,follow these below steps
From the devices view,select the process for heap usage which has to be examined.
click on update heap
From heap Tab , select Cause GC to enable collecting heap data
Everytime you need to update your heap statistics.This will show you the amount of memory allocated to each
The allocation Tracker show a real time information about allocation happening in the application over a certain period of time.To enable allocation Tracking.
select the process to be tracked from device panel
click on start tracking from allocation tracker tab.
perform any actions on the devices or emulator that you want to be tracked.
click on Get Allocations objects, since tracking was enabled .
The network tab allows you to track and optimize the amount of network data your app is using.It even allows you to tag network sockets so that you can differentiate between types of data .It will indicate the speed and amount of data received /transmitted ..
EMULATOR CONTROL :-
One problem with testing Android devices using an emulator or developer device is the fact that it is unable to examine the performance of the app in the reak world conditions . like call or SMS is received/sent or when a particular location is reached.To be specific the emulator Tab allows you to to emulate the following real world conditions :
Telephony Status :- the following options are available to set the status of phones network.
Data :- unregistered,home,roaming,searching,denied.
Speed :- Full,GSM,HSCSD,GPRS,EDGE,UMTS,HSDPA.
Latency :- GPRS,UMTS
Telephony Actions :- Telephony actions allow you to spoof the network.
Location Settings ;- Emulator control allows you to sppof the location
FILE EXPLORER :-
As the name says it lets you view the directory and file structure if the device and lso easily copy files to and from the emulator so as to enable easy data transfer in a manner similiar to ADB or ADB pull command.
SYSTEM INFORMATION :-
As the name says , it give's us the particular information about the GPU load , CPU load....
1. ROOT IS NECESSARY !!
2. Enable USB debugging.
3. Install Wireless ADB from the play store
4. Activate it .
5. In your computer, open a command line (cmd.exe for windows), go to ADB's directory and type:
adb connect 192.168.0.3:5555
Keep in mind that the port (the :5555 part) is optional, the 5555 is the default one, usually you don't need to change it, unless you're using it
6. That's it ..!!
Go into Platform tools which can be found in your Android folder..
Hold shift button and right click ..Select "open cmd window here" in the pop-up window ...
Get Root Privileges ..
mount grep system
and then you'll get
mount grep system
Usage: mount [-r] [-w] [-o options] [-t type] device directory
Here fill the above command with neccesary system partition,appropriate device path and mount point ..Like
mount -o rw,remount -t yaffs /dev/block/stl12 /system
This is how it looks :
C:\Program Files (x86)\Android\android-sdk\platform-tools>adb shell
adb server is out of date. killing...
* daemon started successfully *
# mount grep system
mount grep system
Usage: mount [-r] [-w] [-o options] [-t type] device directory
Heads up notifications, in case you didn’t already know, are an experimental … more
15 Sep 2014
By Conan Troutman
XDA Developers was founded by developers, for developers. It is now a valuable resource for people who want to make the most of their mobile devices, from customizing the look and feel to adding new functionality. Are you a developer?