工具下载

官网地址

连接模拟器

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. Bootstrap3基础 nav 便签页(横版、竖版)

      内容 参数   OS   Windows 10 x64   browser   Firefox 65.0.2   framework     Bootstrap 3.3.7   editor    ...

  2. windows下使用LibreOffice的体验

    我在家里一般是使用Ubuntu,学校这个网络需要e信拨号,还是只能用Windows主用,以前我在Ubuntu一直使用的是LibreOffice,这次看见学校电脑很乱了就重装了系统,MSOffice真的 ...

  3. 【原理、命令】Git基本原理、与Svn的区别、命令

    一.Git是什么? Git是目前世界上最先进的分布式版本控制系统.工作原理 / 流程:Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote ...

  4. hihoCoder week1 最长回文子串

    题目链接 https://hihocoder.com/contest/hiho1/problem/1 做法 Manacher #include <bits/stdc++.h> using ...

  5. 关于C#引用ExceptionPolicy.HandleException(ex, "LogAndReplace", out exceptionToReplace);

    http://www.cnblogs.com/Terrylee/archive/2006/07/03/enterprise_library2_1.html 要使用ExceptionPolicy.Han ...

  6. BMv2 simple_switch 运行时切换P4程序

    参考: [P4-dev] swapping p4 program using load_new_config and swap_configs commands BMv2 运行时切换P4程序 相关演示 ...

  7. Codeforces Round #441 D. Sorting the Coins(模拟)

    http://codeforces.com/contest/876/problem/D 题意:题意真是难懂,就是给一串序列,第i次操作会在p[x](1<=x<=i)这些位置放上硬币,然后从 ...

  8. EM算法——Expectation-Maximization

    最大似然估计 一个栗子:假如去赌场,但是不知道能不能赚钱,你就在门口堵着出来一个人就问一个赚了还是赔了,如果问了5个人都说赚了,那么你就会认为,赚钱的概率肯定是非常大的. 已知:(1)样本服从分部的模 ...

  9. 语法对照表ES5VSES6

    模块 导入 在ES5里面,如果使用CommonJS的标准,引入包一般是使用require来的 //ES5 js var React = require("react") var { ...

  10. 【三十五】thinkphp之视图

    1.模板定义 视图属于mvc中的v.一般是html结合php获取的数据提供给用户使用. 每个模板的文件都是独立的(文件名与控制器名称必须一样) 默认的模板文件规则是视图目录/[模板主题]控制器/操作名 ...