Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1071307
  • 博文数量: 277
  • 博客积分: 8313
  • 博客等级: 中将
  • 技术积分: 2976
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-22 11:25
文章分类

全部博文(277)

文章存档

2013年(17)

2012年(66)

2011年(104)

2010年(90)

我的朋友

分类: 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:

  • 在设备上运行shell命令
  • 通过端口转发来管理模拟器或设备
  • 从模拟器或设备上拷贝来或拷贝走文件

下面对adb进行了介绍并描述了常见的使用.

Contents

查询模拟器/设备实例

 .

查询模拟器/设备实例

在发布adb命令之前,有必要知道什么样的模拟器/设备实例与adb服务器是相连的。可以通过使用devices 命令来得到一系列相关联的模拟器/设备:

adb devices

• 作为回应,adb为每个实例都制定了相应的状态信息:

每个实例的输出都有如下固定的格式:

[serialNumber] [state]

下面是一个展示devices 命令和输出的例子 :

$ 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插件代你全权处理应用程序的打包和安装.

CategoryCommandDescriptionComments
Options-d仅仅通过USB接口来管理abd.如果不只是用USB接口来管理则返回错误.
-e仅仅通过模拟器实例来管理adb.如果不是仅仅通过模拟器实例管理则返回错误.
-s 通过模拟器/设备的允许的命令号码来发送命令来管理adb (比如: "emulator-5556").如果没有指定号码,则会报错.
Generaldevices查看所有连接模拟器/设备的设施的清单.查看 Querying for Emulator/Device Instances 获取更多相关信息.
help查看adb所支持的所有命令。. 
version查看adb的版本序列号. 
Debuglogcat [将日志数据输出到屏幕上. 
bugreport查看bug的报告,如dumpsys , dumpstate ,和logcat 信息。 
jdwp查看指定的设施的可用的JDWP信息.可以用 forward jdwp: 端口映射信息来连接指定的JDWP进程.例如: 
adb forward tcp:8000 jdwp:472 
jdb -attach localhost:8000
Datainstall 安装Android为(可以模拟器/设施的数据文件.apk指定完整的路径). 
pull  将指定的文件从模拟器/设施的拷贝到电脑上. 
push  将指定的文件从电脑上拷贝到模拟器/设备中. 
Ports and Networkingforward  用本地指定的端口通过socket方法远程连接模拟器/设施端口需要描述下列信息:
  • tcp:
  • local:
  • dev:
  • jdwp:
ppp  [parm]...通过USB运行ppp:
  •  — 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.

需要提醒你的不能自动启动PDP连接.

 
Scriptingget-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 .apk
上面的命令只有连接上了模拟器/设备连接上了adb服务才会被执行,而在Android系统完全启动前执行就会有错误发生.
Serverstart-server选择服务是否启动adb服务进程. 
kill-server终止adb服务进程. 
Shellshell通过远程shell命令来控制模拟器/设备实例.查看  for more information.
shell []连接模拟器/设施执行shell命令,执行完毕后退出远程shell端l.

 命令程序来管理数据库。sqlite3 工具包含了许多使用命令,比如:.dump 显示表的内容,.schema 可以显示出已经存在的表空间的SQL CREATE结果集。Sqlite3还允许你远程执行sql命令.

通过sqlite3 , 按照前几节的方法登陆模拟器的远程shell端,然后启动工具就可以使用sqlite3 命令。当sqlite3 启动以后,你还可以指定你想查看的数据库的完整路径。模拟器/设备实例会在文件夹中保存SQLite3数据库. /data/data/ /databases / .

示例如下:

$ 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 CommandDescriptionComments
dumpsys清除屏幕中的系统数据n. (DDMS)工具提供了完整的调试、.
dumpstate清除一个文件的状态.
logcat [启动信息日志并且但因输出到屏幕上.
dmesg输出主要的调试信息到屏幕上.
start启动或重启一个模拟器/设备实例. 
stop关闭一个模拟器/设备实例. 

 ,它对logcat命令有详细的描述 .

你也可以在你的电脑或运行在模拟器/设备上的远程adb shell端来使用logcat 命令,也可以在你的电脑上查看日志输出。

$ adb logcat

你也这样使用:

# logcat

    •  
    •  
    •  
    •  
    •  
    •  
    •  

  •  
  •  
  •  
  •  
  •  
  •  
  •  

  •  
  •  
  •  

在默认状态下,Android系统有stdout 和 stderr (System.out 和System.err )输出到/dev/null ,在运行Dalvik VM的进程中,有一个系统可以备份日志文件。在这种情况下,系统会用stdout 和stderr 和优先级 I.来记录日志信息

OptionDescription
-b 加载一个可使用的日志缓冲区供查看,比如event 和radio . 默认值是main 。具体查看
-c清楚屏幕上的日志.
-d输出日志到屏幕上.
-f 指定输出日志信息的 ,默认是stdout .
-g输出指定的日志缓冲区,输出后退出.
-n 设置日志的最大数目 .,默认值是4,需要和 -r 选项一起使用。
-r  时输出日志,默认值为16,需要和-f 选项一起使用.
-s设置默认的过滤级别为silent.
-v 设置日志输入格式,默认的是brief 格式,要知道更多的支持的格式,参看 .

阅读(2903) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~