Android拓展 lua实现类似按键精灵效果

在android 上运行lua脚本,但是想用lua脚本的方式去实现自动按键的效果的话就得拓展lua关键字;我是直接在 AndroLua的基础上拓展的。很多人说为什么不用adb,adb只能实现简单的指令,不能实现取色找图效果,因此要实现高级指令的话,必须用C/C++实现,直接操作底层的设备驱动文件,而且adb指令也不能做到远程下发实现集控效果,因此要想自己的项目在移动端自动化里面起点站的更高一点的话,通过实现底层函数去拓展lua是最好的选择,就比如按键精灵一样

下面就介绍如何拓展lua关键字,我主要是参考lua的os.time()函数,在文件loslib.c我们可以看到os系列函数的定义实现如下图:

Android拓展 lua实现类似按键精灵效果_第1张图片

通过luaopen_os函数我们可以 知道该调用将会注册os函数族,那么在lua脚本中就可以使用os...函数了。往下我们看看luaopen_os()函数是在哪里被调用的,全局搜找到init.c文件中如下:

Android拓展 lua实现类似按键精灵效果_第2张图片

luaL_openlibs()函数统一调用了一些列的函数注册方法,使得所有的lua模块都生效,而在项目AndroidLua中在java层就调用openLibs()方法,这个最终会通过JNI调用到luaL_openlibs()函数。到这里就可以按照上面的思路去拓展我们的lua关键字,在上图中我已经加了个luaopen_system()函数,下面是这个函数的注册列表

Android拓展 lua实现类似按键精灵效果_第3张图片

编译成功后我们就可以在lua脚本中使用system.x()系列的函数了

上面的system系列函数主要是用于实现类似按键精灵的效果,要运行的话先要root手机获取最高权限,效果图和源码地址:

https://github.com/MHuangXin/AndroidLua.git

下面的脚本将会模拟点击屏幕三次,按下音量-键,按返回键,按菜单键,按home键,点击屏幕顶部下滑,


Android拓展 lua实现类似按键精灵效果_第4张图片

因为这是写在代码中的所以有很多双引号和换行符,我们也可以写在.lua文件中通过dofile运行脚本,效果图可以在github源码地址中看大

你可能感兴趣的:(lua,android,lua,for,Android,Android,Lua)