工具下载

官网地址

连接模拟器

studio连接

首先要先下载ADB模拟器连接IDE,注意,这里一定要用官网提供的ADB,安卓开发的adb不行!!!

下载好之后,打开studio,输入Access Key按照下面步骤执行

如果出现以下这种情况重复执行上面步骤

第一步,先进入到下载的目录下执行 adb connect 127.0.0.1:7555

运行完用adb devices查看是否连接,如果出现offline要断开重连,断开语句adb disconnect 127.0.0.1:7555

第二步,执行显示nLog日志.bat,然后执行执行连接编辑器.bat(相当于执行./adb.exe forward tcp:50005 tcp:50005)

第三步,安卓端运行触动精灵

上面的这些步骤可以用下面两行代码替换,如果取色器不能截图,换一个模拟器。

常用模拟器端口号

注意:mumu模拟器默认为横屏,可以通过设置屏幕为720*1080来实现竖屏

查看官网连接模拟器

在设备一栏中新增127.0.0.1,然后右击连接

连接成功标示

这里注意把虚拟机时间设为网络同步。

拾色器

连接好Studio后,连接拾色器,输入127.0.0.1:50005,注意这里一定要为50005!!!连接成功后窗口消失。点击抓图即可。

颜色比对常用api

拾色器快捷键

