最近有将手机桌面上的app依次启动、退回到桌面的需求,学习了一波,下面和大家一起分享下。示例手机是小米10青春版。

1. 设计思路

开始想着用app的包名来启动,尝试了后发现太复杂,难以实现按桌面排布顺序依次启动。后来想到了玩游戏时用得自动点击脚本,我们启动app也可以按照桌面坐标来输出点击事件即可。所以需要做几件事:(1)获得桌面所有app的坐标;(2)循环进行点击事件;(3)一屏点击完后,滑动到下一屏。

2. 实现

2.1 获得桌面app所有坐标

在屏幕上放满应用,启动 cmd,输入 adb shell getevent,点击左上角的app,cmd 输出 如图:

0035所在行最后一栏的数字就是 x 坐标:c6;0036所在行最后一栏的数字就是 y 坐标:11d
该坐标为16进制,转换为十进制坐标就是 (198,285)
测试坐标是否能启动目标位置app: cmd 输入 adb shell input tap 198 285,如果能启动则坐标可用。
用同样的方法获得右下角 app 位置处的坐标,(3b7, 71e)—>(951,1822)

我手机桌面app的排布是 4 × 6,所以app的横向排布间距为 (951-198)/3 ≈250,纵向间距为 (1822-285)/5≈307.

2.2 循环输出点击事件

先启动第一行 app 做测试,以下是在 bat 脚本中命令,在 cmd 中 %% 写为 %

for  /l %%x in (198,250,951) do adb shell input tap %%x 285 & timeout /T 3 & adb shell input keyevent HOME & timeout /T 2

for /l %%x in (198,250,1000):在 198 到 951 间以 250 为间隔循环
timeout /T waittTme:等待 waitTime 秒
&:连接两个 cmd 命令,无论前一条是否成功,都会执行后一条

同样测试第一列:

for  /l %%y in (285,307,1822) do adb shell input tap 198 %%y & timeout /T 3 & adb shell input keyevent HOME & timeout /T 2

测试通过后,测试启动整屏 app,直接硬套二重 for 即可:

for  /l %%y in (285,307,1822) do for  /l %%x in (198,250,951) do adb shell input tap %%x %%y & timeout /T 3 & adb shell input keyevent HOME & timeout /T 2

该内容存储为 E:\adb\startAppCurrentPage.bat

2.3 屏幕滑动

adb shell input swipe 600 1000 400 1000

(600,1000):滑动起点的(x,y)
(400,1000):滑动终点的(x,y)
能实现依次启动桌面 app然后返回桌面,并滑动到下一屏继续执行的 bat 脚本完成了:

for  /l %%i in (1,1,3) do E:\adb\startAppCurrentPage.bat & adb shell input swipe 600 1000 400 1000 & timeout /T 2

3 注意

timeout /T waitiTime 不可少,启动app、回桌面、滑屏都需要时间,不等待手机系统会跟不上节奏;
坐标不一定能一次找成功,因为是大概计算的,可能某个位置的app坐标不准确,多调整调整起点、终点、间隔值就好。

使用用 bat 脚本启动手机桌面 app相关推荐

  1. 使用bat脚本启动指定目录下的jar包

    为了将一个java程序封装成一个简单易用的小工具,使用bat脚本启动jar包. 方便理解,贴图展示层级关系: 在txt文档中,键入: @echo off java -jar %~dp0core\dem ...

  2. bat脚本启动Java服务

    bat脚本启动Java服务 1.终端cmd窗口运行jar 2. bat脚本启动jar包 3.后台启动bat脚本 4. 运行bat只启动一次jar服务及停止脚本 5.注意事项 6.所用资源 1.终端cm ...

  3. html自动执行bat,bat脚本启动程序 怎么命令bat打开某个文件

    CSS布局HTML小编今天和大家分享一BAT脚本运行某指定路径程序 执行的程序路径及参数如下: C:\Program Files\McAfee\Common Framework是00010010110 ...

  4. 记录bat脚本启动IE11并启用ActiveX控件

    业务需要,使用了Flash插件,为了实现IE启动时避免插件被禁用,全屏显示,启用相关ActiveX控件,需要编写bat脚本供程序调用初始化,记录如下 本机环境win10,使用IE为IE11,知识点:I ...

  5. Windows环境使用bat脚本启动Redis服务

    一.编写脚本startup.bat启动Redis服务 @echo off title redis-server set ENV_HOME="D:\DevTools\Redis 5.0&quo ...

  6. 【Tools】Windows环境下.bat脚本启动和关闭Redis

    1.启动redis脚本(start-redis.bat) @echo off title redis-server set ENV_HOME="C:\tools\redis" co ...

  7. Windows 通过bat脚本启动Eureka,Cassandra和redis-server

    在桌面放的有eureka-server-1.0-SNAPSHOT.jar,cassandra.bat,在D盘放的有redis-server.exe,每次都要逐一点开有点麻烦;于是可以在桌面创建一个.b ...

  8. Windows 如何用.bat脚本启动nginx

    首先新建文本文档,将文件后缀改为.bat,并在里面写下如下代码: rem 打开nginx的存放路径 cd D:\nginx-1.21.5 rem 修改配置后重新加载生效,所以如果更新了文件夹或者con ...

  9. 运行startup.bat的启动过程

    一.前言 一般启动tomcat都是找到bin目录下的startup.bat(windows)下或者startup.sh(linux下),所以要研究tomcat的启动,startup脚本是避不开的.那么 ...

最新文章

  1. 解释上采样和PixelShuffle
  2. python爬取历史上的今天数据并展示。
  3. java spring mysql配置_java相关:mysql+spring+mybatis实现数据库读写分离的代码配置
  4. Xen虚拟机迁移技术
  5. android+usb摄像头预览分辨率,UVCCamera(usb camera)适配Android9
  6. webpack 4 入门教程一
  7. 董耀祖:云原生是趋势,多云、边缘云也变得很热
  8. Makefile入门(超详细一文读懂)
  9. windows7梦幻桌面
  10. 斯皮尔曼相关(spearman)系数法
  11. 用什么软件测试电脑硬件的问题,新电脑检测软件-我买了新电脑,用什么软件测试比较好?最好还能看见自己详细配置的软 爱问知识人...
  12. window 使用 Edge/Chrome 调试手机 iOS 的 Safari 浏览器
  13. Error on rename ofXXXXXX (errno: 152)
  14. 上海浦东新区:在不动产登记、政务服务领域应用电子合同、印章
  15. pikachu——验证码绕过(on client)python脚本解法
  16. 用python做生日礼物_如何做一个网页送给女朋友做生日礼物?
  17. 神经网络的简介和特点,神经网络的简介和应用
  18. firefox阻止更新并阻止提示更新
  19. js通过两种方式进行对商品价格排序
  20. java socat_Socat虚拟串口无法识别

热门文章

  1. 摩托罗拉g7 plus,手机浮躁时代的匠心臻品
  2. Keynote教程-界面和基本操作
  3. 2022最值得入手的运动耳机、2022运动蓝牙耳机推荐排行榜
  4. JVM性能优化(一)
  5. 奇奇怪怪 - AndroidStudio 图标双击没有反应,打不开.
  6. java如何快速入门及虚拟主机能装java吗?[图]
  7. 运动蓝牙耳机什么好?五款国产不容错过的运动耳机
  8. 海绵学习法:怎么找到你的10000小时?
  9. 运维面试题-Linux基础篇
  10. 原生前端三大件实现餐厅经营小游戏