6.0 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 中自由开启和关闭缓存功能以及清除缓存。
isEnableModuleAppResourcesCache [field]
var isEnableModuleAppResourcesCache: Boolean
变更记录
v1.0.87 新增
功能描述
是否启用当前 Xposed 模块自身
Resources缓存功能。
为防止内存复用过高问题,此功能默认启用。
你可以手动调用 PackageParam.refreshModuleAppResources 来刷新缓存。
!> 关闭后每次使用 PackageParam.moduleAppResources 都会重新创建,可能会造成运行缓慢。
isEnableMemberCache [field]
var isEnableMemberCache: Boolean
ø 变更记录
v1.0.68 新增
v1.0.80 修改
将方法体进行 inline
功能描述
是否启用
Member缓存功能。
为防止 Member 复用过高造成的系统 GC 问题,此功能默认启用。
启用后会缓存已经找到的 Class、Method、Constructor、Field。
缓存的 Member 都将处于 MemberCacheStore 的全局静态实例中。
推荐使用 MethodFinder、ConstructorFinder、FieldFinder 来获取 Member。
除非缓存的 Member 发生了混淆的问题,例如使用 R8 混淆后的 APP 的目标 Member,否则建议启用。
configs [method]
inline fun configs(initiate: Configs.() -> Unit)
变更记录
v1.0 添加
功能描述
对
Configs类实现了一个lambda方法体。
你可以轻松的调用它进行配置。
功能示例
你可以在 HookEntryClass 的 onInit 方法中调用 configs 方法完成对 API 的功能配置,实时生效。
示例如下
class HookEntryClass : IYukiHookXposedInit {
override fun onInit() {
YukiHookAPI.configs {
debugTag = "YukiHookAPI"
isDebug = true
isAllowPrintingLogs = true
isEnableModulePrefsCache = true
isEnableModuleAppResourcesCache = true
isEnableMemberCache = true
}
}
override fun onHook() {
// Your code here.
}
}
若觉得上面的写法不美观,你还可以写得更加简洁。
示例如下
class HookEntryClass : IYukiHookXposedInit {
override fun onInit() = configs {
debugTag = "YukiHookAPI"
isDebug = true
isAllowPrintingLogs = true
isEnableModulePrefsCache = true
isEnableModuleAppResourcesCache = true
isEnableMemberCache = true
}
override fun onHook() {
// Your code here.
}
}
你也可以不通过 configs 方法,直接进行配置。
示例如下
class HookEntryClass : IYukiHookXposedInit {
override fun onInit() {
YukiHookAPI.Configs.debugTag = "YukiHookAPI"
YukiHookAPI.Configs.isDebug = true
YukiHookAPI.Configs.isAllowPrintingLogs = true
YukiHookAPI.Configs.isEnableModulePrefsCache = true
YukiHookAPI.Configs.isEnableModuleAppResourcesCache = 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 入口的核心方法。
功能示例
详情请参考