【adb指令】

news2024/11/18 11:24:22

一、什么是adb

adb的全称为Android Debug Bridge,官方提供的用于操作安卓设备的工具。

二、adb用来干什么?

在电脑终端通过命令行:

  1. 打开收手机应用;
  2. 传输文件;
  3. 点击、输入、滑动等;
  4. 硬件操作、返回、回到首页;
  5. 输出性能指标

三、adb工作原理:

采用客户端-服务器模式(C/S模式),分为:

PC:
客户端:adb client
服务端:adb server

Target Machine:Device/Emulator
守护进程:adbd daemon
在这里插入图片描述

四、adb环境搭建:

adb命令零基础快速入门–深入理解掌握app自动化测试底层技术_哔哩哔哩_bilibili

java 1.8 :下载+配置环境变量

Android SDK :下载+配置环境变量

检查 adb 是否搭建成功adb shell

五、连接移动设备以及查看设备状态

WINDOWS:模拟器使用 adb connect [IP]
macOS 系统中连接模拟器不需要执行 connect 命令,直接执行:
adb kill-server && adb devices 命令即可。
真机插入USB数据线调整到调试模式,电脑端安装手机驱动,即可获取移动设备名:
adb devices
adb get-state

六、Adb命令格式:

adb [-d|-e|-s < serial Number>] < command>
-d 指定当前唯一通过USB连接安卓设备为命令目标
-e 指定当前唯一运行的模拟器为命令目标
-s [device名字 ]指定相应的设备为命令目标

七、安装

普通安装:adb install <apk路径>
覆盖安装:adb install -r <apk路径>
卸载:adb uninstall 包名
保留配置文件的卸载:adb uninstall - k < 包名>

八、adb启动页面

dumpsys 是一种在 Android 设备上运行的工具,它可提供有关系统服务的信息。我们可以在 adb 中使用命令行调用 dumpsys,用以获取链接的设备上运行的所有系统服务的信息。
package包:android应用唯一的标识
Activity:应用页面,一个页面就是一个activity

获取当前页面名: adb shell "dumpsys window | grep mCurrentFocus"
				adb shell dumpsys activity | grep mFocusedActivity
adb打开页面:adb shell am start -n <包名>/<activity名>
获取启动页面:adb logcat ActivityManager:I | findstr "cmp"
强制停止应用(App):adb shell am force-stop<包名>

adb uiautomator
adb 命令还支持直接获取 App 的页面信息。页面信息包含了页面中元素的属性,我们做自动化测试时,可以通过这些元素的属性去定位元素。获取到的页面元素布局会输出到一个 xml 文件中。
获取当前窗口的 UI 布局简化信息:adb shell uiautomator dump --compressed
不指定输出文件路径时,dump 输出的文件默认存储路径为/sdcard/window_dump.xml。
我们可以通过 adb pull /sdcard/window_dump.xml F:\Monkey命令把文件传输到计算机中,然后用 UI Automator Viewer 工具打开文件并查看页面布局。
指定输出文件路径:adb shell uiautomator dump file<设备路径>。

九、adb shell清理缓存

activity manger:am
package manger:pm

打开adb:adb shell
查看当前日期:adb shell date
查看目录结构:adb shell ls
窗口打印:adb shell cat 
查看当前CPU使用情况:adb shell cat /proc/cpuinfo
查看当前内存使用情况:adb shell cat /proc/meminfo

查看手机应用:adb shell pm  list packages
查看系统自带应用:adb shell pm list packages -s
显示第三方应用:adb shell pm list packages -3
清除应用数据: adb shell pm clear [包名]
进入应用缓存数据位置:cd /data/data/[包名]

十、手机和电脑传输文件

adb push 电脑路径 手机路径
adb pull 手机路径 电脑路径
adb shell 可以进入到手机系统环境

十一、adb查看手机日志:adb logcat

日志的级别:
V-明细verbose(最低优先级)
D―调试debug
l一信息info
W-警告warn
E一错误error
F一严重错误fatal
S-无记载silent(最高优先级,绝不会输出任何内容)

adb查看手机日志:

adb logcat 打印默认日志数据
adb logcat -v time 打印时间
adb logcat -v color 使用不同颜色来显示每个优先级
adb logcat -f <filename> 将日志输出到文件
adb logcat> log.log/pc端文件路径    保存日志到电脑端
adb logcat -c 清理日志

依据条件过滤日志:
查看日志帮助命令:adb logcat --help
adb logcat -v time "*:W" 打印warning以及以上级别的日志
adb logcat ActivityManger:D '*:S' 过滤tag为ActivityManger,level 为debug及以上级别的日志

如果设置的过滤条件为日志级别的话,将会过滤出该等级以及该等级以上等级的日志:
adb logcat "*:W" 过滤日志级别为W以及以上的日志

十二、模拟按键操作

1、打开指针位置设置:开发者模式->输入-> 指针位置

2、adb shell input 命令

