Android14之input高级调试技巧(一百八十八)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……】🚀
优质专栏:多媒体系统工程师系列原创干货持续更新中……】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

1.前言

本篇目的:Android14之input高级调试技巧

2.Android input命令介绍

  • Android的input命令是一个非常有用的命令行工具,可以帮助用户模拟输入各种文本、字符和按键,以测试和开发Android应用程序。
    该命令可以通过在终端中输入命令来执行。首先,需要连接到Android设备,可以使用adb连接,然后使用input命令。具体的命令格式如下:
input <command>

其中,command是输入的命令,可以是以下几种:

  • text:输入文本字符串。例如,使用命令input text Hello World可以在屏幕上输入“Hello World”。
  • tap:在屏幕上模拟点击。可以使用坐标来指定点击的位置,例如input tap 100 200表示在屏幕上(100,200)的位置点击。
  • longpress:模拟长按。可以使用坐标来指定长按的位置,例如input longpress 100 200表示在屏幕上(100,200)的位置长按。
  • swipe:模拟滑动。需要指定开始坐标、结束坐标和滑动时间,例如input swipe 100 200 300 400 500表示从(100,200)滑动到(300,400),持续500毫秒。
  • press:模拟按下按钮。可以使用不同的按钮,例如input keyevent 82表示按下“Back”按钮,input keyevent 4表示按下“DPAD_CENTER”按钮。
  • input命令可以模拟多种输入操作,可以帮助开发者在没有物理接触设备的情况下测试和调试应用程序。例如,可以使用input命令模拟用户输入文本、点击按钮、滑动屏幕等操作,以测试应用程序的响应和功能是否正常。此外,input命令还可以用于自动化测试,编写脚本来自动化测试和验证应用程序的功能。
  • Android的input命令是一个非常实用的工具,可以帮助开发者在测试和开发应用程序时模拟各种输入操作,确保应用程序的功能和性能正常。

3.input命令用法

input命令支持以下内容

1、text:支持输入文本内容
2、keyevent:模拟按键

3、tap:点击

4、swipe:滑动

5、press:模拟按键按下

6、roll:模拟手动滚动

1、text:支持输入文本内容(暂不支持中文)

1.首先打开一个输入的文本文件

2.然后输入:
# adb shell input text  222

2、keyevent:模拟按键

1.模拟手机按键home
# adb shell  input keyevent 3

2.长按HOME键
# adb shell input keyevent --longpress 3

3、tap:点击

获取桌面所有icon的坐标

2.dump所有icon的坐标
# adb shell uiautomator dump
UI hierchary dumped to: /sdcard/window_dump.xml

2.桌面所有的icon生成路径:/sdcard/window_dump.xml
# adb pull /sdcard/window_dump.xml

3.查看"设置"应用icon的坐标
<node index="1" text="设置" resource-id="" class="android.widget.TextView" package="com.android.launcher3" content-desc="设置" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" bounds="[644,1258][851,1622]"/>

使用uiautomator定位工具查看坐标范围:[644,1258] - [851,1622],然后求出中间值 [(644 + 851)/2] -  [(1258 + 1622)/2] = [747 1440]

4.点击指定的坐标
# adb shell input tap 747 1440

Or:在[644,1258] - [851,1622]范围内即可。
# adb shell input tap 670 1400

4、swipe:滑动

和tap一样,只不过需要选取两个个坐标进行滑动,坐标选取的是(x1/2 Y3/4 x1/2 Y1/4)

[644,1258] - [851,1622]

1.下划
# adb shell input swipe 670 1200  670 1600

Or
# adb shell input swipe 670 1200  800 1600 100

100:表示持续100毫秒

2.上划
# adb shell input swipe 670 1600  670 1200

Or
# adb shell input swipe 800 1600  670 1200 200

200:表示持续200毫秒

5、press:模拟按键按下

# adb shell input press

6、roll:模拟手动滚动

1.向下划动
# adb shell input roll 400 400

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

高通XBL阶段读取分区

