草庐IT

adb 常用命令,面试必问

雨水的早晨 2023-04-08 原文

本文为在霍格沃兹测试开发学社中学习到的一些技术,写出来分享给大家,希望有志同道合的小伙伴可以一起交流技术,一起进步~


adb 常用命令

一、adb 简介

adb 全称是 android debug bridge (android 调试桥),是android sdk 中提供的用于管理android 模拟器和真机设备的工具。

adb 是一个功能强大的命令行工具,可以让PC端与android设备进行通信,如下图所示:在adb 执行文件在Android sdk 文件中的位置,位于platform-tools文件下:

二、adb 常用命令

强调: PC端已经配置好andorid的开发环境

adb 的命令格式:

adb [-s <serialNumber>] <command>

其中[] 方括号中的内容是可选的,<> 括号中的内容是必填的。serialNumber 是设备序列号,每台设备有一个,类似于我们的身份证,唯一标识。

-s serialNumber :是选择指定的设备执行命令,adb可以同时连接多个设备,但是呢,一次只能对一台设备进行操作,所以必须指定一台设备。如果只连接了单台设备,那么-s serialNumber 可以省略;

2.1、查找真机设备

  • 真机用USB直接连接到PC端,并在设置中打开开发者模式(不同设备开发着模式的步骤不相同,但是都差不多)
  • 执行如下命令:
adb devices

如果设备已经成功连接,那么就可以看到设备信息,执行结果如下:

a47975ec : 是设备序列号,就是上文提到的 serialNumber
device : 表示设备连接状态为成功,当然还有其他的连接状态(等遇到了再说😝)

如果设备没有连接成功,那么设备列表下就会空空如也:

2.2、安装卸载应用

安卓安装包的后缀名是apk,也是 android package的缩写。
说到安装,不得不提安装包的包名,每个app/安装包都有一个独立且唯一的包名,也可以理解为包名就是它们的身份证,唯一标识。
普通安装:

adb install <apk安装包的路径>

覆盖安装 ,app中的升级操作就是用的此命令

adb install -r <apk安装包的路径>

两种安装方式的区别就是设备上是否装有和安装包同包名的应用。如果没有,普通安装的命令就可以,如果有,用覆盖安装的命令就可以

卸载

adb uninstall <包名>

根据 包名 进行应用的卸载


2.3、设备与电脑传输文件

在测试过程中,时常要在设备和PC端之间互传文件,比如从设备中提取应用的日志,或者把PC端的大文件传输到设备端来模拟占用空间等,这些都可以通过adb命令来实现。
从PC端上传文件到设备:

adb push <pc端文件路径> <设备存放路径>

把设备文件下载到PC端:

adb pull <设备文件路径> <pc端存放路径>

命令中有两个路径,容易搞混淆,分享一个记忆小妙招,第一个路径是“主场”的地址,比如把文件从设备上pull下来,那么第一个路径就是设备上的路径,把文件从PC端push到设备上,那么第一个路径就是PC端的路径。谁的主场谁做主!

2.4、日志

设备连接PC可以查看各个应用打印的日志,用来排查问题,以下命令就是查看日志:

输出日志:

adb logcat

输出指定包名的应用日志:

adb logcat -s <包名>

输出日志到 PC端的文件中

adb logcat >  <pc端文件的路径>

例子: adb logcat > logcat.txt ,就是把日志输出到logcat.txt文件中,logcat.txt 文件是在当前目录下,就是当前pwd命令显示的文件路径

其实,大家很少用这种方式来查看应用的日志,主要是通过Android Studio 开发工具进行代码/应用的调试,但是这个知识点需要了解。

2.5、 adb shell 命令

adb shell 命令相当于登陆了Android系统,进入系统内部可以执行Linux命令(并不是支持所有的linux命令)。
使用adb shell 命令有两种方式:

  • 一种方式是直接在adb shell 后面跟上命令
adb shell  <command>

下图演示了通过pwd查询当前路径

  • 另一种方式是在设备上启动交互式,通过adb shell 进入设备内部,之后再执行命令,之后通过 exit 退出交互模式,如下图所示:

2.6、 设备截图/录屏

截屏

adb shell  screencap   <图片存放设备的文件路径>
adb shell  screencap   /sdcard/dcim/Camera/screen.jpg

就是截屏,把图片存放在相册中,之后就可以在相册中查看截图了。

2.7、 am 启动、停止应用

am 是 Activity Manager :Activity管理器。
启动

