import{_ as s,o as e,c as a,a as o}from"./app-BpUB8-Q8.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};