【需求】&#xff1a; 在某些场景下&#xff0c;需要在XBL阶段读取分区数据&#xff0c;需要验证xbl阶段方案 这里主要以裸分区为例&#xff0c;比如oem分区。 1、创建一个1MB大小的oem.img&#xff0c;写入内容“test oem partition” 创建方式&#xff1a; dd if/dev/null …

FPGA之16:1复选器

每个slice 都有一个F8MUX。F8MUX原语&#xff1a; MUXF8 MUXF8_inst&#xff08; .0&#xff08;0&#xff09;&#xff0c;Il Output of MUX to general routing .I0&#xff08;10&#xff09;&#xff0c;//Input&#xff08;tie to MUXF7L/LO out&#xff09; .I1&#xf…

nginx重新编译添加模块或去除不需要的模块

在使用nginx中&#xff0c;我们可能需要对已经安装的nginx进行添加或者删除模块 1、先查看nginx安装了哪一些模块 nginx -V2、来到nginx源码目录&#xff0c;根据如下规则&#xff0c;自行根据需求更改命令 如果要去掉nginx自带的模块&#xff0c;就是用–without做为前缀进…

python3 Flask jwt 简易token认证实例

直接上代码 from flask import Flask, jsonify, request, make_response import jwt import datetime from functools import wrapsapp Flask(__name__)# 这是一个示例密钥&#xff0c;实际应用中应该使用一个复杂且随机的密钥 app.config[SECRET_KEY] your_secret_keydef t…

手写redux和applyMiddleware中间件react示例

目录 一 核心代码 1.reducer 2.store.js 二 关于context API的使用 1. MyContext 2. createContext 3. ContextProvider 4. connect 三 组件验证效果 1. Todo 2. TodoList 3.TodoItem 4.TodoInput 5. App组件引入Todo组件 一 核心代码 1.reducer // 新增列表数…

LDR6020芯片驱动未来:TYPE-C桌面显示器的新篇章

TYPE-C接口桌面显示器&#xff0c;与传统显示器截然不同。它不仅在视频传输方面表现出色&#xff0c;还融入了创新的充电功能。利用显示器的DC电源&#xff0c;可以轻松转换成PD协议&#xff0c;为笔记本、任天堂等HOST设备提供稳定的充电服务。 兼容性&#xff1a;连接无忧 …

解决SpringAMQP工作队列模型程序报错:WARN 48068:Failed to declare queue: simple.queue

这里写目录标题 1.运行环境2.报错信息3.解决方案4.查看解决之后的效果 1.运行环境 使用docker运行了RabbitMQ的服务器&#xff1a; 在idea中导入springAMQP的jar包&#xff0c;分别编写了子模块生产者publisher&#xff0c;消费者consumer&#xff1a; 1.在publisher中运行测试…

element ui 虚拟滚动 滚动到底部加载下一页

引入element ui的InfiniteScroll 无限滚动插件 <div class"news-left"><div class"infinite-list-wrapper" style"overflow:auto;height: 70vh"><ul class"list" v-infinite-scroll"load"><li :class&…

【mysql】1000w数据量的分页查询SQL,如何优化提升性能?

文章目录 优化场景特别注意&#xff01;&#xff01;&#xff01;有前提&#xff0c;谨慎使用 优化场景 当表数据量非常大时&#xff0c;需要进行分页查询如果慢的时候&#xff0c;可以考虑优化下。 假设一页展示10条&#xff0c;查询第10w条后面的数据时候变慢了… 优化思路&…

Java智慧工地云综合管理平台SaaS源码 助力工地实现精细化管理

目录 智慧工地系统介绍 1、可视化大屏 2、视频监控 3、Wi-Fi安全教育 4、环境监测 5、高支模监测 6、深基坑监测 7、智能水电监测 8、塔机升降安全监测 智慧工地系统功能模块 1、基础数据管理 2、考勤管理 3、安全隐患管理 4、视频监控 5、塔吊监控 6、升降机监…

内容安全补充

