Plugins

在脚本中使用的插件工具, 可将 jar, dex, apk作为插件加载到脚本中使用.

Author

M8Test, [email protected], https://m8test.com

Functions

Link copied to clipboard

直接添加一个 DexClassLoader .

abstract fun addClassLoader(classLoaderConfig: DexClassLoaderConfig.() -> Unit): BaseDexClassLoader?

添加一个 DexClassLoader .

Link copied to clipboard
abstract override fun close()

关闭当前对象, 如果没有调用本方法则会报错, 当然本方法由系统调用, 不需要手动调用.

Link copied to clipboard
abstract fun configureClassLoader(classLoaderConfig: DexClassLoaderConfig.() -> Unit)

配置 DexClassLoader , 一般用于排除指定的类, 如果找不到 DexClassLoader 会抛异常.

abstract fun configureClassLoader(dexClassLoader: BaseDexClassLoader, classLoaderConfig: DexClassLoaderConfig.() -> Unit)

配置指定的 DexClassLoader , 如果找不到 DexClassLoader 会抛异常.

Link copied to clipboard
abstract fun createClassLoader(classLoaderConfig: DexClassLoaderConfig.() -> Unit): BaseDexClassLoader

新建一个 DexClassLoader .

Link copied to clipboard
abstract fun getClassLoader(): ClassLoader

获取类加载器.

Link copied to clipboard

获取所有的 DexClassLoader .

Link copied to clipboard
abstract fun getContext(): ScriptContext

获取脚本上下文对象 ScriptContext.

Link copied to clipboard
abstract fun getGlobalName(): String

获取作为全局变量时的名称.

Link copied to clipboard
abstract fun getPublicType(): Type

获取 Variable 注入到脚本时需要显示的类型.

Link copied to clipboard
abstract fun isClosed(): Boolean

判断当前对象是否已经调用了 close 方法.

Link copied to clipboard
abstract fun isPrefixRequired(): Boolean

是否需要添加前缀, 每种编程语言添加的前缀不一样, 前缀可以通过 Language.getVariablePrefix 获取.

Link copied to clipboard
abstract fun isSuffixRequired(): Boolean

是否需要添加后缀, 每种编程语言添加的后缀不一样, 后缀可以通过 Language.getVariableSuffix 获取.

Link copied to clipboard
abstract fun loadApk(apkFile: ScriptFile, priority: Int): ApkPlugin

将 apk 文件作为插件加载到脚本中.

Link copied to clipboard
abstract fun loadClass(className: String): Class<*>

加载指定的类.

Link copied to clipboard
abstract fun loadDex(dexFile: ScriptFile, soPath: ScriptFile?, priority: Int): DexPlugin

将 dex 文件作为插件加载到脚本中.

Link copied to clipboard
abstract fun loadJar(jarFile: ScriptFile, priority: Int): DexPlugin

将 jar 文件作为插件加载到脚本中.

Link copied to clipboard
abstract fun loadJavaFile(file: ScriptFile, priority: Int): DexPlugin

将 java 源文件作为插件加载到脚本中, 如果脚本语言不支持直接继承java类, 那么通过 java 源文件继承 java 类后再加载到脚本中就可以间接实现java类的功能, 可以使用此方法.

Link copied to clipboard
abstract fun loadJavaFiles(files: List<ScriptFile>, priority: Int): DexPlugin

将 java 源文件集合作为插件加载到脚本中, 如果脚本语言不支持直接继承java类, 那么通过 java 源文件继承 java 类后再加载到脚本中就可以间接实现java类的功能, 可以使用此方法.

Link copied to clipboard
abstract fun loadJavaString(content: String, priority: Int): DexPlugin

将 java 源码字符串作为插件加载到脚本中, 如果脚本语言不支持直接继承java类, 那么通过 java 源文件继承 java 类后再加载到脚本中就可以间接实现java类的功能, 可以使用此方法.

Link copied to clipboard
abstract fun removeClassLoader(classLoader: BaseDexClassLoader): Boolean

移除一个 DexClassLoader .