ADB调试工具介绍

2010-05-31  王浩 

公司在做个android手机的项目,很多东西不能放上来,我把能放上来的东西跟大家共享一下。
有些能在网上搜索到,有些是我自己总结出来,希望对大家有用。
如果想深入讨论,可以给我留言在不泄露公司机密的情况下,我愿意和大家一起探讨。
另外,我是个菜鸟。刚接触android不久,只是要我做这一块,才写了个说明文档,下面要准备用这个工具测了。
下面是我做的说明文档,很简单,删了很多东西
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;}

ADB工具命令及用法

Android Debug Bridge, android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备。

主要可以进行的操作有:

1、快速更新设备或手机模拟器中的系统和应用。

2、运行shell命令;

3、管理设备或模拟器上的预定端口;

4、在设备或模拟器上复制,粘贴文件;

一.ADB环境的搭建。

       我们现在用的都是虚拟机,在安装SDK的时候就已经安装好了ADB,FTP上也有下载,是SDKtools文件夹里自带的一个工具。

       在运行ADB之前,一定要先启动你的虚拟机。如果使用手机请正确安装驱动让电脑能够识别(附件里有驱动)。

二.进入ADB的运行环境。

       点击开始—运行—输入cmd—回车。

       dos环境下进入tools文件夹:输入cd /d <你的tools文件夹的绝对路径>。以我的为例:cd /d E:\android\android-sdk-windows\tools。

       在这个文件夹中就可以对ADB进行命令的输入了。

三.ADB的一些常用命令介绍。

       我个人觉得在ADB里面的命令可以分成两种,一是ADB下的命令,二是adb shell中的命令,这个里面的命令和linux里面的命令是一样的,作用也是一样。

       下面对ADB下的命令做下逐一介绍。这些命令在输入adb help之后都可以看见。

adb -d仅通过USB接口来管理abd.如果不只是用USB接口来管理则返回错误。

-e仅仅通过模拟器实例来管理adb.如果不是仅仅通过模拟器实例管理则返回错误。

-s <serialNumber>通过模拟器/设备的允许的命令号码来发送命令来管理adb (比如: "emulator-5556").如果没有指定号码,则会报错。

 devices查看所有连接模拟器/设备的设施的清单。

help查看adb 所支持的所有命令。

version查看adb的版本序列号。

logcat [<option>][<filter-specs>]将日志数据输出到屏幕上。

bugreport查看bug的报告,如dumpsys , dumpstate ,logcat 信息

jdwp查看指定的设施的可用的JDWP信息。可以用 forward jdwp:<pid> 端口映射信息来连接指定的JDWP进程.例如:

adb forward tcp:8000 jdwp:472

jdb –attach

localhost:8000

install <path-to-apk>安装Android为(可以模拟器/设施的数据文件。apk指定完整的路径)。这个命令要注意,adb只提供了,安装命令,如果要卸载,只有在adb shell中使用rm命令删除,装好的apk包都会在/dadt/app文件夹下。

pull <remote> <local>将指定的文件从模拟器/设施的拷贝到电脑上。

push <local> <remote>将指定的文件从电脑上拷贝到模拟器/设备中。

forward <local> <remote>用本地 指定的端口通过socket方法远程连接模拟器/设施。

端口需要描述下列信息:

• tcp:<portnum>

• local:<UNIX domain socket name>

• dev:<character device name>

• jdwp:<pid>

ppp <tty> [parm]...通过USB运行ppp

• <tty> — the tty for PPP stream.For example dev:/dev/omap_csmi_ttyl

• [parm]...  &mdash zero or more PPP/PPPD options, such as defaultroute , local ,  notty , etc

get-serialno查看adb实例的序列号。

get-state查看模拟器/设施的当前状态。

wait-for-device 果设备不联机就不让执行,也就是实例状态是 device 时。

你可以提前把命令转载在adb的命令器中,在命令器中的命令在模拟器/设备连接之前是不会执行其它命令的. 示例如下:

 adb wait-for-device shell getprop

需要注意的是这些命令在所有的系统启动启动起来之前是不会启动adb 所以在所有的系统启动起来之前你也不能执行其它的命令。比如:运用install 的时候就需要Android包,这些包只有系统完全启动。例如:

 adb wait-for-device install <app>.apk

上面的命令只有连接上了模拟器/设备连接上了adb服务才会被执行,而在Android系统完全启动前执行就会有错误发生。

start-server选择服务是否启动adb服务进程。

kill-server终止adb服务进程。

这些都是介绍了一些常用的命令,本来ADB支持的命令并不是很多,所有的命令输入adb help之后都可以看见,且后面带有说明。

 

四.adb shell命令介绍

通过adb shell命令,就可以进入设备或模拟器的shell环境中,在这个Linux Shell中,你可以执行各种Linux 的命令,如果只想执行一条命令,而不进入shell可以输入adb shell cmd(命令名)

              在进入shell状态后,会出现大家熟悉的#符号,这时就可以输入linux命令了。

       一些基本的命令在adb shell里都是支持的,需要注意的是比如,rm命令,rom自带的一些软件和功能直接删是删不掉的,这时退出shell 输入 adb remount 把系统分区重新挂载为可写,然后进入shell就可以删文件了。

              adb shell中可以使用的命令,可以在进入adb shell 后输入:#cd /system/bin #ls

              然后就会出现在adb shell 中所有可以使用的shell命令。在linux环境下大家都很熟悉这些命令,就不多介绍了。

              这里介绍一些android特有的。

etprop 返回Android的所有系统属性。

getevent 打印所有的键盘和触摸事件。

logcat 输出日志。(SVN里有专门介绍logcat功能的文件,这里不多做介绍)

printenv 系统环境变量。

am 运行start/broadcast/instrument可以运行自动化测试代码(单元测试使用)。


不是技术贴,是水贴~~HOHO
有什么不清楚的大家一起讨论啊。

1621°/16195 人阅读/2 条评论 发表评论

李维敏  2010-05-31

虽然不是做android的,但是也学习了


罗晋军  2015-12-31

才转用Android Studio,好不习惯的说 debug倒是用过直接连云手机,有免费的,东西还行


登录 后发表评论