adb(Android Debug Bridge,Android调试桥)常用命令

说到 ADB 大家应该都不陌生,即 Android Debug Bridge,Android 调试桥,身为 Android 开发的我们,熟练使用 ADB 命令将会大大提升我们的开发效率, ADB 的命令有很多,今天就来整理下我在开发常用到的一些 ADB 命令。

ADB 的安装这里就不多说了,输入以下命令有如下提示就证明你环境ok,否则自行网上搜索解决下。

基本用法

  • adb version – 查看版本
$ adb version

Android Debug Bridge version 1.0.36
Revision 8f855a3d9b35-android
  • adb [-d|-e|-s <serialNumber>] <command> – adb 命令的基本语法 如果有多个设备/模拟器连接,则需要为命令指定目标设备。

参数

含义

-d

指定当前唯一通过 USB 连接的 Android 设备为命令目标

-e

指定当前唯一运行的模拟器为命令目标

-s

指定相应 serialNumber 号的设备/模拟器为命令目标

在多个设备/模拟器连接的情况下较常用的是 -s 参数,serialNumber 可以通过 adb devices 命令获取。如:

$ adb devices

List of devices attached
cf264b8f    device
emulator-5554   device

#输出里的cf264b8f 和 emulator-5554 即为 serialNumber。比如这时想指定 cf264b8f 这个设备来运行 adb 命令获取屏幕分辨率:

adb -s cf264b8f shell wm size

遇到多设备/模拟器的情况均使用这几个参数为命令指定目标设备,下文中为简化描述,不再重复。

  • adb start-server/adb kill-server– 启动/停止 Server

一般来说,这两个命令基本不会用到,因为只要设备连接正确,会自动启动 adb server 的,不过大家也需要知道这俩命令。

  • adb -P <port> start-server – 指定 adb server 的网络端口

设备连接

  • adb devices – 查看连接设备
eg:
adb devices

#通过USB:
List of devices attached
02ae0c1021089daf       device

#通过IP:(会有一个端口号,一般都是5555)
List of devices attached
192.168.123.104:5555    device
  • adb connect <device-ip-address> – 通过 IP 地址连接设备
eg:
adb connect 192.168.123.104
#会提示:
connected to 192.168.123.104:5555
  • adb disconnect <device-ip-address> – 断开无线连接

应用管理

  • adb install [-l\-r\-s\-d] <path_to_apk> – 安装应用

参数

含义

-l

将应用安装到保护目录 /mnt/asec

-r

允许覆盖安装允许覆盖安装

-s

将应用安装到 sdcard

-d

允许降级覆盖安装

eg:
    adb install
    adb install /Users/storm/temp/demo.apk
    adb install -r demo.apk
    adb install -s demo.apk

#安装成功
[100%] /data/local/tmp/1.apk
    pkg: /data/local/tmp/1.apk
Success

#安装失败
[100%] /data/local/tmp/map-20160831.apk
        pkg: /data/local/tmp/map-20160831.apk
Failure [INSTALL_FAILED_ALREADY_EXISTS]

#adb install 内部原理简介

#adb install 实际是分三步完成:

#push apk 文件到 /data/local/tmp。

#调用 pm install 安装。

#删除 /data/local/tmp 下的对应 apk 文件。

#所以,必要的时候也可以根据这个步骤,手动分步执行安装过程。
  • adb uninstall [-k] <packagename> – 卸载应用

表示应用的包名,-k 参数可选,表示卸载应用但保留数据和缓存目录。

eg:
adb uninstall com.qihoo360.mobilesafe
#表示卸载 360 手机卫士。
  • adb shell pm clear <packagename> – 清除应用数据与缓存

表示应用名包,这条命令的效果相当于在设置里的应用信息界面点击了「清除缓存」和「清除数据」。

eg:
adb shell pm clear com.qihoo360.mobilesafe
#表示清除 360 手机卫士的数据和缓存。
  • adb shell pm list packages [-f/-d/-e/-s/-3/-i/-u] [FILTER] – 查看应用列表

参数

显示列表

所有应用

-f

显示应用关联的 apk 文件

-d

只显示 disabled 的应用

-e

只显示 enabled 的应用

-s

只显示系统应用

-3

只显示第三方应用

[FILTER>]

包名包含 字符串

