ADB工具就是Android Debug Bridge(安卓调试桥)tools。它是一个命令行窗口,用手机通过电脑端与模拟器或者真实设备交互。在某些特殊的情况下进入不了系统,adb就派上用场。
ADB是一个C/S架构的应用程序,由三部分组成:
● 运行在PC端的adb client:
命令行程序“adb”用于从shell或脚本中运行adb命令。首先,“adb”程序自动启动一个ADB服务器。接下来,当设备的adbd和PC端的adb server建立连接后,adc client就可以向ADB server发送服务请求
● 运行在PC端的adb server
ADB server是运行在主机上的最后一个后台进行。它的作用在于检测usb端口感知设备的连接和拔除,以及模拟器实例的启动或停止,ADB server还需要经adb client的请求通过usb或者tcp的方式发送到对应的adbd上
● 运行在设备端的常驻进程adb demon(abdb):
程序“adbd'作为一个后台进程在Android设备或模拟器系统中运行。它的作用是连接ADB服务器,并且为运行在主机上的客户端提供一些服务。
一、基本命令
查看adb的版本信息:adb version
启动adb:adb start-server
停止adb:adb kill-server
以root权限运行adb:adb root
指定adb server的网络端口:adb -P <port> start-server(adb的默认端口为5037)
设备连接管理:
I、usb连接:将设备与电脑通过usb线连接
II、adb命令连接:adb connect IP
查看已经连接的设备/模拟器列表:adb devices
如果有多个设备/模拟器连接,则需要为命令指定目标设备
adb -d:指定当前唯一通过USB连接的Android设备为命令指标 adb -e:指定当前唯一运行的模拟器为命令指标 adb -s:指定相应serialNumber好的设备/模拟器为命令指标二.常用命令
以手机为例,用USB线将手机与电脑连接,连接后手机打开开发者模式,接下来就可以在ADB工具上对手机进行操作
1.查看手机是否与ADB工具连接成功
命令:adb devices 输出格式: [serialNumber][state],serialNumber为连接设备的编号 运行结果: List of devices attached c16e0aa device---出现device说明连接成功 state有以下几种: offline——表示设备未连接成功或无响应 device ——设备已连接 no devies——没有设备/模拟器连接 unauthorized——未经允许的(手机没有允许打开开发者模式会出现) 常见异常输出: List of devices attached——没有设备/模拟器连接成功 List of devices attached——设备/模拟器未连接到adb或无响应2.手机重启
命令:adb reboot 运行结果: adb reboot 空行 手机重启了3.查看手机中的应用
命令:adb shell pm list packages [-3] 运行结果: adb shell pm list packages package:com.coloros.backuprestore package:com.oppo.logkitsdservice package:com.oppo.ctautoregist package:com.coloros.onekeylockscreen package:com.coloros.phonenoareainquire 在这个的基础上还可以加一些参数进行过滤查看不同的列表 无——所有应用 -f——显示应用关联的apk文件 -d——只显示disabled的应用 -e——只显示enabled的应用 -s——只显示系统应用 -3——只显示第三方应用 -i——显示应用的installer -u——包含已卸载的应用 也可以使用grep来顾过滤: adb shell pm list packages | grep <要过滤的字符串> 例如: 命令:adb shell pm list packages -3 运行结果: package:com.coloros.onekeylockscreen package:com.qiyi.video4.给手机安装apk
命令:adb install <下载好的安装包> 参数: -l——将应用安装到保护目录/mnt/asec -r——允许覆盖安装 -s——将应用安装到sdcard -d——允许降级覆盖安装 -g——属于多有运行时权限5.卸载应用
命令:adb uninstall <包名> 运行结果: adb uninstall net.csdn.csdnplus//卸载csdn Success 参数: -k——表示卸载应用但保留数据和缓存目录6.清楚数据应用与缓存
命令:adb shell pm clear <packagename> 运行结果: adb shell pm clear com.baidu.netdisk//清除百度的缓存数据 Success7.停止应用
命令:adb shell am force-stop <packagename> 运行结果: adb shell am force-stop com.tencent.qqmusic //停止运行QQ音乐 手机上QQ退出应用,后台也退出了8.复制手机的文件到电脑上
命令:adb pull <设备里的文件路径> [电脑上的目录]9.复制电脑里的文件到设备
命令:adb push <电脑上的文件路径> <设备里的目录>10.导出日志
命令:adb logcat [选项] [过滤项] [输出路径] 运行结果:adb logcat -v time >d:\log1.txt //以时间格式输出日志