ADB命令集锦

在测试APP时,我们常常会用到adb命令来协助测试,那么adb命令到底是什么?有什么用?怎么用?

今天张老师整理了一些工作中常用的adb知识点,希望对大家有所帮助。

ADB学习全攻略

ADB是什么?

adb即Android Debug Bridge(安卓调试桥)。它就是一个命令行窗口,用于电脑端与模拟器或者真实设备交互。

常用操作有:

  • 把文件发送到android设备,或从android拖拽文件到本地
  • 在android设备上安装/卸载应用
  • 启动应用
  • 把APP的日志导出到本地
  • 截屏、录像

思考:

上面说的这几点能否有其他方式替代,若有,区别是什么?

ADB怎么使用?

1、adb是无需安装的。找度娘搜索adb,然后下载工具压缩包,解压并添加环境变量,然后就可以在dos环境下使用了。

2、之后,用usb连接电脑和手机(或模拟器),并开启Android 设备的开发者选项和 USB 调试模式。

3、此时就可以在dos窗口输入cmd devices 命令检查是否可以正常使用了。

常见问题

adb devices 没有设备:可借助驱动精灵检查手机驱动,驱动安装好之后重启电脑。

adb devices unauthorized :解决办法:将手机设置->辅助功能->开发者模式->撤销usb调试授权,重新打开开发者模式。

常用命令

1、查看adb版本

adb version

2、查询pc链接的所有android 设备

adb devices

3、装包

如果在电脑D盘下面有个a.apk文件,只需要一行命令就安装到手机上:

adb install d:/a.apk

如果已经安装了这个程序,可以通过以下命令覆盖安装:adb install -r d:/a.apk

保留数据和缓存文件,重新安装 apk adb install -r a.apk

安装包在android设备中

adb shell pm install apk在移动端的路径

4、卸载包

adb uninstall 包名

卸载软件但是保留配置和缓存文件:

adb uninstall -k 包名

如果机器上有多个模拟器或真机,需要使用-s命令行参数指定具体的模拟器或真机。例如,下面的命令分别在模拟器和真机上安装、重新安装和卸载应用程序。

在emulator-5554模拟器上安装ebook.apk

adb -s emulator-5554 install ebook.apk

在真机上安装ebook.apk

adb -s HT9BYL904399 install ebook.apk

在emulator-5554模拟器上重新安装ebook.apk

adb -s emulator-5554 install -r ebook.apk

在真机上重新安装ebook.apk

adb -s HT9BYL904399 install -r ebook.apk

在emulator-5554模拟器上卸载ebook.apk(不保留数据和缓冲目录)

adb -s emulator-5554 uninstall ebook包名

在真机上卸载ebook.apk(保留数据和缓冲目录)

adb -s HT9BYL904399 uninstall -k ebook包名

5、包管理,如何知道一个app包名呢

包名(Package name)在Android系统中是判断一个App的唯一标识,不同的App可以有同样的名字,但是它的包名不可以相同。

例如我们可以自己编译生成一个App也叫“微信”,但是我们的App的包名不能为com.tencent.mm

(微信的包名为这个),如果指定的包名和微信一致,那么手机上只允许安装这两个App中的其中一个。说到这很多人就会有疑问,如果有人恶意做了一个和微信内容一模一样的App,名字和包名都和微信一样,那怎么分辨呢?Android中为了防止这样的情况,还做了一个叫签名的东西,微信的签名一般我们是没有的,所以就可以通过签名来标识出这款App到底是谁的了。

1、看源代码。当有源代码的时候,可以到工程目录下的 “AndroidManifest.xml”文件下查看package这一项。

2、adb命令查看列出手机装的所有 app 的包名:

adb shell pm list packages

3.列出系统应用的所有包名:

adb shell pm list packages -s

4.列出除了系统应用的第三方应用包名:

adb shell pm list packages -3

5.推测一个包中可能带有的关键字:

adb shell dumpsys activity | findstr mFocusedActivity

6.清除应用数据与缓存

adb shell pm clear 应用包名

6、文件相关

1、接收电脑文件

语法:adb push local remote

案例:adb push d:/a.txt /sdcard/

把电脑 D 盘下的 a.txt 文件推送到手机 sdcard 目录下

2、上传文件到电脑

语法:adb pull remote local

案例:adb pull /sdcard/a.txt d:/ 上传位于/sdcard/目录下的 a.txt 文件到电脑的 D 盘根目录下

7、截屏、录屏

1.截屏

adb shell screencap /sdcard/a.png

adb shell /system/bin/screencap -p /sdcard/a.png

2.使用adb进行屏幕录像

adb shell screenrecord /sdcard/a.mp4

通过ctrl+c停止录制,你可以在sdcard目录下查看。妈妈再也不担心我到处找录制视频的软件了。

8、shell

进入shell adb shell

退出shell

exit

9、手机信息收集

获取序列号

adb get-serialno

获取 MAC 地址

adb shell cat /sys/class/net/wlan0/address

