import{_ as s,o as e,c as a,a as o}from"./app-CLu4Xwf8.js";const n={},l=o(`
注意
由于维护成本,YukiHookAPI 从 1.3.0 版本开始将不再会对此文档进行更新且在 2.0.0 版本切换为 Dokka 插件自动生成的 API 文档。
class DexClassFinder internal constructor(
internal var name: String,
internal var async: Boolean,
override val loaderSet: ClassLoader?
) : ClassBaseFinder
变更记录
v1.1.0 新增
功能描述
Class查找类。
可使用 BaseDexClassLoader 通过指定条件查找指定 Class 或一组 Class。
注意
此功能尚实验阶段,性能与稳定性可能仍然存在问题,使用过程遇到问题请向我们报告并帮助我们改进。
变更记录
v1.1.0 新增
fun clearCache(context: Context?, versionName: String?, versionCode: Long?)
变更记录
v1.1.0 新增
功能描述
清除当前
DexClassFinder的Class缓存。
适用于全部通过 ClassLoader.searchClass 或 PackageParam.searchClass 获取的 DexClassFinder。
var fullName: String
变更记录
v1.1.0 新增
功能描述
设置
Class完整名称。
只会查找匹配到的 Class.getName。
例如 com.demo.Test 需要填写 com.demo.Test。
var simpleName: String
变更记录
v1.1.0 新增
功能描述
设置
Class简单名称。
只会查找匹配到的 Class.getSimpleName。
例如 com.demo.Test 只需要填写 Test。
对于匿名类例如 com.demo.Test$InnerTest 会为空,此时你可以使用 singleName。
var singleName: String
变更记录
v1.1.0 新增
功能描述
设置
Class独立名称。
设置后将首先使用 Class.getSimpleName,若为空则会使用 Class.getName 进行处理。
例如 com.demo.Test 只需要填写 Test。
对于匿名类例如 com.demo.Test$InnerTest 只需要填写 Test$InnerTest。
fun from(vararg name: String): FromPackageRules
变更记录
v1.1.0 新增
功能描述
设置在指定包名范围查找当前
Class。
设置后仅会在当前 name 开头匹配的包名路径下进行查找,可提升查找速度。
例如 ↓
com.demo.test
com.demo.test.demo
注意
建议设置此参数指定查找范围,否则 Class 过多时将会非常慢。
fun modifiers(conditions: ModifierConditions)
变更记录
v1.1.0 新增
功能描述
设置
Class标识符筛选条件。
可不设置筛选条件。
fun fullName(value: String): ClassNameRules
变更记录
v1.1.0 新增
功能描述
设置
Class完整名称。
只会查找匹配到的 Class.getName。
例如 com.demo.Test 需要填写 com.demo.Test。
fun simpleName(value: String): ClassNameRules
变更记录
v1.1.0 新增
功能描述
设置
Class简单名称。
只会查找匹配到的 Class.getSimpleName。
例如 com.demo.Test 只需要填写 Test。
对于匿名类例如 com.demo.Test$InnerTest 会为空,此时你可以使用 singleName。
fun singleName(value: String): ClassNameRules
变更记录
v1.1.0 新增
功能描述
设置
Class独立名称。
设置后将首先使用 Class.getSimpleName,若为空则会使用 Class.getName 进行处理。
例如 com.demo.Test 只需要填写 Test。
对于匿名类例如 com.demo.Test$InnerTest 只需要填写 Test$InnerTest。
fun fullName(conditions: NameConditions)
变更记录
v1.1.0 新增
功能描述
设置
Class完整名称条件。
只会查找匹配到的 Class.getName。
fun simpleName(conditions: NameConditions)
变更记录
v1.1.0 新增
功能描述
设置
Class简单名称条件。
只会查找匹配到的 Class.getSimpleName。
fun singleName(conditions: NameConditions)
变更记录
v1.1.0 新增
功能描述
设置
Class独立名称条件。
设置后将首先使用 Class.getSimpleName,若为空则会使用 Class.getName 进行处理。
inline fun <reified T> extends()
变更记录
v1.1.0 新增
功能描述
设置
Class继承的父类。
fun extends(vararg name: String)
变更记录
v1.1.0 新增
功能描述
设置
Class继承的父类。
会同时查找 name 中所有匹配的父类。
inline fun <reified T> implements()
变更记录
v1.1.0 新增
功能描述
设置
Class实现的接口类。
fun implements(vararg name: String)
变更记录
v1.1.0 新增
功能描述
设置
Class实现的接口类。
会同时查找 name 中所有匹配的接口类。
fun anonymous()
变更记录
v1.1.0 新增
功能描述
标识
Class为匿名类。
例如 com.demo.Test$1 或 com.demo.Test$InnerTest。
标识后你可以使用 enclosing 来进一步指定匿名类的 (封闭类) 主类。
fun noExtends()
变更记录
v1.1.0 新增
功能描述
设置
Class没有任何继承。
此时 Class 只应该继承于 Any。
注意
设置此条件后 extends 将失效。
fun noImplements()
变更记录
v1.1.0 新增
功能描述
设置
Class没有任何接口。
注意
设置此条件后 implements 将失效。
fun noSuper()
变更记录
v1.1.0 新增
功能描述
设置
Class没有任何继承与接口。
此时 Class 只应该继承于 Any。
注意
设置此条件后 extends 与 implements 将失效。
inline fun <reified T> enclosing()
变更记录
v1.1.0 新增
功能描述
设置
Class匿名类的 (封闭类) 主类。
fun enclosing(vararg name: String)
变更记录
v1.1.0 新增
功能描述
设置
Class匿名类的 (封闭类) 主类。
会同时查找 name 中所有匹配的 (封闭类) 主类。
inner class FromPackageRules internal constructor(private val packages: MutableList<ClassRulesData.PackageRulesData>)
变更记录
v1.1.0 新增
功能描述
包名范围名称过滤匹配条件实现类。
fun absolute()
变更记录
v1.1.0 新增
功能描述
设置包名绝对匹配。
例如有如下包名 ↓
com.demo.test.a
com.demo.test.a.b
com.demo.test.active
若包名条件为 com.demo.test.a 则绝对匹配仅能匹配到第一个。
相反地,不设置以上示例会全部匹配。
inner class ClassNameRules internal constructor(private val name: ClassRulesData.NameRulesData)
变更记录
v1.1.0 新增
功能描述
类名匹配条件实现类。
fun optional()
变更记录
v1.1.0 新增
功能描述
设置类名可选。
例如有如下类名 ↓
com.demo.Test fullName / Test simpleName
defpackage.a fullName / a simpleName
这两个类名都是同一个类,但是在有些版本中被混淆有些版本没有。
此时可设置类名为 com.demo.Test fullName / Test simpleName。
这样就可在完全匹配类名情况下使用类名而忽略其它查找条件,否则忽略此条件继续使用其它查找条件。
inline fun member(initiate: MemberRules.() -> Unit): MemberRulesResult
变更记录
v1.1.0 新增
功能描述
设置
Class满足的Member条件。
inline fun field(initiate: FieldRules.() -> Unit): MemberRulesResult
变更记录
v1.1.0 新增
功能描述
设置
Class满足的Field条件。
inline fun method(initiate: MethodRules.() -> Unit): MemberRulesResult
变更记录
v1.1.0 新增
功能描述
设置
Class满足的Method条件。
inline fun constructor(initiate: ConstructorRules.() -> Unit): MemberRulesResult
变更记录
v1.1.0 新增
功能描述
设置
Class满足的Constructor条件。
inner class Result internal constructor(internal var isNotFound: Boolean, internal var throwable: Throwable?) : BaseResult
变更记录
v1.1.0 新增
功能描述
Class查找结果实现类。
inline fun result(initiate: Result.() -> Unit): Result
变更记录
v1.1.0 新增
功能描述
创建监听结果事件方法体。
fun get(): Class<*>?
变更记录
v1.1.0 新增
功能描述
得到
Class本身。
若有多个 Class 结果只会返回第一个。
在查找条件找不到任何结果的时候将返回 null。
若你设置了 async 请使用 wait 方法。
fun all(): MutableList<Class<*>>
变更记录
v1.1.0 新增
v1.2.0 修改
返回值类型由 HashSet 修改为 MutableList
功能描述
得到
Class本身数组。
返回全部查找条件匹配的多个 Class 实例。
在查找条件找不到任何结果的时候将返回空的 MutableList。
若你设置了 async 请使用 waitAll 方法。
fun all(result: (Class<*>) -> Unit): Result
变更记录
v1.1.0 新增
功能描述
得到
Class本身数组 (依次遍历)。
回调全部查找条件匹配的多个 Class 实例。
在查找条件找不到任何结果的时候将不会执行。
若你设置了 async 请使用 waitAll 方法。
fun wait(result: (Class<*>?) -> Unit): Result
变更记录
v1.1.0 新增
功能描述
得到
Class本身 (异步)。
若有多个 Class 结果只会回调第一个。
在查找条件找不到任何结果的时候将回调 null。
你需要设置 async 后此方法才会被回调,否则请使用 get 方法。
fun waitAll(result: (MutableList<Class<*>>) -> Unit): Result
变更记录
v1.1.0 新增
v1.2.0 修改
result 类型由 HashSet 修改为 MutableList
功能描述
得到
Class本身数组 (异步)。
回调全部查找条件匹配的多个 Class 实例。
在查找条件找不到任何结果的时候将回调空的 MutableList。
你需要设置 async 后此方法才会被回调,否则请使用 all 方法。
fun onNoClassDefFoundError(result: (Throwable) -> Unit): Result
变更记录
v1.1.0 新增
功能描述
监听找不到
Class时。
fun ignored(): Result
变更记录
v1.1.0 新增
功能描述
忽略异常并停止打印任何错误日志。
此时若要监听异常结果,你需要手动实现 onNoClassDefFoundError 方法。
`,314),p=[l];function c(t,d){return e(),a("div",null,p)}const i=s(n,[["render",c],["__file","DexClassFinder.html.vue"]]);export{i as default};