1、ADB是什么?
ADB,即Android Debug Bridge,它是Android提供的一个通用的调试工具。借助这个工具可以很好的调试开发程序。它是客户端/服务端架构的命令工具,主要分三个部分:
(1)adb客户端:运行在我们的开发机器上
(2)adb 服务器:在开发机器后台运行的进程
(3)adb daemon(守护进程):一个以后台进程形式运行于模拟器或物理手机设备上的守护进程
2、安装
adb.exe在安装的android的sdk开发包platform-tools目录下 (我的网盘/工作软件和jia包/测试工具/稳定性测试)
安装好后,将其添加到path环境变量中,就是adb的位置路径,然后在命令控制台输入“adb help”,如果出现adb的版本和帮助信息,则表示可以成功执行了。
3、为了使用adb控制,调试的android设备,用户需要使用USB数据线将PC和android手机设备连接到一起,然后手机设备的USB的调式模式需要开启。
4、ADB常用命令
* daemon not running; starting now at tcp:5037
* daemon started successfully
adb启动时会自动开启一个服务端进程,当服务端开启后,他会绑定本地的tcp端口5037,并且通过5037端口监听所有客户端发过来的命令。显示如上
1)adb devices
通过该指令了解目前连接设备/模拟器的状态的相关信息
状态信息包含以下3中不同的状态:
a、device状态:这个状态表示设备或模拟器已经连接到adb服务器上
b、offline状态:设备或模拟器没有连接到adb服务器上
c、no device状态:表示没有物理设备或模拟器链接
2)adb install
通过该指令是把测试的手机应用软件安装到连接的手机设备中
也可以使用adb -s武力手机设备序列号/手机模拟设备序列号 install 安装包路径
如:adb -s 8ebcdcb9 install C:Usersyunl....
说明:
a、重新安装需要将原先已安装的卸载
b、如果不想卸载而是覆盖,就需要在安装路径前加 -r 参数
c、如果同时连接了模拟器和手机设备,直接使用adb install就会报错
3)adb uninstall
卸载已安装的应用, adb -s物理手机设备序列号/手机模拟器设备序列号 shell pm uninstall -k 已安装的应用包名
4)adb pull
将手机上的文件传送到我们的电脑上,如adb pull /sdcard/error_fs.dat d:/
adb push 电脑上文件发送到手机设备上
5)获取手机系统版本信息:adb shell getprop ro.build.version.release
6)获取手机Android系统各个分区的相关信息:adb shell df
7)获取设备序列号:adb get-serialno
8)获取模拟器/设备当前状态:adb get-state
9)查看和跟踪系统日志:adb logcat
如果有多台,那么需要指定某一个设备执行adb –s 设备ID logcat
保存日志:adb –s 设备ID logcat 跟路径,如:>Desktoplog.txt
10)启动adb服务 adb start-server
11)关闭adb服务 adb kill-server
12)将本机的端口重定向到手机设备或模拟器端口上 adb forward tcp: 2211 tcp:5566
13)查找安装的包名:adb shell pm list package
过滤查询 adb shell pm list package | grep "android"
5、adb devices我常遇到的问题
adb devices 通过该指令了解目前连接设备/模拟器的状态的相关信息
但经常碰到的问题就是输入该命令,提示List of devices attached
解决如下:
首先必须关闭所有关于360的相关进程,先执行 adb start-server 启动adb服务 adb kill-server,如果还不行可能是需要将设备id加入到adb_usb.ini中
在计算机 设备管理器中---便携设备:必须使用USB连接
注意取的是设备管理器中的硬件ID(便携设备)
6、shell环境
Android本身就是一个linux环境,他有一个显著的特性就是命令行界面或者shell;shell环境使得用户能与操作系统的核心功能进行交互。
下图是shell扮演的角色:
他就像是一个壳,作用于用户和操作系统(kernel)中间,负责将命令解析成操作系统可理解的低级语言,同时将操作系统的响应信息转换成用户可以理解的形式显示。
adb -d shell:直接进入当前usb连接的设备的shell环境
adb -e shell:直接进入当前模拟器设备的shell环境