Skip to main content

加载APK

from ascript.android import plug

AS 可以将一个APK文件导入,可以加载并执行APK文件中的类

  • 函数
plug.load_apk(file_path:str)
  • 参数
参数类型是否必填说明
file_pathstrapk文件的绝对路径
  • 返回值
dalvik.system.DexClassLoader<?> //class 对象. 

拿到该对象,我们可以通过java 反射,创建类的实例,并运行其内部方法等等..

  • 示例:
from java.lang import Class
from ascript.android import plug

# 加载apk,获取 DexClassLoader 对象
clazz_loader = plug.load_apk("sdcard/my.apk")
# 获取 Apk中的类
clazz = Class.forName("com.aojoy.apkplug.TestPlug", True, clazz_loader);
# 获取 获取公共(无参数)构造
constructor = clazz.getConstructor()
# 创建类的实例
instance = constructor.newInstance();
# 获取成员方法run
method = clazz.getMethod("run");
# 执行成员方法
method.invoke(instance);