点击:adb shell input tap (x,y) //括号可省略
模拟输入:adb shell input text [文本](仅支持英文)
模拟页面的滑动事件:adb shell input swipe (x1,y1) (x2,y2) <滑动时长>
后面可以加时间,单位:毫秒

返回:adb shell input keyevent 4
Home主页:adb shell input keyevent 3
音量+:keyevent 24
音量-:keyevent 25
key值查询网站:
https://developer.android.com/reference/android/view/KeyEvent
https://developer.android.google.cn/reference/android/view/KeyEvent

KeyEvent常用键值
1、数字键:
KEYCODE_0 - KEYCODE_9
2、字母键:
KEYCODE_A - KEYCODE_Z
3、功能键:
KEYCODE_DEL(删除键),KEYCODE_ENTER(回车键),KEYCODE_ESCAPE(ESC键)
4、移动键:
KEYCODE_DPAD_UP(上键),KEYCODE_DPAD_DOWN(下键),KEYCODE_DPAD_LEFT(左键),KEYCODE_DPAD_RIGHT(右键),KEYCODE_DPAD_CENTER(中心键)
5、系统键:
KEYCODE_BACK(返回键),KEYCODE_HOME(Home键),KEYCODE_MENU(菜单键),KEYCODE_VOLUME_UP(音量加键),KEYCODE_VOLUME_DOWN(音量减键)

十三、Adb 获取性能指标:

查看当前CPU使用情况:adb shell dumpsys cpuinfo(均值)
查看当前系统内存使用情况:adb shell dumpsys meminfo
查看某个应用内存使用情况:adb shell dumpsys meminfo [应用包名] PS:如何获取参照前节

实时查看进程信息(进程号等,和linux是一样的):adb shell top (实时)
linux/Mac某个进程信息:adb shell top | grep [包名]
windows查看进程信息: adb shell top | findstr [包名]
top 后面可以加参数-d 1 表示每一秒打印一次:adb shell top -d 1 | grep <包名>

电池信息:adb shell dumpsys battery
在这里插入图片描述

性能相关的具体用法,官网:https://developer.android.com/docs

十四、设备截图/录屏

截图:adb shell screencap<设备路径>
录屏:adb shell screenrecord<设备路径>

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

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

相关文章

踩坑记录:nuxt3 - ssg 重构我的前端导航网站

一、&#x1f4a5; 背景故事 不久前我利用周末搭建了个 万能导航网站&#xff0c;当时还写了篇文章&#xff1a;# 我给自己搭建的前端导航网站&#xff0c;你们都别用&#x1f92a;。本来我以为不会有太大的访问量&#xff0c;主要是方便自己用。没想到用的人还不少&#xff0…

maven 远程仓库 查找jar mvnrepository.com

https://mvnrepository.com 搜索包 找到指定版本 下载包或者配置文件引用

WORDPRESS REST API 学习

WORDPRESS 的 REST API 本身是没有身份验证的&#xff0c;我安装了 miniOrange 的 WordPress REST API Authentication 免费部分只有 Basic Authentication 和 JWT Authentication &#xff0c; 作为学习 REST API 够用了。 一般使用 postman 测试 api &#xff0c;后来卸载了…

通用分页【上】之后端代码

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于通用分页的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 导读&#xff1a; &#x1f4a1;辉辉小…

git创建分支提示fatal: not a valid object name: ‘master‘解决方案

文章目录 1. 背景描述&#xff1a;2. 原因分析&#xff1a;3. 解决方案&#xff1a; 1. 背景描述&#xff1a; 在本地使用 git init初始化一个空的git项目后&#xff0c;想使用git branch创建分支时&#xff0c;提示fatal: not a valid object name: ‘master’。 2. 原因分…

【react全家桶学习】react的 (新/旧) 生命周期(重点)

目录 生命周期&#xff08;旧&#xff09; 挂载时的生命周期 constructor&#xff08;props&#xff09; componentWillMount&#xff08;&#xff09;-------------新生命周期已替换 render&#xff08;&#xff09; componentDidMount&#xff08;&#xff09;--- 组件…

【MHA高可用配置及故障切换】

目录 一、案例概述1、传统的MySQL主从架构存在的问题1.1、单点故障 2、HMA的简介2.1、HMA的概述2.2、HMA的组成2.3、MHA 的特点 三、搭建MySQL HMA1、实验思路1、进入主服务器进行修改配置文件2、启动服务&#xff0c;并在从服务器上配置计划性任务进行时间同步 2、修改 Master…

人声克隆技术:So-Vits-Svc项目解析

SO-VITs-SVC 本文是该系列的第一篇&#xff0c;采用倒序的方式&#xff0c;先从推理过程开始介绍人声克隆的工作流&#xff0c;以及各个模型的功能&#xff0c;之后再去详细介绍各个模型&#xff0c;因此不涉及具体的使用方法&#xff0c;这个官方文档里面已经讲的很清楚了&…

相机成像原理【第一节】

