关于adb命令你所需要知道的

关于adb命令你所需要知道的.png

概述

Android Debug Bridge (adb) 是一个通用命令行工具,是 Android 开发/测试人员必备工具,关于adb的详细介绍可以查看谷歌 adb 官方中文文档 Android Debug Bridge, 这里只是总结了一下常用的命令

文章中涉及的命令说明

  • 文章中的命令只针对于连接一个设备的情况,如果连接多个设备,需要在 adb shell -s 后面指定设备序列号, 格式如下所示:
格式:
adb -s 225278f8 shell

获取设备序列号:
adb devices
  • <serial number> : 设备序列号
  • <package_name> : Apk 的包名
  • <local> : pc 端路径
  • <remote> : Android 设备上的路径
  • <filepath_in_device> : Android 设备的文件路径
  • <local_apk_path> : pc 端 apk 的路径
  • <package_name>/<main_class> : Apk包名 / 启动类,格式如下所示
格式:
google.architecture.universal/.ActivityMain

打开Apk,然后输入下面命令查看:
adb shell dumpsys window | grep mCurrentFocus

命令总结

以下所有命令参考谷歌 adb 官方文档 Android Debug Bridge,列出了经常用命令

常用命令

备注 命令
查看连接设备 adb devices
查看连接设备列表信息 adb devices -l
指定设备 adb -s <serial number> shell

上传文件和下载文件

备注 命令
将电脑上的文件上传的设备 adb push <local> <remote>
设备中的文件下载到电脑 adb pull <remote> <local>

安装和卸载应用

备注 命令
安装Apk adb install <local_apk_path>
安装Apk 并且授予Apk所有权限 adb install -g <local_apk_path>
覆盖安装Apk且保留数据 adb install <local_apk_path>
降级安装Apk adb install -d <local_apk_path>
卸载Apk adb uninstall <package_name>
卸载Apk且保留数据 adb shell pm uninstall -k <package_name>
静默安装应用 adb shell pm install -t -r <local_apk_path>
卸载所有应用(包括系统应用) adb shell pm uninstall -k --user 0 <package_name>

pm

备注 命令
显示第三放应用 adb shell pm list package -3
显示系统应用 adb shell pm list packages -s
显示apk文件路径和包名列表 adb shell pm list packages -f
查看apk路径 adb shell pm path <package_name>
清除数据和缓存 adb shell pm clear <package_name>

dumpsys

备注 命令
查看运行Apk的包名 adb shell dumpsys window | grep mCurrentFocus
查看Activity任务栈 adb shell dumpsys activity activities
查看堆的分配情况 adb shell dumpsys meminfo <package_name>
查看应用信息 adb shell dumpsys package <package_name>
获取设备显示屏参数信息 adb shell dumpsys window displays
清除bugreport信息 adb shell dumpsys batterystats --reset
从bugreport中过滤关键字信息 adb shell dumpsys batterystats | grep 关键字
进入dozeModel deep状态 adb shell dumpsys deviceidle force-idle
进入dozeModel light状态 adb shell dumpsys deviceidle force-idle light
退出dozeModel adb shell dumpsys deviceidle unforce
重新激活设备 adb shell dumpsys battery reset
退出充电状态 adb shell dumpsys battery unplug
禁用doze mode adb shell dumpsys deviceidle disable
adb shell dumpsys deviceidle whitelist

getprop

备注 命令
获取设备型号 adb shell getprop ro.product.model
获取设备的Android系统版本 adb shell getprop ro.build.version.release

wm

备注 命令
获取设备屏幕分辨率 adb shell wm size
获取设备屏幕密度(单位:dpi) adb shell wm density

调试命令

备注 命令
查看应用的进程 adb shell ps -ef | grep <package_name>
查看内存占用情况 adb shell ps | grep <package_name> | awk '{ print $2 }'
查看Activity的启动时间 ​adb shell am start -W <package_name>/<main_class>
强制关闭应用 ​adb shell am force-stop <package_name>
实时查看设备CPU、内存占用等信息 adb shell top
实时查看内存占用排名前number的应用 adb shell top -m <number>
为Apk跑number次monkey测试 adb shell monkey -v -p <package_name> <number>
获取设备的MAC地址 adb shell cat /sys/class/net/wlan0/address
获取设备的内存占用信息 adb shell cat /proc/meminfo

其他命令

备注 命令
查看日志 adb shell logcat | grep '关键字'
输出日志到log.txt文件 adb shell logcat | grep '关键字' > log.txt
截取屏幕 adb shell screencap -p <filepath_in_device>
录制屏幕 adb shell screenrecord -p <filepath_in_device>

常见问题汇总

列举一些常见问题,后续会不断完善

1. ubuntu 下使用 adb 出现 no permissions 问题解决方案

运行 sudo adb devices 出现下列情况

List of devices attached 
2aca417d    no permissions

如何解决 no permissions?

在未连接 Android 设备的情况下,运行命令 lsusb, 查看一下 ubuntu 下的 usb

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 413c:2113 Dell Computer Corp. 
Bus 001 Device 002: ID 413c:301a Dell Computer Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

连接 Android 设备, 打开 usb 调试模式,运行命令 lsusb, 查看一下 ubuntu 下的 usb

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 413c:2113 Dell Computer Corp. 
Bus 001 Device 002: ID 413c:301a Dell Computer Corp. 
Bus 001 Device 055: ID 18d1:4ee7 Google Inc. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

通过对比两个结果,可以查看到新连接的 Android 设备信息,注意其 ID 号,这里是18d1:4ee7

然后进入到 /etc/udev/rules.d/ 目录下,查看是否有 .rules 文件.没有则可以自己新建一个(名字可以随意取,不能有中文),添加端口信息到文件中

# 打开一个文件
sudo vim 51-android.rules

# 添加端口信息到51-android.rules
SUBSYSTEM=="usb",ATTRS{idVendor}=="18d1",ATTRS{idProduct}=="4ee7",MODE="0666"

这里 18d14ee7 则分别是上一步中查看到的 android 设备的信息,MODE 表示权限,完成之后执行下面命令

sudo chmod a+rx /etc/udev/rules.d/51-android.rules
sudo service udev restart

最后拔掉 usb 重新连接,然后在运行下面命令重启 adb 服务

sudo adb kill-server
sudo adb start-server
sudo adb devices

如果上述步骤都操作正确,运行 sudo adb devices 如下所示,就可以使用 adb 操作设备了

List of devices attached 
2aca417d  device

参考文献

结语

致力于分享一系列 Android 系统源码、逆向分析、算法相关的文章,每篇文章都会反复推敲,结合新的技术,带来一些新的思考,如果你同我一样喜欢 coding,一起来学习,期待与你一起成长

文章列表

Android 10 源码系列

工具系列

逆向系列

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,902评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,037评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,978评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,867评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,763评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,104评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,565评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,236评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,379评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,313评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,363评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,034评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,637评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,719评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,952评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,371评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,948评论 2 341