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

安卓/ios脚本开发按键精灵经验小分享

1. 程序的切换


我们经常碰到这样的需求:打开最近的应用列表,选取我们想要的程序。但是每个手机为了自己的风格,样式都有区别,甚至连列表的滑动方向都不一样,我们很难通过模拟操作来识别点击,那么我们做的只能给自己用。没办法了吗?当然不!我们来看看有哪些相关的命令,找啊找,终于,我们在命令大全找到了GetRunningApp()这个函数,命令的用法是:

  1. Dim arr() //定义一个数组变量
  2. arr=GetRunningApp() //获取所有应用程序包名并将它们合并到arr数组中保存
  3. For each n in arr
  4. TracePrint n //遍历arr数组并输出所有获取的包名字符
  5. Next

命令功能易懂,返回的是一个应用包名列表,好了,列表名找到了,那么我们来看看获取的列表名有什么规律,我们尝试打开一个应用并运行一下脚本:

我们可以发现,在获取运行中的应用列表的最下面,含有我们最后一次打开的应用,我们再打开一个应用试验一下:

证明我们的想法完全没错,并且,我们可以发现,倒数第二个就是我们上次打开的应用,根据这个特性,我们就不需要使用Menu键或者长按HOME键(Android 4.4之前)去打开最近的应用列表了。我们只需要这么写:

  1. Dim arr= GetRunningApp()
  2. Function UBound(arr)
  3. Dim i = 0
  4. For Each str In arr
  5. i = i + 1
  6. Next
  7. UBound = i
  8. End Function
  9. RunApp arr(UBound(arr)-2) //打开上次打开的程序,上一个程序是-2而不是-1是因为数组下标从0开始

2. 脚本之间的交互

有的功能,可能一个线程并不能完美实现,这时候需要用到多线程,但是多线程的写法相对来说复杂一些,那么有什么好办法吗?

这边可以尝试着打包两个小精灵,并同时运行,发现这是行得通的,那么就可以以这种另类的方式实现多线程,并且可以很方便的进行组合来实现功能

(例如我有一个脚本是用来做定时重启游戏的,一个是a游戏脚本的,一个是b游戏脚本的,那么只需要在定时重启游戏的脚本里设置不同游戏并运行,就等于开启了一个线程用来检测,这个时候可以自己搭配a游戏脚本或者b游戏脚本),这种方式虽然降低了脚本难度,但是确提高了控制难度,实在算不上多好的方法,但是它有其独特的地方,那就是可以根据同样的原理,来对手机按键(模拟器中)和PC按键之间进行交互。

比如希望手机上运行游戏,电脑端实时反馈游戏情况,相信很多人知道模拟器的图像并不好获取,一缩放就都变样了,因此使用PC按键来写模拟器中的游戏脚本不是好选择。而PC端用PC按键,手机端用手机按键,只要他们之间有桥梁就能够完美协调。


说了那么多,交互方法呢!别急,马上说,知道模拟器是可以共享文件夹的,也就是它可以和硬盘数据共享,那么交互就可以采用文本来交互!至于交互的方法:通过读取修改同一个文件来实现交互。
们来分析一个功能:我们需要在手机端上为XX平台刷数据量,于是我们需要登陆进去,简单的使用一键注册的方式来注册账号,并记录下系统为我们分配的ID号,使用识字命令记录下识别到的ID。然后存储到文本中,这个时候再通过PC端的文本读取来得到ID值进行处理,你可以识别到新的ID就添加到word文档,或者通过QQ发送给某某。
你们也许会说!文本又不需要实时去读取,根本没必要做此交互,以上的例子可能如此,但是这并不代表他就没有独特的地方可以用到,我们知道,现在的模拟器一个个先后支持了多开,如果我开了2个模拟器。有100个号需要他们完成,我们可以人工的一个模拟器设定一次,并分别记下他们处理到的位置,并且由于多开的模拟器处理速度不一致,可能出现有的快有的慢的情况,我们不好协调分配,基于这个情况,我们是否就能用到上述的方式来进行处理呢?

这个较多的是思想而不是代码,毕竟先有想法再实现,所以大家可以发散思维,可能一些另类的方法反而能更好的实现我们需要的功能!


http://www.kler.cn/a/536647.html

相关文章:

  • 智能门铃市场:开启智能家居新时代
  • 无人机方位感知器官磁力传感器!
  • 学习日记-250207
  • 解决 npm : 无法加载文件 D:\nodeJS\node_global\npm.ps1,因为在此系统上禁止运行脚本。
  • 【deepseek实战】绿色好用,不断网
  • langchain教程-3.OutputParser/输出解析
  • .net一些知识点5
  • VMware下Linux和macOS安装VSCode一些总结
  • 2025 IT职业发展方向及推荐
  • 基于SpringBoot养老院平台系统功能实现六
  • 【SpringBoot篇】基于Redis分布式锁的 误删问题 和 原子性问题
  • log4j2日志配置文件
  • DeepSeek 引领的 AI 范式转变与存储架构的演进
  • pring MVC 中的 `@RequestParam` 注解
  • Vue2:通过inject在子组件中使用父组件通过mixin引入的公用方法
  • 常见数据库对象与视图VIEW
  • 力扣.623. 在二叉树中增加一行(链式结构的插入操作)
  • LeetCode--279. 完全平方数【动态规划】
  • 深度学习模型格式解析:PyTorch、AWQ 和 GPTQ
  • @RequestBody与@ResponseBody:Spring数据处理的“翻译官”
  • 基于PSO粒子群优化和Voronoi图的配电网电动汽车充电站最优选址matlab仿真
  • error: externally-managed-environment
  • 【网络安全学习笔记】传输层协议 UDP 与 TCP
  • 【物联网IoT - 10分钟,构建一个自己的MQTT Broker服务!】
  • 第17章 读写锁分离设计模式(Java高并发编程详解:多线程与系统设计)
  • 基于Flask的历史空难数据可视化分析系统的设计与实现