文章目录 1、胶片摄影与数码摄影2、相机的组成2.1 只有传感器相机的成像 3、小孔成像3.1 小孔相机的参数和成像结果3.2 关于小孔成像的两个问题 1、胶片摄影与数码摄影 胶片摄影是把光学镜头的光信号投射到胶片上&#xff0c; 数码摄影是把光学镜头的光信号投射到传感器上&…

「又是干货」史诗级漏洞挖掘的过程快get一下

前言 本文记录了针对前台RCE的挖掘过程&#xff0c;由于该CMS前几天才做了修复&#xff0c;所以将挖掘过程写出来 接着直接来看代码&#xff0c;首先目标仍然是解析if标签的代码块&#xff0c;看一下三个正则 /\{pboot:if\(([^}^\$])\)\}([\s\S]*?)\{\/pboot:if\}//([\w])(…

零基础也能轻松制作电子邀请函教程

随着互联网技术的发展&#xff0c;电子邀请函已经逐渐取代传统的纸质邀请函成为一种趋势。不仅可以节省纸张和邮寄的成本&#xff0c;还能够更加个性化和创意化地展现活动。自己制作电子邀请函&#xff0c;百利而无一害&#xff0c;如果你也想自己动手制作一份电子邀请函&#…

VTK 悬浮显示 actor详细

需求&#xff1a;场景中一个actor&#xff0c;鼠标悬浮时 显示此actor的信息。 效果&#xff1a; 实现&#xff1a; 1&#xff0c;利用vtkInteractorStyleTrackballCamera 的OnMouseMove 事件 判断是否处于悬浮状态 2&#xff0c;判断悬浮后&#xff0c;首先将世界坐标转为…

10分钟教你学会使用ab 进行并发压力测试

目录 ab全称为&#xff1a;apache bench。 安装ab命令&#xff1a; 使用&#xff1a; 测试结果&#xff1a; 结果分析&#xff1a; 总结&#xff1a; ab全称为&#xff1a;apache bench。 是apache自带的压力测试工具。ab非常实用&#xff0c;它不仅可以对apache服务器进…

离子风枪的功能特点及应用领域

除静电离子风枪是一种常见的设备&#xff0c;被广泛应用于各个领域的生产线上&#xff0c;其作用是通过产生离子气流&#xff0c;有效地去除物体表面的静电。在现代工业生产中&#xff0c;静电可能引发诸多问题&#xff0c;如引起电子元器件损坏、拖尘吸附、产品互粘等。除静电…

如何使用Wu10Man启用或禁用自动更新

使用Wu10Man启用或禁用自动更新 启用自动更新禁用自动更新Windows 10 将在你设置为自动维护时自动检查新的 Windows 更新。默认情况下,Windows 10 将自动下载并安装重要和关键更新。 某些更新不是自动安装的。这包括可选更新和要求你接受新使用条款的更新。当这些更新可用时,…

哈工大操作系统实验三(整理自用)

一、实验内容 基于模板 process.c 编写多进程的样本程序&#xff0c;实现如下功能&#xff1a; 所有子进程都并行运行&#xff0c;每个子进程的实际运行时间一般不超过 30 秒&#xff1b; 父进程向标准输出打印所有子进程的 id&#xff0c;并在所有子进程都退出后才退出&…

SpringBoot项目做成Docker 镜像

1.使用Xshell5使用 put指令上传到Centos put D:\git\repository_idea\emsms\target\emsms-0.0.1-SNAPSHOT.jar 2.编辑文件 vim spring ROM java:8 ADD emsms-0.0.1-SNAPSHOT.jar dd.jar CMD java -jar dd.jar 示例&#xff1a; 3.退出并保存编辑 4.将文件打包成镜像 dock…

Flink中FileSink的使用

在Flink中提供了StreamingFileSink用以将数据流输出到文件系统. 这里结合代码介绍如何使用FileSink. 首先FileSink有两种模式forRowFormat和forBulkFormat public static <IN> DefaultRowFormatBuilder<IN> forRowFormat(final Path basePath, final Encoder<IN…

Labview视觉一键尺寸测量仪,多产品,多尺寸,快速编辑, 测量,导出结果

这是一个关于LabVIEW视觉一键尺寸测量仪的描述&#xff0c;它具有以下特点&#xff1a;支持多种产品和尺寸的测量&#xff0c;可以快速进行编辑、测量和导出结果。 这个领域涉及到的知识点和领域范围包括&#xff1a;LabVIEW、视觉测量、尺寸测量、编辑功能和结果导出。 LabV…

HCIP-7.4交换机STP生成树协议原理

HCIP-7.4交换机STP生成树协议原理 1、什么是交换机生成树&#xff1f;2、STP生成树2.1、标准生成树基本计算过程(802.1D)2.2、STP的基本概念2.3、 BPDU格式及字段说明2.4、 STP的选举原则2.4.1 配置案例说明2.4.2 华为设备的COST值 2.5、端口状态描述2.6、cost值修改2.6.1、非根…