mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-07 03:05:36 +08:00
122 lines
137 KiB
HTML
122 lines
137 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en-US">
|
||
<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>HookParam - class | Yuki Hook API</title><meta name="description" content="An efficient Hook API and Xposed Module solution built in Kotlin">
|
||
<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/HookParam.html-BjAineUd.js"><link rel="modulepreload" href="/YukiHookAPI/assets/HookParam.html-CQJSudBe.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/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/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/home.html-DVG1oAZg.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/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 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/en/" 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="Navigation"><span class="title">Navigation</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Navigation"><span class="title">Navigation</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>Get Started</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/guide/home" class="" aria-label="Introduce"><!--[--><!--]--> Introduce <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/guide/supportive" class="" aria-label="Supportive"><!--[--><!--]--> Supportive <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/guide/knowledge" class="" aria-label="Basic Knowledge"><!--[--><!--]--> Basic Knowledge <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/guide/quick-start" class="" aria-label="Quick Start"><!--[--><!--]--> Quick Start <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/guide/example" class="" aria-label="Usage Example"><!--[--><!--]--> Usage Example <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/guide/move-to-new-api" class="" aria-label="Migrate from Other Hook APIs"><!--[--><!--]--> Migrate from Other Hook APIs <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>Configs</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/config/api-example" class="" aria-label="API Basic Configs"><!--[--><!--]--> API Basic Configs <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/config/api-exception" class="" aria-label="API Exception Handling"><!--[--><!--]--> API Exception Handling <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/config/xposed-using" class="" aria-label="Use as Xposed Module Configs"><!--[--><!--]--> Use as Xposed Module Configs <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/config/api-using" class="" aria-label="Use as Hook API Configs"><!--[--><!--]--> Use as Hook API Configs <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/config/move-to-api-1-2-x" class="" aria-label="Migrate to YukiHookAPI 1.2.x"><!--[--><!--]--> Migrate to YukiHookAPI 1.2.x <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/config/move-to-api-1-3-x" class="" aria-label="Migrate to YukiHookAPI 1.3.x"><!--[--><!--]--> Migrate to YukiHookAPI 1.3.x <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/config/r8-proguard" class="" aria-label="R8 & Proguard Obfuscate"><!--[--><!--]--> R8 & Proguard Obfuscate <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>Tools</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/tools/yukihookapi-projectbuilder" class="" aria-label="YukiHookAPI Project Builder"><!--[--><!--]--> YukiHookAPI Project Builder <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>API Document</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/api/home" class="" aria-label="Document Introduction"><!--[--><!--]--> Document Introduction <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/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/en/api/special-features/reflection" class="" aria-label="Special Features"><!--[--><!--]--> Special Features <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>About</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/about/changelog" class="" aria-label="Changelog"><!--[--><!--]--> Changelog <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/about/future" class="" aria-label="Looking for Future"><!--[--><!--]--> Looking for Future <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/about/contacts" class="" aria-label="Contact Us"><!--[--><!--]--> Contact Us <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/about/about" class="" aria-label="About this Document"><!--[--><!--]--> About this Document <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><!--]--></ul></div></div><div class="navbar-item"><a href="/YukiHookAPI/en/about/contacts" class="" aria-label="Contact Us"><!--[--><!--]--> Contact Us <!--[--><!--]--></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">English (US)</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Select language"><span class="title">English (US)</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html" class="router-link-active router-link-exact-active router-link-active" aria-label="English"><!--[--><!--]--> English <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html" class="" 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">open in new window</span></span><!--[--><!--]--></a></div><!--]--></nav><!--[--><!--]--><button class="toggle-color-mode-button" title="toggle color mode"><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="Search" 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="Navigation"><span class="title">Navigation</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Navigation"><span class="title">Navigation</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>Get Started</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/guide/home" class="" aria-label="Introduce"><!--[--><!--]--> Introduce <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/guide/supportive" class="" aria-label="Supportive"><!--[--><!--]--> Supportive <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/guide/knowledge" class="" aria-label="Basic Knowledge"><!--[--><!--]--> Basic Knowledge <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/guide/quick-start" class="" aria-label="Quick Start"><!--[--><!--]--> Quick Start <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/guide/example" class="" aria-label="Usage Example"><!--[--><!--]--> Usage Example <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/guide/move-to-new-api" class="" aria-label="Migrate from Other Hook APIs"><!--[--><!--]--> Migrate from Other Hook APIs <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>Configs</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/config/api-example" class="" aria-label="API Basic Configs"><!--[--><!--]--> API Basic Configs <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/config/api-exception" class="" aria-label="API Exception Handling"><!--[--><!--]--> API Exception Handling <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/config/xposed-using" class="" aria-label="Use as Xposed Module Configs"><!--[--><!--]--> Use as Xposed Module Configs <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/config/api-using" class="" aria-label="Use as Hook API Configs"><!--[--><!--]--> Use as Hook API Configs <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/config/move-to-api-1-2-x" class="" aria-label="Migrate to YukiHookAPI 1.2.x"><!--[--><!--]--> Migrate to YukiHookAPI 1.2.x <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/config/move-to-api-1-3-x" class="" aria-label="Migrate to YukiHookAPI 1.3.x"><!--[--><!--]--> Migrate to YukiHookAPI 1.3.x <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/config/r8-proguard" class="" aria-label="R8 & Proguard Obfuscate"><!--[--><!--]--> R8 & Proguard Obfuscate <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>Tools</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/tools/yukihookapi-projectbuilder" class="" aria-label="YukiHookAPI Project Builder"><!--[--><!--]--> YukiHookAPI Project Builder <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>API Document</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/api/home" class="" aria-label="Document Introduction"><!--[--><!--]--> Document Introduction <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/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/en/api/special-features/reflection" class="" aria-label="Special Features"><!--[--><!--]--> Special Features <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>About</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/about/changelog" class="" aria-label="Changelog"><!--[--><!--]--> Changelog <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/about/future" class="" aria-label="Looking for Future"><!--[--><!--]--> Looking for Future <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/about/contacts" class="" aria-label="Contact Us"><!--[--><!--]--> Contact Us <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/YukiHookAPI/en/about/about" class="" aria-label="About this Document"><!--[--><!--]--> About this Document <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><!--]--></ul></div></div><div class="navbar-item"><a href="/YukiHookAPI/en/about/contacts" class="" aria-label="Contact Us"><!--[--><!--]--> Contact Us <!--[--><!--]--></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">English (US)</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Select language"><span class="title">English (US)</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html" class="router-link-active router-link-exact-active router-link-active" aria-label="English"><!--[--><!--]--> English <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/YukiHookAPI/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html" class="" 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">open in new window</span></span><!--[--><!--]--></a></div><!--]--></nav><!--[--><!--]--><ul class="sidebar-items"><!--[--><li><p tabindex="0" class="sidebar-item sidebar-heading collapsible">Get Started <span class="right arrow"></span></p><ul style="display:none;" class="sidebar-item-children"><!--[--><li><a href="/YukiHookAPI/en/guide/home.html" class="sidebar-item" aria-label="Introduction"><!--[--><!--]--> Introduction <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/guide/supportive.html" class="sidebar-item" aria-label="Supportive"><!--[--><!--]--> Supportive <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/guide/knowledge.html" class="sidebar-item" aria-label="Basic Knowledge"><!--[--><!--]--> Basic Knowledge <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/guide/quick-start.html" class="sidebar-item" aria-label="Quick Start"><!--[--><!--]--> Quick Start <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/guide/example.html" class="sidebar-item" aria-label="Usage Example"><!--[--><!--]--> Usage Example <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/guide/move-to-new-api.html" class="sidebar-item" aria-label="Migrate from Other Hook APIs"><!--[--><!--]--> Migrate from Other Hook APIs <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="sidebar-item sidebar-heading collapsible">Configs <span class="right arrow"></span></p><ul style="display:none;" class="sidebar-item-children"><!--[--><li><a href="/YukiHookAPI/en/config/api-example.html" class="sidebar-item" aria-label="API Basic Configs"><!--[--><!--]--> API Basic Configs <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/config/api-exception.html" class="sidebar-item" aria-label="API Exception Handling"><!--[--><!--]--> API Exception Handling <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/config/xposed-using.html" class="sidebar-item" aria-label="Use as Xposed Module Configs"><!--[--><!--]--> Use as Xposed Module Configs <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/config/api-using.html" class="sidebar-item" aria-label="Use as Hook API Configs"><!--[--><!--]--> Use as Hook API Configs <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/config/move-to-api-1-2-x.html" class="sidebar-item" aria-label="Migrate to YukiHookAPI 1.2.x"><!--[--><!--]--> Migrate to YukiHookAPI 1.2.x <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/config/move-to-api-1-3-x.html" class="sidebar-item" aria-label="Migrate to YukiHookAPI 1.3.x"><!--[--><!--]--> Migrate to YukiHookAPI 1.3.x <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/config/r8-proguard.html" class="sidebar-item" aria-label="R8 & Proguard Obfuscate"><!--[--><!--]--> R8 & Proguard Obfuscate <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="sidebar-item sidebar-heading collapsible">Tools <span class="right arrow"></span></p><ul style="display:none;" class="sidebar-item-children"><!--[--><li><a href="/YukiHookAPI/en/tools/yukihookapi-projectbuilder.html" class="sidebar-item" aria-label="YukiHookAPI Project Builder"><!--[--><!--]--> YukiHookAPI Project Builder <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="sidebar-item sidebar-heading active collapsible">API Document <span class="down arrow"></span></p><ul style="" class="sidebar-item-children"><!--[--><li><a href="/YukiHookAPI/en/api/home.html" class="sidebar-item" aria-label="Document Introduce"><!--[--><!--]--> Document Introduce <!--[--><!--]--></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/en/api/public/com/highcapable/yukihookapi/YukiHookAPI.html" class="sidebar-item" aria-label="YukiHookAPI - object"><!--[--><!--]--> YukiHookAPI - object <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html" class="sidebar-item" aria-label="PackageParam - class"><!--[--><!--]--> PackageParam - class <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html" class="router-link-active router-link-exact-active router-link-active sidebar-item active" aria-label="HookParam - class"><!--[--><!--]--> HookParam - class <!--[--><!--]--></a><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#args-field" class="router-link-active router-link-exact-active sidebar-item" aria-label="args - field"><!--[--><!--]--> args - field <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#instance-field" class="router-link-active router-link-exact-active sidebar-item" aria-label="instance - field"><!--[--><!--]--> instance - field <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#instanceornull-field" class="router-link-active router-link-exact-active sidebar-item" aria-label="instanceOrNull - field"><!--[--><!--]--> instanceOrNull - field <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#instanceclass-field" class="router-link-active router-link-exact-active sidebar-item" aria-label="instanceClass - field"><!--[--><!--]--> instanceClass - field <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#member-field" class="router-link-active router-link-exact-active sidebar-item" aria-label="member - field"><!--[--><!--]--> member - field <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#method-field" class="router-link-active router-link-exact-active sidebar-item" aria-label="method - field"><!--[--><!--]--> method - field <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#constructor-field" class="router-link-active router-link-exact-active sidebar-item" aria-label="constructor - field"><!--[--><!--]--> constructor - field <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#result-field" class="router-link-active router-link-exact-active sidebar-item" aria-label="result - field"><!--[--><!--]--> result - field <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#dataextra-field" class="router-link-active router-link-exact-active sidebar-item" aria-label="dataExtra - field"><!--[--><!--]--> dataExtra - field <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#hasthrowable-field" class="router-link-active router-link-exact-active sidebar-item" aria-label="hasThrowable - field"><!--[--><!--]--> hasThrowable - field <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#throwable-field" class="router-link-active router-link-exact-active sidebar-item" aria-label="throwable - field"><!--[--><!--]--> throwable - field <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#throwable-throwtoapp-i-ext-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="Throwable.throwToApp - i-ext-method"><!--[--><!--]--> Throwable.throwToApp - i-ext-method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#result-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="result - method"><!--[--><!--]--> result - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#instance-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="instance - method"><!--[--><!--]--> instance - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#instanceornull-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="instanceOrNull - method"><!--[--><!--]--> instanceOrNull - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#args-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="args - method"><!--[--><!--]--> args - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#args-method-1" class="router-link-active router-link-exact-active sidebar-item" aria-label="args - method"><!--[--><!--]--> args - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#calloriginal-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="callOriginal - method"><!--[--><!--]--> callOriginal - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#invokeoriginal-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="invokeOriginal - method"><!--[--><!--]--> invokeOriginal - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#resulttrue-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="resultTrue - method"><!--[--><!--]--> resultTrue - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#resultfalse-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="resultFalse - method"><!--[--><!--]--> resultFalse - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#resultnull-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="resultNull - method"><!--[--><!--]--> resultNull - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#argsindexcondition-class" class="router-link-active router-link-exact-active sidebar-item" aria-label="ArgsIndexCondition - class"><!--[--><!--]--> ArgsIndexCondition - class <!--[--><!--]--></a><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#first-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="first - method"><!--[--><!--]--> first - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#last-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="last - method"><!--[--><!--]--> last - method <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#argsmodifyer-class" class="router-link-active router-link-exact-active sidebar-item" aria-label="ArgsModifyer - class"><!--[--><!--]--> ArgsModifyer - class <!--[--><!--]--></a><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#cast-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="cast - method"><!--[--><!--]--> cast - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#byte-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="byte - method"><!--[--><!--]--> byte - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#int-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="int - method"><!--[--><!--]--> int - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#long-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="long - method"><!--[--><!--]--> long - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#short-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="short - method"><!--[--><!--]--> short - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#double-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="double - method"><!--[--><!--]--> double - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#float-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="float - method"><!--[--><!--]--> float - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#string-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="string - method"><!--[--><!--]--> string - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#char-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="char - method"><!--[--><!--]--> char - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#boolean-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="boolean - method"><!--[--><!--]--> boolean - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#any-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="any - method"><!--[--><!--]--> any - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#array-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="array - method"><!--[--><!--]--> array - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#list-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="list - method"><!--[--><!--]--> list - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#set-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="set - method"><!--[--><!--]--> set - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#setnull-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="setNull - method"><!--[--><!--]--> setNull - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#settrue-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="setTrue - method"><!--[--><!--]--> setTrue - method <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.html#setfalse-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="setFalse - method"><!--[--><!--]--> setFalse - method <!--[--><!--]--></a><!----></li><!--]--></ul></li><!--]--></ul></li><li><a href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/annotation/xposed/InjectYukiHookWithXposed.html" class="sidebar-item" aria-label="InjectYukiHookWithXposed - annotation"><!--[--><!--]--> InjectYukiHookWithXposed - annotation <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/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/en/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/en/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/en/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/en/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/en/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/en/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/en/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/en/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/en/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/en/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/en/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/en/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/en/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/en/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/en/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/en/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/en/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/en/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/en/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/en/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/en/api/public/com/highcapable/yukihookapi/hook/log/YLog.html" class="sidebar-item" aria-label="YLog - object"><!--[--><!--]--> YLog - object <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/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/en/api/public/com/highcapable/yukihookapi/hook/factory/ReflectionFactory.html" class="sidebar-item" aria-label="ReflectionFactory - kt"><!--[--><!--]--> ReflectionFactory - kt <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/factory/YukiHookFactory.html" class="sidebar-item" aria-label="YukiHookFactory - kt"><!--[--><!--]--> YukiHookFactory - kt <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/entity/YukiBaseHooker.html" class="sidebar-item" aria-label="YukiBaseHooker - class"><!--[--><!--]--> YukiBaseHooker - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/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/en/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/en/api/public/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.html" class="sidebar-item" aria-label="YukiMemberHookCreator - class"><!--[--><!--]--> YukiMemberHookCreator - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/core/YukiResourcesHookCreator.html" class="sidebar-item" aria-label="YukiResourcesHookCreator - class"><!--[--><!--]--> YukiResourcesHookCreator - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/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/en/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/en/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/en/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/en/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/en/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/en/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/en/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/en/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/en/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/en/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/en/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/en/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/en/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/en/api/public/com/highcapable/yukihookapi/hook/bean/HookClass.html" class="sidebar-item" aria-label="HookClass - class"><!--[--><!--]--> HookClass - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/bean/VariousClass.html" class="sidebar-item" aria-label="VariousClass - class"><!--[--><!--]--> VariousClass - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/bean/CurrentClass.html" class="sidebar-item" aria-label="CurrentClass - class"><!--[--><!--]--> CurrentClass - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/hook/bean/GenericClass.html" class="sidebar-item" aria-label="GenericClass - class"><!--[--><!--]--> GenericClass - class <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/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">Special Features <span class="right arrow"></span></p><ul style="display:none;" class="sidebar-item-children"><!--[--><li><a href="/YukiHookAPI/en/api/special-features/reflection.html" class="sidebar-item" aria-label="Reflection Extensions (Migrated)"><!--[--><!--]--> Reflection Extensions (Migrated) <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/api/special-features/logger.html" class="sidebar-item" aria-label="Debug Logs"><!--[--><!--]--> Debug Logs <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/api/special-features/xposed-storage.html" class="sidebar-item" aria-label="Xposed Module Data Storage"><!--[--><!--]--> Xposed Module Data Storage <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/api/special-features/xposed-channel.html" class="sidebar-item" aria-label="Xposed Module and Host Channel"><!--[--><!--]--> Xposed Module and Host Channel <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/api/special-features/host-lifecycle.html" class="sidebar-item" aria-label="Host Lifecycle Extension"><!--[--><!--]--> Host Lifecycle Extension <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/api/special-features/host-inject.html" class="sidebar-item" aria-label="Host Resource Injection Extension"><!--[--><!--]--> Host Resource Injection Extension <!--[--><!--]--></a><!----></li><!--]--></ul></li><!--]--></ul></li><li><p tabindex="0" class="sidebar-item sidebar-heading collapsible">About <span class="right arrow"></span></p><ul style="display:none;" class="sidebar-item-children"><!--[--><li><a href="/YukiHookAPI/en/about/changelog.html" class="sidebar-item" aria-label="Changelog"><!--[--><!--]--> Changelog <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/about/future.html" class="sidebar-item" aria-label="Looking Toward the Future"><!--[--><!--]--> Looking Toward the Future <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/about/contacts.html" class="sidebar-item" aria-label="Contact Us"><!--[--><!--]--> Contact Us <!--[--><!--]--></a><!----></li><li><a href="/YukiHookAPI/en/about/about.html" class="sidebar-item" aria-label="About This Document"><!--[--><!--]--> About This Document <!--[--><!--]--></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">Notice</p><p>Due to maintenance costs, the <code>YukiHookAPI</code> will no longer update this document from version <code>1.3.0</code> and switch to the API document automatically generated by the Dokka plugin in version <code>2.0.0</code>.</p></div><div class="custom-container warning"><p class="custom-container-title">Notice</p><p>The English translation of this page has not been completed, you are welcome to contribute translations to us.</p><p>You can use the <strong>Chrome Translation Plugin</strong> to translate entire pages for reference.</p></div><h1 id="hookparam-class" tabindex="-1"><a class="header-anchor" href="#hookparam-class" aria-hidden="true">#</a> HookParam <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;">class</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">HookParam</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">private</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">constructor</span><span style="color:#ADBAC7;">(</span></span>
|
||
<span class="line"><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;"> creatorInstance: </span><span style="color:#F69D50;">YukiMemberHookCreator</span><span style="color:#ADBAC7;">,</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">private</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">var</span><span style="color:#ADBAC7;"> paramId: </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">,</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">private</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">var</span><span style="color:#ADBAC7;"> param: </span><span style="color:#F69D50;">YukiHookCallback</span><span style="color:#ADBAC7;">.Param?</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;">)</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0</code> <code>first</code></p><p><code>v1.1.0</code> <code>modified</code></p><p>移动 <code>HookParamWrapper</code> 到 <code>YukiHookCallback.Param</code></p><p>修正拼写错误的 <strong>creater</strong> 命名到 <strong>creator</strong></p><p><code>v1.1.5</code> <code>modified</code></p><p>新增 <code>paramId</code> 参数</p><p><code>v1.2.0</code> <code>modified</code></p><p>不再开放构造方法</p><p><strong>Function Illustrate</strong></p><blockquote><p>Hook 方法、构造方法的目标对象实现类。</p></blockquote><h2 id="args-field" tabindex="-1"><a class="header-anchor" href="#args-field" aria-hidden="true">#</a> args <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;"> args: </span><span style="color:#F69D50;">Array</span><span style="color:#ADBAC7;"><</span><span style="color:#F69D50;">Any</span><span style="color:#ADBAC7;">?></span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p>在 <code>v1.0</code> 添加</p><p><strong>Function Illustrate</strong></p><blockquote><p>获取当前 Hook 对象 <code>member</code> 或 <code>constructor</code> 的参数对象数组。</p></blockquote><p>这里的数组每项类型默认为 <code>Any</code>,你可以使用 <code>args</code> 方法来实现 <code>ArgsModifyer.cast</code> 功能。</p><h2 class="deprecated">firstArgs - field</h2><p><strong>Change Records</strong></p><p><code>v1.0</code> <code>first</code></p><p><code>v1.0.75</code> <code>removed</code></p><p>请使用 <code>args(index = 0)</code> 或 <code>args().first()</code></p><h2 class="deprecated">lastArgs - field</h2><p><strong>Change Records</strong></p><p><code>v1.0</code> <code>first</code></p><p><code>v1.0.75</code> <code>removed</code></p><p>请使用 <code>args().last()</code></p><h2 id="instance-field" tabindex="-1"><a class="header-anchor" href="#instance-field" aria-hidden="true">#</a> instance <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;"> instance: </span><span style="color:#F69D50;">Any</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0</code> <code>first</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>获取当前 Hook 实例的对象。</p></blockquote><div class="custom-container danger"><p class="custom-container-title">Pay Attention</p><p>如果你当前 Hook 的对象是一个静态,那么它将不存在实例的对象。</p></div><p>如果你不确定当前实例的对象是否为 <code>null</code>,你可以使用 <code>instanceOrNull</code>。</p><h2 id="instanceornull-field" tabindex="-1"><a class="header-anchor" href="#instanceornull-field" aria-hidden="true">#</a> instanceOrNull <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;"> instanceOrNull: </span><span style="color:#F69D50;">Any</span><span style="color:#ADBAC7;">?</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.1.8</code> <code>added</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>获取当前 Hook 实例的对象。</p></blockquote><div class="custom-container danger"><p class="custom-container-title">Pay Attention</p><p>如果你当前 Hook 的对象是一个静态,那么它将不存在实例的对象。</p></div><h2 id="instanceclass-field" tabindex="-1"><a class="header-anchor" href="#instanceclass-field" aria-hidden="true">#</a> instanceClass <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;"> instanceClass: </span><span style="color:#F69D50;">Class</span><span style="color:#ADBAC7;"><*>?</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0</code> <code>first</code></p><p><code>v1.2.0</code> <code>modified</code></p><p>加入可空类型 (空安全)</p><p><strong>Function Illustrate</strong></p><blockquote><p>获取当前 Hook 实例的类对象。</p></blockquote><div class="custom-container danger"><p class="custom-container-title">Pay Attention</p><p>如果你当前 Hook 的对象是一个静态,那么它将不存在实例的对象。</p></div><h2 id="member-field" tabindex="-1"><a class="header-anchor" href="#member-field" aria-hidden="true">#</a> member <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;"> member: </span><span style="color:#F69D50;">Member</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.1.0</code> <code>added</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>获取当前 Hook 对象的 <code>Member</code>。</p></blockquote><p>在不确定 <code>Member</code> 类型为 <code>Method</code> 或 <code>Constructor</code> 时可以使用此方法。</p><h2 id="method-field" tabindex="-1"><a class="header-anchor" href="#method-field" aria-hidden="true">#</a> method <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;"> method: </span><span style="color:#F69D50;">Method</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0</code> <code>first</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>获取当前 Hook 对象的方法。</p></blockquote><h2 id="constructor-field" tabindex="-1"><a class="header-anchor" href="#constructor-field" aria-hidden="true">#</a> constructor <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;"> constructor: </span><span style="color:#F69D50;">Constructor</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0</code> <code>first</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>获取当前 Hook 对象的构造方法。</p></blockquote><h2 id="result-field" tabindex="-1"><a class="header-anchor" href="#result-field" aria-hidden="true">#</a> result <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;"> result: </span><span style="color:#F69D50;">Any</span><span style="color:#ADBAC7;">?</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0</code> <code>first</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>获取、设置当前 Hook 对象的 <code>method</code> 或 <code>constructor</code> 的返回值。</p></blockquote><h2 id="dataextra-field" tabindex="-1"><a class="header-anchor" href="#dataextra-field" aria-hidden="true">#</a> dataExtra <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;"> dataExtra: </span><span style="color:#F69D50;">Bundle</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.1.5</code> <code>added</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>获取当前回调方法体范围内的数据存储实例。</p></blockquote><h2 id="hasthrowable-field" tabindex="-1"><a class="header-anchor" href="#hasthrowable-field" aria-hidden="true">#</a> hasThrowable <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;"> hasThrowable: </span><span style="color:#F69D50;">Boolean</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.1.0</code> <code>added</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>判断是否存在设置过的方法调用抛出异常。</p></blockquote><h2 id="throwable-field" tabindex="-1"><a class="header-anchor" href="#throwable-field" aria-hidden="true">#</a> throwable <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;"> throwable: </span><span style="color:#F69D50;">Throwable</span><span style="color:#ADBAC7;">?</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.1.0</code> <code>added</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>获取设置的方法调用抛出异常。</p></blockquote><h2 id="throwable-throwtoapp-i-ext-method" tabindex="-1"><a class="header-anchor" href="#throwable-throwtoapp-i-ext-method" aria-hidden="true">#</a> Throwable.throwToApp <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;">Throwable</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">throwToApp</span><span style="color:#ADBAC7;">()</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.1.0</code> <code>added</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>向 Hook APP 抛出异常。</p></blockquote><p>使用 <code>hasThrowable</code> 判断当前是否存在被抛出的异常。</p><p>使用 <code>throwable</code> 获取当前设置的方法调用抛出异常。</p><p>仅会在回调方法的 <code>MemberHookCreator.before</code> 或 <code>MemberHookCreator.after</code> 中生效。</p><div class="custom-container danger"><p class="custom-container-title">Pay Attention</p><p>设置后会同时执行 <strong>resultNull</strong> 方法并将异常抛出给当前 Hook APP。</p></div><p><strong>Function Example</strong></p><p>Hook 过程中的异常仅会作用于 (Xposed) 宿主环境,目标 Hook APP 不会受到影响。</p><p>若想将异常抛给 Hook APP,可以直接使用如下方法。</p><blockquote><p>The following example</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;">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:#DCBDFB;">RuntimeException</span><span style="color:#ADBAC7;">(</span><span style="color:#96D0FF;">"Test Exception"</span><span style="color:#ADBAC7;">).</span><span style="color:#DCBDFB;">throwToApp</span><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></div><div class="custom-container danger"><p class="custom-container-title">Pay Attention</p><p>向 Hook APP 抛出异常<u><strong>会对其暴露被 Hook 的事实</strong></u>,是不安全的,容易被检测,请按实际场景合理使用。</p></div><h2 id="result-method" tabindex="-1"><a class="header-anchor" href="#result-method" aria-hidden="true">#</a> result <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:#F69D50;">reified</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">> </span><span style="color:#DCBDFB;">result</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">?</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0.75</code> <code>added</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>获取当前 Hook 对象的 <code>method</code> 或 <code>constructor</code> 的返回值 <code>T</code>。</p></blockquote><h2 class="deprecated">firstArg - method</h2><p><strong>Change Records</strong></p><p><code>v1.0.66</code> <code>added</code></p><p><code>v1.0.75</code> <code>removed</code></p><h2 class="deprecated">lastArgs - method</h2><p><strong>Change Records</strong></p><p><code>v1.0.66</code> <code>added</code></p><p><code>v1.0.75</code> <code>removed</code></p><h2 id="instance-method" tabindex="-1"><a class="header-anchor" href="#instance-method" aria-hidden="true">#</a> instance <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:#F69D50;">reified</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">> </span><span style="color:#DCBDFB;">instance</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">T</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0</code> <code>first</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>获取当前 Hook 实例的对象 <code>T</code>。</p></blockquote><p><strong>Function Example</strong></p><p>你可以通过 <code>instance</code> 方法轻松使用泛型 <code>cast</code> 为目标对象的类型。</p><blockquote><p>The following example</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;">instance</span><span style="color:#ADBAC7;"><</span><span style="color:#F69D50;">Activity</span><span style="color:#ADBAC7;">>().</span><span style="color:#DCBDFB;">finish</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><h2 id="instanceornull-method" tabindex="-1"><a class="header-anchor" href="#instanceornull-method" aria-hidden="true">#</a> instanceOrNull <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:#F69D50;">reified</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">> </span><span style="color:#DCBDFB;">instanceOrNull</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">?</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Function Illustrate</strong></p><p><code>v1.1.8</code> <code>added</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>获取当前 Hook 实例的对象 <code>T</code>。</p></blockquote><p><strong>Function Example</strong></p><p>用法请参考 <a href="#instance-method">instance</a> 方法。</p><h2 id="args-method" tabindex="-1"><a class="header-anchor" href="#args-method" aria-hidden="true">#</a> args <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;">args</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">ArgsIndexCondition</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0.75</code> <code>added</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>获取当前 Hook 对象的 <code>method</code> 或 <code>constructor</code> 的参数数组下标实例化类。</p></blockquote><h2 id="args-method-1" tabindex="-1"><a class="header-anchor" href="#args-method-1" aria-hidden="true">#</a> args <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;">args</span><span style="color:#ADBAC7;">(index: </span><span style="color:#F69D50;">Int</span><span style="color:#ADBAC7;">): </span><span style="color:#F69D50;">ArgsModifyer</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0</code> <code>first</code></p><p><code>v1.0.75</code> <code>modified</code></p><p>默认值 <code>index = 0</code> 移动到新的使用方法 <code>args().first()</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>获取当前 Hook 对象的 <code>method</code> 或 <code>constructor</code> 的参数实例化对象类。</p></blockquote><p><strong>Function Example</strong></p><p>你可以通过 <code>args</code> 方法修改当前 Hook 实例的方法、构造方法的参数内容。</p><p>你可以直接使用 <code>set</code> 方法设置 <code>param</code> 为你的目标实例,接受 <code>Any</code> 类型。</p><div class="custom-container danger"><p class="custom-container-title">Pay Attention</p><p>请确保 <strong>param</strong> 类型为你的目标实例类型。</p></div><blockquote><p>The following example</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;">args</span><span style="color:#ADBAC7;">(index </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">0</span><span style="color:#ADBAC7;">).</span><span style="color:#DCBDFB;">set</span><span style="color:#ADBAC7;">(</span><span style="color:#96D0FF;">"modify the value"</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>param</code> 的值。</p><blockquote><p>The following example</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;">args</span><span style="color:#ADBAC7;">().</span><span style="color:#DCBDFB;">first</span><span style="color:#ADBAC7;">().</span><span style="color:#DCBDFB;">set</span><span style="color:#ADBAC7;">(</span><span style="color:#96D0FF;">"modify the value"</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>param</code> 的值。</p><blockquote><p>The following example</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;">args</span><span style="color:#ADBAC7;">().</span><span style="color:#DCBDFB;">last</span><span style="color:#ADBAC7;">().</span><span style="color:#DCBDFB;">set</span><span style="color:#ADBAC7;">(</span><span style="color:#96D0FF;">"modify the value"</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>setNull</code> 方法设置 <code>param</code> 为空。</p><blockquote><p>The following example</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;">args</span><span style="color:#ADBAC7;">(index </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">1</span><span style="color:#ADBAC7;">).</span><span style="color:#DCBDFB;">setNull</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>setTrue</code> 方法设置 <code>param</code> 为 <code>true</code>。</p><div class="custom-container danger"><p class="custom-container-title">Pay Attention</p><p>请确保 <strong>param</strong> 类型为 <strong>Boolean</strong>。</p></div><blockquote><p>The following example</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;">args</span><span style="color:#ADBAC7;">(index </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">1</span><span style="color:#ADBAC7;">).</span><span style="color:#DCBDFB;">setTrue</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>setFalse</code> 方法设置 <code>param</code> 为 <code>false</code>。</p><div class="custom-container danger"><p class="custom-container-title">Pay Attention</p><p>请确保 <strong>param</strong> 类型为 <strong>Boolean</strong>。</p></div><blockquote><p>The following example</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;">args</span><span style="color:#ADBAC7;">(index </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">1</span><span style="color:#ADBAC7;">).</span><span style="color:#DCBDFB;">setFalse</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><h2 id="calloriginal-method" tabindex="-1"><a class="header-anchor" href="#calloriginal-method" aria-hidden="true">#</a> callOriginal <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;">callOriginal</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">Any</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:#F69D50;">T</span><span style="color:#ADBAC7;">> </span><span style="color:#DCBDFB;">callOriginal</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">?</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.1.0</code> <code>added</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>执行原始 <code>Member</code>。</p></blockquote><p>调用自身未进行 Hook 的原始 <code>Member</code> 并调用原始参数执行。</p><p><strong>功能实例</strong></p><p>此方法可以 <code>invoke</code> 原始未经 Hook 的 <code>Member</code> 对象,取决于原始 <code>Member</code> 的参数。</p><p>调用自身原始的方法不会再经过当前 <code>before</code>、<code>after</code> 以及 <code>replaceUnit</code>、<code>replaceAny</code>。</p><p>比如我们 Hook 的这个方法被这样调用 <code>test("test value")</code>,使用此方法会调用其中的 <code>"test value"</code> 作为参数。</p><blockquote><p>The following example</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;">method</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;">"test"</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">param</span><span style="color:#ADBAC7;">(StringClass)</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> returnType </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> StringClass</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;">after</span><span style="color:#ADBAC7;"> {</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// <方案1> 不使用泛型,不获取方法执行结果,调用将使用原方法传入的 args 自动传参</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">callOriginal</span><span style="color:#ADBAC7;">()</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// <方案2> 使用泛型,已知方法执行结果参数类型进行 cast</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// 假设返回值为 String,失败会返回 null,调用将使用原方法传入的 args 自动传参</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">value</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">callOriginal</span><span style="color:#ADBAC7;"><</span><span style="color:#F69D50;">String</span><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></div><h2 id="invokeoriginal-method" tabindex="-1"><a class="header-anchor" href="#invokeoriginal-method" aria-hidden="true">#</a> invokeOriginal <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;">invokeOriginal</span><span style="color:#ADBAC7;">(</span><span style="color:#F47067;">vararg</span><span style="color:#ADBAC7;"> args: </span><span style="color:#F69D50;">Any</span><span style="color:#ADBAC7;">?): </span><span style="color:#F69D50;">Any</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:#F69D50;">T</span><span style="color:#ADBAC7;">> </span><span style="color:#DCBDFB;">invokeOriginal</span><span style="color:#ADBAC7;">(</span><span style="color:#F47067;">vararg</span><span style="color:#ADBAC7;"> args: </span><span style="color:#F69D50;">Any</span><span style="color:#ADBAC7;">?): </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">?</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0</code> <code>first</code></p><p><code>v1.1.0</code> <code>modified</code></p><p>不再需要使用 <code>member.invokeOriginal</code> 进行调用</p><p><strong>Function Illustrate</strong></p><blockquote><p>执行原始 <code>Member</code>。</p></blockquote><p>调用自身未进行 Hook 的原始 <code>Member</code> 并自定义 <code>args</code> 执行。</p><p><strong>功能实例</strong></p><p>此方法可以 <code>invoke</code> 原始未经 Hook 的 <code>Member</code> 对象,可自定义需要调用的参数内容。</p><p>调用自身原始的方法不会再经过当前 <code>before</code>、<code>after</code> 以及 <code>replaceUnit</code>、<code>replaceAny</code>。</p><p>比如我们 Hook 的这个方法被这样调用 <code>test("test value")</code>,使用此方法可自定义其中的 <code>args</code> 作为参数。</p><blockquote><p>The following example</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;">method</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;">"test"</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">param</span><span style="color:#ADBAC7;">(StringClass)</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> returnType </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> StringClass</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;">after</span><span style="color:#ADBAC7;"> {</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// <方案1> 不使用泛型,不获取方法执行结果</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">invokeOriginal</span><span style="color:#ADBAC7;">(</span><span style="color:#96D0FF;">"test value"</span><span style="color:#ADBAC7;">)</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// <方案2> 使用泛型,已知方法执行结果参数类型进行 cast,假设返回值为 String,失败会返回 null</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">value</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">invokeOriginal</span><span style="color:#ADBAC7;"><</span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">>(</span><span style="color:#96D0FF;">"test value"</span><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></div><h2 id="resulttrue-method" tabindex="-1"><a class="header-anchor" href="#resulttrue-method" aria-hidden="true">#</a> resultTrue <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;">resultTrue</span><span style="color:#ADBAC7;">()</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0</code> <code>first</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>设置当前 Hook 对象方法的 <code>result</code> 返回值为 <code>true</code>。</p></blockquote><div class="custom-container danger"><p class="custom-container-title">Pay Attention</p><p>请确保 <strong>result</strong> 类型为 <strong>Boolean</strong>。</p></div><h2 id="resultfalse-method" tabindex="-1"><a class="header-anchor" href="#resultfalse-method" aria-hidden="true">#</a> resultFalse <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;">resultFalse</span><span style="color:#ADBAC7;">()</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0</code> <code>first</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>设置当前 Hook 对象方法的 <code>result</code> 返回值为 <code>false</code>。</p></blockquote><div class="custom-container danger"><p class="custom-container-title">Pay Attention</p><p>请确保 <strong>result</strong> 类型为 <strong>Boolean</strong>。</p></div><h2 id="resultnull-method" tabindex="-1"><a class="header-anchor" href="#resultnull-method" aria-hidden="true">#</a> resultNull <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;">resultNull</span><span style="color:#ADBAC7;">()</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0</code> <code>first</code></p><p><strong>Function Illustrate</strong></p><div class="custom-container warning"><p class="custom-container-title">Notice</p><p>此方法将强制设置 Hook 对象方法的 <strong>result</strong> 为 <strong>null</strong>。</p></div><h2 id="argsindexcondition-class" tabindex="-1"><a class="header-anchor" href="#argsindexcondition-class" aria-hidden="true">#</a> ArgsIndexCondition <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;">ArgsIndexCondition</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>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0.75</code> <code>added</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>对方法参数的数组下标进行实例化类。</p></blockquote><h3 id="first-method" tabindex="-1"><a class="header-anchor" href="#first-method" aria-hidden="true">#</a> first <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;">first</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">ArgsModifyer</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0.75</code> <code>added</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>获取当前 Hook 对象的 <code>method</code> 或 <code>constructor</code> 的参数数组第一位。</p></blockquote><h3 id="last-method" tabindex="-1"><a class="header-anchor" href="#last-method" aria-hidden="true">#</a> last <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;">last</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">ArgsModifyer</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0.75</code> <code>added</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>获取当前 Hook 对象的 <code>method</code> 或 <code>constructor</code> 的参数数组最后一位。</p></blockquote><h2 id="argsmodifyer-class" tabindex="-1"><a class="header-anchor" href="#argsmodifyer-class" aria-hidden="true">#</a> ArgsModifyer <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;">ArgsModifyer</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;"> index: </span><span style="color:#F69D50;">Int</span><span style="color:#ADBAC7;">)</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0</code> <code>first</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>对方法参数的修改进行实例化类。</p></blockquote><h3 id="cast-method" tabindex="-1"><a class="header-anchor" href="#cast-method" aria-hidden="true">#</a> cast <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:#F69D50;">T</span><span style="color:#ADBAC7;">> </span><span style="color:#DCBDFB;">cast</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">?</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0.66</code> <code>added</code></p><p><code>v1.0.68</code> <code>modified</code></p><p>修改 <s><code>of</code></s> 为 <code>cast</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>得到方法参数的实例对象 <code>T</code>。</p></blockquote><h3 id="byte-method" tabindex="-1"><a class="header-anchor" href="#byte-method" aria-hidden="true">#</a> byte <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;">byte</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">Byte</span><span style="color:#ADBAC7;">?</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0.68</code> <code>added</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>得到方法参数的实例对象 Byte。</p></blockquote><h3 id="int-method" tabindex="-1"><a class="header-anchor" href="#int-method" aria-hidden="true">#</a> int <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;">int</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">Int</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0.66</code> <code>added</code></p><p><code>v1.0.68</code> <code>modified</code></p><p>修改 <s><code>ofInt</code></s> 为 <code>int</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>得到方法参数的实例对象 Int。</p></blockquote><h3 id="long-method" tabindex="-1"><a class="header-anchor" href="#long-method" aria-hidden="true">#</a> long <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;">long</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">Long</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0.66</code> <code>added</code></p><p><code>v1.0.68</code> <code>modified</code></p><p>修改 <s><code>ofLong</code></s> 为 <code>long</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>得到方法参数的实例对象 Long。</p></blockquote><h3 id="short-method" tabindex="-1"><a class="header-anchor" href="#short-method" aria-hidden="true">#</a> short <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;">short</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">Short</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0.66</code> <code>added</code></p><p><code>v1.0.68</code> <code>modified</code></p><p>修改 <s><code>ofShort</code></s> 为 <code>short</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>得到方法参数的实例对象 Short。</p></blockquote><h3 id="double-method" tabindex="-1"><a class="header-anchor" href="#double-method" aria-hidden="true">#</a> double <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;">double</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">Double</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0.66</code> <code>added</code></p><p><code>v1.0.68</code> <code>modified</code></p><p>修改 <s><code>ofDouble</code></s> 为 <code>double</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>得到方法参数的实例对象 Double。</p></blockquote><h3 id="float-method" tabindex="-1"><a class="header-anchor" href="#float-method" aria-hidden="true">#</a> float <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;">float</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">Float</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0.66</code> <code>added</code></p><p><code>v1.0.68</code> <code>modified</code></p><p>修改 <s><code>ofFloat</code></s> 为 <code>float</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>得到方法参数的实例对象 Float。</p></blockquote><h3 id="string-method" tabindex="-1"><a class="header-anchor" href="#string-method" aria-hidden="true">#</a> string <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;">string</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">String</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0.66</code> <code>added</code></p><p><code>v1.0.68</code> <code>modified</code></p><p>修改 <s><code>ofString</code></s> 为 <code>string</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>得到方法参数的实例对象 String。</p></blockquote><h3 id="char-method" tabindex="-1"><a class="header-anchor" href="#char-method" aria-hidden="true">#</a> char <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;">char</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">Char</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0.68</code> <code>added</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>得到方法参数的实例对象 Char。</p></blockquote><h3 id="boolean-method" tabindex="-1"><a class="header-anchor" href="#boolean-method" aria-hidden="true">#</a> boolean <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;">boolean</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">Boolean</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0.66</code> <code>added</code></p><p><code>v1.0.68</code> <code>modified</code></p><p>修改 <s><code>ofBoolean</code></s> 为 <code>boolean</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>得到方法参数的实例对象 Boolean。</p></blockquote><h3 id="any-method" tabindex="-1"><a class="header-anchor" href="#any-method" aria-hidden="true">#</a> any <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;">any</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">Any</span><span style="color:#ADBAC7;">?</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0.77</code> <code>added</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>得到方法参数的实例对象 Any。</p></blockquote><h3 id="array-method" tabindex="-1"><a class="header-anchor" href="#array-method" aria-hidden="true">#</a> array <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;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> <</span><span style="color:#F69D50;">reified</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">> </span><span style="color:#DCBDFB;">array</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">Array</span><span style="color:#ADBAC7;"><</span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">></span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0.68</code> <code>added</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>得到方法参数的实例对象 Array。</p></blockquote><h3 id="list-method" tabindex="-1"><a class="header-anchor" href="#list-method" aria-hidden="true">#</a> list <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;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> <</span><span style="color:#F69D50;">reified</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">> </span><span style="color:#DCBDFB;">list</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">List</span><span style="color:#ADBAC7;"><</span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">></span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0.68</code> <code>added</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>得到方法参数的实例对象 List。</p></blockquote><h3 id="set-method" tabindex="-1"><a class="header-anchor" href="#set-method" aria-hidden="true">#</a> set <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:#F69D50;">T</span><span style="color:#ADBAC7;">> </span><span style="color:#DCBDFB;">set</span><span style="color:#ADBAC7;">(any: </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">?)</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0</code> <code>first</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>设置方法参数的实例对象。</p></blockquote><h3 id="setnull-method" tabindex="-1"><a class="header-anchor" href="#setnull-method" aria-hidden="true">#</a> setNull <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;">setNull</span><span style="color:#ADBAC7;">()</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0</code> <code>first</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>设置方法参数的实例对象为 <code>null</code>。</p></blockquote><h3 id="settrue-method" tabindex="-1"><a class="header-anchor" href="#settrue-method" aria-hidden="true">#</a> setTrue <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;">setTrue</span><span style="color:#ADBAC7;">()</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0</code> <code>first</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>设置方法参数的实例对象为 <code>true</code>。</p></blockquote><div class="custom-container danger"><p class="custom-container-title">Pay Attention</p><p>请确保目标对象的类型是 <strong>Boolean</strong>。</p></div><h3 id="setfalse-method" tabindex="-1"><a class="header-anchor" href="#setfalse-method" aria-hidden="true">#</a> setFalse <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;">setFalse</span><span style="color:#ADBAC7;">()</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>Change Records</strong></p><p><code>v1.0</code> <code>first</code></p><p><strong>Function Illustrate</strong></p><blockquote><p>设置方法参数的实例对象为 <code>false</code>。</p></blockquote><div class="custom-container danger"><p class="custom-container-title">Pay Attention</p><p>请确保目标对象的类型是 <strong>Boolean</strong>。</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/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.md" rel="noopener noreferrer" target="_blank" aria-label="Edit this page on GitHub"><!--[--><!--]--> Edit this page on 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">open in new window</span></span><!--[--><!--]--></a></div><div class="meta-item last-updated"><span class="meta-item-label">Last Updated: </span><!----></div><div class="meta-item contributors"><span class="meta-item-label">Contributors: </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/en/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.html" class="" aria-label="PackageParam - class"><!--[--><!--]--> PackageParam - class <!--[--><!--]--></a></span><span class="next"><a href="/YukiHookAPI/en/api/public/com/highcapable/yukihookapi/annotation/xposed/InjectYukiHookWithXposed.html" class="" aria-label="InjectYukiHookWithXposed - annotation"><!--[--><!--]--> InjectYukiHookWithXposed - annotation <!--[--><!--]--></a></span></p></nav><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
|
||
<script type="module" src="/YukiHookAPI/assets/app-BpUB8-Q8.js" defer></script>
|
||
</body>
|
||
</html>
|