上一篇已经介绍了adb相关基本环境配置和常用的命令,本文会就adb常用命令、常遇到的一些问题以及一些拓展做简单介绍。
一、adb常用基础命令
1、adb devices:获取设备列表及设备状态
2、adb get-state:获取设备状态
设备状态有4种:device、offline、unknown、unauthorized
devices:设备正常连接
offline:连接出现异常,设备无响应
unknown:未正确连接设备
unauthorized:未授权--Android设备上会弹出”允许USB调试吗”的窗口,点击确认;
但有时该弹框一直没有弹出,重启Android设备和PC或者更换数据线等都没有解决(而使用其他PC都能正常使用),可以参考下面方法解决:
a) 删除C盘相关文件:通过计算机C盘路径找到两个文件adbkey和adb key.pub并进行删除;
b) Android设备撤销USB调试权限(手机开发者选项当中);
c) Android设备重新连接计算机:插拔数据线
d) 删除重启adb:
adb kill-server
adb start-server
e)开发者选项中打开adb调试权限,可以看到设备弹出授权弹框;
3、(2)中error: no devices/emulators found问题可能是adb端口5037(默认端口)被占用,下述方法可以参考:
关闭adb:adb kill-server;
启动adb:adb start-server;
查看adb是否有进程,5037端口是否被占用:adb nodaemon server,如果此时提示cannot bind 'tcp:5037',则5037端口被占用;
查看5037端口被哪个进程占用了:netstat -ano | findstr “5037”;
找出占用5037端口的线程名:tasklist | findstr “xxx”;
杀掉占用5037端口的进程:taskkill /pid xxx /f;
4、adb其他常用命令
1)开启或关闭adb服务
adb start-server:开启adb服务
adb kill-server:关闭adb服务
2)adb devices/adb devices -l/adb get-state:查看电脑是否连接设备
3)adb install:安装
adb install [-r/-t/-d/g] xxx.apk
-r :覆盖原来安装的软件,并保留数据
-t? : 安装过程中遇到Failure [INSTALL_FAILED_TEST_ONLY installPackageLI]
-d? :允许版本代码升级
-g? :授权所有运行时权限
连接多台设备时,指定某一台可以用:adb -s sn/序列号 install [-r/-t/-d/g] xxx.apk
安装包在android设备中:adb shell pm install apk在移动端的路径
4)adb uninstall:卸载
adb unstall xxx.apk
如果卸载设备中的应用,并希望保留配置和缓存文件
adb -s sn/序列号 shell pm uninstall -k 包名
5)adb pull : 将移动设备中的文件传送到PC中
adb pull 设备路径 PC路径
6)adb push :将PC中的文件传送到移动设备端
adb push PC路径 设备路径
7)adb logcat:查看日志
参考上一篇介绍:常用adb命令(超详细)-超实用哦-今日头条 (toutiao.com)
二、Shell相关指令:
1、查看设备相关内置信息
a)查看电池电量的相关信息:
adb shell dumpsys battery
b)查看无限网络信息:按“Q”停止显示后续输出信息
adb shell dumpsys wifi [| more]
c)查看电源管理相关信息:可以判断手机是否处于锁屏态
adb shell dumpsys power
d)获取包名和界面名:
adb shell dumpsys window | grep mFocusedApp
adb shell "dumpsys window | grep mCurrentFocus"
e)获取启动时间:
adb shell am start -W 包名
adb shell pm list packages 列出包名
adb shell pm clear <包名>
f)CPU使用情况:
查看当前系统CPU使用情况:下面命令是获取的是一段时间的均值
adb shell dumpsys cpuinfo
进程占用情况:top
adb shell top
adb shell top | grep "包名" —— 查看特定包性能
adb shell top -d 1 |grep "包名"
内存使用情况:
adb shell dumpsys meminfo
g)设置/获取设备端口号:
adb shell setprop service.adb.tcp.port 6666
adb shell setprop service.adb.tcp.port?
2、input相关指令
a)点击-点击屏幕上(666,1666)位置:
adb shell input tap 666 1666
b)输入发送文本-shuaiqi:
adb shell input text shuaiqi
c)滑动:2000为滑动时间,单位是毫秒
adb shell swip <起点x> <起点y> <终点x> <终点y> <滑动时长>
adb shell input swipe 666 1500 666 100 2000
备注:在小距离内,较长的持续时间滑动就是长按;
e)按键
返回键:adb shell input keyevent 4
home键:adb shell input keyevent 3
音量放大:adb shell input keyevent 24
音量缩小:adb shell input keyevent 25
.................................................
3、am相关命令
a)应用启动:
adb shell am start [-n/-s/-w] com.zhihu.android/.app.ui.activity.LauncherActivity
-n:启动应用
-s:停止目标应用再启动
-w:等待应用完成后再启动
启动电话拨打10010:
adb shell am start -a android.intent.action.CALL -d tel:10010
b)查看包名/启动监控:应用启动后都有操作记录
adb shell am monitor
c)结束应用:
adb shell am force-stop 包名
4、截屏
adb shell screencap -p /sdcard
5、获取设备的activity名
adb shell dumpsys package com.zhihu.android
6、pm相关命令
a)列出所有应用包名:
adb shell pm list package [ /-s/-3/-f/-i]?
-s:列出所有系统应用包名
-3:列出所有第三方应用包名
-f:列出应用的包名及安装来源
-i:关键字过滤应用包名
b)列出应用的详细信息:
adb shell pm dump com.zhihu.android
c)apk存放在手机安装应用:
adb shell pm install apk在移动端的路径