Skip to content

一个加了luajava的好用的修改器

Choose a tag to compare

@JealousCat JealousCat released this 07 Nov 12:21
· 14 commits to main since this release
f29b9f1
--require导包说明
--使用false,默认从方前脚本或者/data/data/.../files/导入import.lua
--也可以通过package.path来配置搜索路径
require(false)
--使用true
--除去可从上述路径加载import外,还将从云端检验与/data/data/缓存文件是否一致,或者是否有import文件
--如果不一致或没文件将进行下载更新
require(true)
--使用普通字符串
--不影响require的正常使用
require("import")
--或者 require "import" 只有字符串的可省略括号

--加载完毕后就可以import了
import "loadlayout"--import一个文件,loadlayout可以是本地的,也可以是云端的,该文件默认进行云端检验,可在import.lua内删除检验部分
import "java.lang.String" --import一个类
import "Image" --import一个dex并编译,也可以写为import "Image.dex"
--Image.dex为云端dex,导入时默认会检验
import "androidx.a.ImagesUtils" --导入Image中的类

脚本实例

require "import"
import "android.app.*"
import "android.os.*"
import "android.widget.*"
import "android.view.*"
import "android.content.*"
import "android.graphics.drawable.*"
import "android.*"
import "android.ext.BaseActivity"
import "android.content.DialogInterface$OnClickListener"
import "android.widget.ImageView"
import "loadlayout"
compile "Lock"
import "android.ext.LockFunction"

--别在线程里执行gg.searchNumber等函数,否则卡死
--LockFunction中有
--LockUi和unLockUi,用于对Ui线程执行的代码加锁
--LockUi有两个参数,可传可不传
--LockUi(LuaFunction,LuaValue),第一个参数如果不传任何值,那第二个参数默认不传
--第一个参数传函数,第二个参数可传可不传,当需要传递一个或多个参数时用{}把参数包起来
--LockUi有返回值,为传入的参数的执行结果
--unLockUi同理,不过unLockUi是用来释放锁后,执行传入的函数,相当于回调callback
--来自runOnUiThread

--LockMain和unLockMain,用于主线程加锁
--用法同理
--runOnMainThread

--LockWrite和unLockWrite,用于读写线程加锁
--用法同理
--runOnWriteThread

--LockLog和unLockLog,用于带android.ext.Log的程加锁
--用法同理
--runOnLogThread

T={
  LinearLayout;
  layout_height="fill";
  orientation="vertical";
  layout_width="fill";
  {
    Button;
    text="刷新日志";
    id="alert_button";
    background="#7499c9e4";
    layout_width="fill";
  };
  {
    ScrollView;
    layout_width="match_parent";
    id="scorl";
    {
      TextView;
      textIsSelectable="true";
      id="logtext";
      enabled="true";
      focusable="true";
      text=[==[日志:
]==];
      longClickable="true";
    };
  };
};

count=0

function alert()
  dialog = AlertDialog.Builder(activity,4)--可以设置弹窗样式 1-5 这里设置4
  lay = loadlayout(T)

  alert_button.setOnClickListener({onClick=function()
      count = count + 1
      logtext.Text = logtext.getText().toString().."测试"..count.."\n"
    end})

  dialog.setView(lay)
  dialog.setCancelable(false)
  dialog.setPositiveButton("确定",{
    onClick=function(v,i)
      gg.toast("你好")
       dialog.create().dismiss()
      LockFunction.unLockUi() --释放锁
    end})

  dialog.setNegativeButton("取消",{
    onClick=function(v,i)
      gg.toast("取消")
       dialog.create().dismiss()
      LockFunction.unLockUi()
    end})

  dialog.setNeutralButton("退出", {
    onClick=function(v,i)
      gg.toast("退出")
      dialog.create().dismiss()
      LockFunction.unLockUi()
    end})

  create = dialog.create()

  if (Build.VERSION.SDK_INT >= 26) then
    create.getWindow().setType(2038)
   else
    create.getWindow().setType(2003)
  end
  dialogView = create.getWindow()
  drawable = GradientDrawable()
  drawable.setColor(0xCF30A9DE)
  drawable.setCornerRadius(30)
  dialogView.setBackgroundDrawable(drawable)
  create.show()
end

--加锁执行

LockFunction.LockUi(alert)