常用快捷键

  • `(数字1左边那个键)
    取一点颜色到剪贴板,取色后直接可以粘贴,默认情况下,该操作不会有可视化表现
  • 数字键(1 2 3 4 5 6 7 8 9 0)
    多点取色到剪贴板,以上十个数字键分别取 10 点色,取色之后直接 Ctrl + V 即可把取好的点色粘贴到脚本中
  • Shift + (1 2 3 4 5 6 7 8 9 0)
    清除相应位置的点色信息(会重置剪贴板中的内容)
  • 方向键(↑ ↓ ← →)
    移动鼠标指针定位 1 个像素
  • Shift + 光标键(↑ ↓ ← →)
    移动鼠标指针定位 10 个像素
  • Ctrl + 光标键(↑ ↓ ← →)
    移动鼠标指针定位 100 个像素
  • 回车键
    取色到剪贴板的第一个空白位置(如果没有空白位置则不会取色)
  • Ctrl + 鼠标左键-点击
    与上一条 回车键 功能一样
  • -
    缩小视图
  • =
    放大视图
  • R
    刷新列表中的已有坐标的颜色并使用简易标签于图像上标出相应的位置
  • W
    把取色列表重新写入剪贴板

其他快捷键

模拟点击事件

用取色器获取某个点的坐标,模拟点击按钮,代码如下

init()  --初始化(0,0)坐标
mSleep(*) --睡眠三秒,防止坐标没初始化好
--[[模拟点击事件]]--
touchDown(,) -- 点下某个像素点
mSleep() -- 睡眠20ms
touchUp(,) -- 从像素点上抬起抬起

智能找色脚本

用到findMultiColorInRegionFuzzy方法,即区域多点找色

游戏:萌犬变变变

首先用颜色拾取器将箱子的三个点取下来(相当于识别物体),然后按住shift框选识别区域。点击生成脚本,复制最后一栏。

代码如下

init()  -- 启动初始坐标
mSleep(*) -- 睡眠三秒防止没有初始化成功
while (true) do -- 无限执行
--[[刚才颜色拾取器生成的脚本,返回的是第一个值的坐标]]--
x,y = findMultiColorInRegionFuzzy( 0xbd8c5a, "-29|-47|0xbd8c5a,-51|-2|0x000000", , , , , )
if(x~= - and y~= -) -- 根据多点颜色区域模糊查色返回的结果
then
touchDown(x, y) -- 点击事件
mSleep()
touchUp(x, y)
end
end

TSLib库

这个是触动精灵自己的,用法要看官方文档

首先在最上面加载TSLib库

require("TSLib")

封装一些通用函数

-- 根据坐标点击
function click(x,y)
if(x~= - and y~= -) -- 根据多点颜色区域模糊查色返回的结果
then
touchDown(x, y) -- 点击事件
mSleep()
touchUp(x, y)
end
mSleep(*)
end
-- 打印坐标,调试用
function showClick(x,y)
dialog('返回视屏坐标x'..x..','..y)
end

multiColor

多点比色,用来判断界面

require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下
--全部坐标点和颜色一致时返回 true,== true 可省略不写
--判断是否为某个界面
if multiColor({{, , 0x9b9b9b},{,,0x9b9b9b},{,,0xff3031},{,,0xfff6f6},{,,0x9b9b9b},{,,0x9b9b9b}},,false) == true then
x,y = findMultiColorInRegionFuzzy( 0x191f25, "1|0|0x191f25,2|0|0x191f25,3|0|0x191f25", , , , , ) -- 查找指定区域内黑色的文字
--showClick(x,y); 调用封装的函数,显示坐标轴
click(x,y) --点击进入视屏
mSleep(*) --观看3分钟
click(,); --点击返回
touch():on(,):move(,):off()
mSleep(*)
end

便捷UI

便捷UI文档

信息提示脚本

官网文档

信息提示脚本主要用于调试用,注意手机要开启悬浮框权限

dialog

阻塞式信息,会阻塞脚本,慎用

toast

异步信息,建议用这个,toast显示几秒,后面要用mSleep等待几秒,不然下面取色取到toast可能会出问题

逐行获取文本文件数据

逐行读取文本代码如下

for line in io.lines("main.lua") do
print(line)
end

控制台输出指定文件的数据

--获取文件路径,serPath为触动精灵所在目录
local file = userPath().."/res/密令.txt"
if file then
for line in io.lines(file) do -- 遍历文件里的内容
inputText(line) -- 输出到控制台
mSleep()
end
dialog("输入完毕", )
lua_exit() -- 退出lua程序
end

防锁屏

判断屏幕是否为锁定状态

代码如下

flag = deviceIsLock();      --如果要在设备自启动时解锁屏幕直接使用 unlockDevice 函数即可
if flag == then
dialog("未锁定",);
else
unlockDevice(); --解锁屏幕
end

主屏幕按键

API

pressHomeKey();    --Android 系统不需要填参数,自动点击抬起

报错友善提示

function main(...)
error("这是一个错误演示!",) -- 手动抛出一个异常
return
end neo,errmsg = pcall(main) -- 保护模式调用,第一个参数为是否返回异常,第二个参数为返回的异常信息
if neo then -- 如果不返回异常
dialog(errmsg, time)
else
--返回异常时弹出友善提示框
user_Choosen = dialogRet('很抱歉辅助出现异常,是否将错误信息写入剪切板以回报开发者!',"积极回报","残忍拒绝" ,"",)
if user_Choosen == then -- 如果点击确定
writePasteboard(errmsg) -- 复制到粘贴板
dialog('错误信息已经写入剪切板!',) -- 提示用户
end
end

调用Http发送数据

local url = string.format("http://www.***com:9002/pubApi/uLogin?uName=%s&pWord=%s", account, password)  -- 生成url
local code, header, body = http.get(url, ) --发送请求,10秒超时.code、header、body不解释
if code == then -- 如果返回为200时
if body == "False" then
return false
end
return true
end

基于Lua语言的触动精灵脚本开发的更多相关文章

  1. 基于go语言结合微信小程序开发的微商城系统

    最近在慕课网上录制了一门<Golang微信小程序微商城系统原型>,这门免费课程特别适合在校大学生或者刚毕业的大学生,go语言初学者以及想要从事微商城开发项目入门的小伙伴们来学习.在课程当中 ...

  2. 基于Django的独立运行python脚本开发

    Django框架很方便,比如其方便的ORM,如果写基于Django的独立运行脚本,主要在脚本前面加上以下代码: import sys,os,django sys.path.append(os.path ...

  3. 接触手机脚本编程------基于触动精灵的lua编程

    Auto.js好用多了,还不用root直接能用,我为什么学这个呢..... 最近因为学习需要开始接触一门新的脚本语言,我更深刻的发现了,语言只是一种工具,重要的是解决问题的思维,由于这次是需要我快速掌 ...

  4. 基于VB语言对SolidWorks参数化设计的二次开发

    0 引言 随着数字信息化进程的快速推进,如今三维CAD技术在越来越多的企业当中得到运用.为了降低在设计生产中的成本,缩短设计周期,增强企业竞争力,三维参数化技术随之应声,它凭借更贴近现代概念的设计以及 ...

  5. 基于lua的网页脚本开发语言cgilua(转)

    这里为大家介绍基于lua脚本实现的网页开发语言,cgilua 介绍 cgilua使用Lua是一个用于创建动态网页的服务器端脚本语言.纯LUA脚本和LUA页(LP)的支持,cgilua.Lua脚本是一个 ...

  6. ESP8266使用详解--基于Lua脚本语言

    这些天,,,,今天终于看到了希望,,,天道酬勤 先说实现的功能...让ESP8266连接无线网,然后让它建立服务器,,我的客户端连接上以后,发给客户端发数据模块打印到串口,,往ESP8266串口里发数 ...

  7. 五,ESP8266 TCP服务器多连接(基于Lua脚本语言)

    https://www.cnblogs.com/yangfengwu/p/7524326.html 一些时间去准备朋友的元器件了... 接着写,,争取今天写完所有的文章,,因为答应了朋友下周5之前要做 ...

  8. 八,ESP8266 文件保存数据(基于Lua脚本语言)

    https://www.cnblogs.com/yangfengwu/p/7533845.html 应该是LUA介绍8266的最后一篇,,,,,,下回是直接用SDK,,然后再列个12345...... ...

  9. 一、ESP8266入门(基于LUA开发)

    序 一入坑便停不下来... 还挺有意思的哈,233,,,, 资料杂,自己一个一个去找确实浪费了不少时间,而且大多还都是英文的,需要硬着头皮看. 这次实践入门,更是对英语的重要确信无疑.Github必须 ...

随机推荐

  1. FireMonkey 源码学习(3)

    五.TTextLayoutNG 在FMX.TextLayout.GPU.pas文件中,实现了几个基础功能,其中: (1)渲染单元 在TextLayout中,每一批同字体和颜色的1~n个字符,组成一个最 ...

  2. TI 多模雷达1843毫米波雷达做自动泊车(用了8个雷达)

    http://e2e.ti.com/blogs_/b/behind_the_wheel/archive/2019/01/09/how-mmwave-sensors-enable-autonomous- ...

  3. 程序重启RocketMQ消息重复消费

    最近在调试RocketMQ消息发送与消费的Demo时,发现一个问题:只要重启程序,RocketMQ消息就会重复消费. 那么这是什么原因导致的,又该如何解决呢? 经过一番排查,发现程序使用的Rocket ...

  4. 关于COM类工厂80070005和8000401a错误分析及解决办法

    关于COM类工厂80070005和8000401a错误分析及解决办法 看到很多相关的文章,第一次配置配置时没有啥作用,让别人来解决的,可惜不晓得他怎么解决的,当我再次遇到时,不得不硬着头皮去解决. 总 ...

  5. (转载)C#控件缩写规范

    标准控件缩写规范 类 型 前 缀 示 例 Adrotator adrt adrtTopAd BulletedList blst blstCity Button btn btnSubmit Calend ...

  6. .Net Core 本地化&全球化 实践

    介绍: 所有有关本地化的数据获取,都是从统一的一个资源文件中获取 1.创建虚拟类.资源文件,用于作为本地化数据的获取源 2.Configure localization:支持view.data ann ...

  7. Sublime Text 查找时排除指定的文件夹或文件

    Sublime Text 查找时排除指定的文件夹或文件 Ctrl + Shift + F这组快捷键可以调出 Sublime Text 的查找替换窗口,里边有一栏 Where,可以做一些高级设置:d:\ ...

  8. js url参数和对象互转

    function param(a) { var s = [], rbracket = /\[\]$/, isArray = function(obj) { return Object.prototyp ...

  9. shell案例题

    目录: 1.批量生成随机字符文件名案例 2.批量改名特殊案例 3.批量创建特殊要求用户案例 1.批量生成随机字符文件名案例(P359) (1).利用openssl命令来实现 #!/bin/bash # ...

  10. maven . mac

    编辑文件 .bash_profile 1.vim .bash_profile 输入: M2_HOME=/Users/lizhimin/Documents/maven/apache-maven-3.3. ...