安卓常用adb命令汇总

Posted shines_m

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓常用adb命令汇总相关的知识,希望对你有一定的参考价值。

  1. 连接安卓设备:adb connect [ip] 
  2. 查看连接的所有设备:adb devices 
  3. 获取android系统版本: adb shell getprop ro.build.version.release
  4. 进入安卓系统设置:adb shell am start com.android.settings/com.android.settings.Settings
  5. 停止adb服务:adb kill-server

与app相关

  1. 安装应用:adb install -r [apk文件路径]    (-r表示强制安装)
  2. 直接卸载应用:adb uninstall [apk包名]  
  3. 卸载app 但保留数据和缓存文件:adb uninstall -k [apk包名]
  4. 查看包名:aapt dump badging [apk文件路径] | findstr package (windows用“findstr ”, linux用"grep")
  5. 查看launchable-activity:aapt dump badging [apk文件路径]| findstr launchable-activity
  6. 清除app缓存:adb shell pm clear [包名]
  7. 杀掉app进程:adb shell am force-stop [包名]
  8. 获取设备日志:adb logcat >[文件保存路径]  (若连接了多个设备,则adb -s [ip] logcat )
  9. 获取单个应用日志:adb logcat |find "[apk包名]" >[文件保存路径]
  10. 查看某个应用启动时间:adb shell am start -W -n [包名]/[launchable-activity]

