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.mzph.cn/news/196628.shtml

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

相关文章

三种定时器的实现方式

一、Scheduled Schedule是Spring框架提供的一种简单的定时任务调度方法,通过注解的方式即可实现定时任务的调度。它适用于简单的定时任务需求,例如每隔一段时间执行一次任务或者在特定时间执行任务。Scheduled可以轻松地集成到Spring应用中,…

LangChain的函数,工具和代理(四):使用 OpenAI 函数进行标记(Tagging) 提取(Extraction)

在上一篇博客LangChain中轻松实现OpenAI函数调用 中我们学习了如何使用Pydantic来生成openai的函数描述对象,并且通过在langchain中调用Pydantic生成的函数描述变量来轻松实现openai的函数调用功能,在此基础上今天我们再介绍两个非常实用的功能&#xff…

2024年,Rust和Go学哪个更好?

Rust vs. Go,在2024年,应该选择哪一个?或者说应该选择哪种语言——GoLang还是Rust。这可能是许多程序员在选择语言时考虑的一个问题。选择理想的编程语言被视为在这个不断变化的环境中取得成功的重要抉择。 GoLang和Rust是当今使用的最年轻的…

【黑马甄选离线数仓day08_会员主题域开发】

1. 会员主题域需求说明 1.1 各类会员数量统计 说明:公司为了对不同会员进行不同的营销策略,对各类会员的数量都非常敏感,比如注册会员、消费会员、复购会员、活跃会员、沉睡会员。不仅需要看新增数量还要看累积数量。 指标:新增…

二十九、微服务案例完善(数据聚合、自动补全、数据同步)

目录 一、定义 二、分类 1、桶(Bucket)聚合: 2、度量(Metric)聚合: 3、管道聚合(Pipeline Aggregation): 4、注意: 参与聚合的字段类型必须是: 三、使用DSL实现聚合 聚合所必须的三要素: 聚合可配…

考研数学 每日一题

考研数学 每日一题

【Linux】初识云服务器 -- 使用 XShell 远程登录 Linux

Linux 是一款企业级后台操作系统,命令行方式交互,开源。 搭建属于自己的 Linux 服务器:我是直接选择购买的腾讯云轻量级服务器(CentOS 7.6),不贵又相对方便,可以直接上手使用,不需要…

Elasticsearch:为现代搜索工作流程和生成式人工智能应用程序铺平道路

作者:Matt Riley Elastic 的创新投资支持开放的生态系统和更简单的开发者体验。 在本博客中,我们希望分享 Elastic 为简化你构建 AI 应用程序的体验而进行的投资。 我们知道,开发人员必须在当今快速发展的人工智能环境中保持灵活性。 然而&a…

JavaEE之多线程编程(一):基础篇

文章目录 一、关于操作系统一、认识进程 process二、认识线程三、进程和线程的区别(重点!)四、Java的线程和操作系统线程的关系五、第一个多线程编程 一、关于操作系统 【操作系统】 驱动程序: 如:我们知道JDBC的驱动程…

Python 潮流周刊#29:Rust 会比 Python 慢?!

△请给“Python猫”加星标 ,以免错过文章推送 你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。本周刊开源,欢迎投稿[1]。另有电报频道[2]作为副刊,补充发布更加丰富的资讯。 &#x1f43…

【数据结构】手撕排序NO.1

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 一、排序的概念及其运用1.1 排序的概念1.2 常见的算法排序 二、 冒泡排序三、直接插入排…

【电源专题】什么是电源管理

电源管理为什么重要? 在电子系统和电路的设计中,负载往往需要恒定的电流电压,所以最先考虑的就是电源电路的设计。电源管理所考虑的问题是如何将电源有效分配给系统的不同组件,保障系统不同的负载正常运行。 如电源的输入是交流 (AC) 或直流 (DC)?输入电压是高于或低于输…

RedHat8 安装部署DzzOffice协同办公平台+onlyoffice(docker)以及问题解决(亲测可用,花费2天)

一、基础配置(MysqlDzzoffice) 1:安装软件需要的环境,我们用LAMP的环境。基本上CentOS8自带的软件版本都达到安装DzzOffice的要求。 2:关闭防火墙(不关的话需要开放80端口自行决定)。 systemctl disable --now fire…

HarmonyOS引入其他包,以引入请求axios为例

安装文件 安装文件位置: 总目录的oh-package.json5文件 dependencies:生产环境–上线运行时候必须需要的包 devDependencies:开发环境–开发适合为了方便提高效率的包。 包管理工具 OHPM CLI 作为鸿蒙生态三方库的包管理工具,支持OpenHar…

Facebook引流怎么做?写个脚本就好!

在当今的数字化时代,流量对于任何一个网站或应用程序来说都至关重要,Facebook,作为全球最大的社交网络平台,无疑是一个获取流量的绝佳场所,但是,如何有效地从Facebook引流呢?写个脚本就好了! 在本文中&am…

Python字符串模糊匹配工具:TheFuzz 库详解

更多资料获取 📚 个人网站:ipengtao.com 在处理文本数据时,常常需要进行模糊字符串匹配来找到相似的字符串。Python的 TheFuzz 库提供了强大的方法用于解决这类问题。本文将深入介绍 TheFuzz 库,探讨其基本概念、常用方法和示例代…

什么是Overlay网络?Overlay网络与Underlay网络有什么区别?

你们好,我的网工朋友。 在传统历史阶段,数据中心的网络是以三层架构(核心、汇聚、接入)为基本标准。 但是随着技术的发展,不同的厂家有不同的组建方式,比如说在核心层、汇聚层和接入层增加虚拟化技术。 …

Maven项目目录结构

项目结构 目录说明.ideaIDEA工具的配置文件.mvn用于运行Maven项目src源码文件夹target字节码文件夹.gitignore配置git忽略文件HELP.md自述文件mvnw运行Maven命令(Linux)mvnw.cmd运行Maven命令(Windows)pom.xml依赖管理文件 如图…

从零开始入门Zapier:与ChatGPT双剑合璧,手把手教程让你进入AI与自动化新纪元

coments 1. 1. 打开Zapier的官方界面 登录之后,会出现一个调查表,可以根据自己的情况进行选择。 第一次注册成功,会送你14天的免费体验