懒人精灵(一款类似按键精灵的工具)制作和使用C/C++编写的插件

下面是整个流程如果有什么不懂可以加群785554238,里面有最新的版本和相关最新的脚本例子以及插件

1.如果没有安装先从此处下载安装包 https://share.weiyun.com/chGtVAd2 密码:ha99bi,或者直接进群下载最新版本

2.开始今天的主题如何在懒人精灵中用lua脚本调用C++编写的android动态库so

3.编译so之前我们需要安装android ndk开发环境这里提供下载地址 https://dl.google.com/android/repository/android-ndk-r20b-windows-x86.zip

4.下载好后解压到你指定的目中,然后把当前ndk路径复制到环境变量中,点击确定即可,接下来测试ndk是否安装成功,我们打开控制台,输入ndk-build -v

表明安装成功

5.编写Android.mk 

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE:= assist
LOCAL_SRC_FILES:=lualib/$(TARGET_ARCH_ABI)/libassist.so
include $(PREBUILT_SHARED_LIBRARY) 


include $(CLEAR_VARS)
LOCAL_C_INCLUDES += $(LOCAL_PATH)/lualib/include
LOCAL_C_INCLUDES += $(LOCAL_PATH)/src
LOCAL_MODULE    := MyLib
LOCAL_SRC_FILES := src/MyLib.c
LOCAL_LDLIBS    := -lm -lz
LOCAL_SHARED_LIBRARIES := assist
LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog
include $(BUILD_SHARED_LIBRARY)
 

6.编写Application.mk

APP_ABI := x86 armeabi-v7a

7.编写c例子命名为MyLib.c

#include <math.h>
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>

static int Add(lua_State *L){
    double d1 = luaL_checknumber(L, 1);
    double d2 = luaL_checknumber(L, 2);
    lua_pushnumber(L, d1+d2);
    return 1;
}

static const struct luaL_Reg R[] = {
    {"Add" , Add},
    {NULL, NULL}
};

static int luaopen_LibMath(lua_State *L)
{
  lua_newtable(L);
  luaL_setfuncs(L, R, 0);
  return 1;
}

static int luaclose_libMyLib(lua_State*L) //关闭so时释放资源
{
    
    return 0;
}

int luaopen_libMyLib(lua_State*L)
{
     lua_newtable(L);
     lua_newtable(L);
     lua_pushcfunction(L, luaclose_libMyLib);
     lua_setfield(L, -2, "__gc");
     lua_setmetatable(L, -2);
     luaopen_LibMath(L);
     lua_setfield(L, -2, "Math");
     return 1;
}

8.开始编译,此处的层级目录如下

 jni/Android.mk

jni/Application.mk

jni/src/MyLib.c

jni/lualib --此处lualib是依赖项,可以在群文件例子中直接获取

 

9.so已经生成,这时可以把so添加到自己的项目中,分别添加armeabi-v7a 和 x86两个文件夹中

 

 

相关例子可以在群文件中直接下载

作者hyb1996,源码Auto.js,一个主要由无障碍服务实现的不需要Root权限的类似按键精灵的自动操作软件,可以实现自动点击、滑动、输入文字、打开应用等。 同时有Sublime Text 插件可提供基础的在桌面开发的功能。 下载地址:酷安 Alpha版本:Releases 特性 简单易用的自动操作函数 悬浮窗录制运行 更专业&强大的选择器API,提供对屏幕上的控件的寻找、遍历、获取信息、操作等。类似于Google的UI测试框架UiAutomator,您也可以把他当做移动版UI测试框架使用 采用JavaScript为脚本语言,并支持代码补全、变量重命名、代码格式化、查找替换等功能,可以作为一个JavaScript IDE使用 支持使用e4x编写界面,并可以将JavaScript打包为apk文件,您可以用它来开发小工具应用 支持使用Root权限以提供更强大的屏幕点击、滑动、录制功能运行shell命令。录制录制可产生js文件或二进制文件,录制动作的回放比较流畅 提供截取屏幕、保存截图、图片找色等函数,可进行简单的游戏脚本制作;未来将加入找图功能 可作为Tasker插件使用,结合Tasker可胜任日常工作流 带有界面分析工具类似Android Studio的LayoutInspector,可以分析界面层次范围、获取界面上的控件信息 与脚本精灵按键精灵等软件的区别是: Auto.js主要以自动化、工作流为目标,更多地是方便日常生活工作,例如启动游戏时自动屏蔽通知、一键与特定联系人微信视频(知乎上出现过该问题,老人难以进行复杂的操作子女进行微信视频)等 Auto.js兼容性更好。以坐标为基础的按键精灵、脚本精灵很容易出现分辨率问题,而以控件为基础的Auto.js则没有这个问题 Auto.js执行大部分任务不需要root权限。只有需要精确坐标点击、滑动的相关函数才需要root权限 尽管如此,Auto.js的大部分用户仍然是用来点赞、签到、刷游戏的:)
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值