CPU相关

  1. 获取CPU核心数:adb shell cat /sys/devices/system/cpu/possible
  2. 获取某个CPU的最高运行频率:
    adb shell cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq  (cpu0可改成[0-最高的核数]
  3. 查看所有进程总体占用情况:adb shell top
  4. 查看每个应用cpu的详细占用情况:adb shell dumpsys cpuinfo
  5. 查看某个进程的线程数:adb shell cat /proc/[pid]/status | findstr Threads 
  6. 关掉某个进程的服务:adb shell pm disable [包名]

内存相关

  1. 获取设备总体内存数据:adb shell cat /proc/meminfo
  2. 获取整个系统的内存详情:adb shell dumpsys meminfo (后面+[pkg or pid],可获取单个应用的详细占用)
  3. 获取设备的pss/vss/rss/uss内存占用:adb shell procrank (需要有root权限)
  4. 应用启动后分配的初始堆内存:adb shell "getprop|grep dalvik.vm.heapstartsize"
  5. 单个应用的最大堆内存限制:adb shell "getprop|grep heapgrowthlimit"
  6. 单个java虚拟机的最大堆内存限制:adb shell "getprop|grep dalvik.vm.heapsize"

查看设备温度:

adb shell

cat sys/class/thermal/thermal_zone0/temp

查看电量信息

adb shell dumpsys battery

android adb 命令汇总

一. adb 常用命令

adb version --查看adb版本

adb devices–用来查看当前连接的设备,已连接的设备会显示出来

adb connect ip地址–用来连接设备

adb disconnect ip地址-- 断开设备

adb kill-server/start-server–终止adb服务/启动adb服务

logcat-- 查看日志
adb logcat -v time *:W |grep pid > /data/data/log.txt
adb pull /data/data/log.txt d:/log/
adb shell "logcat -v time *:W |grep pid " > d:/log/log.txt
adb logcat -c
日志的指令
logcat -v time -n 10 -r 102400 -f /sdcard/logcat.txt(一直发送)
logcat -v time -n 10 -r 102400 -f /sdcard/logcat.txt &(发送一次)

adb shell monkey -p com.xyy.vwill -s 100 10000–momkey测试 得到1个小时,设置次数可能在百万以上

monkey日志分析:
日志: app的日志(adb logcat :crash anr error等日志) monkey执行日志(执行过程,正常结束,异常结束,执行了哪些事件,执行时长)

adb shell svc wifi disable–关闭WiFi

adb shell svc wifi enable–开启WiFi

ping -c 1 -w 1 119.29.29.29/ping 119.29.29.29–ping网络动态

adb pull 文件路径 D:/file/20220421.txt(存放的文件路径和文件名)–连接设备,传输文件从设备传到电脑

adb push C:/users/desktop/gc2093_default_JX8006.json vendor/etc/camera/rkisp2/gc2093_YT-RV1109-2-V2_40IR-2MP-F20.json–从电脑传到设备端

当传输文件提示没有权限,需要获得权限 adb root adb remount

adb shell screencap -p /sdcard/screenshots/01.png/adb pull /sdcard/screenshots D:/file–adb命令截图

adb shell
su
wm density–查看设备密度

wm density 120–改密度

adb uninstall com.imstlife.anaerobic-- 卸载程序
adb install anaerobic.apk --安装(可以直接拖到文件到cmd里,cmd自动识别路径)

adb shell
su
am start -n com.cghs.stresstest/.StressTestActivity–设备压力测试

adb shell
su
chmod -R 777 vendor–权限

adb shell pm list packages–显示系统应用包名

adb shell pm list packages -3–显示第三方应用包名

查询手机cpu和内存信息
adb shell cat /proc/cpuinfo
adb shell cat /proc/meminfo
adb shell ps
adb shell kill pid

使用-c参数:adb shell ping -c 4 www.baidu.com,ping4次后停止ping:


adb shell netstat
网络统计。用来查看网络当前状态:

adb shell netcfg
通过配置文件配置和管理网络连接。命令行格式:netcfg [dhcp|up|down]

由于手机是6.0版本,提示该命令不存在。无法演示。通过查阅,要获取Android手机的IP地址,必须先保证你的Android手机已经连接到无线网络(此处的无线网络包括WiFi和WAPI,不包括3G或2G的移动网络)。执行如下命令:

先执行命令"adb shellnetcfg"

再执行命令 “adb shell ifconfigrmnet0”

不过如果想查询WiFi的IP地址,可以通过ip命令:adb shell ip -f inet addr show wlan0

adb 命令大全


adb 是什么,学习它有什么意义?
adb 其实就是 Android Debug Bridge, Android 调试桥的缩写,adb 是一个 C/S
架构的命令行工具,主要由 3 部分组成:
运行在 PC 端的 Client : 可以通过它对 Android 应用进行安装、卸载及调试
Eclipse 中的 ADT、SDK Tools 目录下的 DDMS、Monitor 等工具,都是同样
地用到了 adb 的功能来与 Android 设备进行交互。
PC 端的手机助手,诸如 360 手机助手、豌豆荚、应用宝等,其除了安装第三
方应用方便,其他的功能,基本上都可以通过 adb 命令去完成,这里建议
尽量不要在电脑上安装这类手机助手,因为其自带的 adb 程序可能会
与 Android SDK 下的 adb 程序产生冲突,5037 端口被占用,导致使用 adb
命令时无法连接到设备
运行在 PC 端的 Service : 其管理客户端到 Android 设备上 adb 后台进程的
连接
adb 服务启动后,Windows 可以在任务管理器中找到 adb.exe 这个进程
运行在 Android 设备上的 adb 后台进程
执行 adb shell ps | grep adbd ,可以找到该后台进程,windows 请
使用 findstr 替代 grep
这个进程是需要用户手动开启,打开方法:
1、在手机设置 → 关于手机 → 版本号 点击多次,直到提示已进入开发这
模式 ,然后退出这个页面,
2、手机设置→ 开发者选项 → 打开usb调试
学习的意义针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb
命令熟记于心, 将会为 Android 测试带来很大的方便,
其中很多命令将会用于自动化测试的脚本当中。
三、常用adb 命令
在终端输入 adb(配置好环境变量情况下) 或者 adb help,会自动弹出常用的
adb 命令列表,如图

重启adb服务
adb kill-server , adb start-server , 结束 adb 服务, 启动 adb 服务,通常两个命令
一起用
一般在连接出现异常,使用 adb devices 未正常列出设备, 设备状态异常时使用
kill-server,然后运行 start-server 进行重启服务
查看日志
adb logcat
Android 的日志分为如下几个优先级(priority):
V —— Verbose(最低,输出得最多)
D —— Debug
I —— Info
W —— Warning
E —— Error
F —— Fatal
S —— Silent(最高,啥也不输出)
如: adb logcat -s 标签名 只查看对应标签名日志
adb logcat *:d 只查看 D级别以上的日志
adb logcat *:d 标签名 只查看 D级别以上制定标签名的日志
安装、卸载应用
adb install 安装包路径 安装应用,覆盖安装是使用 -r 选项
如 adb install -r /Users/cbf/TCL/Demo/app/build/outputs/apk/app-debug.apk
(安装包名称尽量使用英文)
adb uninstall 对应包名 卸载应用 adb uninstall com.taobao.taobao (卸载淘
宝)将 Android 设备上的文件或者文件夹复制到本地
adb pull 如将 sdcard 目录下 pull.txt 文件拷贝到 D 盘: adb
pull sdcard/pull.txt d:
推送本地文件至 Android 设备
adb push 如:
adb push d:\\push.txt sdcard/ 注意: sdcard 后面的斜杠不能少,否则会出现下面
错误failed to copy ‘push.txt’ to ‘sdcard’: Is a directory
获取管理员权限
adb root
重现挂在手机文件系统为可读写状态
adb remount
adb root , adb remount 一般你想pull某个文件夹到电脑里,或者拷贝某个文件到
手机某个目录下,提示你没有读写权限时,使用这个两个命令重现挂载系统文件
夹为可读写状态
重启手机
adb reboot
查看bug报告
adb bugreport , 打印dumpsys、dumpstate、logcat的输出,也是用于分析错误
android 7.0以后手机才能用,输入命令比较多,建议重定向到一个文件中
adb bugreport > d:\\bugreport.log
获取设备的状态
adb get-state 设备的状态有 3 钟,device , offlfline ,
unknown device:设备正常连接
offlfline:连接出现异常,设备无响应
unknown:没有连接设备
四、常用 adb shell 命令
adb 命令是 adb 这个程序自带的一些命令,而 adb shell 则是调用的 Android 系统中的命令,这些 Android 特有的命令都放在了 Android 设备的 system/bin 目录
下,大家可以通过进入到该文件夹下,通过cat 命令发现这些其实都是通过shell 来
实现的. 如cat am

  1. 按键事件
    input text input a string to device
    input keyevent <event_code> send a Key Event to device
    如: adb shell input keyevent 26 (PowerKey)
    input tap , 对屏幕发送一个触摸事件
    adb shell input tap 500 500 点击屏幕上坐标为 500 500 的位置
    input swipe , 滑动事件
    adb shell input swipe 900 500 100 500
    从右往左滑动屏幕
    如果版本不低于 4.4 , 可以模拟长按事件
    adb shell input swipe 500 500 501 501 2000
    其实就是在小的距离内,在较长的持续时间内进行滑动,最后表现出来的结果就
    是长按动作
    到这里会发现,MonkeyRunner 能做到的事情,通过 adb 命令都可以做得到,如
    果进行封装,会比 MR 做得更好。
  2. am命令
    am start : start an Activity
    如 : am start -n com.android.calculator/com.android.calculator2.Calculator
    这里有个小技巧,如果事先不知道应用的包名和 activity的名称,进入到应
    用界面然后通过命令
    adb shell dumpsys activity activities | grep mFocusedActivity 查看前台activity获
    取activity名称。
    am broadcast 发送一个广播 am startservice 启动一个服务
    am force-stop 结束应用
    am kill 结束应用
    am kill-all
    am start , 启动一个 Activity,已启动系统相机应用为例
    启动相机
    $ adb shell am start -n com.android.camera/.Camera
    先停止目标应用,再启动
    $ adb shell am start -S com.android.camera/.Camera
    等待应用完成启动
    $ adb shell am start -W com.android.camera/.Camera
    启动默认浏览器打开一个网页
    $ adb shell am start -a android.intent.action.VIEW -d http://www.baiddu.com
    启动拨号器拨打 10086
    $ adb shell am start -a android.intent.action.CALL -d tel:10086
    更多詳细用法请见am 使用帮助.
    还有很多的选项,自己多多发掘~~
  3. pm 命令
    pm list packages
    -f: see their associated fifile 列出应用包名及对应的apk名及存放位置
    -s: fifilter to only show system packages 列出系统应用
    -3 ilter to only show third party packages 列出第三方应用
    pm list packages [-f] [-d] [-e] [-s] [-e] [-u] [FILTER]“);
    pm list permission-groups
    pm list permissions [-g] [-f] [-d] [-u] [GROUP]”);
    pm list instrumentation [-f] [TARGET-PACKAGE]"); 列出含有单元测试 case
    的应用
    pm list features
    pm list libraries
    pm path PACKAGE 列出对应包名的 .apk 位置 如列出qq对应apk的位置
    adb shell pm path com.tencent.mobileqq
    pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] [-s] [-f] PATH 安装
    android设备里的apk文件 如 pm install /sdcard/1111.apk
    pm uninstall [-k] PACKAGE 根据包名 卸载apk
    pm clear PACKAGE 根据包名清楚应用数据
    pm enable PACKAGE_OR_COMPONENT
    pm disable PACKAGE_OR_COMPONENT
    pm disable-user PACKAGE_OR_COMPONENT
    pm set-install-location [0/auto] [1/internal] [2/external] 设置应用安装位置
    pm get-install-location 获取应用安装位置
    参数组合使用,例如,查找三方应用中 qq 的包名、apk存放位置、安装来
    源:
    adb shell pm list package -f -3 -i qq