第十一天 密码学 近现代加密算法 古典加密技术 --- 算法保密原则 近现代加密技术 --- 算法公开&#xff0c;密钥保密 对称加密算法&#xff0c;非对称加密算法 对称加密 --- 加密和解密的过程中使用的是同一把密钥。 所以&#xff0c;对称加密所使用的算法一定是一种双向…

【Qt】鼠标拖拽修改控件尺寸---八个方位修改

前提 在开发一个类似qdesiger的项目中 使用QGraphicsProxyWidget将Qt基础控件作为item放在场景视图中显示和编辑 创建自定义类继承QGraphicsProxyWidget&#xff0c;管理控件 成员变量 有控件的xywh等&#xff0c;其中x、y坐标存储是基于最底层widgetitem的 坐标系 x轴以右为正…

15-36V降压充电光伏MPPT充电方案

1.MPPT原理--简介 MPPT&#xff0c;全称为Maximum Power Point Tracking&#xff0c;即最大功点跟踪&#xff0c;它是一种通过调节电气模块的工作状态&#xff0c;使光伏板能够输出更多电能的电气系统能够将太阳能电池板发出的直流电有效地贮存在蓄电池中&#xff0c;可有效地…

Mac怎么运行赛博朋克2077,使用Game Porting Toolkit

Game Porting Toolkit通过转译的方式&#xff0c;将Direct3D指令翻译成Metal指令&#xff0c;让不少Windows游戏都能够在Apple Silicon Mac上成功运行。作为一款开发者工具&#xff0c;运行起来自然有不少的坑&#xff0c;本文手把手带你在M芯片Mac上运行赛博朋克2077。 CrossO…

数据库期末简答题速成-救命专用

简答题&#xff1a; 第 1 章 绪论 DBMS 的主要功能有哪些&#xff1f; 答&#xff1a;数据库管理系统&#xff08;DBMS&#xff09;是位于操作系统与用户之间的一个数据管理软件&#xff0c;它主要功能包括以下几个方面&#xff1a; 数据定义功能 DBMS提供数据描述语言&…

(响应数据)学习SpringMVC的第三天

响应数据 一 . 传统同步业务数据响应 1.1 请求资源转发与请求资源重定向的区别 请求资源转发时,froward:可不写 二 . 前后端分离异步方式 回写json格式的字符串 1 用RestController代替Controller与 ResponseBody 2 . 直接返回user对象实体 , 即可向 前端ajax 返回json字…

day02_java基础_变量_数据类型等

零、今日内容 1 HelloWorld程序 2 idea使用 3 变量 4 数据类型 5 String 一、复习 班规班纪。。。。。 安装jdk JDK 是开发工具 JRE 是运行代码 JDK包含JRE 配置环境变量 二、HelloWorld程序 前提&#xff1a;JDK已经安装配置完毕&#xff0c;有了这些环境就敲代码 代码…

Protocol Buffers v21.12 安装 ( linux 系统 )

下载 Protocol Buffers v21.12 Protocol Buffers v21.12 解压 tar zxvf protobuf-cpp-3.21.12.tar.gz执行 进入解压目录&#xff0c;执行下面configure可执行程序&#xff0c;目的是监测安装环境&#xff0c;生成makefile ./configure执行完后可以检查是否生成makefile文件 构…

kaggle网站简单介绍

Kaggle 是一个面向数据科学和机器学习爱好者的在线平台&#xff0c;它提供了一个用于数据科学竞赛、数据集分享和模型训练的环境。这个平台由 Kaggle Inc. 运营&#xff0c;Kaggle Inc. 是一家位于美国加州旧金山的人工智能公司。 Kaggle 最有特色的功能之一是举办各种数据科学…

MongoDB实战 – 用Python访问MongoDB数据库

MongoDB实战 – 用Python访问MongoDB数据库 MongoDB in Action – Access MongoDB Databases with Python By JacksonML Python语言功能强大众所周知&#xff0c;在数据库管理领域也无所不能。MongoDB是文档数据库&#xff0c;属于NoSQL数据库的一种&#xff0c;在业界也非常…