bt365官网-bt365体育在线投注-365体育在线

首页 >Android相关

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

2018-11-05 10:41 编辑: Gboy 分类:Android相关 来源:白鹭飞

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


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


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


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


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


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


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


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



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

--------------------- 

作者:白鹭飞 

原文:https://blog.csdn.net/u010949962/article/details/79119871 


搜索bt365官网微信公众号:bt365官网
微信扫一扫
订阅每日移动开发及APP推广热点资讯
公众号:
bt365官网
我要投稿   收藏文章
上一篇:好好说说Java中的常量池之Class常量池
我来说两句
发表评论
您还没有登录!请登录注册
所有评论(0

综合评论

相关帖子