package:后是apk的路径地址 = 后面是包名 install = 代表来源 这里null 表示
是未知来源
更多詳细用法,请见pm使用帮助.
4、screencap 截图命令
adb shell screencap -p /sdcard/screen.png
截屏,保存至 sdcard 目录
5、screenrecord 4.4 新增的录制命令
adb shell screenrecord sdcard/record.mp4
6. dumpsys
dumpsys activit
dumpsys activity intents
dumpsys activity broadcasts
dumpsys activity providers
dumpsys activity services
dumpsys activity activities
dumpsys activity processes
dumpsys window
dumpsys window windows
dumpsys window tokens
dumpsys window sessions
dumpsys window policy
dumpsys window input
dumpsys statusbar
dumpsys notifification
dumpsys package [ ]
dumpsys location
dumpsys alarm
dumpsys connectivity
dumpsys wififi
……等等
7. ime 输入法管理
ime list [-a] [-s]
list command prints all enabled input methods
-s option to see only a single summary line of each.
-a option to see all input method
五、参考资料
http://www.cnblogs.com/bravesnail/articles/5850335.html
https://github.com/mzlogin/awesome-adb (很全面)

以上是关于安卓常用adb命令汇总的主要内容,如果未能解决你的问题,请参考以下文章

安卓adb常用命令

android adb 命令汇总

常用的安卓手机adb命令总结

ADB网络调试和常见命令

adb常用命令

adb常用命令