eg:
    #系统应用
    adb shell pm list packages -s

    #第三方应用
    adb shell pm list packages -3

    #包名包含某字符串的应用
    adb shell pm list packages mazhuang

    #当然也可以使用 grep 来过滤:
    adb shell pm list packages | grep mazhuang
  • adb shell am force-stop <packagename> – 强制停止应用
eg:
adb shell am force-stop com.qihoo360.mobilesafe
#表示停止 360 安全卫士的一切进程与服务。

文件管理

  • adb pull <设备里的文件路径> [电脑上的目录] – 复制设备里的文件到电脑 其中 电脑上的目录 参数可以省略,默认复制到当前目录。
  • adb push <电脑上的文件路径> <设备里的目录> – 复制电脑里的文件到设备

模拟按键/输入

  • adb shell input keyevent <keycode> – 模拟按键/输入

keycode

含义

3

HOME键

4

返回键

5

打开拨号应用

6

挂断电话

24

增加音量

25

降低音量

26

电源键

27

拍照(需要在相机应用里)

64

打开浏览器

82

菜单键

85

播放/暂停

86

停止播放

87

播放下一首

88

播放上一首

122

移动光标到行首或列表顶部

123

移动光标到行末或列表底部

126

恢复播放

127

暂停播放

164

静音

176

打开系统设置

187

切换应用

207

打开联系人

208

打开日历

209

打开音乐

210

打开计算器

220

降低屏幕亮度

221

提高屏幕亮度

223

系统休眠

224

点亮屏幕

231

打开语音助手

276

如果没有 wakelock 则让系统休眠

eg:
#电源键
adb shell input keyevent 26

#菜单键
adb shell input keyevent 82

#HOME 键
adb shell input keyevent 3

#返回键
adb shell input keyevent 4

#音量加/减/静音
adb shell input keyevent 24/25/164

#滑动解锁(参数 300 1000 300 500 分别表示起始点x坐标 起始点y坐标 结束点x坐标 结束点y坐标)
adb shell input swipe 300 1000 300 500

#在焦点处于某文本框时,可以通过 input 命令来输入文本
adb shell input text hello

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏DeveWork

WordPress 网站开发“微信小程序”实战(二)

本文是“WordPress 开发微信小程序”系列的第二篇,本文记录的是开发“DeveWork极客”小程序v1.1 的过程。一如既往,目标读者为了解WordPre...

2957
来自专栏向治洪

Mac 高效工作指南

序 很多做开发的程序员,都喜欢用mac,其绚丽的外观,加上手感体验,很适合开发和装逼用。其实除了这些为什么那么多程序员喜欢用mac呢,分析了一下使用mac的好处...

62510
来自专栏向治洪

Flutter环境搭建

这几年,移动跨平台的趋势可以说是越来越明显,技术实现上也是百花争艳,不过究其实现,无外乎有那么几种。 Web 流:也被称为 Hybrid 技术,它基于 Web ...

4877
来自专栏Java帮帮-微信公众号-技术文章全总结

WordPress你要会用

WordPress你要会用 虽然是PHP开发的,但不能忽律它的简单化 WordPress介绍 WordPress是一种使用PHP语言开发的博客平台,用...

4495
来自专栏沈唁志

几款常见的PHP模板引擎

2924

Eclipse的BIRT:使用Design Engine API

假设您已经在名为“customers”的报告设计文件中将表格定义为报告项目。顾名思义,该表格用于显示示例数据库中的所有客户。此外,它还有一个用于按照国家来对项目...

2672
来自专栏Youngxj

[黑客工具箱]Android手机抓包工具

6.2K4
来自专栏Java Web

SpringBoot技术栈搭建个人博客【前台开发/项目总结】

先吐槽一句..写页面是真的不擅长,然后限于时间的问题,我开始考虑换用Bootstrap来完成页面的编写,因为时间有限(我得在实习完之前把所有页面开发完),学习V...

2955
来自专栏前端黑板报

(转)一探前端开发中的JS调试技巧

前言:调试技巧,在任何一项技术研发中都可谓是必不可少的技能。掌握各种调试技巧,必定能在工作中起到事半功倍的效果。譬如,快速定位问题、降低故障概率、帮助分析逻辑错...

2946
来自专栏自动化测试

手机APP自动化之小白进阶_python

导语 本文介绍用python实现登录微信并发送公众号留言的几种方式,包括遇到的一些问题及解决方法,也附录了一些觉得很全面有用的资料,供想了解app自动化测...

4204

扫码关注云+社区

领取腾讯云代金券