查看设备型号

adb shell getprop ro.product.model

查看 Android 系统版本

adb shell getprop ro.build.version.release

查看屏幕分辨率

adb shell wm size

查看屏幕密度

adb shell wm density

查看permissions adb shell pm list permissions

查看系统的危险权限dangerous permissions adb shell pm list permissions -d -g

10、adb服务器杀死和启动

adb kill-server

adb start-server

场景:比如希望移动adb文件夹,或者adb命令得不到想要的内容时

11、与进程相关:

列出当前进程

adb shell ps | findstr 包名

杀死某个包的进程

adb shell am force-stop 包名

12、与性能相关的一些内容

获取内存:

adb shell dumpsys meminfo 包名

获取cpu:

adb shell dumpsys cpuinfo | findstr 包名

adb shell top -n 1 | findstr 包名

获取流畅度相关:

adb shell dumpsys gfxinfo 包名

13、app的启动停止

如果想在模拟器或真机上运行已安装的应用程序,除了直接在模拟器或真机上操作外,还可以使用如下的命令直接运行程序。

activity的获取方式见14条。

在emulator-5554模拟器上运行ebook.apk

adb -s emulator-5554 shell am start -n net.blogjava.mobile.ebook/net.blogjava.mobile.ebook.Main

在真机上运行ebook.apk

adb -s HT9BYL904399 shell am start -n net.blogjava.mobile.ebook/net.blogjava.mobile.ebook.Main

其中Main是ebook.apk的主Activity。相当于Windows应用程序的主窗体或Web应用程序的主页面。am是shell命令。

14、与Activity操作等相关

1.查看当前显示的activity adb shell dumpsys activity | findstr "mFocusedActivity"

结果: mFocusedActivity: ActivityRecord{93a4f9 u0 com.youdao.note/.activity2.MainActivity t36}

注意:我们只需要这一部分:com.youdao.note/.activity2.MainActivity即包名+activity

2.找到当前手机内的top Activity:

adb shell dumpsys activity top | findstr ACTIVITY

3.启动某一个Activity: adb shell am start activity路径

adb shell am start com.youdao.note/.activity2.MainActivity

15、查看8080端口是哪个应用占用

netstat -ano|findstr "8080"

原文发布于微信公众号 - 软件测试经验与教训(udatest)

原文发表时间:2018-09-06

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏跟着阿笨一起玩NET

TF卡格式化8G格式化时候变成128KB的解决办法

我的8GC6卡,APPS2SD后,因为不满意分区容量,所以就想删除分区重新分配容量. 删除分区方法:我的电脑---管理---磁盘管理--里删除了EXT3分区,...

4652
来自专栏zaking's

走进webpack(3)-- 小结

  写这一系列的文章,本意是想要梳理一下自己凌乱的webpack知识,只是使用过vue-cli,修改过其中的一部分代码,但是对于一个简单项目从0开始搭建webp...

3627
来自专栏Golang语言社区

golang基于redis lua封装的优先级去重队列

作者: 峰云 博客: http://xiaorui.cc 前言: 前两天由于某几个厂商的api出问题,导致后台任务大量堆积,又因为我这边任务流系统会重试超时任务...

4229
来自专栏Timhbw博客

防止WordPress后台被暴力破解

2017-04-0613:34:01 发表评论 955℃热度 WordPress作为使用人数最多的博客系统,一直是大家关注的焦点,不安好心的人找漏洞,钻空子爆...

5276
来自专栏CodingBlock

Mac下搭建Eclipse Android开发环境

  之前一直是用windows搞android开发,但windows这个性能也真是让人醉了,终于一狠心,砸锅卖铁买了Mac。然后就开始在Mac上搭建androi...

40010
来自专栏乐百川的学习频道

在虚拟磁盘中安装Windows Server 2016

说起来我一直没有安装过Windows服务器版的系统,所以最近想尝试一下Windows Server 2016,这个最新的Windows服务器系统。当然如果是家用...

5556
来自专栏河湾欢儿的专栏

pc移动中常用的meta标签

字符编码:声明文档使用的字符编码 相对于这种方式,更推荐你(推荐使用HTML5的声明方式)。

1035
来自专栏小樱的经验随笔

Kali Linux 下安装中文版输入法

1.更新软件源: 修改sources.list文件: vim /etc/apt/sources.list 或者 leafpad /etc/apt/sources...

3945
来自专栏魏艾斯博客www.vpsss.net

一款 windows 英文面板-Winginx 安装和配置过程

当下 windows 服务器的使用数量还是不少的,为了在网站上线之前测试程序可用性,很多人会在本地 windows 系统中安装使用 windows 面板来搭建 ...

1622
来自专栏大前端开发

微信小程序之内嵌网页(webview)

微信小程序提供了新的开放能力!它终于开放了在小程序中内嵌HTML页面的功能!从微信小程序基础库1.6.4开始,我们就可以在小程序内放置一个<web-view>组...

4283

扫码关注云+社区

领取腾讯云代金券