电脑文件打包怎么操作 文件打包怎么操作

往期原理介绍回顾一下之前两期的原理啊~
方法1:通过uip命令读取界面上的内容,然后按照元素名称以键值对的形式(json)写入到文本里面,利用文本这个存储媒介实现保存和读取界面配置 。
方法2:读取和写入界面配置文件来实现界面存储和加载 。配置文件存储位置有2种情况~
【情况1】脚本调试阶段,配置文件路径是:新版和老版按键助手路径不同 。
/sdcard/MobileAnJian/UIConfig/ http://老版按键助手/sdcard/MobileAnJianVip/UIConfighttp:///新版按键助手【情况2】脚本打包后 , 配置文件路径是:
/data/data/"&包名&"/files/script.cfg
这两类路径一定要区分开,不能用混淆了 。
往期这两种方法各有弊端,方法1需要预先写好每一个输入框、多选框、下拉框的名称,不能随便修改 , 如果已经写好的脚本 , 就不适合用这个方法去写了 。
方法2的弊端是我在脚本中写的读取和写入配置文件的,必须在运行脚本后生效,保存配置点一下运行脚本还好,如果是加载配置就显得很麻烦了 , 加载完还要重启脚本才能看到界面上的内容变化 。
本期原理介绍
这一期的原理是结合前两期的内容,以方法1为基?。?通过方法2获取元素名称及类型 , 解决方法1的缺陷 。
下面分别说一下保存配置和读取配置
保存界面原理
①读取界面上“可修改”内容,也就是被存储到界面配置文件里面的,并不是所有的界面元素?。庖坏阈枰⒁庖幌?。“可修改”内容包括:输入框的内容、多选框是否勾选、下拉框的选项 。
UIP.GetAttribute("界面元素名称")
【电脑文件打包怎么操作 文件打包怎么操作】这个命令的返回值是键值对的表(数组) , 每个界面元素的键值对都是不一样的 。
输入框的内容
dim ret=uip.GetAttribute("输入框1")showmessage ret
多选框是否勾选
dim ret=uip.GetAttribute("多选框1")showmessage ret
下拉框的选项编号
dim ret=uip.GetAttribute("下拉框1")showmessage ret
如果你想深入了解的话,可以通过下面的代码把所有的界面元素返回值都看一遍 。
Function 按钮点击事件()dim ret=uip.GetAttribute("界面元素名称")Dim json=encode.tabletojson(ret)showmessage jsonEnd Function
②解决获取界面元素名称的问题 , 本文的高光点 。
以前在读取界面上内容时,都是要预先知道界面上所有元素的名称,比如输入框有3个,我们知道输入框1名称、输入框2名称、输入框3名称,如果按照循环去写名称还好,可以通过计次循环的方式拼接名称,比如输入框+序号 。
如果在编写脚本开始时就打算好了添加配置文件保存和加载功能,可以专门留言命名问题,但是我们在写脚本的时候都是根据需要随时可能会添加界面元素,那么这个就是个头疼的问题了 。
那么怎么解决呢?
读取脚本自己生成的界面配置文件,当我们点击界面下方的保存按钮,在手机(模拟器)生成配置文件 。
电脑文件打包怎么操作 文件打包怎么操作
电脑文件打包怎么操作 文件打包怎么操作
配置文件中保存我们想要的界面元素名称 。
{"下拉框1":0,"多选框1":true,"输入框1":"你好"}
分析到这里 , 我们串联一下界面源码、界面展示内容、界面配置文件三者之间的关系,下面以输入框为例~
通过上图可以看到 , 界面上的元素名称,除了源码中有,在配置文件里面也有,那么这就为我们解决获取界面元素名称问题提供了一个新的思路,读取配置文件里面元素名称 。
第一步:使用文本读取命令file.read,读取配置文件的内容,得到键值对的表 。
第二步:对于一个键值对的表,想要获取它的键名,最简单的方法就是遍历数组了 。
For Each k , v In tablehttp://table是键值对http://k是键值(key)http://v是键值(value)Next
第三步:获取到键名也就是元素名称 , 还有一个问题就是 , 怎么区分元素的类型 。
通常来说 , 界面元素默认的命名方式是元素类型+编号:
输入框1、输入框2、输入框3…多选框1、多选框2、多选框3…下拉框1、下拉框2、下拉框3…
如果大家都本本分分的使用这个默认名称,那也还好 , 但是往往大家为了能够区分每个元素的作用,会给它们修改名称 。
这样一来就出问题了,当我们通过读取配置文件获取到一个元素名称,然后下一步就没法通过名称命名判断元素的类型了,到底是输入框、多选框还是下拉框 。

推荐阅读