From 3c97d8097c21245026ba55050d43e9de7a0de49b Mon Sep 17 00:00:00 2001 From: fankesyooni Date: Sat, 31 Dec 2022 23:27:59 +0800 Subject: [PATCH] Update quick-start, xposed-using documentation --- docs-source/src/en/config/xposed-using.md | 16 +++++++++++----- docs-source/src/en/guide/quick-start.md | 2 +- docs-source/src/zh-cn/config/xposed-using.md | 16 +++++++++++----- docs-source/src/zh-cn/guide/quick-start.md | 2 +- 4 files changed, 24 insertions(+), 12 deletions(-) diff --git a/docs-source/src/en/config/xposed-using.md b/docs-source/src/en/config/xposed-using.md index 4210a31a..c5af6794 100644 --- a/docs-source/src/en/config/xposed-using.md +++ b/docs-source/src/en/config/xposed-using.md @@ -126,7 +126,7 @@ Suppose this is your entry class. ```kotlin @InjectYukiHookWithXposed -class HookEntry: IYukiHookXposedInit +object HookEntry : IYukiHookXposedInit ``` The Xposed entry class is handled as follows. @@ -134,7 +134,7 @@ The Xposed entry class is handled as follows. > The following example ```kotlin:no-line-numbers -class HookEntry_YukiHookXposedInit: IXposedHookZygoteInit, IXposedHookLoadPackage, ... +class HookEntry_YukiHookXposedInit : IXposedHookZygoteInit, IXposedHookLoadPackage, ... ``` The compiled class name structure is as follows. @@ -153,7 +153,7 @@ We now define the entry class name as `HookXposedEntry`. ```kotlin @InjectYukiHookWithXposed(entryClassName = "HookXposedEntry") -class HookEntry: IYukiHookXposedInit +object HookEntry : IYukiHookXposedInit ``` The Xposed entry class is handled as follows. @@ -161,7 +161,7 @@ The Xposed entry class is handled as follows. > The following example ```kotlin:no-line-numbers -class HookXposedEntry: IXposedHookZygoteInit, IXposedHookLoadPackage, ... +class HookXposedEntry : IXposedHookZygoteInit, IXposedHookLoadPackage, ... ``` The compiled class name structure is as follows. @@ -174,6 +174,12 @@ The compiled class name structure is as follows. ...hook.HookXposedEntry ← Automatically generated Xposed entry class ``` +::: tip + +The entry class can be defined using **class** or **object**, but it is recommended to use **object** definition to ensure that each injected process is a single instance. + +::: + ::: danger The **entryClassName** you define must not be the same as the class name in **xposed_init**, otherwise the automatic builder **throws an exception at compile time**. @@ -254,7 +260,7 @@ If your current Xposed Module uses third-party resources, but may not be able to ```kotlin @InjectYukiHookWithXposed -class HookEntry: IYukiHookXposedInit { +object HookEntry : IYukiHookXposedInit { override fun onHook() { // Your code here. diff --git a/docs-source/src/en/guide/quick-start.md b/docs-source/src/en/guide/quick-start.md index ad043496..dc4c5652 100644 --- a/docs-source/src/en/guide/quick-start.md +++ b/docs-source/src/en/guide/quick-start.md @@ -144,7 +144,7 @@ Create a Hook entry class in your project, implements `IYukiHookXposedInit` and ```kotlin @InjectYukiHookWithXposed -class HookEntry : IYukiHookXposedInit { +object HookEntry : IYukiHookXposedInit { override fun onHook() = YukiHookAPI.encase { // Your code here. diff --git a/docs-source/src/zh-cn/config/xposed-using.md b/docs-source/src/zh-cn/config/xposed-using.md index 48d1b1b3..10567c99 100644 --- a/docs-source/src/zh-cn/config/xposed-using.md +++ b/docs-source/src/zh-cn/config/xposed-using.md @@ -120,7 +120,7 @@ You set the customize module package name to "com.example.demo", please check fo ```kotlin @InjectYukiHookWithXposed -class HookEntry: IYukiHookXposedInit +object HookEntry : IYukiHookXposedInit ``` Xposed 入口类处理如下。 @@ -128,7 +128,7 @@ Xposed 入口类处理如下。 > 示例如下 ```kotlin:no-line-numbers -class HookEntry_YukiHookXposedInit: IXposedHookZygoteInit, IXposedHookLoadPackage, ... +class HookEntry_YukiHookXposedInit : IXposedHookZygoteInit, IXposedHookLoadPackage, ... ``` 编译后的类名结构如下。 @@ -147,7 +147,7 @@ class HookEntry_YukiHookXposedInit: IXposedHookZygoteInit, IXposedHookLoadPackag ```kotlin @InjectYukiHookWithXposed(entryClassName = "HookXposedEntry") -class HookEntry: IYukiHookXposedInit +object HookEntry : IYukiHookXposedInit ``` Xposed 入口类处理如下。 @@ -155,7 +155,7 @@ Xposed 入口类处理如下。 > 示例如下 ```kotlin:no-line-numbers -class HookXposedEntry: IXposedHookZygoteInit, IXposedHookLoadPackage, ... +class HookXposedEntry : IXposedHookZygoteInit, IXposedHookLoadPackage, ... ``` 编译后的类名结构如下。 @@ -168,6 +168,12 @@ class HookXposedEntry: IXposedHookZygoteInit, IXposedHookLoadPackage, ... ...hook.HookXposedEntry ← 自动生成的 Xposed 入口类 ``` +::: tip + +入口类可以使用 **class** 或 **object** 定义,但是建议使用 **object** 定义来保证每一个注入的进程都是单例运行。 + +::: + ::: danger 你定义的 **entryClassName** 不可与 **xposed_init** 中的类名相同,否则自动处理程序**会在编译时抛出异常**。 @@ -248,7 +254,7 @@ class _YukiHookXposedInit : IXposedHookZygoteInit, IXposedHookLoadPackage { ```kotlin @InjectYukiHookWithXposed -class HookEntry: IYukiHookXposedInit { +object HookEntry : IYukiHookXposedInit { override fun onHook() { // Your code here. diff --git a/docs-source/src/zh-cn/guide/quick-start.md b/docs-source/src/zh-cn/guide/quick-start.md index 98824833..8d6a2a21 100644 --- a/docs-source/src/zh-cn/guide/quick-start.md +++ b/docs-source/src/zh-cn/guide/quick-start.md @@ -143,7 +143,7 @@ android { ```kotlin @InjectYukiHookWithXposed -class HookEntry : IYukiHookXposedInit { +object HookEntry : IYukiHookXposedInit { override fun onHook() = YukiHookAPI.encase { // Your code here.