前言
前天有个学员问“自己写安卓按键的插件该学些什么?”
这个问题我解决起来也比较困难,因为我对按键插件也不精通,只会个皮毛,只能讲一下基础内容。
一、安卓按键插件是什么编程语言
安卓按键的插件是基于lua语言编写的。
想要写好一个插件,首先要学会lua的基本语法,这里推荐学习教程
https://www.runoob.com/lua/lua-tutorial.html
二、按键插件都包括什么内容
通常完整的插件是由3个文件组成的。
插件名.lua
插件名.info
插件名.html
①、lua文件
lua文件是插件的功能文件,插件包含的所有命令代码都在这个文件里面,这个文件是必不可少的,而其他两个文件是可以省略的。
②、info文件
info文件是给插件增加描述的,让用户能够知道插件命令是干什么用的。
没有info文件的插件:
有info文件的插件:
info文件增加为插件增加名称,为命令增加名称,还能在写代码时增加命令使用方法的描述。
虽然info文件在命令功能上没有任何作用(有没有info文件插件都能正常使用),但是info文件能让插件看起来更完整,使用插件时查找命令更方便。
③、html文件
html文件是网页文件,是详细介绍插件每个命令的网页,一般包括命令的功能,命令的参数介绍,返回值介绍,还有提供命令使用例子的代码。
关于info文件和html文件的编写,网上有现成的工具,另外就是可以参照现有插件的info文件和html文件,在其源文件上修改。
三、插件的存放位置
插件想要正常使用,必须要放在指定文件夹:
按键助手安装目录/plugin文件夹,只需要把lua文件、info文件、html文件复制到这个文件夹,然后刷新按键助手的插件列表就可以使用插件了。
四、插件的编写
在熟悉了lua语言的基本语法后,就可以编写插件了,首先说一下插件的基本格式:
在lua文件中,想要做一个按键能用的插件,就必须要是以 QMPlugin 作为前缀的函数,也就是告诉按键,这个lua函数是按键插件。
写法有两种
①、以QMplugin为前缀直接定义函数
function QMPlugin.new()
end
②、对现有的lua函数,直接通过等于号赋值给以QMplugin前缀的函数。
function new()
end
QMPlugin.new = new
说一下基本格式:
function QMPlugin.new()
local iRet, sRet = pcall(function()
--插件的功能区
--return 函数返回值
end)
if iRet == true then
return sRet
else
print(sRet)
return ""
end
end
代码中pcall后面的函数是插件的核心功能。
local iRet, sRet = pcall(function()
--插件的功能区
end)
为啥要用pcall执行函数?
是为了对函数错误处理,可以保证即便插件函数出错了,也不会引起按键异常,可以理解为插件的异常保护机制。
local iRet, sRet
定义两个变量的作用:
iRet 存储pcall执行的函数是否正常,类型布尔值
sRet 存储函数的返回值(return)
后续在根据 iRet 的布尔值判断是否输出插件的返回值。
五、LuaAuxLib 按键精灵lua库
按键精灵自带lua库的命令,这里我就不复制了,直接提供大家一个网址,大家自己去查看把。
https://blog.csdn.net/mr_oldcold/article/details/84328296
使用方法是在命令前面加上luaAuxLib前缀
function print(...)
LuaAuxLib.TracePrint(...)
end
六、怎么学习制作插件
①、熟悉lua的基本语法
②、参照现成的插件
插件分成加密插件(后缀 .luae)和非加密插件(后缀 .lua),对于没有加密的插件,我可以直接打开源文件,比如file.lua 、shanhai.lua,只要不是luae后缀的文件,都可以使用文本打开。
参考别人的写法,自己模仿去写,遇到不会的功能可以在搜索lua相关的知识。
=正文完=
更多内容进主页查看往期文章
本文暂时没有评论,来添加一个吧(●'◡'●)