AndroLua+调用外部dex文件
aide吧
全部回复
仅看楼主
level 8
nirenr 楼主
require "import"
import "dalvik.system.DexClassLoader"
import"android.content.Context"
function loadex(path)
local optimizedDexOutputPath = activity.getDir("dex", Context.MODE_PRIVATE);
return DexClassLoader(path,optimizedDexOutputPath.getAbsolutePath(), nil,activity.getClassLoader());
end
classLoader=loadex("/storage/emulated/0/AppProjects/AndroLua2+/bin/AndroLua2+.apk")--包含dex的apk或jar文件
LuaEditor=classLoader.loadClass("com.androlua.LuaEditor")--dex中的类全名
edit=LuaEditor(activity)
print(edit)
2015年08月10日 07点08分 1
level 12
这真的有必要发出来么[黑线],Java怎么写这就怎么写[汗]
2015年08月10日 08点08分 2
你确定?Java获取class后如何使用?
2015年08月10日 09点08分
@nirenr 反射,不会?
2015年08月10日 09点08分
@nirenr 你这段代码可以不用多少修改在java上跑!
2015年08月10日 09点08分
回复 _柒月初七 :看楼下代码,用Java写出来,我对比下
2015年08月10日 10点08分
level 8
nirenr 楼主
require "import"
import "dalvik.system.DexClassLoader"
import"android.content.Context"
function loadex(path)
local optimizedDexOutputPath = activity.getDir("dex", Context.MODE_PRIVATE);
return DexClassLoader(path,optimizedDexOutputPath.getAbsolutePath(), nil,activity.getClassLoader());
end
classLoader=loadex("/storage/emulated/0/AppProjects/AndroLua2+/bin/AndroLua2+.apk")
LuaEditor=classLoader.loadClass("com.androlua.LuaEditor")
edit=LuaEditor(activity)
edit.Hint="by nirenr"
edit.Text=""
edit.Lines=5
activity.setContentView(edit)
2015年08月10日 10点08分 3
Hint,Text,Lines不是字段是对应setHint,setText,setLines
2015年08月10日 10点08分
level 8
学习
2015年08月10日 11点08分 4
level 12
public DexClassLoader loadex(String path) {
String optimizedDexOutputPath = this.getDir("dex", MODE_PRIVATE).getAbsolutePath();
return new DexClassLoader(path, optimizedDexOutputPath, null, getClassLoader());
}
public void main() {
try {
DexClassLoader dcl = loadex("/storage/sdcard1/androlua.apk");
Class<?> c
lz
= dcl.loadClass("com.androlua.LuaEditor");
Object obj = clz.getConstructor(Context.class).newInstance(this);
clz.getDeclaredMethod("setHint", CharSequence.class).invoke(obj, "by nirenr");
clz.getDeclaredMethod("setText", CharSequence.class).invoke(obj, "");
clz.getDeclaredMethod("setLines", Integer.class).invoke(obj, 5);
this.setContentView((View) obj);
}
catch (Exception e) {
new AlertDialog.Builder(this).setMessage(e.toString()).show();
}
}
2015年08月10日 18点08分 6
学习了Java貌似麻烦一些,AndroLua的优点就是写着简单
2015年08月11日 00点08分
@nirenr 因为lua毕竟是弱类型语言,写起来肯定是要方便
2015年08月11日 00点08分
level 1
怎么调用slasses.dex中的com.aide.ui.AIDEEditor?
2017年08月12日 06点08分 8
level 1
请问楼主还有具体点的例子吗?为什么我调用jar提示类不存在?
2022年11月22日 08点11分 10
1