Files
YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html
github-actions[bot] 272907c64f Deploy to GitHub pages
2025-09-13 11:25:26 +00:00

163 lines
170 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="generator" content="VuePress 2.0.0-rc.0">
<style>
:root {
--c-bg: #fff;
}
html.dark {
--c-bg: #22272e;
}
html, body {
background-color: var(--c-bg);
}
</style>
<script>
const userMode = localStorage.getItem('vuepress-color-scheme');
const systemDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
if (userMode === 'dark' || (userMode !== 'light' && systemDarkMode)) {
document.documentElement.classList.toggle('dark', true);
}
</script>
<link rel="icon" href="/YukiHookAPI/images/logo.png"><title>PackageParam - class | Yuki Hook API</title><meta name="description" content="一个使用 Kotlin 构建的高效 Hook API 与 Xposed 模块解决方案">
<link rel="preload" href="/YukiHookAPI/assets/style-DJZs_E_O.css" as="style"><link rel="stylesheet" href="/YukiHookAPI/assets/style-DJZs_E_O.css">
<link rel="modulepreload" href="/YukiHookAPI/assets/app-Dh3YGII_.js"><link rel="modulepreload" href="/YukiHookAPI/assets/PackageParam.html-CedyE-3W.js"><link rel="modulepreload" href="/YukiHookAPI/assets/PackageParam.html-B3y0YF_m.js">
<link rel="prefetch" href="/YukiHookAPI/assets/index.html-D6YZKtoe.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/index.html-CHgP8geU.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/index.html-Bo0olcew.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/home.html-BWNdBIZw.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/about.html-DDk-q1tu.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/changelog.html-DS_5OIkn.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/contacts.html-BSRuPKMe.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/future.html-L0gip76T.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/api-example.html-pCpzRhE2.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/api-exception.html-Dw1mqBwg.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/api-using.html-zXrI7_0R.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/move-to-api-1-2-x.html-CCb8Xv2u.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/move-to-api-1-3-x.html-f3TZzPCU.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/r8-proguard.html-Y47fgLwe.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/xposed-using.html-CgLVQrdV.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/example.html-CnT6OQuI.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/home.html-Bhz1Th03.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/knowledge.html-BJFcZiJH.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/move-to-new-api.html-Bd10LyS9.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/quick-start.html-teZCSUoB.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/supportive.html-bOj3zBC_.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/yukihookapi-projectbuilder.html-xbo0Krpt.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/about.html-D2yzzIyM.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/changelog.html-Dqm5MIYd.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/contacts.html-BfIGgEZ9.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/future.html-BJR2WZUb.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/home.html-DAJQxBy-.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/api-example.html-CKw7e9Ka.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/api-exception.html-Pu6YF45s.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/api-using.html-CsMd954C.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/move-to-api-1-2-x.html-D8SebGDZ.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/move-to-api-1-3-x.html-CPnNzAVm.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/r8-proguard.html-DnD4WWCL.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/xposed-using.html-sNzVArkO.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/example.html-DBLcpd3T.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/home.html-Cg57uIpM.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/knowledge.html-CFMQgPep.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/move-to-new-api.html-kyRByfpu.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/quick-start.html-Dq2QHQuy.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/supportive.html-DFnCbU7r.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/yukihookapi-projectbuilder.html-DnghHaiT.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/host-inject.html-BRZka0o7.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/host-lifecycle.html-BgnOErBM.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/logger.html-Dfs7bQRS.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/reflection.html-BohdUWGg.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/xposed-channel.html-DWoHNeKf.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/xposed-storage.html-ByKfNh6r.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/host-inject.html-COD96F06.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/host-lifecycle.html-C7PzYAZN.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/logger.html-BW4Gjfc-.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/reflection.html-DXPuhLBz.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/xposed-channel.html-B7eDf6ix.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/xposed-storage.html-CZy1SL3y.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookAPI.html-CtkZ6zEO.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookAPI.html-DqgBnIkU.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/InjectYukiHookWithXposed.html-BGS_DJ2i.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/CurrentClass.html-BT6y6bjW.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/GenericClass.html-CsB6lKmB.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/HookClass.html-CW_9kHEG.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/HookResources.html-B9Np_jgF.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/VariousClass.html-3D_jbtJ_.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiMemberHookCreator.html-C1zPXD2D.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiResourcesHookCreator.html-RF6ZJecD.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiBaseHooker.html-CWm_43km.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ReflectionFactory.html-BTXWRqP4.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookFactory.html-BKpat8zr.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YLog.html-COO68ekD.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/HookParam.html-CQJSudBe.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/PackageParam.html-356ELE7K.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/InjectYukiHookWithXposed.html-C_GfVAhD.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/CurrentClass.html-Drrw8tv5.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/GenericClass.html-DO13T8ug.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/HookClass.html-CszRm9Er.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/HookResources.html-DA2dINvc.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/VariousClass.html-CKljcU2t.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiMemberHookCreator.html-C0fIOtqI.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiResourcesHookCreator.html-DW5yilOs.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiBaseHooker.html-E78OJRmm.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ReflectionFactory.html-BiQJ-KKx.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookFactory.html-CoBstbjt.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YLog.html-KE-5aK_7.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/HookParam.html-SbRyLaGf.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YLogData.html-XHmF_gos.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ComponentTypeFactory.html-DptIpBn2.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/GraphicsTypeFactory.html-CnqF4An8.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ViewTypeFactory.html-CIPHyInd.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/DefinedTypeFactory.html-DI2zOcK2.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/VariableTypeFactory.html-DDYYL3th.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleApplication.html-BkkBbb-2.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookDataChannel.html-DgdZw6CE.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookPrefsBridge.html-XzXYFQ1s.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/IYukiHookXposedInit.html-DEGewXhq.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YLogData.html-Bjac08gN.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ComponentTypeFactory.html-VD1JaHTz.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/GraphicsTypeFactory.html-Dq_zQQPa.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ViewTypeFactory.html-DPcuUPhN.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/DefinedTypeFactory.html-C97GePUm.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/VariableTypeFactory.html-BUNfn5Dn.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleApplication.html-C4NqW1gZ.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookDataChannel.html-Citru5C3.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookPrefsBridge.html-BG7-Nq7V.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/IYukiHookXposedInit.html-Dr7_YjoO.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookPriority.html-smxFpy5Q.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/BaseFinder.html-C6lfjJ7s.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/DexClassFinder.html-BAaqClmM.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ConstructorFinder.html-DuJIkaTM.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/FieldFinder.html-CoQdzzYH.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/MethodFinder.html-DxYxJsjj.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiXposedEvent.html-BFs-WRvy.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiModuleResources.html-jRWj4Ooi.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiResForwarder.html-DMGGwbMr.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiResources.html-DzFxHHne.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ChannelData.html-BX_rAvQg.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ChannelPriority.html-BGoRh-pu.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleClassLoader.html-BFtfl5mt.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/PrefsData.html-B72hWN1s.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModulePreferenceFragment.html-CXpIHn7Z.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookPriority.html-AgDP0CYh.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/BaseFinder.html-CAvlkbqd.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/DexClassFinder.html-CGIuabI3.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ConstructorFinder.html-CmDHOksx.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/FieldFinder.html-C9KHPG3N.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/MethodFinder.html-BepwXG9K.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiXposedEvent.html-C9AS9omI.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiModuleResources.html-DZnAa6JN.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiResForwarder.html-CtCGVu9N.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiResources.html--5kriWCV.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ChannelData.html-C7ktasrE.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ChannelPriority.html-BHp-ErCM.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleClassLoader.html-BwGRnYn5.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/PrefsData.html-BbIfbfIq.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModulePreferenceFragment.html-DSUkMTGs.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ExecutorType.html-Crao5k7G.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/CountRules.html-lW3FW-Bi.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModifierRules.html-DZnBFn8R.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/NameRules.html-BWk6zL2M.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ObjectRules.html-Dxosvxi0.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ConstructorRules.html-BuW8PcLh.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/FieldRules.html-DnAEAxmC.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/MemberRules.html-CzY4xHkS.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/MethodRules.html-BCtTTlLz.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleAppActivity.html-CrhmOsh-.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleAppCompatActivity.html-JFvN5vF4.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleContextThemeWrapper.html-DNoARGj7.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ExecutorType.html-tZrR-ZDE.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/CountRules.html-BiTeupWL.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModifierRules.html-B9KoNMo6.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/NameRules.html-DopiK4pt.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ObjectRules.html-DjhVlNAH.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ConstructorRules.html-phFNNXJ8.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/FieldRules.html-DePoZYvp.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/MemberRules.html-r3ZOm1rb.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/MethodRules.html-DETSSGJ6.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleAppActivity.html-BwDznH0J.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleAppCompatActivity.html-BCax3oQU.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleContextThemeWrapper.html-D3JVFalR.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/MemberRulesResult.html-DVBlYWR7.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/MemberRulesResult.html-4uRTQRQi.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/404.html-5sy5zeZP.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/index.html-c3VccwnD.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/index.html-Dzt_UNRi.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/index.html-4DaBElWx.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/home.html-CVkftkBs.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/about.html-C-lpYAFW.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/changelog.html-CQQRsaqn.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/contacts.html-DGWKGXQs.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/future.html-CwV0c7ai.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/api-example.html-BkSveST0.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/api-exception.html-BnnFmZj6.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/api-using.html-gj8msTn3.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/move-to-api-1-2-x.html-BuNeD6z1.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/move-to-api-1-3-x.html-B76n82pk.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/r8-proguard.html-BHukmedz.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/xposed-using.html-BkzbmISt.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/example.html-TKFBsGXZ.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/home.html-MVCE9Zi_.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/knowledge.html-BykbG15K.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/move-to-new-api.html-Duhp0Zbf.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/quick-start.html-BcYFAl9n.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/supportive.html-CqV3gXNz.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/yukihookapi-projectbuilder.html-QJoyeaEx.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/about.html-BXj0V4K6.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/changelog.html-CxCVrT4d.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/contacts.html-Dq-BMTBW.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/future.html-DBUw6EWt.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/home.html-BNdj0tg8.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/api-example.html-BJS_jXBZ.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/api-exception.html-CmmayJI1.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/api-using.html-DgFAU6YP.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/move-to-api-1-2-x.html-BgLq0xbj.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/move-to-api-1-3-x.html-erB3077C.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/r8-proguard.html-DQtMNDbO.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/xposed-using.html-CId2Csh7.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/example.html-C7DWr_jH.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/home.html-DBugrZvO.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/knowledge.html-H2f1ELBS.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/move-to-new-api.html-D81UznXK.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/quick-start.html-DSJOm7if.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/supportive.html-Bav7E8rs.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/yukihookapi-projectbuilder.html-yvia3rkA.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/host-inject.html-CV3pSU3y.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/host-lifecycle.html-BCud2pI7.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/logger.html-BPyE4AnF.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/reflection.html-D_aUVbM-.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/xposed-channel.html-DRcRt9U1.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/xposed-storage.html-Qejq3rQo.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/host-inject.html-Be_IEoPl.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/host-lifecycle.html-BQqaSmyu.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/logger.html-Di_Y0BXq.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/reflection.html-BrZNv2Lk.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/xposed-channel.html-DZAFeCTe.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/xposed-storage.html-BudvBu_7.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookAPI.html-BMPaDynr.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookAPI.html-BNn4qOF2.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/InjectYukiHookWithXposed.html-DUnOYTjb.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/CurrentClass.html-B2XdYzmq.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/GenericClass.html-Cpy6faaM.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/HookClass.html-De5b5ItR.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/HookResources.html-fPctU8Z9.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/VariousClass.html-UfzGncCn.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiMemberHookCreator.html-quaeBn-w.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiResourcesHookCreator.html-BDhN88iE.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiBaseHooker.html-DODfMCkK.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ReflectionFactory.html-Cl4cXJzr.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookFactory.html-ByRVLukn.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YLog.html-Bj4UE5ed.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/HookParam.html-Cw_gQESk.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/PackageParam.html-qpkPOSPI.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/InjectYukiHookWithXposed.html-BXDS67lL.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/CurrentClass.html-etlMFNvF.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/GenericClass.html-qHyiepey.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/HookClass.html-BN5OdPwD.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/HookResources.html-VPUSsnNk.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/VariousClass.html-Bgp63gMz.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiMemberHookCreator.html-C_y1XUnh.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiResourcesHookCreator.html-SAEPSbGI.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiBaseHooker.html-Ce9A9Xvl.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ReflectionFactory.html-Vjpcmtz-.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookFactory.html-CKcweszW.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YLog.html-Bf1ke36C.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/HookParam.html-hOt529IK.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YLogData.html-C2FO7fo2.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ComponentTypeFactory.html-3lHiJ4Q4.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/GraphicsTypeFactory.html-mMIHtQsR.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ViewTypeFactory.html-DYuznXgP.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/DefinedTypeFactory.html-THeGlp4B.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/VariableTypeFactory.html-BN3bs3sc.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleApplication.html-DfY4Uy3r.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookDataChannel.html-C-rITqOJ.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookPrefsBridge.html-C9c2C_AS.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/IYukiHookXposedInit.html-5CYtOoME.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YLogData.html-CwGRaY_F.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ComponentTypeFactory.html-BKNLMjVQ.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/GraphicsTypeFactory.html-CH0pOz43.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ViewTypeFactory.html-BugnWrJI.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/DefinedTypeFactory.html-Bxsp7dKR.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/VariableTypeFactory.html-Do1aKQAf.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleApplication.html-IEkRxGSX.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookDataChannel.html-C7X4MKor.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookPrefsBridge.html-GFvtl8SJ.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/IYukiHookXposedInit.html-OKPebiSt.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookPriority.html-40ZJcXQT.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/BaseFinder.html-B1T7fg6o.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/DexClassFinder.html-Cdns5UDz.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ConstructorFinder.html-BkaE4iS7.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/FieldFinder.html-CrBNztFb.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/MethodFinder.html-BL49mMcu.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiXposedEvent.html-BiqbBVCH.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiModuleResources.html-D9PEjXE7.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiResForwarder.html-FOQ2Nwig.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiResources.html-DIg_e0Sr.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ChannelData.html-Cw_H52Oq.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ChannelPriority.html-DSXoOqHG.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleClassLoader.html-DSmQJ1ew.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/PrefsData.html-CBetrJQB.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModulePreferenceFragment.html-DuDN-nsj.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookPriority.html-B7oPy6Ok.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/BaseFinder.html-CjyL3Zs3.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/DexClassFinder.html-CElnm8j_.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ConstructorFinder.html-DwPmSL1t.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/FieldFinder.html-DKqO8jN2.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/MethodFinder.html-pcv0_Rzw.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiXposedEvent.html-B2Vh7w-B.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiModuleResources.html-_4rKBpVF.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiResForwarder.html-D7yHFtkz.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiResources.html-Coh5V7rP.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ChannelData.html-DvB2mgfs.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ChannelPriority.html-B-1ft-lA.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleClassLoader.html-DWcj-tgD.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/PrefsData.html-CS03nvJw.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModulePreferenceFragment.html-CNQiRBx_.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ExecutorType.html-Q61audgZ.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/CountRules.html-Q-DusaM4.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModifierRules.html-BMN7vYT7.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/NameRules.html-BGjSl50o.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ObjectRules.html-jlI4kEM_.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ConstructorRules.html-skda4st-.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/FieldRules.html-DHcTqWY4.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/MemberRules.html-zo3axIRs.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/MethodRules.html-BBqt5hni.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleAppActivity.html-Cjp5R2kL.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleAppCompatActivity.html-yzjjuZGo.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleContextThemeWrapper.html-Bm4CsRSg.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ExecutorType.html-mn0hFRoN.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/CountRules.html-DNfF0b6a.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModifierRules.html-CJKqpygK.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/NameRules.html-BYfKoeiT.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ObjectRules.html-BrgTsxIh.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ConstructorRules.html-HVV8WqL4.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/FieldRules.html-DsdccfYE.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/MemberRules.html-idNzK9kl.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/MethodRules.html-Cx8zDjD9.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleAppActivity.html-CYywU1iW.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleAppCompatActivity.html-DrcRZom-.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleContextThemeWrapper.html-CQd6A0F6.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/MemberRulesResult.html-pov0whDg.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/MemberRulesResult.html-fLoCvHLk.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/404.html-CP0DPwcn.js" as="script">
</head>
<body>
<div id="app"><!--[--><div class="theme-container code-page"><!--[--><header class="navbar"><div class="toggle-sidebar-button" title="toggle sidebar" aria-expanded="false" role="button" tabindex="0"><div class="icon" aria-hidden="true"><span></span><span></span><span></span></div></div><span><a href="/YukiHookAPI/zh-cn/" class=""><img class="logo" src="/YukiHookAPI/images/logo.png" alt="Yuki Hook API"><span class="site-name can-hide">Yuki Hook API</span></a></span><div class="navbar-items-wrapper" style=""><!--[--><!--]--><nav class="navbar-items can-hide"><!--[--><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="导航"><span class="title">导航</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="导航"><span class="title">导航</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>入门</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/guide/home" class="" aria-label="介绍"><!--[--><!--]--> 介绍 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/guide/supportive" class="" aria-label="支持性"><!--[--><!--]--> 支持性 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/guide/knowledge" class="" aria-label="基础知识"><!--[--><!--]--> 基础知识 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/guide/quick-start" class="" aria-label="快速开始"><!--[--><!--]--> 快速开始 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/guide/example" class="" aria-label="用法示例"><!--[--><!--]--> 用法示例 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/guide/move-to-new-api" class="" aria-label="从其它 Hook API 迁移"><!--[--><!--]--> 从其它 Hook API 迁移 <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>配置</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/config/api-example" class="" aria-label="API 基本配置"><!--[--><!--]--> API 基本配置 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/config/api-exception" class="" aria-label="API 异常处理"><!--[--><!--]--> API 异常处理 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/config/xposed-using" class="" aria-label="作为 Xposed 模块使用的相关配置"><!--[--><!--]--> 作为 Xposed 模块使用的相关配置 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/config/api-using" class="" aria-label="作为 Hook API 使用的相关配置"><!--[--><!--]--> 作为 Hook API 使用的相关配置 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/config/move-to-api-1-2-x" class="" aria-label="迁移至 YukiHookAPI 1.2.x"><!--[--><!--]--> 迁移至 YukiHookAPI 1.2.x <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/config/move-to-api-1-3-x" class="" aria-label="迁移至 YukiHookAPI 1.3.x"><!--[--><!--]--> 迁移至 YukiHookAPI 1.3.x <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/config/r8-proguard" class="" aria-label="R8 与 Proguard 混淆"><!--[--><!--]--> R8 与 Proguard 混淆 <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>工具</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/tools/yukihookapi-projectbuilder" class="" aria-label="YukiHookAPI 构建工具"><!--[--><!--]--> YukiHookAPI 构建工具 <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>API 文档</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/api/home" class="" aria-label="文档介绍"><!--[--><!--]--> 文档介绍 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/YukiHookAPI" class="router-link-active" aria-label="Public API"><!--[--><!--]--> Public API <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/api/special-features/reflection" class="" aria-label="特色功能"><!--[--><!--]--> 特色功能 <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>关于</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/about/changelog" class="" aria-label="更新日志"><!--[--><!--]--> 更新日志 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/about/future" class="" aria-label="展望未来"><!--[--><!--]--> 展望未来 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/about/contacts" class="" aria-label="联系我们"><!--[--><!--]--> 联系我们 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/about/about" class="" aria-label="关于此文档"><!--[--><!--]--> 关于此文档 <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><!--]--></ul></div></div><div class="navbar-item"><a href="/YukiHookAPI/zh-cn/about/contacts" class="" aria-label="联系我们"><!--[--><!--]--> 联系我们 <!--[--><!--]--></a></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="Select language"><span class="title">简体中文 (CN)</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Select language"><span class="title">简体中文 (CN)</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html" class="" aria-label="English"><!--[--><!--]--> English <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html" class="router-link-active router-link-exact-active router-link-active" aria-label="简体中文"><!--[--><!--]--> 简体中文 <!--[--><!--]--></a></li><!--]--></ul></div></div><div class="navbar-item"><a class="external-link" href="https://github.com/HighCapable/YukiHookAPI" rel="noopener noreferrer" target="_blank" aria-label="GitHub"><!--[--><!--]--> GitHub <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口中打开</span></span><!--[--><!--]--></a></div><!--]--></nav><!--[--><!--]--><button class="toggle-color-mode-button" title="切换颜色模式"><svg style="" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M16 12.005a4 4 0 1 1-4 4a4.005 4.005 0 0 1 4-4m0-2a6 6 0 1 0 6 6a6 6 0 0 0-6-6z" fill="currentColor"></path><path d="M5.394 6.813l1.414-1.415l3.506 3.506L8.9 10.318z" fill="currentColor"></path><path d="M2 15.005h5v2H2z" fill="currentColor"></path><path d="M5.394 25.197L8.9 21.691l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 25.005h2v5h-2z" fill="currentColor"></path><path d="M21.687 23.106l1.414-1.415l3.506 3.506l-1.414 1.414z" fill="currentColor"></path><path d="M25 15.005h5v2h-5z" fill="currentColor"></path><path d="M21.687 8.904l3.506-3.506l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 2.005h2v5h-2z" fill="currentColor"></path></svg><svg style="display:none;" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M13.502 5.414a15.075 15.075 0 0 0 11.594 18.194a11.113 11.113 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1.002 1.002 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.072 13.072 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3z" fill="currentColor"></path></svg></button><form class="search-box" role="search"><input type="search" placeholder="搜索" autocomplete="off" spellcheck="false" value><!----></form></div></header><!--]--><div class="sidebar-mask"></div><!--[--><aside class="sidebar"><nav class="navbar-items"><!--[--><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="导航"><span class="title">导航</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="导航"><span class="title">导航</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>入门</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/guide/home" class="" aria-label="介绍"><!--[--><!--]--> 介绍 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/guide/supportive" class="" aria-label="支持性"><!--[--><!--]--> 支持性 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/guide/knowledge" class="" aria-label="基础知识"><!--[--><!--]--> 基础知识 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/guide/quick-start" class="" aria-label="快速开始"><!--[--><!--]--> 快速开始 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/guide/example" class="" aria-label="用法示例"><!--[--><!--]--> 用法示例 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/guide/move-to-new-api" class="" aria-label="从其它 Hook API 迁移"><!--[--><!--]--> 从其它 Hook API 迁移 <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>配置</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/config/api-example" class="" aria-label="API 基本配置"><!--[--><!--]--> API 基本配置 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/config/api-exception" class="" aria-label="API 异常处理"><!--[--><!--]--> API 异常处理 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/config/xposed-using" class="" aria-label="作为 Xposed 模块使用的相关配置"><!--[--><!--]--> 作为 Xposed 模块使用的相关配置 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/config/api-using" class="" aria-label="作为 Hook API 使用的相关配置"><!--[--><!--]--> 作为 Hook API 使用的相关配置 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/config/move-to-api-1-2-x" class="" aria-label="迁移至 YukiHookAPI 1.2.x"><!--[--><!--]--> 迁移至 YukiHookAPI 1.2.x <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/config/move-to-api-1-3-x" class="" aria-label="迁移至 YukiHookAPI 1.3.x"><!--[--><!--]--> 迁移至 YukiHookAPI 1.3.x <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/config/r8-proguard" class="" aria-label="R8 与 Proguard 混淆"><!--[--><!--]--> R8 与 Proguard 混淆 <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>工具</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/tools/yukihookapi-projectbuilder" class="" aria-label="YukiHookAPI 构建工具"><!--[--><!--]--> YukiHookAPI 构建工具 <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>API 文档</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/api/home" class="" aria-label="文档介绍"><!--[--><!--]--> 文档介绍 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/YukiHookAPI" class="router-link-active" aria-label="Public API"><!--[--><!--]--> Public API <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/api/special-features/reflection" class="" aria-label="特色功能"><!--[--><!--]--> 特色功能 <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>关于</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/about/changelog" class="" aria-label="更新日志"><!--[--><!--]--> 更新日志 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/about/future" class="" aria-label="展望未来"><!--[--><!--]--> 展望未来 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/about/contacts" class="" aria-label="联系我们"><!--[--><!--]--> 联系我们 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/zh-cn/about/about" class="" aria-label="关于此文档"><!--[--><!--]--> 关于此文档 <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><!--]--></ul></div></div><div class="navbar-item"><a href="/YukiHookAPI/zh-cn/about/contacts" class="" aria-label="联系我们"><!--[--><!--]--> 联系我们 <!--[--><!--]--></a></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="Select language"><span class="title">简体中文 (CN)</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Select language"><span class="title">简体中文 (CN)</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html" class="" aria-label="English"><!--[--><!--]--> English <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html" class="router-link-active router-link-exact-active router-link-active" aria-label="简体中文"><!--[--><!--]--> 简体中文 <!--[--><!--]--></a></li><!--]--></ul></div></div><div class="navbar-item"><a class="external-link" href="https://github.com/HighCapable/YukiHookAPI" rel="noopener noreferrer" target="_blank" aria-label="GitHub"><!--[--><!--]--> GitHub <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口中打开</span></span><!--[--><!--]--></a></div><!--]--></nav><!--[--><!--]--><ul class="sidebar-items"><!--[--><li><p tabindex="0" class="sidebar-item sidebar-heading collapsible">入门 <span class="right arrow"></span></p><ul style="display:none;" class="sidebar-item-children"><!--[--><li><a href="/YukiHookAPI/zh-cn/guide/home.html" class="sidebar-item" aria-label="介绍"><!--[--><!--]--> 介绍 <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/guide/supportive.html" class="sidebar-item" aria-label="支持性"><!--[--><!--]--> 支持性 <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/guide/knowledge.html" class="sidebar-item" aria-label="基础知识"><!--[--><!--]--> 基础知识 <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/guide/quick-start.html" class="sidebar-item" aria-label="快速开始"><!--[--><!--]--> 快速开始 <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/guide/example.html" class="sidebar-item" aria-label="用法示例"><!--[--><!--]--> 用法示例 <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/guide/move-to-new-api.html" class="sidebar-item" aria-label="从其它 Hook API 迁移"><!--[--><!--]--> 从其它 Hook API 迁移 <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="sidebar-item sidebar-heading collapsible">配置 <span class="right arrow"></span></p><ul style="display:none;" class="sidebar-item-children"><!--[--><li><a href="/YukiHookAPI/zh-cn/config/api-example.html" class="sidebar-item" aria-label="API 基本配置"><!--[--><!--]--> API 基本配置 <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/config/api-exception.html" class="sidebar-item" aria-label="API 异常处理"><!--[--><!--]--> API 异常处理 <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/config/xposed-using.html" class="sidebar-item" aria-label="作为 Xposed 模块使用的相关配置"><!--[--><!--]--> 作为 Xposed 模块使用的相关配置 <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/config/api-using.html" class="sidebar-item" aria-label="作为 Hook API 使用的相关配置"><!--[--><!--]--> 作为 Hook API 使用的相关配置 <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/config/move-to-api-1-2-x.html" class="sidebar-item" aria-label="迁移至 YukiHookAPI 1.2.x"><!--[--><!--]--> 迁移至 YukiHookAPI 1.2.x <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/config/move-to-api-1-3-x.html" class="sidebar-item" aria-label="迁移至 YukiHookAPI 1.3.x"><!--[--><!--]--> 迁移至 YukiHookAPI 1.3.x <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/config/r8-proguard.html" class="sidebar-item" aria-label="R8 与 Proguard 混淆"><!--[--><!--]--> R8 与 Proguard 混淆 <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="sidebar-item sidebar-heading collapsible">工具 <span class="right arrow"></span></p><ul style="display:none;" class="sidebar-item-children"><!--[--><li><a href="/YukiHookAPI/zh-cn/tools/yukihookapi-projectbuilder.html" class="sidebar-item" aria-label="YukiHookAPI 构建工具"><!--[--><!--]--> YukiHookAPI 构建工具 <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="sidebar-item sidebar-heading active collapsible">API 文档 <span class="down arrow"></span></p><ul style="" class="sidebar-item-children"><!--[--><li><a href="/YukiHookAPI/zh-cn/api/home.html" class="sidebar-item" aria-label="文档介绍"><!--[--><!--]--> 文档介绍 <!--[--><!--]--></a><!----></li><li><p tabindex="0" class="sidebar-item active collapsible">Public API  <span class="down arrow"></span></p><ul style="" class="sidebar-item-children"><!--[--><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/YukiHookAPI.html" class="sidebar-item" aria-label="YukiHookAPI - object"><!--[--><!--]--> YukiHookAPI - object <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html" class="router-link-active router-link-exact-active router-link-active sidebar-item active" aria-label="PackageParam - class"><!--[--><!--]--> PackageParam - class <!--[--><!--]--></a><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#appclassloader-field" class="router-link-active router-link-exact-active sidebar-item" aria-label="appClassLoader - field"><!--[--><!--]--> appClassLoader - field <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#appinfo-field" class="router-link-active router-link-exact-active sidebar-item" aria-label="appInfo - field"><!--[--><!--]--> appInfo - field <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#appuserid-field" class="router-link-active router-link-exact-active sidebar-item" aria-label="appUserId - field"><!--[--><!--]--> appUserId - field <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#appcontext-field" class="router-link-active router-link-exact-active sidebar-item" aria-label="appContext - field"><!--[--><!--]--> appContext - field <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#appresources-field" class="router-link-active router-link-exact-active sidebar-item" aria-label="appResources - field"><!--[--><!--]--> appResources - field <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#systemcontext-field" class="router-link-active router-link-exact-active sidebar-item" aria-label="systemContext - field"><!--[--><!--]--> systemContext - field <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#processname-field" class="router-link-active router-link-exact-active sidebar-item" aria-label="processName - field"><!--[--><!--]--> processName - field <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#packagename-field" class="router-link-active router-link-exact-active sidebar-item" aria-label="packageName - field"><!--[--><!--]--> packageName - field <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#isfirstapplication-field" class="router-link-active router-link-exact-active sidebar-item" aria-label="isFirstApplication - field"><!--[--><!--]--> isFirstApplication - field <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#mainprocessname-field" class="router-link-active router-link-exact-active sidebar-item" aria-label="mainProcessName - field"><!--[--><!--]--> mainProcessName - field <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#moduleappfilepath-field" class="router-link-active router-link-exact-active sidebar-item" aria-label="moduleAppFilePath - field"><!--[--><!--]--> moduleAppFilePath - field <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#moduleappresources-field" class="router-link-active router-link-exact-active sidebar-item" aria-label="moduleAppResources - field"><!--[--><!--]--> moduleAppResources - field <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#prefs-field" class="router-link-active router-link-exact-active sidebar-item" aria-label="prefs - field"><!--[--><!--]--> prefs - field <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#prefs-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="prefs - method"><!--[--><!--]--> prefs - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#datachannel-field" class="router-link-active router-link-exact-active sidebar-item" aria-label="dataChannel - field"><!--[--><!--]--> dataChannel - field <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#resources-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="resources - method"><!--[--><!--]--> resources - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#refreshmoduleappresources-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="refreshModuleAppResources - method"><!--[--><!--]--> refreshModuleAppResources - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#onapplifecycle-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="onAppLifecycle - method"><!--[--><!--]--> onAppLifecycle - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#loadapp-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="loadApp - method"><!--[--><!--]--> loadApp - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#loadzygote-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="loadZygote - method"><!--[--><!--]--> loadZygote - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#loadsystem-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="loadSystem - method"><!--[--><!--]--> loadSystem - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#withprocess-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="withProcess - method"><!--[--><!--]--> withProcess - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#loadhooker-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="loadHooker - method"><!--[--><!--]--> loadHooker - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#searchclass-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="searchClass - method"><!--[--><!--]--> searchClass - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#string-variousclass-toclass-i-ext-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="String+VariousClass.toClass - i-ext-method"><!--[--><!--]--> String+VariousClass.toClass - i-ext-method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#string-variousclass-toclassornull-i-ext-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="String+VariousClass.toClassOrNull - i-ext-method"><!--[--><!--]--> String+VariousClass.toClassOrNull - i-ext-method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#lazyclass-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="lazyClass - method"><!--[--><!--]--> lazyClass - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#lazyclassornull-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="lazyClassOrNull - method"><!--[--><!--]--> lazyClassOrNull - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#string-hasclass-i-ext-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="String.hasClass - i-ext-method"><!--[--><!--]--> String.hasClass - i-ext-method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#class-variousclass-hookclass-hook-i-ext-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="Class+VariousClass+HookClass.hook - i-ext-method"><!--[--><!--]--> Class+VariousClass+HookClass.hook - i-ext-method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#member-basefinder-baseresult-hook-i-ext-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="Member+BaseFinder.BaseResult.hook - i-ext-method"><!--[--><!--]--> Member+BaseFinder.BaseResult.hook - i-ext-method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#array-member-list-member-basefinder-baseresult-hookall-i-ext-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="Array&lt;Member&gt;+List&lt;Member&gt;+BaseFinder.BaseResult.hookAll - i-ext-method"><!--[--><!--]--> Array&lt;Member&gt;+List&lt;Member&gt;+BaseFinder.BaseResult.hookAll - i-ext-method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#hookresources-hook-i-ext-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="HookResources.hook - i-ext-method"><!--[--><!--]--> HookResources.hook - i-ext-method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#applifecycle-class" class="router-link-active router-link-exact-active sidebar-item" aria-label="AppLifecycle - class"><!--[--><!--]--> AppLifecycle - class <!--[--><!--]--></a><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#attachbasecontext-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="attachBaseContext - method"><!--[--><!--]--> attachBaseContext - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#oncreate-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="onCreate - method"><!--[--><!--]--> onCreate - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#onterminate-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="onTerminate - method"><!--[--><!--]--> onTerminate - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#onlowmemory-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="onLowMemory - method"><!--[--><!--]--> onLowMemory - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#ontrimmemory-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="onTrimMemory - method"><!--[--><!--]--> onTrimMemory - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#onconfigurationchanged-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="onConfigurationChanged - method"><!--[--><!--]--> onConfigurationChanged - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html#registerreceiver-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="registerReceiver - method"><!--[--><!--]--> registerReceiver - method <!--[--><!--]--></a><!----></li><!--]--></ul></li><!--]--></ul></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html" class="sidebar-item" aria-label="HookParam - class"><!--[--><!--]--> HookParam - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/annotation/xposed/InjectYukiHookWithXposed.html" class="sidebar-item" aria-label="InjectYukiHookWithXposed - annotation"><!--[--><!--]--> InjectYukiHookWithXposed - annotation <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/xposed/proxy/IYukiHookXposedInit.html" class="sidebar-item" aria-label="IYukiHookXposedInit - interface"><!--[--><!--]--> IYukiHookXposedInit - interface <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/xposed/prefs/YukiHookPrefsBridge.html" class="sidebar-item" aria-label="YukiHookPrefsBridge - class"><!--[--><!--]--> YukiHookPrefsBridge - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/xposed/prefs/ui/ModulePreferenceFragment.html" class="sidebar-item" aria-label="ModulePreferenceFragment - class"><!--[--><!--]--> ModulePreferenceFragment - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/xposed/prefs/data/PrefsData.html" class="sidebar-item" aria-label="PrefsData - class"><!--[--><!--]--> PrefsData - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/xposed/channel/YukiHookDataChannel.html" class="sidebar-item" aria-label="YukiHookDataChannel - class"><!--[--><!--]--> YukiHookDataChannel - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/xposed/channel/data/ChannelData.html" class="sidebar-item" aria-label="ChannelData - class"><!--[--><!--]--> ChannelData - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/xposed/channel/priority/ChannelPriority.html" class="sidebar-item" aria-label="ChannelPriority - class"><!--[--><!--]--> ChannelPriority - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/xposed/application/ModuleApplication.html" class="sidebar-item" aria-label="ModuleApplication - class"><!--[--><!--]--> ModuleApplication - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/xposed/parasitic/activity/base/ModuleAppActivity.html" class="sidebar-item" aria-label="ModuleAppActivity - class"><!--[--><!--]--> ModuleAppActivity - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/xposed/parasitic/activity/base/ModuleAppCompatActivity.html" class="sidebar-item" aria-label="ModuleAppCompatActivity - class"><!--[--><!--]--> ModuleAppCompatActivity - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/xposed/parasitic/context/wrapper/ModuleContextThemeWrapper.html" class="sidebar-item" aria-label="ModuleContextThemeWrapper - class"><!--[--><!--]--> ModuleContextThemeWrapper - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/xposed/parasitic/reference/ModuleClassLoader.html" class="sidebar-item" aria-label="ModuleClassLoader - class"><!--[--><!--]--> ModuleClassLoader - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/xposed/bridge/resources/YukiModuleResources.html" class="sidebar-item" aria-label="YukiModuleResources - class"><!--[--><!--]--> YukiModuleResources - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/xposed/bridge/resources/YukiResources.html" class="sidebar-item" aria-label="YukiResources - class"><!--[--><!--]--> YukiResources - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/xposed/bridge/resources/YukiResForwarder.html" class="sidebar-item" aria-label="YukiResForwarder - class"><!--[--><!--]--> YukiResForwarder - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/xposed/bridge/event/YukiXposedEvent.html" class="sidebar-item" aria-label="YukiXposedEvent - object"><!--[--><!--]--> YukiXposedEvent - object <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/type/android/ComponentTypeFactory.html" class="sidebar-item" aria-label="ComponentTypeFactory - kt"><!--[--><!--]--> ComponentTypeFactory - kt <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/type/android/GraphicsTypeFactory.html" class="sidebar-item" aria-label="GraphicsTypeFactory - kt"><!--[--><!--]--> GraphicsTypeFactory - kt <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/type/android/ViewTypeFactory.html" class="sidebar-item" aria-label="ViewTypeFactory - kt"><!--[--><!--]--> ViewTypeFactory - kt <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/type/java/VariableTypeFactory.html" class="sidebar-item" aria-label="VariableTypeFactory - kt"><!--[--><!--]--> VariableTypeFactory - kt <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/type/defined/DefinedTypeFactory.html" class="sidebar-item" aria-label="DefinedTypeFactory - kt"><!--[--><!--]--> DefinedTypeFactory - kt <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/log/YLog.html" class="sidebar-item" aria-label="YLog - object"><!--[--><!--]--> YLog - object <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/log/data/YLogData.html" class="sidebar-item" aria-label="YLogData - class"><!--[--><!--]--> YLogData - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/factory/ReflectionFactory.html" class="sidebar-item" aria-label="ReflectionFactory - kt"><!--[--><!--]--> ReflectionFactory - kt <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/factory/YukiHookFactory.html" class="sidebar-item" aria-label="YukiHookFactory - kt"><!--[--><!--]--> YukiHookFactory - kt <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/entity/YukiBaseHooker.html" class="sidebar-item" aria-label="YukiBaseHooker - class"><!--[--><!--]--> YukiBaseHooker - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/core/api/compat/type/ExecutorType.html" class="sidebar-item" aria-label="ExecutorType - class"><!--[--><!--]--> ExecutorType - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/core/api/priority/YukiHookPriority.html" class="sidebar-item" aria-label="YukiHookPriority - class"><!--[--><!--]--> YukiHookPriority - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.html" class="sidebar-item" aria-label="YukiMemberHookCreator - class"><!--[--><!--]--> YukiMemberHookCreator - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/core/YukiResourcesHookCreator.html" class="sidebar-item" aria-label="YukiResourcesHookCreator - class"><!--[--><!--]--> YukiResourcesHookCreator - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/core/finder/members/MethodFinder.html" class="sidebar-item" aria-label="MethodFinder - class"><!--[--><!--]--> MethodFinder - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/core/finder/members/ConstructorFinder.html" class="sidebar-item" aria-label="ConstructorFinder - class"><!--[--><!--]--> ConstructorFinder - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/core/finder/members/FieldFinder.html" class="sidebar-item" aria-label="FieldFinder - class"><!--[--><!--]--> FieldFinder - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/core/finder/classes/DexClassFinder.html" class="sidebar-item" aria-label="DexClassFinder - class"><!--[--><!--]--> DexClassFinder - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/core/finder/classes/rules/result/MemberRulesResult.html" class="sidebar-item" aria-label="MemberRulesResult - class"><!--[--><!--]--> MemberRulesResult - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/core/finder/classes/rules/MemberRules.html" class="sidebar-item" aria-label="MemberRules - class"><!--[--><!--]--> MemberRules - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/core/finder/classes/rules/FieldRules.html" class="sidebar-item" aria-label="FieldRules - class"><!--[--><!--]--> FieldRules - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/core/finder/classes/rules/MethodRules.html" class="sidebar-item" aria-label="MethodRules - class"><!--[--><!--]--> MethodRules - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/core/finder/classes/rules/ConstructorRules.html" class="sidebar-item" aria-label="ConstructorRules - class"><!--[--><!--]--> ConstructorRules - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/core/finder/base/BaseFinder.html" class="sidebar-item" aria-label="BaseFinder - class"><!--[--><!--]--> BaseFinder - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/core/finder/base/rules/CountRules.html" class="sidebar-item" aria-label="CountRules - class"><!--[--><!--]--> CountRules - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/core/finder/base/rules/ModifierRules.html" class="sidebar-item" aria-label="ModifierRules - class"><!--[--><!--]--> ModifierRules - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/core/finder/base/rules/NameRules.html" class="sidebar-item" aria-label="NameRules - class"><!--[--><!--]--> NameRules - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/core/finder/base/rules/ObjectRules.html" class="sidebar-item" aria-label="ObjectRules - class"><!--[--><!--]--> ObjectRules - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/bean/HookClass.html" class="sidebar-item" aria-label="HookClass - class"><!--[--><!--]--> HookClass - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/bean/VariousClass.html" class="sidebar-item" aria-label="VariousClass - class"><!--[--><!--]--> VariousClass - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/bean/CurrentClass.html" class="sidebar-item" aria-label="CurrentClass - class"><!--[--><!--]--> CurrentClass - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/bean/GenericClass.html" class="sidebar-item" aria-label="GenericClass - class"><!--[--><!--]--> GenericClass - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/bean/HookResources.html" class="sidebar-item" aria-label="HookResources - class"><!--[--><!--]--> HookResources - class <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="sidebar-item collapsible">特色功能  <span class="right arrow"></span></p><ul style="display:none;" class="sidebar-item-children"><!--[--><li><a href="/YukiHookAPI/zh-cn/api/special-features/reflection.html" class="sidebar-item" aria-label="字节码与反射扩展 (已迁移)"><!--[--><!--]--> 字节码与反射扩展 (已迁移) <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/special-features/logger.html" class="sidebar-item" aria-label="调试日志"><!--[--><!--]--> 调试日志 <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/special-features/xposed-storage.html" class="sidebar-item" aria-label="Xposed 模块数据存储"><!--[--><!--]--> Xposed 模块数据存储 <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/special-features/xposed-channel.html" class="sidebar-item" aria-label="Xposed 模块与宿主通讯桥"><!--[--><!--]--> Xposed 模块与宿主通讯桥 <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/special-features/host-lifecycle.html" class="sidebar-item" aria-label="宿主生命周期扩展"><!--[--><!--]--> 宿主生命周期扩展 <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/api/special-features/host-inject.html" class="sidebar-item" aria-label="宿主资源注入扩展"><!--[--><!--]--> 宿主资源注入扩展 <!--[--><!--]--></a><!----></li><!--]--></ul></li><!--]--></ul></li><li><p tabindex="0" class="sidebar-item sidebar-heading collapsible">关于 <span class="right arrow"></span></p><ul style="display:none;" class="sidebar-item-children"><!--[--><li><a href="/YukiHookAPI/zh-cn/about/changelog.html" class="sidebar-item" aria-label="更新日志"><!--[--><!--]--> 更新日志 <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/about/future.html" class="sidebar-item" aria-label="展望未来"><!--[--><!--]--> 展望未来 <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/about/contacts.html" class="sidebar-item" aria-label="联系我们"><!--[--><!--]--> 联系我们 <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/zh-cn/about/about.html" class="sidebar-item" aria-label="关于此文档"><!--[--><!--]--> 关于此文档 <!--[--><!--]--></a><!----></li><!--]--></ul></li><!--]--></ul><!--[--><!--]--></aside><!--]--><!--[--><main class="page"><!--[--><!--]--><div class="theme-default-content"><!--[--><!--]--><div><div class="custom-container warning"><p class="custom-container-title">注意</p><p>由于维护成本,<code>YukiHookAPI</code><code>1.3.0</code> 版本开始将不再会对此文档进行更新且在 <code>2.0.0</code> 版本切换为 Dokka 插件自动生成的 API 文档。</p></div><h1 id="packageparam-class" tabindex="-1"><a class="header-anchor" href="#packageparam-class" aria-hidden="true">#</a> PackageParam <span class="symbol">- class</span></h1><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">open</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">class</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">PackageParam</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">internal</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">constructor</span><span style="color:#ADBAC7;">(</span><span style="color:#F47067;">internal</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">var</span><span style="color:#ADBAC7;"> wrapper: </span><span style="color:#F69D50;">PackageParamWrapper</span><span style="color:#ADBAC7;">?)</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><strong>功能描述</strong></p><blockquote><p>装载 Hook 的目标 APP 入口对象实现类。</p></blockquote><h2 id="appclassloader-field" tabindex="-1"><a class="header-anchor" href="#appclassloader-field" aria-hidden="true">#</a> appClassLoader <span class="symbol">- field</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">var</span><span style="color:#ADBAC7;"> appClassLoaderClassLoader?</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><code>v1.1.5</code> <code>修改</code></p><p>可以动态修改此变量的值</p><p><code>v1.2.0</code> <code>修改</code></p><p>加入可空类型 (空安全)</p><p><strong>功能描述</strong></p><blockquote><p>获取、设置当前 Hook APP 的 <code>ClassLoader</code></p></blockquote><p>你可以在这里手动设置当前 Hook APP 的 <code>ClassLoader</code>,默认情况下会自动获取。</p><div class="custom-container danger"><p class="custom-container-title">特别注意</p><p>如果设置了错误或无效的 <strong>ClassLoader</strong> 会造成功能异常,请谨慎操作。</p></div><h2 id="appinfo-field" tabindex="-1"><a class="header-anchor" href="#appinfo-field" aria-hidden="true">#</a> appInfo <span class="symbol">- field</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> appInfo: </span><span style="color:#F69D50;">ApplicationInfo</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><strong>功能描述</strong></p><blockquote><p>获取当前 Hook APP 的 <code>ApplicationInfo</code></p></blockquote><h2 id="appuserid-field" tabindex="-1"><a class="header-anchor" href="#appuserid-field" aria-hidden="true">#</a> appUserId <span class="symbol">- field</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> appUserId: </span><span style="color:#F69D50;">Int</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.1.0</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>获取当前 Hook APP 的用户 ID。</p></blockquote><p>机主为 <code>0</code>,应用双开 (分身) 或工作资料因系统环境不同 ID 也各不相同。</p><h2 id="appcontext-field" tabindex="-1"><a class="header-anchor" href="#appcontext-field" aria-hidden="true">#</a> appContext <span class="symbol">- field</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> appContext: </span><span style="color:#F69D50;">Application</span><span style="color:#ADBAC7;">?</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.72</code> <code>新增</code></p><p><code>v1.1.0</code> <code>修改</code></p><p>加入可空类型 (空安全)</p><p><strong>功能描述</strong></p><blockquote><p>获取当前 Hook APP 的 <code>Application</code></p></blockquote><div class="custom-container danger"><p class="custom-container-title">特别注意</p><p>首次装载可能是空的,请延迟一段时间再获取或使用 <strong>onAppLifecycle</strong> 监听来完成。</p></div><h2 id="appresources-field" tabindex="-1"><a class="header-anchor" href="#appresources-field" aria-hidden="true">#</a> appResources <span class="symbol">- field</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> appResourcesResources?</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><code>v1.1.0</code> <code>修改</code></p><p>加入可空类型 (空安全)</p><p><strong>功能描述</strong></p><blockquote><p>获取当前 Hook APP 的 Resources。</p></blockquote><div class="custom-container danger"><p class="custom-container-title">特别注意</p><p>你只能在 <strong>HookResources.hook</strong> 方法体内或 <strong>appContext</strong> 装载完毕时进行调用。</p></div><h2 id="systemcontext-field" tabindex="-1"><a class="header-anchor" href="#systemcontext-field" aria-hidden="true">#</a> systemContext <span class="symbol">- field</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> systemContext: </span><span style="color:#F69D50;">Context</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.1.0</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>获取当前系统框架的 <code>Context</code></p></blockquote><h2 id="processname-field" tabindex="-1"><a class="header-anchor" href="#processname-field" aria-hidden="true">#</a> processName <span class="symbol">- field</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> processName: </span><span style="color:#F69D50;">String</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><strong>功能描述</strong></p><blockquote><p>获取当前 Hook APP 的进程名称。</p></blockquote><h2 id="packagename-field" tabindex="-1"><a class="header-anchor" href="#packagename-field" aria-hidden="true">#</a> packageName <span class="symbol">- field</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> packageName: </span><span style="color:#F69D50;">String</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><strong>功能描述</strong></p><blockquote><p>获取当前 Hook APP 的包名。</p></blockquote><h2 id="isfirstapplication-field" tabindex="-1"><a class="header-anchor" href="#isfirstapplication-field" aria-hidden="true">#</a> isFirstApplication <span class="symbol">- field</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> isFirstApplication: </span><span style="color:#F69D50;">Boolean</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><strong>功能描述</strong></p><blockquote><p>获取当前 Hook APP 是否为第一个 <code>Application</code></p></blockquote><h2 id="mainprocessname-field" tabindex="-1"><a class="header-anchor" href="#mainprocessname-field" aria-hidden="true">#</a> mainProcessName <span class="symbol">- field</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> mainProcessName: </span><span style="color:#F69D50;">String</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.70</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>获取当前 Hook APP 的主进程名称。</p></blockquote><p>其对应的就是 <code>packageName</code></p><h2 id="moduleappfilepath-field" tabindex="-1"><a class="header-anchor" href="#moduleappfilepath-field" aria-hidden="true">#</a> moduleAppFilePath <span class="symbol">- field</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> moduleAppFilePath: </span><span style="color:#F69D50;">String</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>获取当前 Xposed 模块自身 APK 文件路径。</p></blockquote><div class="custom-container danger"><p class="custom-container-title">特别注意</p><p>作为 Hook API 装载时无法使用,会获取到空字符串。</p></div><h2 id="moduleappresources-field" tabindex="-1"><a class="header-anchor" href="#moduleappresources-field" aria-hidden="true">#</a> moduleAppResources <span class="symbol">- field</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> moduleAppResources: </span><span style="color:#F69D50;">YukiModuleResources</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>获取当前 Xposed 模块自身 <code>Resources</code></p></blockquote><div class="custom-container danger"><p class="custom-container-title">特别注意</p><p>作为 Hook API 或不支持的 Hook Framework 装载时无法使用,会抛出异常。</p></div><h2 id="prefs-field" tabindex="-1"><a class="header-anchor" href="#prefs-field" aria-hidden="true">#</a> prefs <span class="symbol">- field</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> prefs: </span><span style="color:#F69D50;">YukiHookPrefsBridge</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><strong>功能描述</strong></p><blockquote><p>创建 <code>YukiHookPrefsBridge</code> 对象。</p></blockquote><div class="custom-container danger"><p class="custom-container-title">特别注意</p><p>作为 Hook API 装载时无法使用,会抛出异常。</p></div><h2 id="prefs-method" tabindex="-1"><a class="header-anchor" href="#prefs-method" aria-hidden="true">#</a> prefs <span class="symbol">- method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">prefs</span><span style="color:#ADBAC7;">(name: </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">): </span><span style="color:#F69D50;">YukiHookPrefsBridge</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><code>v1.0.80</code> <code>修改</code></p><p>将方法体进行 inline</p><p><strong>功能描述</strong></p><blockquote><p>创建 <code>YukiHookPrefsBridge</code> 对象。</p></blockquote><p>你可以通过 <code>name</code> 来自定义 Sp 存储的名称。</p><div class="custom-container danger"><p class="custom-container-title">特别注意</p><p>作为 Hook API 装载时无法使用,会抛出异常。</p></div><h2 id="datachannel-field" tabindex="-1"><a class="header-anchor" href="#datachannel-field" aria-hidden="true">#</a> dataChannel <span class="symbol">- field</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> dataChannel: </span><span style="color:#F69D50;">YukiHookDataChannel</span><span style="color:#ADBAC7;">.NameSpace</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.88</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>获取 <code>YukiHookDataChannel</code> 对象。</p></blockquote><div class="custom-container danger"><p class="custom-container-title">特别注意</p><p>作为 Hook API 装载时无法使用,会抛出异常。</p></div><h2 id="resources-method" tabindex="-1"><a class="header-anchor" href="#resources-method" aria-hidden="true">#</a> resources <span class="symbol">- method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">resources</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">HookResources</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>获得当前 Hook APP 的 <code>YukiResources</code> 对象。</p></blockquote><p>请调用 <code>HookResources.hook</code> 方法开始 Hook。</p><h2 id="refreshmoduleappresources-method" tabindex="-1"><a class="header-anchor" href="#refreshmoduleappresources-method" aria-hidden="true">#</a> refreshModuleAppResources <span class="symbol">- method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">refreshModuleAppResources</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.87</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>刷新当前 Xposed 模块自身 <code>Resources</code></p></blockquote><h2 id="onapplifecycle-method" tabindex="-1"><a class="header-anchor" href="#onapplifecycle-method" aria-hidden="true">#</a> onAppLifecycle <span class="symbol">- method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">onAppLifecycle</span><span style="color:#ADBAC7;">(isOnFailureThrowToApp: </span><span style="color:#F69D50;">Boolean</span><span style="color:#ADBAC7;">, initiate: </span><span style="color:#F69D50;">AppLifecycle</span><span style="color:#ADBAC7;">.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit)</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.88</code> <code>新增</code></p><p><code>v1.1.5</code> <code>修改</code></p><p>新增 <code>isOnFailureThrowToApp</code> 参数,可选择将异常在 (Xposed) 宿主环境打印而不是抛出给宿主</p><p><strong>功能描述</strong></p><blockquote><p>监听当前 Hook APP 生命周期装载事件。</p></blockquote><div class="custom-container warning"><p class="custom-container-title">注意</p><p><strong>loadZygote</strong> 中不会被装载,仅会在 <strong>loadSystem</strong><strong>loadApp</strong> 中装载。</p><p>作为 Hook API 装载时请使用原生的 <strong>Application</strong> 实现生命周期监听。</p></div><h2 id="loadapp-method" tabindex="-1"><a class="header-anchor" href="#loadapp-method" aria-hidden="true">#</a> loadApp <span class="symbol">- method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">loadApp</span><span style="color:#ADBAC7;">(name: </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">, initiate: </span><span style="color:#F69D50;">PackageParam</span><span style="color:#ADBAC7;">.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit)</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">loadApp</span><span style="color:#ADBAC7;">(name: </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">, hooker: </span><span style="color:#F69D50;">YukiBaseHooker</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">loadApp</span><span style="color:#ADBAC7;">(</span><span style="color:#F47067;">vararg</span><span style="color:#ADBAC7;"> name: </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">, initiate: </span><span style="color:#F69D50;">PackageParam</span><span style="color:#ADBAC7;">.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit)</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">loadApp</span><span style="color:#ADBAC7;">(name: </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">, </span><span style="color:#F47067;">vararg</span><span style="color:#ADBAC7;"> hooker: </span><span style="color:#F69D50;">YukiBaseHooker</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">loadApp</span><span style="color:#ADBAC7;">(isExcludeSelf: </span><span style="color:#F69D50;">Boolean</span><span style="color:#ADBAC7;">, initiate: </span><span style="color:#F69D50;">PackageParam</span><span style="color:#ADBAC7;">.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit)</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">loadApp</span><span style="color:#ADBAC7;">(isExcludeSelf: </span><span style="color:#F69D50;">Boolean</span><span style="color:#ADBAC7;">, hooker: </span><span style="color:#F69D50;">YukiBaseHooker</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">loadApp</span><span style="color:#ADBAC7;">(isExcludeSelf: </span><span style="color:#F69D50;">Boolean</span><span style="color:#ADBAC7;">, </span><span style="color:#F47067;">vararg</span><span style="color:#ADBAC7;"> hooker: </span><span style="color:#F69D50;">YukiBaseHooker</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><code>v1.0.80</code> <code>修改</code></p><p>将方法体进行 inline</p><p><code>v1.1.4</code> <code>修改</code></p><p>新增两个方法,可以同时装载多个 APP 与子 Hooker</p><p><code>v1.1.5</code> <code>修改</code></p><p>新增三个方法,可以使用参数 <code>isExcludeSelf</code> 排除模块自身</p><p><strong>功能描述</strong></p><blockquote><p>装载并 Hook 指定、全部包名的 APP。</p></blockquote><p><code>name</code> 为 APP 的包名,后方的两个参数一个可作为 <strong>lambda</strong> 方法体使用,一个可以直接装载子 Hooker。</p><p>装载并 Hook 指定、全部包名的 APP。</p><p>若要装载 APP Zygote 事件,请使用 <code>loadZygote</code></p><p>若要 Hook 系统框架,请使用 <code>loadSystem</code></p><p><strong>功能示例</strong></p><p>你可以使用 <code>loadApp</code><strong>lambda</strong> 方法体形式或直接装载一个 Hooker。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#768390;">// 使用 lambda</span></span>
<span class="line"><span style="color:#DCBDFB;">loadApp</span><span style="color:#ADBAC7;">(name </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">&quot;com.example.test&quot;</span><span style="color:#ADBAC7;">) {</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Your code here.</span></span>
<span class="line"><span style="color:#ADBAC7;">}</span></span>
<span class="line"><span style="color:#768390;">// 使用 Hooker</span></span>
<span class="line"><span style="color:#DCBDFB;">loadApp</span><span style="color:#ADBAC7;">(name </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">&quot;com.example.test&quot;</span><span style="color:#ADBAC7;">, CustomHooker)</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>若不指定 <code>name</code> 参数,则此方法体默认会过滤当前系统中全部可被 Hook 的 APP。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#768390;">// 使用 lambda</span></span>
<span class="line"><span style="color:#DCBDFB;">loadApp</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Your code here.</span></span>
<span class="line"><span style="color:#ADBAC7;">}</span></span>
<span class="line"><span style="color:#768390;">// 使用 Hooker</span></span>
<span class="line"><span style="color:#DCBDFB;">loadApp</span><span style="color:#ADBAC7;">(hooker </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> CustomHooker)</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>若要在全部可被 Hook 的 APP 中过滤掉模块自身,你只需加入 <code>isExcludeSelf = true</code></p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#768390;">// 使用 lambda</span></span>
<span class="line"><span style="color:#DCBDFB;">loadApp</span><span style="color:#ADBAC7;">(isExcludeSelf </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">true</span><span style="color:#ADBAC7;">) {</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Your code here.</span></span>
<span class="line"><span style="color:#ADBAC7;">}</span></span>
<span class="line"><span style="color:#768390;">// 使用 Hooker</span></span>
<span class="line"><span style="color:#DCBDFB;">loadApp</span><span style="color:#ADBAC7;">(isExcludeSelf </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">true</span><span style="color:#ADBAC7;">, hooker </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> CustomHooker)</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>若想要同时装载多个需要 Hook 的 APP可以直接使用如下方式。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#768390;">// 同时装载多个需要 Hook 的 APP</span></span>
<span class="line"><span style="color:#DCBDFB;">loadApp</span><span style="color:#ADBAC7;">(</span><span style="color:#96D0FF;">&quot;com.example.test&quot;</span><span style="color:#ADBAC7;">, </span><span style="color:#96D0FF;">&quot;com.example.next&quot;</span><span style="color:#ADBAC7;">) {</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Your code here.</span></span>
<span class="line"><span style="color:#ADBAC7;">}</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>若想要同时装载多个子 Hooker可以直接使用如下方式但此时只能指定一个需要 Hook 的 APP。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#768390;">// 同时装载多个子 Hooker</span></span>
<span class="line"><span style="color:#DCBDFB;">loadApp</span><span style="color:#ADBAC7;">(</span><span style="color:#96D0FF;">&quot;com.example.test&quot;</span><span style="color:#ADBAC7;">, CustomHooker1, CustomHooker2)</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="loadzygote-method" tabindex="-1"><a class="header-anchor" href="#loadzygote-method" aria-hidden="true">#</a> loadZygote <span class="symbol">- method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">loadZygote</span><span style="color:#ADBAC7;">(initiate: </span><span style="color:#F69D50;">PackageParam</span><span style="color:#ADBAC7;">.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit)</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">loadZygote</span><span style="color:#ADBAC7;">(hooker: </span><span style="color:#F69D50;">YukiBaseHooker</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">loadZygote</span><span style="color:#ADBAC7;">(</span><span style="color:#F47067;">vararg</span><span style="color:#ADBAC7;"> hooker: </span><span style="color:#F69D50;">YukiBaseHooker</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><code>v1.1.4</code> <code>修改</code></p><p>新增一个方法,可以同时装载多个子 Hooker</p><p><strong>功能描述</strong></p><blockquote><p>装载 APP Zygote 事件。</p></blockquote><p>方法中的两个参数一个可作为 <strong>lambda</strong> 方法体使用,一个可以直接装载子 Hooker。</p><h2 id="loadsystem-method" tabindex="-1"><a class="header-anchor" href="#loadsystem-method" aria-hidden="true">#</a> loadSystem <span class="symbol">- method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">loadSystem</span><span style="color:#ADBAC7;">(initiate: </span><span style="color:#F69D50;">PackageParam</span><span style="color:#ADBAC7;">.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit)</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">loadSystem</span><span style="color:#ADBAC7;">(hooker: </span><span style="color:#F69D50;">YukiBaseHooker</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">loadSystem</span><span style="color:#ADBAC7;">(</span><span style="color:#F47067;">vararg</span><span style="color:#ADBAC7;"> hooker: </span><span style="color:#F69D50;">YukiBaseHooker</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.82</code> <code>新增</code></p><p><code>v1.1.4</code> <code>修改</code></p><p>新增一个方法,可以同时装载多个子 Hooker</p><p><strong>功能描述</strong></p><blockquote><p>装载并 Hook 系统框架。</p></blockquote><p>方法中的两个参数一个可作为 <strong>lambda</strong> 方法体使用,一个可以直接装载子 Hooker。</p><h2 id="withprocess-method" tabindex="-1"><a class="header-anchor" href="#withprocess-method" aria-hidden="true">#</a> withProcess <span class="symbol">- method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">withProcess</span><span style="color:#ADBAC7;">(name: </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">, initiate: </span><span style="color:#F69D50;">PackageParam</span><span style="color:#ADBAC7;">.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit)</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">withProcess</span><span style="color:#ADBAC7;">(name: </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">, hooker: </span><span style="color:#F69D50;">YukiBaseHooker</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">withProcess</span><span style="color:#ADBAC7;">(</span><span style="color:#F47067;">vararg</span><span style="color:#ADBAC7;"> name: </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">, hooker: </span><span style="color:#F69D50;">YukiBaseHooker</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">withProcess</span><span style="color:#ADBAC7;">(name: </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">, </span><span style="color:#F47067;">vararg</span><span style="color:#ADBAC7;"> hooker: </span><span style="color:#F69D50;">YukiBaseHooker</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.70</code> <code>新增</code></p><p><code>v1.1.4</code> <code>修改</code></p><p>新增两个方法,可以同时装载多个进程与子 Hooker</p><p><strong>功能描述</strong></p><blockquote><p>装载并 Hook APP 的指定进程。</p></blockquote><p><code>name</code> 为 APP 的进程名称,后方的两个参数一个可作为 <strong>lambda</strong> 方法体使用,一个可以直接装载子 Hooker。</p><h2 id="loadhooker-method" tabindex="-1"><a class="header-anchor" href="#loadhooker-method" aria-hidden="true">#</a> loadHooker <span class="symbol">- method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">loadHooker</span><span style="color:#ADBAC7;">(hooker: </span><span style="color:#F69D50;">YukiBaseHooker</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><strong>功能描述</strong></p><blockquote><p>装载 Hook 子类。</p></blockquote><p>你可以填入 <code>hooker</code> 在 Hooker 中继续装载 Hooker。</p><h2 id="searchclass-method" tabindex="-1"><a class="header-anchor" href="#searchclass-method" aria-hidden="true">#</a> searchClass <span class="symbol">- method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">searchClass</span><span style="color:#ADBAC7;">(name: </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">, async: </span><span style="color:#F69D50;">Boolean</span><span style="color:#ADBAC7;">, initiate: </span><span style="color:#F69D50;">ClassConditions</span><span style="color:#ADBAC7;">): </span><span style="color:#F69D50;">DexClassFinder</span><span style="color:#ADBAC7;">.Result</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.1.0</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>通过 <code>appClassLoader</code> 按指定条件查找并得到当前 Hook APP <strong>Dex</strong> 中的 <code>Class</code></p></blockquote><div class="custom-container danger"><p class="custom-container-title">特别注意</p><p>此方法在 <strong>Class</strong> 数量过多及查找条件复杂时会非常耗时。</p><p>建议启用 <strong>async</strong> 或设置 <strong>name</strong> 参数,<strong>name</strong> 参数将在 Hook APP (宿主) 不同版本中自动进行本地缓存以提升效率。</p><p>此功能尚在实验阶段,性能与稳定性可能仍然存在问题,使用过程遇到问题请向我们报告并帮助我们改进。</p></div><h2 class="deprecated">String+VariousClass.clazz - i-ext-field</h2><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><code>v1.1.0</code> <code>作废</code></p><p>请迁移到 <code>toClass(...)</code> 方法</p><h2 class="deprecated">String.hasClass - i-ext-field</h2><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><code>v1.1.0</code> <code>作废</code></p><p>请迁移到 <code>hasClass(...)</code> 方法</p><h2 id="string-variousclass-toclass-i-ext-method" tabindex="-1"><a class="header-anchor" href="#string-variousclass-toclass-i-ext-method" aria-hidden="true">#</a> String+VariousClass.toClass <span class="symbol">- i-ext-method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">toClass</span><span style="color:#ADBAC7;">(loader: </span><span style="color:#F69D50;">ClassLoader</span><span style="color:#ADBAC7;">?, initialize: </span><span style="color:#F69D50;">Boolean</span><span style="color:#ADBAC7;">): </span><span style="color:#F69D50;">Class</span><span style="color:#ADBAC7;">&lt;*&gt;</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> &lt;</span><span style="color:#F69D50;">reified</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">&gt; </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">toClass</span><span style="color:#ADBAC7;">(loader: </span><span style="color:#F69D50;">ClassLoader</span><span style="color:#ADBAC7;">?, initialize: </span><span style="color:#F69D50;">Boolean</span><span style="color:#ADBAC7;">): </span><span style="color:#F69D50;">Class</span><span style="color:#ADBAC7;">&lt;</span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">&gt;</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">VariousClass</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">toClass</span><span style="color:#ADBAC7;">(loader: </span><span style="color:#F69D50;">ClassLoader</span><span style="color:#ADBAC7;">?, initialize: </span><span style="color:#F69D50;">Boolean</span><span style="color:#ADBAC7;">): </span><span style="color:#F69D50;">Class</span><span style="color:#ADBAC7;">&lt;*&gt;</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.1.0</code> <code>新增</code></p><p><code>v1.1.5</code> <code>修改</code></p><p>新增泛型返回值 <code>Class&lt;T&gt;</code> 方法</p><p>新增 <code>initialize</code> 参数</p><p><strong>功能描述</strong></p><blockquote><p>通过字符串类名、<code>VariousClass</code> 转换为 <code>loader</code> 中的实体类。</p></blockquote><p>默认使用当前 <code>appClassLoader</code> 装载目标 <code>Class</code></p><p><strong>功能示例</strong></p><p>你可以轻松地将 <code>String</code> 类型的 <code>Class</code> 包名转为 <code>Class</code> 实例。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#96D0FF;">&quot;com.example.demo.DemoClass&quot;</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">toClass</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>你还可以向 <code>loader</code> 参数传入你自定义的 <code>ClassLoader</code></p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> customClassLoader: </span><span style="color:#F69D50;">ClassLoader</span><span style="color:#ADBAC7;">? </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">..</span><span style="color:#ADBAC7;">. </span><span style="color:#768390;">// 假设这个就是你的 ClassLoader</span></span>
<span class="line"><span style="color:#96D0FF;">&quot;com.example.demo.DemoClass&quot;</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">toClass</span><span style="color:#ADBAC7;">(customClassLoader)</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><p>你还可以指定 <code>Class</code> 的目标类型。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#768390;">// 指定的 DemoClass 必须存在或为可访问的 stub</span></span>
<span class="line"><span style="color:#96D0FF;">&quot;com.example.demo.DemoClass&quot;</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">toClass</span><span style="color:#ADBAC7;">&lt;</span><span style="color:#F69D50;">DemoClass</span><span style="color:#ADBAC7;">&gt;()</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><p>你还可以设置在获取到这个 <code>Class</code> 时是否自动执行其默认的静态方法块,默认情况下不会执行。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#768390;">// 获取并执行 DemoClass 默认的静态方法块</span></span>
<span class="line"><span style="color:#96D0FF;">&quot;com.example.demo.DemoClass&quot;</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">toClass</span><span style="color:#ADBAC7;">(initialize </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">true</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><p>默认的静态方法块在 Java 中使用如下方式定义。</p><blockquote><p>示例如下</p></blockquote><div class="language-java" data-ext="java"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">public</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">class</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">DemoClass</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">static</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// 这里是静态方法块的内容</span></span>
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">public</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">DemoClass</span><span style="color:#ADBAC7;">() {</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// ...</span></span>
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
<span class="line"><span style="color:#ADBAC7;">}</span></span>
<span class="line"></span></code></pre></div><p>你还可以创建一个 <code>VariousClass</code>,并转换为实体类。</p><p><code>VariousClass</code> 会枚举所有设置的 <code>Class</code> 并最终获得第一个存在的 <code>Class</code></p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">VariousClass</span><span style="color:#ADBAC7;">(</span><span style="color:#96D0FF;">&quot;com.example.demo.DemoClass1&quot;</span><span style="color:#ADBAC7;">, </span><span style="color:#96D0FF;">&quot;com.example.demo.DemoClass2&quot;</span><span style="color:#ADBAC7;">).</span><span style="color:#DCBDFB;">toClass</span><span style="color:#ADBAC7;">()</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>同样地,你还可以向 <code>loader</code> 参数传入你自定义的 <code>ClassLoader</code></p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> customClassLoader: </span><span style="color:#F69D50;">ClassLoader</span><span style="color:#ADBAC7;">? </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">..</span><span style="color:#ADBAC7;">. </span><span style="color:#768390;">// 假设这个就是你的 ClassLoader</span></span>
<span class="line"><span style="color:#DCBDFB;">VariousClass</span><span style="color:#ADBAC7;">(</span><span style="color:#96D0FF;">&quot;com.example.demo.DemoClass1&quot;</span><span style="color:#ADBAC7;">, </span><span style="color:#96D0FF;">&quot;com.example.demo.DemoClass2&quot;</span><span style="color:#ADBAC7;">).</span><span style="color:#DCBDFB;">toClass</span><span style="color:#ADBAC7;">(customClassLoader)</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="string-variousclass-toclassornull-i-ext-method" tabindex="-1"><a class="header-anchor" href="#string-variousclass-toclassornull-i-ext-method" aria-hidden="true">#</a> String+VariousClass.toClassOrNull <span class="symbol">- i-ext-method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">toClassOrNull</span><span style="color:#ADBAC7;">(loader: </span><span style="color:#F69D50;">ClassLoader</span><span style="color:#ADBAC7;">?, initialize: </span><span style="color:#F69D50;">Boolean</span><span style="color:#ADBAC7;">): </span><span style="color:#F69D50;">Class</span><span style="color:#ADBAC7;">&lt;*&gt;?</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> &lt;</span><span style="color:#F69D50;">reified</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">&gt; </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">toClassOrNull</span><span style="color:#ADBAC7;">(loader: </span><span style="color:#F69D50;">ClassLoader</span><span style="color:#ADBAC7;">?, initialize: </span><span style="color:#F69D50;">Boolean</span><span style="color:#ADBAC7;">): </span><span style="color:#F69D50;">Class</span><span style="color:#ADBAC7;">&lt;</span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">&gt;?</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">VariousClass</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">toClassOrNull</span><span style="color:#ADBAC7;">(loader: </span><span style="color:#F69D50;">ClassLoader</span><span style="color:#ADBAC7;">?, initialize: </span><span style="color:#F69D50;">Boolean</span><span style="color:#ADBAC7;">): </span><span style="color:#F69D50;">Class</span><span style="color:#ADBAC7;">&lt;*&gt;?</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.1.0</code> <code>新增</code></p><p><code>v1.1.5</code> <code>修改</code></p><p>新增泛型返回值 <code>Class&lt;T&gt;</code> 方法</p><p>新增 <code>initialize</code> 参数</p><p><strong>功能描述</strong></p><blockquote><p>通过字符串类名、<code>VariousClass</code> 转换为 <code>loader</code> 中的实体类。</p></blockquote><p>默认使用当前 <code>appClassLoader</code> 装载目标 <code>Class</code></p><p>找不到 <code>Class</code> 会返回 <code>null</code>,不会抛出异常。</p><p><strong>功能示例</strong></p><p>用法请参考 <a href="#string-variousclass-toclass-i-ext-method">String+VariousClass.toClass</a> 方法。</p><h2 id="lazyclass-method" tabindex="-1"><a class="header-anchor" href="#lazyclass-method" aria-hidden="true">#</a> lazyClass <span class="symbol">- method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">lazyClass</span><span style="color:#ADBAC7;">(name: </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">, initialize: </span><span style="color:#F69D50;">Boolean</span><span style="color:#ADBAC7;">, loader: </span><span style="color:#F69D50;">ClassLoaderInitializer</span><span style="color:#ADBAC7;">?): </span><span style="color:#F69D50;">LazyClass</span><span style="color:#ADBAC7;">.NonNull</span><span style="color:#F47067;">&lt;</span><span style="color:#ADBAC7;">Any</span><span style="color:#F47067;">&gt;</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> &lt;</span><span style="color:#F69D50;">reified</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">&gt; </span><span style="color:#DCBDFB;">lazyClass</span><span style="color:#ADBAC7;">(name: </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">, initialize: </span><span style="color:#F69D50;">Boolean</span><span style="color:#ADBAC7;">, loader: </span><span style="color:#F69D50;">ClassLoaderInitializer</span><span style="color:#ADBAC7;">?): </span><span style="color:#F69D50;">LazyClass</span><span style="color:#ADBAC7;">.NonNull</span><span style="color:#F47067;">&lt;</span><span style="color:#ADBAC7;">T</span><span style="color:#F47067;">&gt;</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">lazyClass</span><span style="color:#ADBAC7;">(variousClass: </span><span style="color:#F69D50;">VariousClass</span><span style="color:#ADBAC7;">, initialize: </span><span style="color:#F69D50;">Boolean</span><span style="color:#ADBAC7;">, loader: </span><span style="color:#F69D50;">ClassLoaderInitializer</span><span style="color:#ADBAC7;">?): </span><span style="color:#F69D50;">LazyClass</span><span style="color:#ADBAC7;">.NonNull</span><span style="color:#F47067;">&lt;</span><span style="color:#ADBAC7;">Any</span><span style="color:#F47067;">&gt;</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.2.0</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>懒装载 <code>Class</code></p></blockquote><h2 id="lazyclassornull-method" tabindex="-1"><a class="header-anchor" href="#lazyclassornull-method" aria-hidden="true">#</a> lazyClassOrNull <span class="symbol">- method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">lazyClassOrNull</span><span style="color:#ADBAC7;">(name: </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">, initialize: </span><span style="color:#F69D50;">Boolean</span><span style="color:#ADBAC7;">, loader: </span><span style="color:#F69D50;">ClassLoaderInitializer</span><span style="color:#ADBAC7;">?): </span><span style="color:#F69D50;">LazyClass</span><span style="color:#ADBAC7;">.Nullable</span><span style="color:#F47067;">&lt;</span><span style="color:#ADBAC7;">Any</span><span style="color:#F47067;">&gt;</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> &lt;</span><span style="color:#F69D50;">reified</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">&gt; </span><span style="color:#DCBDFB;">lazyClassOrNull</span><span style="color:#ADBAC7;">(name: </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">, initialize: </span><span style="color:#F69D50;">Boolean</span><span style="color:#ADBAC7;">, loader: </span><span style="color:#F69D50;">ClassLoaderInitializer</span><span style="color:#ADBAC7;">?): </span><span style="color:#F69D50;">LazyClass</span><span style="color:#ADBAC7;">.Nullable</span><span style="color:#F47067;">&lt;</span><span style="color:#ADBAC7;">T</span><span style="color:#F47067;">&gt;</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">lazyClassOrNull</span><span style="color:#ADBAC7;">(variousClass: </span><span style="color:#F69D50;">VariousClass</span><span style="color:#ADBAC7;">, initialize: </span><span style="color:#F69D50;">Boolean</span><span style="color:#ADBAC7;">, loader: </span><span style="color:#F69D50;">ClassLoaderInitializer</span><span style="color:#ADBAC7;">?): </span><span style="color:#F69D50;">LazyClass</span><span style="color:#ADBAC7;">.Nullable</span><span style="color:#F47067;">&lt;</span><span style="color:#ADBAC7;">Any</span><span style="color:#F47067;">&gt;</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.2.0</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>懒装载 <code>Class</code></p></blockquote><h2 id="string-hasclass-i-ext-method" tabindex="-1"><a class="header-anchor" href="#string-hasclass-i-ext-method" aria-hidden="true">#</a> String.hasClass <span class="symbol">- i-ext-method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">hasClass</span><span style="color:#ADBAC7;">(loader: </span><span style="color:#F69D50;">ClassLoader</span><span style="color:#ADBAC7;">?): </span><span style="color:#F69D50;">Boolean</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.1.0</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>通过字符串类名查找是否存在。</p></blockquote><p>默认使用当前 <code>appClassLoader</code> 装载目标 <code>Class</code></p><p><strong>功能示例</strong></p><p>你可以轻松的使用此方法判断字符串中的类是否存在。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">if</span><span style="color:#ADBAC7;">(</span><span style="color:#96D0FF;">&quot;com.example.demo.DemoClass&quot;</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">hasClass</span><span style="color:#ADBAC7;">()) {</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Your code here.</span></span>
<span class="line"><span style="color:#ADBAC7;">}</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>你还可以自定义其中的 <code>loader</code> 参数,默认为 <code>appClassLoader</code></p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> customClassLoader: </span><span style="color:#F69D50;">ClassLoader</span><span style="color:#ADBAC7;">? </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">..</span><span style="color:#ADBAC7;">. </span><span style="color:#768390;">// 假设这个就是你的 ClassLoader</span></span>
<span class="line"><span style="color:#F47067;">if</span><span style="color:#ADBAC7;">(</span><span style="color:#96D0FF;">&quot;com.example.demo.DemoClass&quot;</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">hasClass</span><span style="color:#ADBAC7;">(customClassLoader)) {</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Your code here.</span></span>
<span class="line"><span style="color:#ADBAC7;">}</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 class="deprecated">findClass - method</h2><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><code>v1.0.1</code> <code>修改</code></p><p>移除了 <s><code>findClass(various: VariousClass)</code></s> 方法</p><p><code>v1.1.0</code> <code>修改</code></p><p>新增 <code>loader</code> 参数</p><p><code>v1.2.0</code> <code>作废</code></p><p>请直接使用 <code>String.toClass(...)</code><code>VariousClass(...)</code></p><h2 id="class-variousclass-hookclass-hook-i-ext-method" tabindex="-1"><a class="header-anchor" href="#class-variousclass-hookclass-hook-i-ext-method" aria-hidden="true">#</a> Class+VariousClass+HookClass.hook <span class="symbol">- i-ext-method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">Class</span><span style="color:#F47067;">&lt;*&gt;</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">hook</span><span style="color:#ADBAC7;">(isForceUseAbsolute: </span><span style="color:#F69D50;">Boolean</span><span style="color:#ADBAC7;">, initiate: </span><span style="color:#F69D50;">YukiMemberHookCreator</span><span style="color:#ADBAC7;">.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit): </span><span style="color:#F69D50;">YukiMemberHookCreator</span><span style="color:#ADBAC7;">.Result</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">VariousClass</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">hook</span><span style="color:#ADBAC7;">(initiate: </span><span style="color:#F69D50;">YukiMemberHookCreator</span><span style="color:#ADBAC7;">.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit): </span><span style="color:#F69D50;">YukiMemberHookCreator</span><span style="color:#ADBAC7;">.Result</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">HookClass</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">hook</span><span style="color:#ADBAC7;">(initiate: </span><span style="color:#F69D50;">YukiMemberHookCreator</span><span style="color:#ADBAC7;">.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit): </span><span style="color:#F69D50;">YukiMemberHookCreator</span><span style="color:#ADBAC7;">.Result</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><code>v1.0.1</code> <code>修改</code></p><p>新增 <code>VariousClass</code> 的直接调用 <code>hook</code> 方法</p><p><code>v1.0.2</code> <code>修改</code></p><p>新增 <code>String</code> 的直接调用 <code>hook</code> 方法</p><p><code>v1.0.3</code> <code>修改</code></p><p>新增 <code>YukiMemberHookCreator.Result</code> 返回值</p><p><code>v1.0.70</code> <code>修改</code></p><p>新增 <code>isUseAppClassLoader</code> 参数</p><p><code>v1.0.80</code> <code>修改</code></p><p>将方法体进行 inline</p><p><code>v1.1.0</code> <code>修改</code></p><p>移除了 <s><code>isUseAppClassLoader</code></s> 参数</p><p>添加了 <code>isForceUseAbsolute</code> 参数到 <code>Class.hook</code> 方法</p><p><code>v1.2.0</code> <code>修改</code></p><p>作废了 <s><code>String.hook</code></s> 方法</p><p><strong>功能描述</strong></p><blockquote><p>Hook 方法、构造方法。</p></blockquote><h2 id="member-basefinder-baseresult-hook-i-ext-method" tabindex="-1"><a class="header-anchor" href="#member-basefinder-baseresult-hook-i-ext-method" aria-hidden="true">#</a> Member+BaseFinder.BaseResult.hook <span class="symbol">- i-ext-method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">Member</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">hook</span><span style="color:#ADBAC7;">(priority: </span><span style="color:#F69D50;">YukiHookPriority</span><span style="color:#ADBAC7;">): </span><span style="color:#F69D50;">YukiMemberHookCreator</span><span style="color:#ADBAC7;">.MemberHookCreator</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">Member</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">hook</span><span style="color:#ADBAC7;">(priority: </span><span style="color:#F69D50;">YukiHookPriority</span><span style="color:#ADBAC7;">, initiate: </span><span style="color:#F69D50;">YukiMemberHookCreator</span><span style="color:#ADBAC7;">.MemberHookCreator.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit): </span><span style="color:#F69D50;">YukiMemberHookCreator</span><span style="color:#ADBAC7;">.MemberHookCreator.Result</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">BaseFinder</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">BaseResult</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">hook</span><span style="color:#ADBAC7;">(priority: </span><span style="color:#F69D50;">YukiHookPriority</span><span style="color:#ADBAC7;">): </span><span style="color:#F69D50;">YukiMemberHookCreator</span><span style="color:#ADBAC7;">.MemberHookCreator</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">BaseFinder</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">BaseResult</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">hook</span><span style="color:#ADBAC7;">(priority: </span><span style="color:#F69D50;">YukiHookPriority</span><span style="color:#ADBAC7;">, initiate: </span><span style="color:#F69D50;">YukiMemberHookCreator</span><span style="color:#ADBAC7;">.MemberHookCreator.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit): </span><span style="color:#F69D50;">YukiMemberHookCreator</span><span style="color:#ADBAC7;">.MemberHookCreator.Result</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.2.0</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>直接 Hook 方法、构造方法。</p></blockquote><div class="custom-container warning"><p class="custom-container-title">注意</p><p>此功能尚在实验阶段,在 <strong>1.x.x</strong> 版本将暂定于此,在 <strong>2.0.0</strong> 版本将完全合并到新 API。</p></div><h2 id="array-member-list-member-basefinder-baseresult-hookall-i-ext-method" tabindex="-1"><a class="header-anchor" href="#array-member-list-member-basefinder-baseresult-hookall-i-ext-method" aria-hidden="true">#</a> Array&lt;Member&gt;+List&lt;Member&gt;+BaseFinder.BaseResult.hookAll <span class="symbol">- i-ext-method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">Array</span><span style="color:#F47067;">&lt;</span><span style="color:#ADBAC7;">Member</span><span style="color:#F47067;">&gt;</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">hookAll</span><span style="color:#ADBAC7;">(priority: </span><span style="color:#F69D50;">YukiHookPriority</span><span style="color:#ADBAC7;">): </span><span style="color:#F69D50;">YukiMemberHookCreator</span><span style="color:#ADBAC7;">.MemberHookCreator</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">Array</span><span style="color:#F47067;">&lt;</span><span style="color:#ADBAC7;">Member</span><span style="color:#F47067;">&gt;</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">hookAll</span><span style="color:#ADBAC7;">(priority: </span><span style="color:#F69D50;">YukiHookPriority</span><span style="color:#ADBAC7;">, initiate: </span><span style="color:#F69D50;">YukiMemberHookCreator</span><span style="color:#ADBAC7;">.MemberHookCreator.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit): </span><span style="color:#F69D50;">YukiMemberHookCreator</span><span style="color:#ADBAC7;">.MemberHookCreator.Result</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">List</span><span style="color:#F47067;">&lt;</span><span style="color:#ADBAC7;">Member</span><span style="color:#F47067;">&gt;</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">hookAll</span><span style="color:#ADBAC7;">(priority: </span><span style="color:#F69D50;">YukiHookPriority</span><span style="color:#ADBAC7;">): </span><span style="color:#F69D50;">YukiMemberHookCreator</span><span style="color:#ADBAC7;">.MemberHookCreator</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">List</span><span style="color:#F47067;">&lt;</span><span style="color:#ADBAC7;">Member</span><span style="color:#F47067;">&gt;</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">hookAll</span><span style="color:#ADBAC7;">(priority: </span><span style="color:#F69D50;">YukiHookPriority</span><span style="color:#ADBAC7;">, initiate: </span><span style="color:#F69D50;">YukiMemberHookCreator</span><span style="color:#ADBAC7;">.MemberHookCreator.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit): </span><span style="color:#F69D50;">YukiMemberHookCreator</span><span style="color:#ADBAC7;">.MemberHookCreator.Result</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">BaseFinder</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">BaseResult</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">hookAll</span><span style="color:#ADBAC7;">(priority: </span><span style="color:#F69D50;">YukiHookPriority</span><span style="color:#ADBAC7;">): </span><span style="color:#F69D50;">YukiMemberHookCreator</span><span style="color:#ADBAC7;">.MemberHookCreator</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">BaseFinder</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">BaseResult</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">hookAll</span><span style="color:#ADBAC7;">(priority: </span><span style="color:#F69D50;">YukiHookPriority</span><span style="color:#ADBAC7;">, initiate: </span><span style="color:#F69D50;">YukiMemberHookCreator</span><span style="color:#ADBAC7;">.MemberHookCreator.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit): </span><span style="color:#F69D50;">YukiMemberHookCreator</span><span style="color:#ADBAC7;">.MemberHookCreator.Result</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.2.0</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>直接 Hook 方法、构造方法 (批量)。</p></blockquote><div class="custom-container warning"><p class="custom-container-title">注意</p><p>此功能尚在实验阶段,在 <strong>1.x.x</strong> 版本将暂定于此,在 <strong>2.0.0</strong> 版本将完全合并到新 API。</p></div><h2 id="hookresources-hook-i-ext-method" tabindex="-1"><a class="header-anchor" href="#hookresources-hook-i-ext-method" aria-hidden="true">#</a> HookResources.hook <span class="symbol">- i-ext-method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">HookResources</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">hook</span><span style="color:#ADBAC7;">(initiate: </span><span style="color:#F69D50;">YukiResourcesHookCreator</span><span style="color:#ADBAC7;">.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit)</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.80</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>Hook APP 的 Resources。</p></blockquote><div class="custom-container danger"><p class="custom-container-title">特别注意</p><p>此功能将不再默认启用,如需启用,请手动设置 <strong>InjectYukiHookWithXposed.isUsingResourcesHook</strong></p></div><p><strong>功能示例</strong></p><p>Resources Hook 为固定用法,获取 <code>resources</code> 对象,然后调用 <code>hook</code> 方法开始 Hook。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">resources</span><span style="color:#ADBAC7;">().</span><span style="color:#DCBDFB;">hook</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// Your code here.</span></span>
<span class="line"><span style="color:#ADBAC7;">}</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><div class="custom-container danger"><p class="custom-container-title">特别注意</p><p>这是固定用法,为了防止发生问题,你不可手动实现任何 <strong>HookResources</strong> 实例执行 <strong>hook</strong> 调用。</p></div><p>将 Resources 的 Hook 设置为这样是为了与 <code>String.toClass(...).hook</code> 做到统一,使得调用起来逻辑不会混乱。</p><h2 id="applifecycle-class" tabindex="-1"><a class="header-anchor" href="#applifecycle-class" aria-hidden="true">#</a> AppLifecycle <span class="symbol">- class</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inner</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">class</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">AppLifecycle</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">internal</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">constructor</span><span style="color:#ADBAC7;">(</span><span style="color:#F47067;">private</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> isOnFailureThrowToApp: </span><span style="color:#F69D50;">Boolean</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.88</code> <code>新增</code></p><p><code>v1.1.5</code> <code>修改</code></p><p>新增 <code>isOnFailureThrowToApp</code> 参数,可选择将异常在 (Xposed) 宿主环境打印而不是抛出给宿主</p><p><strong>功能描述</strong></p><blockquote><p>当前 Hook APP 的生命周期实例处理类。</p></blockquote><h3 id="attachbasecontext-method" tabindex="-1"><a class="header-anchor" href="#attachbasecontext-method" aria-hidden="true">#</a> attachBaseContext <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">attachBaseContext</span><span style="color:#ADBAC7;">(result: (</span><span style="color:#F69D50;">baseContext</span><span style="color:#ADBAC7;">: </span><span style="color:#F69D50;">Context</span><span style="color:#ADBAC7;">, </span><span style="color:#F69D50;">hasCalledSuper</span><span style="color:#ADBAC7;">: </span><span style="color:#F69D50;">Boolean</span><span style="color:#ADBAC7;">) -&gt; </span><span style="color:#F69D50;">Unit</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.88</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>监听当前 Hook APP 装载 <code>Application.attachBaseContext</code></p></blockquote><h3 id="oncreate-method" tabindex="-1"><a class="header-anchor" href="#oncreate-method" aria-hidden="true">#</a> onCreate <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">onCreate</span><span style="color:#ADBAC7;">(initiate: </span><span style="color:#F69D50;">Application</span><span style="color:#ADBAC7;">.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit)</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.88</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>监听当前 Hook APP 装载 <code>Application.onCreate</code></p></blockquote><h3 id="onterminate-method" tabindex="-1"><a class="header-anchor" href="#onterminate-method" aria-hidden="true">#</a> onTerminate <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">onTerminate</span><span style="color:#ADBAC7;">(initiate: </span><span style="color:#F69D50;">Application</span><span style="color:#ADBAC7;">.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit)</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.88</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>监听当前 Hook APP 装载 <code>Application.onTerminate</code></p></blockquote><h3 id="onlowmemory-method" tabindex="-1"><a class="header-anchor" href="#onlowmemory-method" aria-hidden="true">#</a> onLowMemory <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">onLowMemory</span><span style="color:#ADBAC7;">(initiate: </span><span style="color:#F69D50;">Application</span><span style="color:#ADBAC7;">.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit)</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.88</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>监听当前 Hook APP 装载 <code>Application.onLowMemory</code></p></blockquote><h3 id="ontrimmemory-method" tabindex="-1"><a class="header-anchor" href="#ontrimmemory-method" aria-hidden="true">#</a> onTrimMemory <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">onTrimMemory</span><span style="color:#ADBAC7;">(result: (</span><span style="color:#F69D50;">self</span><span style="color:#ADBAC7;">: </span><span style="color:#F69D50;">Application</span><span style="color:#ADBAC7;">, </span><span style="color:#F69D50;">level</span><span style="color:#ADBAC7;">: </span><span style="color:#F69D50;">Int</span><span style="color:#ADBAC7;">) -&gt; </span><span style="color:#F69D50;">Unit</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.88</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>监听当前 Hook APP 装载 <code>Application.onTrimMemory</code></p></blockquote><h3 id="onconfigurationchanged-method" tabindex="-1"><a class="header-anchor" href="#onconfigurationchanged-method" aria-hidden="true">#</a> onConfigurationChanged <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">onConfigurationChanged</span><span style="color:#ADBAC7;">(result: (</span><span style="color:#F69D50;">self</span><span style="color:#ADBAC7;">: </span><span style="color:#F69D50;">Application</span><span style="color:#ADBAC7;">, </span><span style="color:#F69D50;">config</span><span style="color:#ADBAC7;">: </span><span style="color:#F69D50;">Configuration</span><span style="color:#ADBAC7;">) -&gt; </span><span style="color:#F69D50;">Unit</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.88</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>监听当前 Hook APP 装载 <code>Application.onConfigurationChanged</code></p></blockquote><h3 id="registerreceiver-method" tabindex="-1"><a class="header-anchor" href="#registerreceiver-method" aria-hidden="true">#</a> registerReceiver <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">registerReceiver</span><span style="color:#ADBAC7;">(</span><span style="color:#F47067;">vararg</span><span style="color:#ADBAC7;"> action: </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">, result: (</span><span style="color:#F69D50;">context</span><span style="color:#ADBAC7;">: </span><span style="color:#F69D50;">Context</span><span style="color:#ADBAC7;">, </span><span style="color:#F69D50;">intent</span><span style="color:#ADBAC7;">: </span><span style="color:#F69D50;">Intent</span><span style="color:#ADBAC7;">) -&gt; </span><span style="color:#F69D50;">Unit</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">registerReceiver</span><span style="color:#ADBAC7;">(filter: </span><span style="color:#F69D50;">IntentFilter</span><span style="color:#ADBAC7;">, result: (</span><span style="color:#F69D50;">context</span><span style="color:#ADBAC7;">: </span><span style="color:#F69D50;">Context</span><span style="color:#ADBAC7;">, </span><span style="color:#F69D50;">intent</span><span style="color:#ADBAC7;">: </span><span style="color:#F69D50;">Intent</span><span style="color:#ADBAC7;">) -&gt; </span><span style="color:#F69D50;">Unit</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.88</code> <code>新增</code></p><p><code>v1.1.8</code> <code>修改</code></p><p>新增直接使用 <code>IntentFilter</code> 注册系统广播监听</p><p><strong>功能描述</strong></p><blockquote><p>注册系统广播监听。</p></blockquote></div><!--[--><!--]--></div><footer class="page-meta"><div class="meta-item edit-link"><a class="external-link meta-item-label" href="https://github.com/HighCapable/YukiHookAPI/edit/master/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.md" rel="noopener noreferrer" target="_blank" aria-label="在 GitHub 上编辑此页"><!--[--><!--]--> 在 GitHub 上编辑此页 <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口中打开</span></span><!--[--><!--]--></a></div><div class="meta-item last-updated"><span class="meta-item-label">上次更新: </span><!----></div><div class="meta-item contributors"><span class="meta-item-label">贡献者: </span><span class="meta-item-info"><!--[--><!--[--><span class="contributor" title="email: qzmmcn@163.com">fankesyooni</span><!----><!--]--><!--]--></span></div></footer><nav class="page-nav"><p class="inner"><span class="prev"><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/YukiHookAPI.html" class="" aria-label="YukiHookAPI - object"><!--[--><!--]--> YukiHookAPI - object <!--[--><!--]--></a></span><span class="next"><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html" class="" aria-label="HookParam - class"><!--[--><!--]--> HookParam - class <!--[--><!--]--></a></span></p></nav><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
<script type="module" src="/YukiHookAPI/assets/app-Dh3YGII_.js" defer></script>
</body>
</html>