5.4 KiB
YukiHookAPI [object]
object YukiHookAPI
变更记录
v1.0
添加
功能描述
这是
YukiHookAPI
的 API 调用总类,Hook 相关功能的开始、Hook 相关功能的配置都在这里。
API_VERSION_NAME [field]
const val API_VERSION_NAME: String
变更记录
v1.0.4
新增
功能描述
获取当前
YukiHookAPI
的版本。
API_VERSION_CODE [field]
const val API_VERSION_CODE: Int
变更记录
v1.0.4
新增
功能描述
获取当前
YukiHookAPI
的版本号。
executorName [field]
val executorName: String
变更记录
v1.0.5
新增
功能描述
获取当前 Hook 框架的名称。
无法获取会返回 unknown
,XposedBridge
不存在会返回 invalid
。
executorVersion [field]
val executorVersion: Int
变更记录
v1.0.5
新增
功能描述
获取当前 Hook 框架的版本。
无法获取会返回 -1
。
Configs [object]
object Configs
变更记录
v1.0
添加
功能描述
对 API 相关功能的配置类。
debugTag [field]
var debugTag: String
变更记录
v1.0
添加
功能描述
模块在调用
logger
时打印的日志TAG
名称。
你可以方便地进行自定义,并可以在 Logcat
和 XposedBridge.log
中找到它们。
isDebug [field]
var isDebug: Boolean
变更记录
v1.0
添加
功能描述
是否启用 DEBUG 模式。
默认为开启状态,开启后模块将会向 Logcat
和 XposedBridge.log
打印详细的 Hook 日志,关闭后仅会打印 E
级别的日志。
isAllowPrintingLogs [field]
var isAllowPrintingLogs: Boolean
变更记录
v1.0.4
新增
功能描述
是否启用调试日志的输出功能。
!> 关闭后将会停用 YukiHookAPI
对全部日志的输出,但是不影响当你手动调用日志方法输出日志。
isEnableModulePrefsCache [field]
var isEnableModulePrefsCache: Boolean
变更记录
v1.0.5
新增
功能描述
是否启用
YukiHookModulePrefs
的键值缓存功能。
为防止内存复用过高问题,此功能默认启用。
你可以手动在 YukiHookModulePrefs
中自由开启和关闭缓存功能以及清除缓存。
isEnableMemberCache [field]
var isEnableMemberCache: Boolean
变更记录
v1.0.68
新增
功能描述
是否启用
Member
缓存功能。
为防止 Member
复用过高造成的系统 GC 问题,此功能默认启用。
启用后会缓存已经找到的 Class
、Method
、Constructor
、Field
。
缓存的 Member
都将处于 MemberCacheStore
的全局静态实例中。
推荐使用 MethodFinder
、ConstructorFinder
、FieldFinder
来获取 Member
。
除非缓存的 Member
发生了混淆的问题,例如使用 R8 混淆后的 APP 的目标 Member
,否则建议启用。
configs [method]
fun configs(initiate: Configs.() -> Unit)
变更记录
v1.0
添加
功能描述
对
Configs
类实现了一个lambda
方法体。
你可以轻松的调用它进行配置。
功能示例
你可以在 HookEntryClass
的 onInit
方法中调用 configs
方法完成对 API 的功能配置,实时生效。
示例如下
class HookEntryClass : YukiHookXposedInitProxy {
override fun onInit() {
YukiHookAPI.configs {
debugTag = "YukiHookAPI"
isDebug = true
isAllowPrintingLogs = true
isEnableModulePrefsCache = true
isEnableMemberCache = true
}
}
override fun onHook() {
// Your code here.
}
}
若觉得上面的写法不美观,你还可以写得更加简洁。
示例如下
class HookEntryClass : YukiHookXposedInitProxy {
override fun onInit() = configs {
debugTag = "YukiHookAPI"
isDebug = true
isAllowPrintingLogs = true
isEnableModulePrefsCache = true
isEnableMemberCache = true
}
override fun onHook() {
// Your code here.
}
}
你也可以不通过 configs
方法,直接进行配置。
示例如下
class HookEntryClass : YukiHookXposedInitProxy {
override fun onInit() {
YukiHookAPI.Configs.debugTag = "YukiHookAPI"
YukiHookAPI.Configs.isDebug = true
YukiHookAPI.Configs.isAllowPrintingLogs = true
YukiHookAPI.Configs.isEnableModulePrefsCache = true
YukiHookAPI.Configs.isEnableMemberCache = true
}
override fun onHook() {
// Your code here.
}
}
encase [method]
fun encase(initiate: PackageParam.() -> Unit)
fun encase(vararg hooker: YukiBaseHooker)
fun encase(baseContext: Context?, initiate: PackageParam.() -> Unit)
fun encase(baseContext: Context?, vararg hooker: YukiBaseHooker)
变更记录
v1.0
添加
功能描述
装载 Hook 入口的核心方法。
功能示例
详情请参考