当前位置: 首页 > news >正文

Android APP 常见概念与 adb 命令

adb 的概念

adb 即 Android Debug Bridge 。在窗口输入 adb 即可显示帮助文档。adb 实际上就是在后台开启一个 server,会接收 adb 的命令然后帮助管理,控制,查看设备的状态、信息等,是开发、测试 Android 相关程序的最常用手段。若是连接出现问题可以使用 adb kill-server来断开并重新连接。

通常 adb 都是通过数据线连接到电脑的,但是也可以使用 adb tcpip来使用 TCP 的方式连接手机,这样能脱离数据线服务,甚至可以借助转发的形式,不需要部署在同一路由器下就可以进行连接。开启 TCP 连接以后使用 adb connect 可以来连接开启了 TCP 连接的手机。

Android APP 的信息获取

adb devices 这个应该是最常见的 adb 命令之一了,无论是开发、测试都会经常遇到。这条命令比较简单,就是列出当前连接的所有设备(包括模拟器)

日志命令 adb logcat这个命令也很常用,用于获取手机的 log,但是会输出很多内容,可以使用 grep 或者 Windows 上的 findstr 来过滤。

使用 grep Displayed 就可以过滤出已经显示的 APP 例如微信,play 商店。可以借助此命令来找到一些关心的信息。当然也可以用它来抓取 app 的日志,定位分析问题。例如adb logcat -v time | grep “xxx” > appLog.log其中 xxx 为包名或者关键字。

还可以用以下字母来指定不同级别的信息:

V — 明细 verbose(最低优先级)

D — 调试 debug

I — 信息 info

W — 警告 warn

E — 错误 error

F — 严重错误 fatal

S — 无记载 silent

启动命令

adb shell am start -n

com.android.vending/.AssetBrowserActivity -S

使用 此命令把上面获取到的 play 商店的包名和 activity 传入即可启动 app。其中 am 表示 ActivityManager 用来管理应用活动、窗口。-S 表示启动之前先杀掉原有程序

安装命令

adb install

然后给出包名即可

获取 APP 入口

aapt dump badging xxx | grep launchable-activity

其中 xxx 为安装包

收集日志数据

adb bugreport

此命令可以用于手机日志数据用于分析,包括耗电量,CPU 等

adb shell

adb shell 是 Linux 的 shell,可以用来调用 Android 内置的命令。adb shell 是交互式的,可以做很多事情,包括 pull/push 文件,输入等。

清理包的数据

adb shell pm clear com.android.vending

即可对包的数据进行清理,清理以后权限也会清除,恢复到刚安装完的状态。pm 即包管理工具,与 am 对应

获取界面的 xml

adb shell "uiautomator dump

&& cat /sdcard/window_dump.xml"

把当前界面的每个控件、元素都变成 xml 中的节点,中间包含了各个控件的属性,例如是否可点击等。

dumpsys

dumpsys 是很常用的一部分命令,所以单独列出来整理

获取当前的 activity

adb shell dumpsys activity top

获取 activities 的记录,可以获取到 appium 依赖的原始 activity

dumpsys activity activities

获取特定包基本信息

adb shell dumpsys package com.android.vending

再配合 grep 即可筛选出需要的信息

获取通知信息

adb shell dumpsys notification

对于不同手机,通过 UI 层面下拉获取通知信息可能对于脚本的兼容性有影响,所以可以使用此命令获取然后通过 title,text 等筛选出需要的通知内容

获取内存信息

adb shell dumpsys meminfo com.android.settings

获取 CPU 信息

adb shell dumpsys cpuinfo

获取GPU绘制分析

adb shell dumpsys gfxinfo com.android.settings

其中 内存、CPU、GPU 信息获取可以用于分析性能等问题。


          【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】


一、Python编程入门到精通


二、接口自动化项目实战  

三、Web自动化项目实战


四、App自动化项目实战 

五、一线大厂简历


六、测试开发DevOps体系 

七、常用自动化测试工具


八、JMeter性能测试 

九、总结(尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!

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

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

http://www.lryc.cn/news/260840.html

相关文章:

  • 菜鸟学习日记(python)——函数
  • 垃圾回收 (GC) 在 .NET Core 中是如何工作的?
  • Appium 图像识别技术 OpenCV
  • 产品Axure的元组件以及案例
  • 智能优化算法应用:基于头脑风暴算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • flutter Pageview组件
  • 如何用 Cargo 管理 Rust 工程系列 丙
  • Vue学习笔记-Vue3中的provide与inject
  • 2021年数维杯国际大学生数学建模A题新冠肺炎背景下港口资源优化配置策略求解全过程文档及程序
  • 【css】css实现文字两端对齐效果:
  • ElasticSearch指南 - Mapping - Metadata fields
  • 12.15每日一题(备战蓝桥杯摘花生)
  • VUE-脚手架搭建
  • ArcGIS Pro SDK根据Xml/Json文件反向生成几何
  • LY/T 3301-2022 实木厚芯胶合板检测
  • 代码随想录算法训练营第十六天| 104. 二叉树的最大深度、111. 二叉树的最小深度、222. 完全二叉树的节点个数
  • 字符串——OJ题
  • Linux---cp和mv命令选项
  • LVS负载均衡器(nat模式)+nginx(七层反向代理)+tomcat(多实例),实现负载均衡和动静分离
  • 【深度学习】TensorFlow深度模型构建:训练一元线性回归模型
  • 智能插座是什么
  • 5G工业网关视频传输应用
  • Axure电商产品移动端交互原型,移动端高保真Axure原型图(RP源文件手机app界面UI设计模板)
  • 【k8s】使用Finalizers控制k8s资源删除
  • vscode
  • Jrebel 在 Idea 2023.3中无法以 debug 的模式启动问题
  • 【C++】模版初阶(初识模版)
  • 智能优化算法应用:基于差分进化算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • 10 种隐藏元素的 CSS 技术
  • SQL Server数据库使用T-SQL语句简单填充