分类: LINUX
2011-05-23 10:37:53
adb其实就是在android sdk的tools目录中的abd可执行文件,为了保证在什么地方都可以直接输入adb命令,需要在环境变量PATH中加入adb所在文件路径。
1. 查看设备
adb devices
这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示 ,下面就是显示结果:
List of devices attached
emulator-5554 device
其中emulator-5554就是abd中所列出的设备标示号。
2.安装软件
adb install
adb install <apk文件路径> :这个命令将指定的apk文件安装到设备上
例如: adb install -s emulator-5554 ./helloandroid.apk, 就是把当前目录的helloandroid.apk装入到emulator-5554这个设备中。
3. 卸载软件
adb uninstall <软件名>
adb uninstall -k <软件名>
如果加 -k 参数,为卸载软件但是保留配置和缓存文件.
如果删除模拟器自带的应用,权限就不够了,需要root权限,具体方法如下:
adb remount //重新mount分区的命令,让system分区从只读变成可读可写
adb shell rm /system/app/Music.apk
然后Music这个应用就在模拟器里面消失了,这时候直接进入android的系统目录里面 /system/app/直接删除文件也可以了。
4. 进入设备或模拟器的shell:
adb shell
通过上面的命令,就可以进入设备或模拟器的shell环境中,在这个Linux Shell中,你可以执行各种Linux的命令,另外如果只想执行一条shell命令,可以采用以下的方式:
adb shell [command]
如:adb shell dmesg会打印出内核的调试信息。
例如adb -s emulator-5554 shell, 进入设备emulator-5554的shell.
5. 发布端口
可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如:
adb forward tcp:5555 tcp:8000
6. 从电脑上发送文件到设备
adb push <本地路径> <远程路径>
用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机)
例如: adb push /media/data/enjoy/mp3/1.mp3 /data/app
把本地的一个mp3文件传到模拟器的/data/app目录里面。
7. 从设备上下载文件到电脑
adb pull <远程路径> <本地路径>
用pull命令可以把设备(手机)上的文件或者文件夹复制到本机电脑
例如:
adb pull /data/data/com.android.music/shared_prefs/Music.xml ./
把设备上的Music.xml 取到本地当前目录。
8、查看bug报告
adb bugreport
9、记录无线通讯日志
一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:
adb shell
logcat -b radio
10、获取设备的ID和序列号
adb shell
sqlite3
Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或 的状态。
可以通过下列几种方法加入adb:
下面对adb进行了介绍并描述了常见的使用.
.
在发布adb命令之前,有必要知道什么样的模拟器/设备实例与adb服务器是相连的。可以通过使用devices
命令来得到一系列相关联的模拟器/设备:
adb devices
[serialNumber] [state]
$ adb devices
List of devices attached
emulator-5554 device
emulator-5556 device
emulator-5558 device
如果当前没有模拟器/设备运行,adb则返回 no device
.
如上所示,给一个命令指定了目标实例,这个目标实例使用由adb分配的序列号。你可以使用 devices
命令来获得运行着的模拟器/设备实例的序列号
(aapt).
要注意的是,如果你正在使用Eclipse IDE并且已经安装过ADT插件,那么就不需要直接使用adb(或者aapt)去安装模拟器/设备上的应用程序。否则,ADT插件代你全权处理应用程序的打包和安装.
Category | Command | Description | Comments |
---|---|---|---|
Options | -d | 仅仅通过USB接口来管理abd. | 如果不只是用USB接口来管理则返回错误. |
-e | 仅仅通过模拟器实例来管理adb. | 如果不是仅仅通过模拟器实例管理则返回错误. | |
-s | 通过模拟器/设备的允许的命令号码来发送命令来管理adb (比如: "emulator-5556"). | 如果没有指定号码,则会报错. | |
General | devices | 查看所有连接模拟器/设备的设施的清单. | 查看 Querying for Emulator/Device Instances 获取更多相关信息. |
help | 查看adb所支持的所有命令。. | ||
version | 查看adb的版本序列号. | ||
Debug | logcat [ | 将日志数据输出到屏幕上. | |
bugreport | 查看bug的报告,如dumpsys , dumpstate ,和logcat 信息。 | ||
jdwp | 查看指定的设施的可用的JDWP信息. | 可以用 forward jdwp: 端口映射信息来连接指定的JDWP进程.例如: adb forward tcp:8000 jdwp:472 jdb -attach localhost:8000 | |
Data | install | 安装Android为(可以模拟器/设施的数据文件.apk指定完整的路径). | |
pull | 将指定的文件从模拟器/设施的拷贝到电脑上. | ||
push | 将指定的文件从电脑上拷贝到模拟器/设备中. | ||
Ports and Networking | forward | 用本地指定的端口通过socket方法远程连接模拟器/设施 | 端口需要描述下列信息:
|
ppp | 通过USB运行ppp:
需要提醒你的不能自动启动PDP连接. | ||
Scripting | get-serialno | 查看adb实例的序列号. | 查看 Querying for Emulator/Device Instances 可以获得更多信息. |
get-state | 查看模拟器/设施的当前状态. | ||
wait-for-device | 如果设备不联机就不让执行,--也就是实例状态是 device 时. | 你可以提前把命令转载在adb的命令器中,在命令器中的命令在模拟器/设备连接之前是不会执行其它命令的. 示例如下:adb wait-for-device shell getprop需要提醒的是这些命令在所有的系统启动启动起来之前是不会启动adb的 所以在所有的系统启动起来之前你也不能执行其它的命令. 比如:运用 install 的时候就需要Android包,这些包只有系统完全启动。例如:adb wait-for-device install上面的命令只有连接上了模拟器/设备连接上了adb服务才会被执行,而在Android系统完全启动前执行就会有错误发生. | |
Server | start-server | 选择服务是否启动adb服务进程. | |
kill-server | 终止adb服务进程. | ||
Shell | shell | 通过远程shell命令来控制模拟器/设备实例. | 查看 for more information. |
shell [ | 连接模拟器/设施执行shell命令,执行完毕后退出远程shell端l. |
命令程序来管理数据库。sqlite3
工具包含了许多使用命令,比如:.dump
显示表的内容,.schema
可以显示出已经存在的表空间的SQL CREATE结果集。Sqlite3还允许你远程执行sql命令.
通过sqlite3
, 按照前几节的方法登陆模拟器的远程shell端,然后启动工具就可以使用sqlite3
命令。当sqlite3
启动以后,你还可以指定你想查看的数据库的完整路径。模拟器/设备实例会在文件夹中保存SQLite3数据库. /data/data/
.
示例如下:
$ adb -s emulator-5554 shell
# sqlite3 /data/data/com.example.google.rss.rssexample/databases/rssitems.db
SQLite version 3.3.12
Enter ".help" for instructions
.... enter commands, then quit...
sqlite> .exit
当你启动sqlite3的时候,你就可以通过shell端发送 sqlite3
,命令了。用exit
或 CTRL+D
退出adb远程shell端.
documentation page.
文档页面
Shell Command | Description | Comments |
---|---|---|
dumpsys | 清除屏幕中的系统数据n. | (DDMS)工具提供了完整的调试、. |
dumpstate | 清除一个文件的状态. | |
logcat [ | 启动信息日志并且但因输出到屏幕上. | |
dmesg | 输出主要的调试信息到屏幕上. | |
start | 启动或重启一个模拟器/设备实例. | |
stop | 关闭一个模拟器/设备实例. |
,它对logcat命令有详细的描述 .
你也可以在你的电脑或运行在模拟器/设备上的远程adb shell端来使用logcat
命令,也可以在你的电脑上查看日志输出。
$ adb logcat
你也这样使用:
# logcat
Option | Description |
---|---|
-b | 加载一个可使用的日志缓冲区供查看,比如event 和radio . 默认值是main 。具体查看 |
-c | 清楚屏幕上的日志. |
-d | 输出日志到屏幕上. |
-f | 指定输出日志信息的 ,默认是stdout . |
-g | 输出指定的日志缓冲区,输出后退出. |
-n | 设置日志的最大数目 .,默认值是4,需要和 -r 选项一起使用。 |
-r | 每 时输出日志,默认值为16,需要和-f 选项一起使用. |
-s | 设置默认的过滤级别为silent. |
-v | 设置日志输入格式,默认的是brief 格式,要知道更多的支持的格式,参看 . |