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 -35.推测一个包中可能带有的关键字:
adb shell dumpsys activity | findstr mFocusedActivity6.清除应用数据与缓存
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.png2.使用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 ACTIVITY3.启动某一个Activity:
adb shell am start activity路径
adb shell am start com.youdao.note/.activity2.MainActivity
15、查看8080端口是哪个应用占用
netstat -ano|findstr "8080"

 感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

 

 

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/247315.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1.nacos注册与发现及源码注册流程

目录 概述nacos工程案例nacos服务注册案例版本说明本地启动 nacos-server搭建 spring cloud alibaba 最佳实践服务注册案例服务订阅案例 nacos注册源码流程源码关键点技巧 结束 概述 通过本文,学会如何确定项目组件版本(减少可能出现的jar包冲突),nacos…

网络类型解析(基础):探索通信世界的多样面貌

在当今数字化时代,网络已经成为人们生活和工作中不可或缺的一部分。从个人设备之间的直接通信到全球范围的数据传输,不同类型的网络为我们提供了多种连接方式和通信选择。透过对这些网络类型的解析,我们将更好地理解它们的特点、优势和适用场…

二值图像分割统一项目

1. 项目文件介绍 本章为二值图像的分割任务做统一实现,下面是项目的实现目录 项目和文章绑定了,之前没用过,不知道行不行 data 文件夹下负责摆放数据的训练集测试集inference 负责放待推理的图片(支持多张图片预测分割)run_results 是网络训…

gitlab-jenkins-shell-helm-chart-k8s自动化部署微服务

1.准备好编译环境的容器,所有容器的镜像制作在gemdale-dockerfile这个代码库里面,也可以直接拉取官方镜像部署 docker run --name node1420-patternx -v /data/var/www/:/data/var/www/ -v /var/jenkins_home/:/var/jenkins_home/ -v /mnt/hgfs/:/mnt/h…

postgresql pg_hba.conf 配置详解

配置文件之pg_hba.conf介绍 该文件用于控制访问安全性,管理客户端对于PostgreSQL服务器的访问权限,内容包括:允许哪些用户连接到哪个数据库,允许哪些IP或者哪个网段的IP连接到本服务器,以及指定连接时使用的身份验证模…

MySQL数据备份

一、逻辑备份 备份的是建表、建库、插入等操作所执行SQL语句,适用于中小型数据库,效率相对较低。 本质:导出的是SQL语句文件 优点:不论是什么存储引擎,都可以用mysqldump备成SQL语句 缺点:速度较慢&…

由11月27日滴滴崩溃到近两个月国内互联网产品接二连三崩溃引发的感想

文章目录 知乎文分析微信聊天截图微信公众号 滴滴技术 发文k8s 官方文档滴滴官方微博账号 近两个月国内互联网产品“崩溃”事件2023-10-23 语雀崩溃2023-11-12 阿里云崩溃2023-11-27 滴滴崩溃2023-12-03 腾讯视频崩溃总结 我的感想 知乎文分析 最近连续加班,打车较…

天池XGBoost,重写柱状图代码,标签编码

天池XGBoost 地址 重写柱状图代码:我没考虑复杂度,只考虑直观理解 原文统计地点是否降雨来画柱状图实在是太麻烦了,我重写了一下。最麻烦的就是数据处理。我的思路是: 首先取下雨的全部数据data[data[RainTomorrow] Yes] 然后…

SpringBoot——嵌入式 Servlet容器

一、如何定制和修改Servlet容器的相关配置 前言: SpringBoot在Web环境下,默认使用的是Tomact作为嵌入式的Servlet容器; 【1】修改和server相关的配置(ServerProperties实现了EmbeddedServletContainerCustomizer)例如…

Http和WebSocket

客户端发送一次http请求,服务器返回一次http响应。 问题:如何在客户端没有发送请求的情况下,返回服务端的响应,网页可以得服务器数据? 1:http定时轮询 客户端定时发送http请求,eg&#…

IntelliJ IDEA图形安装教程

IntelliJ IDEA图形安装教程 之前开始Java程序,一直用的eclipse,觉得还可以。一直听说IntelliJ IDEA比eclipse好用很多,但因为比较懒,也没有学习使用。机缘巧合下,尝试用了下,顿时有种相见恨晚的感觉&#…

17:00面试,17:06就出来了,问的问题有点变态。。

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到8月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%,…