Files
YukiHookAPI/zh-cn/guide/home.html
github-actions[bot] aac9e42e84 Deploy to GitHub pages
2025-08-02 18:17:09 +00:00

105 lines
87 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>介绍 | 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-BpUB8-Q8.js"><link rel="modulepreload" href="/YukiHookAPI/assets/home.html-DVG1oAZg.js"><link rel="modulepreload" href="/YukiHookAPI/assets/home.html-Cg57uIpM.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/about.html-DDk-q1tu.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/changelog.html-Bti1NzlA.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/home.html-BWNdBIZw.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-B8UfyBpi.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/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/PackageParam.html-B3y0YF_m.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-5uusgM1u.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/index.html-NYRlXN7n.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/index.html-CB7-jiwu.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/about.html-C7A_QXrx.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/changelog.html-BQ5AB5_x.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/contacts.html-CGQemCaU.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/future.html-aS7aVBMr.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/home.html-CSP-y2Sx.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/api-example.html-DtfHDuEM.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/api-exception.html-vCoW3MFk.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/api-using.html-DtbSeeEs.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/move-to-api-1-2-x.html-etgyp2HF.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/move-to-api-1-3-x.html-C6uNfo-e.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/r8-proguard.html-BruKL-ec.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/xposed-using.html-7rTJRpMs.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/example.html-Cp22GGCP.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/home.html-Hj1hpUN3.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/knowledge.html-BvjZCte4.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/move-to-new-api.html-CtQJCJWD.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/quick-start.html-CnOHbn2J.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/supportive.html-Cd4sY_Jm.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/yukihookapi-projectbuilder.html-0qjforhM.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/about.html-B_eiWEVD.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/changelog.html-D0nYCScY.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/contacts.html-Co35EHVH.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/future.html-BS9bLph2.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/home.html-DwzlpDun.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/api-example.html-t4M0wmt4.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/api-exception.html-9Je71x4B.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/api-using.html-P_EkKVX5.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/move-to-api-1-2-x.html-IonwGaOH.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/move-to-api-1-3-x.html-DBMmjUYq.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/r8-proguard.html-C9EyjikD.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/xposed-using.html-B9LNrU2W.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/example.html-l_t2vpgR.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/knowledge.html-CabyS3rt.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/move-to-new-api.html-DwX5LqED.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/quick-start.html-pUciT6Ob.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/supportive.html-CTTW-ar9.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/yukihookapi-projectbuilder.html-Bq3KEpgx.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/host-inject.html-DyCVxqXv.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/host-lifecycle.html-BqYisHbJ.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/logger.html-C9kwF_yM.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/reflection.html-D65pVYER.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/xposed-channel.html-DZ4m7tlI.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/xposed-storage.html-DYzzLHun.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/host-inject.html-BNOoOrx_.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/host-lifecycle.html-BsjcaKw0.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/logger.html-B-OHJyal.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/reflection.html-BZdJSVZS.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/xposed-channel.html-BeC6v_Qb.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/xposed-storage.html-CFhC-RoM.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookAPI.html-BRFLeDZT.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookAPI.html-DwLoSNWF.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/InjectYukiHookWithXposed.html-B4v_FVid.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/CurrentClass.html-CF1c04UQ.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/GenericClass.html-8gR9C4nD.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/HookClass.html-CIc4FkOC.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/HookResources.html-_3fh2QXJ.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/VariousClass.html-DXVXaoSY.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiMemberHookCreator.html-De9-pEl1.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiResourcesHookCreator.html-CuPFBHZF.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiBaseHooker.html-Dg91Mdnk.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ReflectionFactory.html-BVjwrqby.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookFactory.html-B7vz7jla.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YLog.html-DvNg4c8I.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/HookParam.html-BjAineUd.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/PackageParam.html-vqkHjjmt.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/InjectYukiHookWithXposed.html-4oxD2_xz.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/CurrentClass.html-Dwxk2yiw.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/GenericClass.html-DQHoN7CN.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/HookClass.html-CJV3GEVs.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/HookResources.html-zBrjRa5p.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/VariousClass.html-BdAcgrdg.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiMemberHookCreator.html-WvIyCwTr.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiResourcesHookCreator.html-CKh6FwjE.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiBaseHooker.html-D01KVdut.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ReflectionFactory.html-Z7mH28Qd.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookFactory.html-Dp3ev0qR.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YLog.html-g2dfXKDH.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/HookParam.html-ArPvy40F.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/PackageParam.html-Bti7eWUt.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YLogData.html-4aWpXHE7.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ComponentTypeFactory.html-B-t1GVQa.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/GraphicsTypeFactory.html-B1x8cclg.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ViewTypeFactory.html-2ZSLUHiw.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/DefinedTypeFactory.html-DyzA4S0r.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/VariableTypeFactory.html-DqSR6Ejd.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleApplication.html-DYtHym0q.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookDataChannel.html-0wHuRMGr.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookPrefsBridge.html-DVZoJTsa.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/IYukiHookXposedInit.html-DTEi8nM4.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YLogData.html-DIaUDgTt.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ComponentTypeFactory.html-357LuQ82.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/GraphicsTypeFactory.html-pywoj7PR.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ViewTypeFactory.html-pGgKQdI9.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/DefinedTypeFactory.html-B0M9p-6D.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/VariableTypeFactory.html-Cel7GBhi.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleApplication.html--_5n76BL.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookDataChannel.html-iKhC7MJd.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookPrefsBridge.html-Dprm2-90.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/IYukiHookXposedInit.html-CjNI4nFN.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookPriority.html-CUgcejgE.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/BaseFinder.html-DvwHVrKn.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/DexClassFinder.html-DDicCU5w.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ConstructorFinder.html-CVpWcXzr.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/FieldFinder.html-Cj74NK2V.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/MethodFinder.html-CtgDtD9U.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiXposedEvent.html-BIvOGBiv.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiModuleResources.html-CAc6ozP1.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiResForwarder.html-DHpOwzIq.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiResources.html-CwrMMidY.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ChannelData.html-CFQv84Ul.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ChannelPriority.html-DFUm-PWb.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleClassLoader.html-BbehDNqJ.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/PrefsData.html-BbtXNnuS.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModulePreferenceFragment.html-XrU_e4rC.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiHookPriority.html-BzBXrjfk.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/BaseFinder.html-CAOGJdjR.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/DexClassFinder.html-BbI_zWlb.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ConstructorFinder.html-DrSYr7fy.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/FieldFinder.html-Di6mgVKf.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/MethodFinder.html-DLZMTsEY.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiXposedEvent.html-DtehWaX2.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiModuleResources.html-DyrSatFK.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiResForwarder.html-PPhoLmXZ.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/YukiResources.html-DZg6eRc4.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ChannelData.html-Bp3A6ogd.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ChannelPriority.html-CEzIYSdp.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleClassLoader.html-a6gisn52.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/PrefsData.html-BInEpoWz.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModulePreferenceFragment.html-BozNh-bQ.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ExecutorType.html-lxG6aiIx.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/CountRules.html-CAljrhzL.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModifierRules.html-B1V1DMvv.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/NameRules.html-DOue2ksg.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ObjectRules.html-1b_D9aS8.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ConstructorRules.html-Bxffddpr.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/FieldRules.html-DzJvDeKO.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/MemberRules.html-DBoFuxYs.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/MethodRules.html-B2dSoNBv.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleAppActivity.html-BffipQvV.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleAppCompatActivity.html-C5B-6ZTc.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleContextThemeWrapper.html-BylfEIpg.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ExecutorType.html-DyWI3DE3.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/CountRules.html-cCBf7VmB.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModifierRules.html-DD38DB4t.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/NameRules.html-zuU55Nke.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ObjectRules.html-DA4rLBnV.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ConstructorRules.html-CjPJ9499.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/FieldRules.html-D50kuywF.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/MemberRules.html-WT4l8b-Y.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/MethodRules.html-CW03U_a6.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleAppActivity.html-e7GuQiJo.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleAppCompatActivity.html-Csob9Ceu.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/ModuleContextThemeWrapper.html-UouAIg96.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/MemberRulesResult.html-CPcOEYiz.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/MemberRulesResult.html-C2cLl89Y.js" as="script"><link rel="prefetch" href="/YukiHookAPI/assets/404.html-BkgNjMhp.js" as="script">
</head>
<body>
<div id="app"><!--[--><div class="theme-container"><!--[--><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="router-link-active" 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="" 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/guide/home.html" class="" aria-label="English"><!--[--><!--]--> English <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a aria-current="page" href="/YukiHookAPI/zh-cn/guide/home.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="router-link-active" 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="" 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/guide/home.html" class="" aria-label="English"><!--[--><!--]--> English <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a aria-current="page" href="/YukiHookAPI/zh-cn/guide/home.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 active collapsible">入门 <span class="down arrow"></span></p><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/YukiHookAPI/zh-cn/guide/home.html" class="router-link-active router-link-exact-active router-link-active sidebar-item active" aria-label="介绍"><!--[--><!--]--> 介绍 <!--[--><!--]--></a><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/YukiHookAPI/zh-cn/guide/home.html#背景" class="router-link-active router-link-exact-active sidebar-item" aria-label="背景"><!--[--><!--]--> 背景 <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/guide/home.html#用途" class="router-link-active router-link-exact-active sidebar-item" aria-label="用途"><!--[--><!--]--> 用途 <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/guide/home.html#语言要求" class="router-link-active router-link-exact-active sidebar-item" aria-label="语言要求"><!--[--><!--]--> 语言要求 <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/zh-cn/guide/home.html#灵感来源" class="router-link-active router-link-exact-active sidebar-item" aria-label="灵感来源"><!--[--><!--]--> 灵感来源 <!--[--><!--]--></a><!----></li><!--]--></ul></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 collapsible">API 文档 <span class="right arrow"></span></p><ul style="display:none;" 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 collapsible">Public API  <span class="right arrow"></span></p><ul style="display:none;" 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 href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html" class="sidebar-item" aria-label="PackageParam - class"><!--[--><!--]--> PackageParam - class <!--[--><!--]--></a><!----></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><h1 id="介绍" tabindex="-1"><a class="header-anchor" href="#介绍" aria-hidden="true">#</a> 介绍</h1><blockquote><p><code>YukiHookAPI</code> 是一个集成化的 Hook API 框架,本身不提供任何 Hook 功能,需要 Xposed 相关基础 API 的支持。</p></blockquote><h2 id="背景" tabindex="-1"><a class="header-anchor" href="#背景" aria-hidden="true">#</a> 背景</h2><p>这是一个使用 Kotlin 基于 Xposed API 重新构建的高效 Hook API同时为 Xposed 模块的开发打造了丰富的功能扩展。</p><p>名称取自 <a href="https://www.bilibili.com/bangumi/play/ss5016" target="_blank" rel="noopener noreferrer">《ももくり》女主 栗原 雪(Yuki)<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></p><p>前身为 <a href="https://github.com/fankes/TMore" target="_blank" rel="noopener noreferrer">开发学习项目<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> 中使用的 Innocent Xposed API现在重新命名并开源。</p><h2 id="用途" tabindex="-1"><a class="header-anchor" href="#用途" aria-hidden="true">#</a> 用途</h2><p><code>YukiHookAPI</code> 完全采用 Kotlin <strong>lambda</strong> 语法构建。</p><p>抛弃原始不太友好的 <code>XposedHelpers</code>,你可以使用它来轻松创建 Xposed 模块以及轻松实现自定义 Hook API。</p><h2 id="语言要求" tabindex="-1"><a class="header-anchor" href="#语言要求" aria-hidden="true">#</a> 语言要求</h2><p>请使用 Kotlin框架部分代码构成同样兼容 Java 但基础 Hook 场景的实现<strong>可能完全无法使用</strong></p><p>文档全部的 Demo 示例代码都将使用 Kotlin 进行描述,如果你完全不会使用 Kotlin 那你将有可能无法使用 <code>YukiHookAPI</code></p><h2 id="灵感来源" tabindex="-1"><a class="header-anchor" href="#灵感来源" aria-hidden="true">#</a> 灵感来源</h2><p>以前,我们在构建 Xposed 模块的时候,首先需要在 <code>assets</code> 下创建 <code>xposed_init</code> 文件。</p><p>然后,将自己的入口类名手动填入文件中,使用 <code>XposedHelpers</code> 去实现我们的 Hook 逻辑。</p><p>自 Kotlin 作为 Android 主要开发语言以来,这套 API 用起来确实已经不是很优雅了。</p><p>有没有什么 <strong>好用、轻量、优雅</strong> 的解决办法呢?</p><p>本着这样的想法,<code>YukiHookAPI</code> 诞生了。</p><p>现在,我们只需要编写少量的代码,一切时间开销和花费交给自动化处理。</p><p>借助 Kotlin 优雅的 <strong>lambda</strong> 写法以及 <code>YukiHookAPI</code>,可以让你的 Hook 逻辑更加美观清晰。</p><blockquote><p>示例如下</p></blockquote><div class="code-group"><div class="code-group__nav"><ul class="code-group__ul"><li class="code-group__li"><button class="code-group__nav-tab code-group__nav-tab-active" ariapressed="true" ariaexpanded="true">Yuki Hook API</button></li><li class="code-group__li"><button class="code-group__nav-tab" ariapressed="false" ariaexpanded="false">Rovo89 Xposed API</button></li></ul></div><!--[--><div class="code-group-item" aria-selected="false"><!--[--><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:#F69D50;">@InjectYukiHookWithXposed</span></span>
<span class="line"><span style="color:#F47067;">object</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">HookEntry</span><span style="color:#ADBAC7;"> : </span><span style="color:#F69D50;">IYukiHookXposedInit</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">override</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">onHook</span><span style="color:#ADBAC7;">() </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">encase</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">loadZygote</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"><span style="color:#ADBAC7;"> Activity::</span><span style="color:#DCBDFB;">class</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">resolve</span><span style="color:#ADBAC7;">().</span><span style="color:#DCBDFB;">firstMethod</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"><span style="color:#ADBAC7;"> name </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">&quot;onCreate&quot;</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">parameters</span><span style="color:#ADBAC7;">(Bundle::</span><span style="color:#DCBDFB;">class</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"><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:#DCBDFB;">before</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:#ADBAC7;"> </span><span style="color:#DCBDFB;">after</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:#ADBAC7;"> }</span></span>
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><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.android.browser&quot;</span><span style="color:#ADBAC7;">) {</span></span>
<span class="line"><span style="color:#ADBAC7;"> Activity::</span><span style="color:#DCBDFB;">class</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">resolve</span><span style="color:#ADBAC7;">().</span><span style="color:#DCBDFB;">firstMethod</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"><span style="color:#ADBAC7;"> name </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">&quot;onCreate&quot;</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">parameters</span><span style="color:#ADBAC7;">(Bundle::</span><span style="color:#DCBDFB;">class</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"><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:#DCBDFB;">before</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:#ADBAC7;"> </span><span style="color:#DCBDFB;">after</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:#ADBAC7;"> }</span></span>
<span class="line"><span style="color:#ADBAC7;"> }</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 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 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 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 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 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 class="line-number"></div><div class="line-number"></div></div></div><!--]--></div><div class="code-group-item" aria-selected="false"><!--[--><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;">class</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">HookEntry</span><span style="color:#ADBAC7;"> : </span><span style="color:#F69D50;">IXposedHookZygoteInit</span><span style="color:#ADBAC7;">, </span><span style="color:#DCBDFB;">IXposedHookLoadPackage</span><span style="color:#ADBAC7;"> {</span></span>
<span class="line"></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">private</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">lateinit</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">var</span><span style="color:#ADBAC7;"> moduleResources: </span><span style="color:#F69D50;">XModuleResources</span></span>
<span class="line"></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">override</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">initZygote</span><span style="color:#ADBAC7;">(sparam: </span><span style="color:#F69D50;">IXposedHookZygoteInit</span><span style="color:#ADBAC7;">.StartupParam) {</span></span>
<span class="line"><span style="color:#ADBAC7;"> moduleResources </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> XModuleResources.</span><span style="color:#DCBDFB;">createInstance</span><span style="color:#ADBAC7;">(sparam.modulePath, </span><span style="color:#6CB6FF;">null</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"><span style="color:#ADBAC7;"> XposedHelpers.</span><span style="color:#DCBDFB;">findAndHookMethod</span><span style="color:#ADBAC7;">(</span></span>
<span class="line"><span style="color:#ADBAC7;"> Activity::</span><span style="color:#DCBDFB;">class</span><span style="color:#ADBAC7;">.java.name,</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">null</span><span style="color:#ADBAC7;">, </span><span style="color:#96D0FF;">&quot;onCreate&quot;</span><span style="color:#ADBAC7;">,</span></span>
<span class="line"><span style="color:#ADBAC7;"> Bundle::</span><span style="color:#DCBDFB;">class</span><span style="color:#ADBAC7;">.java,</span></span>
<span class="line"><span style="color:#ADBAC7;"> object : </span><span style="color:#F69D50;">XC_MethodHook</span><span style="color:#ADBAC7;">() {</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">override</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">beforeHookedMethod</span><span style="color:#ADBAC7;">(param: </span><span style="color:#F69D50;">MethodHookParam</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>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">override</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">afterHookedMethod</span><span style="color:#ADBAC7;">(param: </span><span style="color:#F69D50;">MethodHookParam</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:#ADBAC7;"> })</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;">override</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">handleLoadPackage</span><span style="color:#ADBAC7;">(lpparam: </span><span style="color:#F69D50;">XC_LoadPackage</span><span style="color:#ADBAC7;">.LoadPackageParam) {</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">if</span><span style="color:#ADBAC7;"> (lpparam.packageName </span><span style="color:#F47067;">==</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">&quot;com.android.browser&quot;</span><span style="color:#ADBAC7;">)</span></span>
<span class="line"><span style="color:#ADBAC7;"> XposedHelpers.</span><span style="color:#DCBDFB;">findAndHookMethod</span><span style="color:#ADBAC7;">(</span></span>
<span class="line"><span style="color:#ADBAC7;"> Activity::</span><span style="color:#DCBDFB;">class</span><span style="color:#ADBAC7;">.java.name,</span></span>
<span class="line"><span style="color:#ADBAC7;"> lpparam.classLoader, </span><span style="color:#96D0FF;">&quot;onCreate&quot;</span><span style="color:#ADBAC7;">,</span></span>
<span class="line"><span style="color:#ADBAC7;"> Bundle::</span><span style="color:#DCBDFB;">class</span><span style="color:#ADBAC7;">.java,</span></span>
<span class="line"><span style="color:#ADBAC7;"> object : </span><span style="color:#F69D50;">XC_MethodHook</span><span style="color:#ADBAC7;">() {</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">override</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">beforeHookedMethod</span><span style="color:#ADBAC7;">(param: </span><span style="color:#F69D50;">MethodHookParam</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>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">override</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">afterHookedMethod</span><span style="color:#ADBAC7;">(param: </span><span style="color:#F69D50;">MethodHookParam</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:#ADBAC7;"> })</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 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 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 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 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 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 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 class="line-number"></div><div class="line-number"></div></div></div><!--]--></div><!--]--></div><p>是的,你没有看错,仅仅就需要这些代码,就能完全取代传统的 Xposed API 实现同样的功能。</p><p>现在,借助高效强大的 <code>YukiHookAPI</code>,你就可以实现一个非常简单的 Xposed 模块。</p><div class="custom-container tip"><p class="custom-container-title">小提示</p><p><code>1.3.0</code> 版本开始,<code>YukiHookAPI</code> 已将自身的反射 API 部分迁移至 <a href="https://github.com/HighCapable/KavaRef" target="_blank" rel="noopener noreferrer">KavaRef<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> (包括上方演示的反射 API 部分)。</p><p>现在,你可以借助 <code>KavaRef</code> 的强大反射能力让 <code>YukiHookAPI</code> 更加易用。</p></div></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/guide/home.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="next"><a href="/YukiHookAPI/zh-cn/guide/supportive.html" class="" aria-label="支持性"><!--[--><!--]--> 支持性 <!--[--><!--]--></a></span></p></nav><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
<script type="module" src="/YukiHookAPI/assets/app-BpUB8-Q8.js" defer></script>
</body>
</html>