adb shell am start -n <包名>/<Activity名称>

强制停止运行

adb shell am force-stop <包名>

怎么获得安装包的包名和启动Activity呢? 可以参照我的这篇文章aapt >怎么获得apk的包名和启动Activity

2.8、 pm 查看设备安装的应用

pm 是 package Manager :软件包管理器

显示设备上安装的所有应用的包名:

adb shell  pm list packages

显示设备上安装的系统应用的包名

adb shell pm list packages -s

显示设备上安装的第三方应用的包名

adb shell pm list packages -3

删除与软件包关联的所有数据

adb shell pm clear <包名>

三、总结

adb 的命令远不止这些,如果要一个个讲,几天几夜都讲不完。其实也没有必须都记住,按需学习就可以,当以后遇到问题时,知道去哪里找答案,知道怎么找答案就可以,这些都只是工具


文末说明
推荐博文:接口测试经典面试题:Session、cookie、token有什么区别?

有关adb 常用命令,面试必问的更多相关文章

  1. 华为常用命令 - 2

    system-view进入系统视图quit退到系统视图sysname交换机命名vlan20创建vlan(进入vlan20)displayvlan显示vlanundovlan20删除vlan20displayvlan20显示vlan里的端口20Interfacee1/0/24进入端口24portlink-typeaccessvlan20把当前端口放入vlan20undoporte1/0/10删除当前VLAN端口10displaycurrent-configuration显示当前配置02配置交换机支持TELNETinterfacevlan1进入VLAN1ipaddress192.168.3.100

  2. 【Java 面试合集】HashMap中为什么引入红黑树,而不是AVL树呢 - 2

    HashMap中为什么引入红黑树,而不是AVL树呢1.概述开始学习这个知识点之前我们需要知道,在JDK1.8以及之前,针对HashMap有什么不同。JDK1.7的时候,HashMap的底层实现是数组+链表JDK1.8的时候,HashMap的底层实现是数组+链表+红黑树我们要思考一个问题,为什么要从链表转为红黑树呢。首先先让我们了解下链表有什么不好???2.链表上述的截图其实就是链表的结构,我们来看下链表的增删改查的时间复杂度增:因为链表不是线性结构,所以每次添加的时候,只需要移动一个节点,所以可以理解为复杂度是N(1)删:算法时间复杂度跟增保持一致查:既然是非线性结构,所以查询某一个节点的时候

  3. 西安华为OD面试体验 - 2

    西安华为OD面试体验开始投简历技术面试进展工作进展开始投简历去年一整年一直在考研和工作之间纠结,感觉自己的状态好像当时的疫情一样差劲。之前刚毕业的时候投了个大厂的简历,结果一面写算法的时候太拉跨了,虽然知道时dfs但是代码熟练度不够,放在平时给足时间自己可以调试通过,但是熟练度不够那面试当时就写不出来被刷了。说真的算法学到后期我感觉最重要的是熟练度和背板子(对于我这种普通玩家来说),面试题如果一上来短时间内想不出思路就完蛋了。然后由于当时找的工作不是很理想就又想考研了。但是考研是有风险的,我自我感觉自己可能冲不上那个学校,而找工作一个没成可以继续找嘛。本着抱着试试看的态度在boss上投了简历,

  4. [面试直通版]操作系统核心之进程、线程与协程(下) - 2

    点击->操作系统复习的文章集目录操作系统线程线程是什么进程与线程的关系用户态/内核态操作系统资源管理内核态用户态内核态/用户态切换程序运行类型分析计算密集型IO密集型结合进程,线程来理解程序运行类型分析协程基础上下文切换协程协程为什么叫协作式线程?协程的优缺点操作系统线程典型问题:简述进程和线程的区别以下内容带您一步步了解线程是什么比进程更小的独立运行的基本单位-线程(Threads)线程的提出主要是为了提高系统内程序并发执行的程度,从而进一步提升系统的吞吐量,充分发挥多核CPU的优越性而设计的引入进程是为了操作系统更加方便地管理程序,使得多个程序能并发管理和执行而线程则是为了减少程序在并发执

  5. 【华为OD技术面试 | 真八股 】MySQL联合索引,谈springIOC的理解,谈springAOP的理解,Erika和zookeeper等问题 - 2

    文章目录华为OD面试流程1.mysql数据库建了两个字段,且设置了联合索引,如果其中有一个字段为空会出现什么问题?2.谈谈springIOC的理解,有什么好处,解决了什么问题3.谈谈springAOP的理解,切面编程有没有实际应用,有哪些注解,作用是什么,有那些应用场景?4.Erika和zookeeper有了解过吗,作用是什么,主要解决了什么问题5.谈谈JDK、JRE、JVM的理解,区别是什么6.谈谈对泛型的理解7.JVM的组成华为OD面试流程机试:三道算法题,关于机试,橡皮擦已经准备好了各语言专栏,可以直接订阅。性格测试:机试技术一面(本专栏核心)技术二面(本专栏核心)主管面试定级定薪发of

  6. 相机面试问题总结 - 2

    1,Camera基本工作原理答案:光线通过镜头Lens进入摄像头内部,然后经过IRFilter过滤红外光,最后到达sensor(传感器),senor分为按照材质可以分为CMOS和CCD两种,可以将光学信号转换为电信号,再通过内部的ADC电路转换为数字信号,然后传输给DSP(如果有的话,如果没有则以DVP的方式传送数据到基带芯片baseband,此时的数据格式RawData,后面有讲进行加工)加工处理,转换成RGB、YUV等格式输出。数据流是如何从sensor到APP的?上述描述结束后,在ISP处理后面的阶段,数据会进行分流,分为capture,preview,video等以供后续动作使用。例如

  7. ruby-on-rails - 如何在一个周末准备 Ruby 面试 - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭11年前。我是一名经验丰富的网络开发人员,但只有一点点Ruby/Rails经验。我周一刚在一家Ruby商店接受面试,他们确实意识到我没有太多Ruby经验。除了我手边的2或3本Ruby书籍外,我还可以利用哪些其他资源来参加周末的Ruby速成类。顺便说一下,我在hostingrails上确实有一个最低限度的帐户,尽管我从未使用过它。我没有看到任何其他与搜索“rubyi

  8. 《EDA前端软件开发工程师面试指南》 - 2

    2023届EDA领域校招总结,完结撒花!!!目录前言一、EDA公司介绍二、项目面试1.自我介绍2.项目深入3.专业经验4.成果和技能5.对面试官有什么问题三、C++面试1、高频考点2、其他知识点3、算法题四、逻辑综合面试1.逻辑综合知识详解2.开源逻辑综合ABC五、简历制作总结前言2022/08/26:本人2023年6月毕业,于2022年7-10月参加秋招,面试总结纯属个人经验,仅供参考面试的是EDA前端软件开发岗位,也会掺杂一些EDA其他流程的面试在面试过程中发现自己准备的很乱,没有一个清晰的思路,现在把自己面试的所有经历和题型整理出来,在这里做一个小的总结,不仅帮助自己整理思路,也给大家做

  9. 真心推荐8个高质量Java学习网站,一起从入门到精通java语言,大厂java面试真题分享,建议码住!... - 2

    Java自学超全干货分享!学不学自己看着办吧!最近收到了很多知友私信我:”0基础有什么推荐的Java学习工具?”★作为ACM金牌选手,这些年在跟很多学员受教的过程中,积累了一些关于新手Java学习的经验和踩过的坑,今天来跟大家分享几点:1.找准学习路径和方法(选择不对,努力白费)2.合理规划学习时间,不在没必要的技术上浪费时间(找重点)3.找一些志同道合的朋友一起学习(相互鞭策)4.找一个前辈指点(方式方法)“还没开始就结束了”,作为java新手小白,最难自然是找对学习路径和方法……于是,本着一颗无私奉献的心,我连夜整理出了8个优质的Java免费学习网站,分享给大家。NO.1菜鸟教程国内小白入

  10. 【测试面经】软件测试面试题大全,软件测试必问必背面试题,敢说会70%就可以轻松拿offer...... - 2

    目录:导读前言一、测试面试基础题二、测试实战面试题三、测试基础知识点四、总结前言大部分人学软件测试的从业者,在找工作的同时,会因为软件测试面试题挡在门前。……跳槽最重要的一步自然是面试,正值跳槽季,网上出现了各种面试题,一时会让人眼花缭乱,分不清最该看哪个,所以为大家做了一些软件测试面试的真题,想跳槽的小伙伴们,请准备好你的小本本!一、测试面试基础题1、简述测试流程?2、什么是软件测试?软件测试的目的与原则?3、软件生存周期及其模型是什么?4、什么是软件质量?5、自动化测试脚本开发的主要步骤?6、目前主要的测试用例设计方法是什么?7、常见的测试用例设计方法都有哪些?请分别以具体的例子来说明这些

随机推荐