聊一聊安卓按键的“热更新”

对于热更新其实不是很懂,不过这几天总有人问这个问题,那就去研究一下,说一下我对于安卓按键热更新的理解。

就按键而言,能做到的是参数的热更新,并不能说把一个脚本直接更新完以后变成另外一个完全不相关的脚本(当然这里不排除因为我技术差做不到的可能)。

接下来就举例说明,比如大家可能下载过我的命令库xiaomu.mql,这个命令库里有更新说明,在使用时会发现这个更新说明是有变化的,每当我有新命令添加到命令库里面,我会修改这个更新说明,你在使用命令库的时候就会看到我的提示。(看下图红框内容)

聊一聊安卓按键的“热更新”_第1张图片

打开命令库源码会看到是这样的~

聊一聊安卓按键的“热更新”_第2张图片

在代码当中我通过url.get的方式,读取了一个静态页面,这个页面是我自己制作的,上面的内容我可以随时修改,当你运行脚本的时候就会读取我预先设定的内容。也就是说我想让你看到什么,我只需要修改页面内容,不需要修改脚本内容,你就能看得到了。

上面是输入的文字的例子,不具备功能性,来看一个有一定功能性的案例,《按键精灵安卓版怎么按照行号读取服务器空间上的txt文本》,这是通过读取服务器的文本,然后把内容作为脚本输出的话术使用,具体你可以看一下那篇文章。

当然文章中实现的功能也很单一,其实之前也想过怎么增加内容的复杂性,想到方法是通过在多个内容之间添加分割符号的方式,但是想想比较麻烦,调用也不直观,所以后来就没有继续研究了。

前两天群友给我发了一个文章:https://www.52pojie.cn/forum.php?mod=viewthread&tid=967415

文章中提到了把页面内容写成json格式,通过读取json键值获取指定内容,这样在获取想要内容的时候,就很直观了。

之前写了两篇关于json提取的文章,大家可以去看看,有助于自己写json内容。

《对接有道翻译api,详解get方法和json提取【推荐】》

《提取api返回值里面的内容》

回到我开头说的,按键是参数的热更新,那么读取处理json以后,最终还是字符串,那么对于脚本来说,这些读取内容只能是作为命令的参数、判断的条件来使用。

那我想让脚本更加可控,就必须预先搭建好脚本的框架。

这里可能要介绍一下什么是参数?

在使用命令的时候,要在命令后面加各种内容,这个内容就是参数,比如点击命令

tap 100,200

这个tap命令的参数就是100和200,一个是两个参数,怎么判断参数的个数,要看逗号的数量,参数和参数之间是通过逗号分开的(特别强调是未必引号包裹的逗号“,”)

参数可以是固定的值,

tap 100,200

也可以是变量。

tap intx,inty

或者是两者混合

tap intx+100,inty

我们说“热更新”就是更新这些参数内容。

说实话写完内容,我觉得脚本热更新挺难的,最大的问题是写的脚本要有“前瞻性”,要预先写好一个脚本框架能够为以后所用。

实际操作的部分,大家可以看看上面提及的链接,这里我说一下操作思路。

第一步:写好自己的脚本,测试能正常操作

第二步:思考脚本中哪些参数可能以后会更换

第三步:定义变量,把上一步中的参数全部用变量代替

第四步:把涉及到的参数都写在json里面

第五步:在脚本开头读取json值,然后把读取的值一一赋值给对应的变量

这期文章就是和大家聊一聊热更新,算不上教程。

你可能感兴趣的:(聊一聊安卓按键的“热更新”)