diff --git a/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.md b/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.md
index aad42df5..9a0cc885 100644
--- a/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.md
+++ b/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.md
@@ -238,36 +238,6 @@ fun members(vararg member: Member?)
:::
-**Function Example**
-
-你可以调用 `instanceClass` 来手动查找要 Hook 的 `Method`、`Constructor`。
-
-> The following example
-
-```kotlin
-injectMember {
- members(instanceClass.getDeclaredMethod("test", StringClass))
- beforeHook {}
- afterHook {}
-}
-```
-
-同样地,你也可以传入一组 `Member` 同时进行 Hook。
-
-> The following example
-
-```kotlin
-injectMember {
- members(
- instanceClass.getDeclaredMethod("test1", StringClass),
- instanceClass.getDeclaredMethod("test2", StringClass),
- instanceClass.getDeclaredMethod("test3", StringClass)
- )
- beforeHook {}
- afterHook {}
-}
-```
-
allMethods - method
**Change Records**
@@ -324,48 +294,7 @@ inline fun method(initiate: MethodConditions): MethodFinder.Result
**Function Illustrate**
-> 查找当前 `Class` 需要 Hook 的 `Method` 。
-
-**Function Example**
-
-你可参考 [MethodFinder](finder/members/MethodFinder) 查看详细用法。
-
-> The following example
-
-```kotlin
-injectMember {
- method {
- name = "test"
- param(StringClass)
- returnType = UnitType
- }
- beforeHook {}
- afterHook {}
-}
-```
-
-若想 Hook 当前查找 `method { ... }` 条件的全部结果,你只需要在最后加入 `all` 即可。
-
-> The following example
-
-```kotlin
-injectMember {
- method {
- name = "test"
- paramCount(1..5)
- }.all()
- beforeHook {}
- afterHook {}
-}
-```
-
-此时 `beforeHook` 与 `afterHook` 会在每个查找到的结果中多次回调 Hook 方法体。
-
-::: warning
-
-若没有 **all**,默认只会 Hook 当前条件查找到的数组下标结果第一位。
-
-:::
+> 查找当前 `Class` 需要 Hook 的 `Method`。
### constructor - method
@@ -385,40 +314,6 @@ inline fun constructor(initiate: ConstructorConditions): ConstructorFinder.Resul
> 查找当前 `Class` 需要 Hook 的 `Constructor`。
-**Function Example**
-
-你可参考 [ConstructorFinder](finder/members/ConstructorFinder) 查看详细用法。
-
-> The following example
-
-```kotlin
-injectMember {
- constructor { param(StringClass) }
- beforeHook {}
- afterHook {}
-}
-```
-
-若想 Hook 当前查找 `constructor { ... }` 条件的全部结果,你只需要在最后加入 `all` 即可。
-
-> The following example
-
-```kotlin
-injectMember {
- constructor { paramCount(1..5) }.all()
- beforeHook {}
- afterHook {}
-}
-```
-
-此时 `beforeHook` 与 `afterHook` 会在每个查找到的结果中多次回调 Hook 方法体。
-
-::: warning
-
-若没有 **all**,默认只会 Hook 当前条件查找到的数组下标结果第一位。
-
-:::
-
### HookParam.field - i-ext-method
```kotlin:no-line-numbers
@@ -437,29 +332,6 @@ inline fun HookParam.field(initiate: FieldConditions): FieldFinder.Result
> 使用当前 `hookClass` 查找并得到 `Field`。
-**Function Example**
-
-你可参考 [FieldFinder](finder/members/FieldFinder) 查看详细用法。
-
-> The following example
-
-```kotlin
-injectMember {
- method {
- name = "test"
- param(StringClass)
- returnType = UnitType
- }
- afterHook {
- // 这里不需要再调用 instanceClass.field 进行查找
- field {
- name = "isSweet"
- type = BooleanType
- }.get(instance).setTrue()
- }
-}
-```
-
### HookParam.method - i-ext-method
```kotlin:no-line-numbers
@@ -510,41 +382,61 @@ inline fun HookParam.injectMember(priority: Int, tag: String, initiate: MemberHo
> 注入要 Hook 的 `Method`、`Constructor` (嵌套 Hook)。
-### beforeHook - method
+### before - method
```kotlin:no-line-numbers
-fun beforeHook(initiate: HookParam.() -> Unit): HookCallback
+fun before(initiate: HookParam.() -> Unit): HookCallback
```
**Change Records**
-`v1.0` `first`
-
-`v1.1.0` `modified`
-
-新增 `HookCallback` 返回类型
+`v1.2.0` `added`
**Function Illustrate**
> 在 `Member` 执行完成前 Hook。
-### afterHook - method
+### after - method
```kotlin:no-line-numbers
-fun afterHook(initiate: HookParam.() -> Unit): HookCallback
+fun after(initiate: HookParam.() -> Unit): HookCallback
```
**Change Records**
+`v1.2.0` `added`
+
+**Function Illustrate**
+
+> 在 `Member` 执行完成后 Hook。
+
+beforeHook - method
+
+**Change Records**
+
`v1.0` `first`
`v1.1.0` `modified`
新增 `HookCallback` 返回类型
-**Function Illustrate**
+`v1.2.0` `deprecated`
-> 在 `Member` 执行完成后 Hook。
+请迁移到 `before`
+
+afterHook - method
+
+**Change Records**
+
+`v1.0` `first`
+
+`v1.1.0` `modified`
+
+新增 `HookCallback` 返回类型
+
+`v1.2.0` `deprecated`
+
+请迁移到 `after`
### replaceAny - method
@@ -734,24 +626,6 @@ inline fun result(initiate: Result.() -> Unit): Result
> 创建监听失败事件方法体。
-**Function Example**
-
-你可以使用此方法为 `Result` 类创建 **lambda** 方法体。
-
-> The following example
-
-```kotlin
-injectMember {
- // Your code here.
-}.result {
- onHooked {}
- onAlreadyHooked {}
- ignoredConductFailure()
- onHookingFailure {}
- // ...
-}
-```
-
#### by - method
```kotlin:no-line-numbers
diff --git a/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.md b/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.md
index 9b6cdfee..a5c7ec20 100644
--- a/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.md
+++ b/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.md
@@ -252,7 +252,7 @@ fun Throwable.throwToApp()
使用 `throwable` 获取当前设置的方法调用抛出异常。
-仅会在回调方法的 `MemberHookCreator.beforeHook` 或 `MemberHookCreator.afterHook` 中生效。
+仅会在回调方法的 `MemberHookCreator.before` 或 `MemberHookCreator.after` 中生效。
::: danger
@@ -269,11 +269,8 @@ Hook 过程中的异常仅会作用于 (Xposed) 宿主环境,目标 Hook APP
> The following example
```kotlin
-injectMember {
- method {
- // ...
- }
- beforeHook {
+hook {
+ before {
RuntimeException("Test Exception").throwToApp()
}
}
@@ -483,20 +480,19 @@ fun callOriginal(): T?
此方法可以 `invoke` 原始未经 Hook 的 `Member` 对象,取决于原始 `Member` 的参数。
-调用自身原始的方法不会再经过当前 `beforeHook`、`afterHook` 以及 `replaceUnit`、`replaceAny`。
+调用自身原始的方法不会再经过当前 `before`、`after` 以及 `replaceUnit`、`replaceAny`。
比如我们 Hook 的这个方法被这样调用 `test("test value")`,使用此方法会调用其中的 `"test value"` 作为参数。
> The following example
```kotlin
-injectMember {
- method {
- name = "test"
- param(StringClass)
- returnType = StringClass
- }
- afterHook {
+method {
+ name = "test"
+ param(StringClass)
+ returnType = StringClass
+}.hook {
+ after {
// <方案1> 不使用泛型,不获取方法执行结果,调用将使用原方法传入的 args 自动传参
callOriginal()
// <方案2> 使用泛型,已知方法执行结果参数类型进行 cast
@@ -534,20 +530,19 @@ fun invokeOriginal(vararg args: Any?): T?
此方法可以 `invoke` 原始未经 Hook 的 `Member` 对象,可自定义需要调用的参数内容。
-调用自身原始的方法不会再经过当前 `beforeHook`、`afterHook` 以及 `replaceUnit`、`replaceAny`。
+调用自身原始的方法不会再经过当前 `before`、`after` 以及 `replaceUnit`、`replaceAny`。
比如我们 Hook 的这个方法被这样调用 `test("test value")`,使用此方法可自定义其中的 `args` 作为参数。
> The following example
```kotlin
-injectMember {
- method {
- name = "test"
- param(StringClass)
- returnType = StringClass
- }
- afterHook {
+method {
+ name = "test"
+ param(StringClass)
+ returnType = StringClass
+}.hook {
+ after {
// <方案1> 不使用泛型,不获取方法执行结果
invokeOriginal("test value")
// <方案2> 使用泛型,已知方法执行结果参数类型进行 cast,假设返回值为 String,失败会返回 null
diff --git a/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.md b/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.md
index 77cea0cd..bb553e03 100644
--- a/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.md
+++ b/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.md
@@ -9,6 +9,7 @@ The English translation of this page has not been completed, you are welcome to
You can use the **Chrome Translation Plugin** to translate entire pages for reference.
:::
+
---
pageClass: code-page
---
@@ -878,54 +879,60 @@ inline fun HookClass.hook(initiate: YukiMemberHookCreator.() -> Unit): YukiMembe
**Function Illustrate**
-> 这是一切 Hook 的入口创建方法,Hook 方法、构造方法。
+> Hook 方法、构造方法。
-**Function Example**
+## Member+BaseFinder.BaseResult.hook - i-ext-method
-如你所见,Hook 方法体的创建可使用 2 种方式。
-
-使用 `String.toClass(...)` 得到 `Class` 实例进行创建。
-
-> The following example
-
-```kotlin
-"com.example.demo.DemoClass".toClass().hook {
- // Your code here.
-}
+```kotlin:no-line-numbers
+inline fun Member.hook(initiate: YukiMemberHookCreator.MemberHookCreator.() -> Unit): YukiMemberHookCreator.MemberHookCreator.Result
```
-使用 `stub` 或直接拿到 `Class` 实例进行创建。
-
-默认情况下 API 会将 `Class` 实例转换为类名并绑定到 `appClassLoader`,若失败,则会使用原始 `Class` 实例直接进行 Hook。
-
-> The following example
-
-```kotlin
-Stub::class.java.hook {
- // Your code here.
-}
+```kotlin:no-line-numbers
+inline fun BaseFinder.BaseResult.hook(initiate: YukiMemberHookCreator.MemberHookCreator.() -> Unit): YukiMemberHookCreator.MemberHookCreator.Result
```
-若当前 `Class` 不在 `appClassLoader` 且自动匹配无法找到该 `Class`,请启用 `isForceUseAbsolute`。
+**Change Records**
-> The following example
+`v1.2.0` `added`
-```kotlin
-YourClass::class.java.hook(isForceUseAbsolute = true) {
- // Your code here.
-}
+**Function Illustrate**
+
+> 直接 Hook 方法、构造方法。
+
+::: warning
+
+此功能尚在试验阶段,在 1.x.x 版本将暂定于此,在 2.x.x 版本将完全合并到新 API。
+
+:::
+
+## Array<Member>+List<Member>+BaseFinder.BaseResult.hookAll - i-ext-method
+
+```kotlin:no-line-numbers
+inline fun Array.hookAll(initiate: YukiMemberHookCreator.MemberHookCreator.() -> Unit): YukiMemberHookCreator.MemberHookCreator.Result
```
-使用 `VariousClass` 实例进行创建。
-
-> The following example
-
-```kotlin
-VariousClass("com.example.demo.DemoClass1", "com.example.demo.DemoClass2").hook {
- // Your code here.
-}
+```kotlin:no-line-numbers
+inline fun List.hookAll(initiate: YukiMemberHookCreator.MemberHookCreator.() -> Unit): YukiMemberHookCreator.MemberHookCreator.Result
```
+```kotlin:no-line-numbers
+inline fun BaseFinder.BaseResult.hookAll(initiate: YukiMemberHookCreator.MemberHookCreator.() -> Unit): YukiMemberHookCreator.MemberHookCreator.Result
+```
+
+**Change Records**
+
+`v1.2.0` `added`
+
+**Function Illustrate**
+
+> 直接 Hook 方法、构造方法 (批量)。
+
+::: warning
+
+此功能尚在试验阶段,在 1.x.x 版本将暂定于此,在 2.x.x 版本将完全合并到新 API。
+
+:::
+
## HookResources.hook - i-ext-method
```kotlin:no-line-numbers
@@ -942,7 +949,7 @@ inline fun HookResources.hook(initiate: YukiResourcesHookCreator.() -> Unit)
::: danger
-请注意你需要确保当前 Hook Framework 支持且 **InjectYukiHookWithXposed.isUsingResourcesHook** 已启用。
+此功能将不再默认启用,如需启用,请手动设置 **InjectYukiHookWithXposed.isUsingResourcesHook**。
:::
diff --git a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.md b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.md
index 2ff99f5e..c224dcfe 100644
--- a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.md
+++ b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.md
@@ -230,36 +230,6 @@ fun members(vararg member: Member?)
:::
-**功能示例**
-
-你可以调用 `instanceClass` 来手动查找要 Hook 的 `Method`、`Constructor`。
-
-> 示例如下
-
-```kotlin
-injectMember {
- members(instanceClass.getDeclaredMethod("test", StringClass))
- beforeHook {}
- afterHook {}
-}
-```
-
-同样地,你也可以传入一组 `Member` 同时进行 Hook。
-
-> 示例如下
-
-```kotlin
-injectMember {
- members(
- instanceClass.getDeclaredMethod("test1", StringClass),
- instanceClass.getDeclaredMethod("test2", StringClass),
- instanceClass.getDeclaredMethod("test3", StringClass)
- )
- beforeHook {}
- afterHook {}
-}
-```
-
allMethods - method
**变更记录**
@@ -316,48 +286,7 @@ inline fun method(initiate: MethodConditions): MethodFinder.Result
**功能描述**
-> 查找当前 `Class` 需要 Hook 的 `Method` 。
-
-**功能示例**
-
-你可参考 [MethodFinder](finder/members/MethodFinder) 查看详细用法。
-
-> 示例如下
-
-```kotlin
-injectMember {
- method {
- name = "test"
- param(StringClass)
- returnType = UnitType
- }
- beforeHook {}
- afterHook {}
-}
-```
-
-若想 Hook 当前查找 `method { ... }` 条件的全部结果,你只需要在最后加入 `all` 即可。
-
-> 示例如下
-
-```kotlin
-injectMember {
- method {
- name = "test"
- paramCount(1..5)
- }.all()
- beforeHook {}
- afterHook {}
-}
-```
-
-此时 `beforeHook` 与 `afterHook` 会在每个查找到的结果中多次回调 Hook 方法体。
-
-::: warning
-
-若没有 **all**,默认只会 Hook 当前条件查找到的数组下标结果第一位。
-
-:::
+> 查找当前 `Class` 需要 Hook 的 `Method`。
### constructor - method
@@ -377,40 +306,6 @@ inline fun constructor(initiate: ConstructorConditions): ConstructorFinder.Resul
> 查找当前 `Class` 需要 Hook 的 `Constructor`。
-**功能示例**
-
-你可参考 [ConstructorFinder](finder/members/ConstructorFinder) 查看详细用法。
-
-> 示例如下
-
-```kotlin
-injectMember {
- constructor { param(StringClass) }
- beforeHook {}
- afterHook {}
-}
-```
-
-若想 Hook 当前查找 `constructor { ... }` 条件的全部结果,你只需要在最后加入 `all` 即可。
-
-> 示例如下
-
-```kotlin
-injectMember {
- constructor { paramCount(1..5) }.all()
- beforeHook {}
- afterHook {}
-}
-```
-
-此时 `beforeHook` 与 `afterHook` 会在每个查找到的结果中多次回调 Hook 方法体。
-
-::: warning
-
-若没有 **all**,默认只会 Hook 当前条件查找到的数组下标结果第一位。
-
-:::
-
### HookParam.field - i-ext-method
```kotlin:no-line-numbers
@@ -429,29 +324,6 @@ inline fun HookParam.field(initiate: FieldConditions): FieldFinder.Result
> 使用当前 `hookClass` 查找并得到 `Field`。
-**功能示例**
-
-你可参考 [FieldFinder](finder/members/FieldFinder) 查看详细用法。
-
-> 示例如下
-
-```kotlin
-injectMember {
- method {
- name = "test"
- param(StringClass)
- returnType = UnitType
- }
- afterHook {
- // 这里不需要再调用 instanceClass.field 进行查找
- field {
- name = "isSweet"
- type = BooleanType
- }.get(instance).setTrue()
- }
-}
-```
-
### HookParam.method - i-ext-method
```kotlin:no-line-numbers
@@ -502,41 +374,61 @@ inline fun HookParam.injectMember(priority: Int, tag: String, initiate: MemberHo
> 注入要 Hook 的 `Method`、`Constructor` (嵌套 Hook)。
-### beforeHook - method
+### before - method
```kotlin:no-line-numbers
-fun beforeHook(initiate: HookParam.() -> Unit): HookCallback
+fun before(initiate: HookParam.() -> Unit): HookCallback
```
**变更记录**
-`v1.0` `添加`
-
-`v1.1.0` `修改`
-
-新增 `HookCallback` 返回类型
+`v1.2.0` `新增`
**功能描述**
> 在 `Member` 执行完成前 Hook。
-### afterHook - method
+### after - method
```kotlin:no-line-numbers
-fun afterHook(initiate: HookParam.() -> Unit): HookCallback
+fun after(initiate: HookParam.() -> Unit): HookCallback
```
**变更记录**
+`v1.2.0` `新增`
+
+**功能描述**
+
+> 在 `Member` 执行完成后 Hook。
+
+beforeHook - method
+
+**变更记录**
+
`v1.0` `添加`
`v1.1.0` `修改`
新增 `HookCallback` 返回类型
-**功能描述**
+`v1.2.0` `作废`
-> 在 `Member` 执行完成后 Hook。
+请迁移到 `before`
+
+afterHook - method
+
+**变更记录**
+
+`v1.0` `添加`
+
+`v1.1.0` `修改`
+
+新增 `HookCallback` 返回类型
+
+`v1.2.0` `作废`
+
+请迁移到 `after`
### replaceAny - method
@@ -726,24 +618,6 @@ inline fun result(initiate: Result.() -> Unit): Result
> 创建监听失败事件方法体。
-**功能示例**
-
-你可以使用此方法为 `Result` 类创建 **lambda** 方法体。
-
-> 示例如下
-
-```kotlin
-injectMember {
- // Your code here.
-}.result {
- onHooked {}
- onAlreadyHooked {}
- ignoredConductFailure()
- onHookingFailure {}
- // ...
-}
-```
-
#### by - method
```kotlin:no-line-numbers
diff --git a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/HookParam.md b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/HookParam.md
index 6d61f654..15c56e7c 100644
--- a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/HookParam.md
+++ b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/HookParam.md
@@ -244,7 +244,7 @@ fun Throwable.throwToApp()
使用 `throwable` 获取当前设置的方法调用抛出异常。
-仅会在回调方法的 `MemberHookCreator.beforeHook` 或 `MemberHookCreator.afterHook` 中生效。
+仅会在回调方法的 `MemberHookCreator.before` 或 `MemberHookCreator.after` 中生效。
::: danger
@@ -261,11 +261,8 @@ Hook 过程中的异常仅会作用于 (Xposed) 宿主环境,目标 Hook APP
> 示例如下
```kotlin
-injectMember {
- method {
- // ...
- }
- beforeHook {
+hook {
+ before {
RuntimeException("Test Exception").throwToApp()
}
}
@@ -475,20 +472,19 @@ fun callOriginal(): T?
此方法可以 `invoke` 原始未经 Hook 的 `Member` 对象,取决于原始 `Member` 的参数。
-调用自身原始的方法不会再经过当前 `beforeHook`、`afterHook` 以及 `replaceUnit`、`replaceAny`。
+调用自身原始的方法不会再经过当前 `before`、`after` 以及 `replaceUnit`、`replaceAny`。
比如我们 Hook 的这个方法被这样调用 `test("test value")`,使用此方法会调用其中的 `"test value"` 作为参数。
> 示例如下
```kotlin
-injectMember {
- method {
- name = "test"
- param(StringClass)
- returnType = StringClass
- }
- afterHook {
+method {
+ name = "test"
+ param(StringClass)
+ returnType = StringClass
+}.hook {
+ after {
// <方案1> 不使用泛型,不获取方法执行结果,调用将使用原方法传入的 args 自动传参
callOriginal()
// <方案2> 使用泛型,已知方法执行结果参数类型进行 cast
@@ -526,20 +522,19 @@ fun invokeOriginal(vararg args: Any?): T?
此方法可以 `invoke` 原始未经 Hook 的 `Member` 对象,可自定义需要调用的参数内容。
-调用自身原始的方法不会再经过当前 `beforeHook`、`afterHook` 以及 `replaceUnit`、`replaceAny`。
+调用自身原始的方法不会再经过当前 `before`、`after` 以及 `replaceUnit`、`replaceAny`。
比如我们 Hook 的这个方法被这样调用 `test("test value")`,使用此方法可自定义其中的 `args` 作为参数。
> 示例如下
```kotlin
-injectMember {
- method {
- name = "test"
- param(StringClass)
- returnType = StringClass
- }
- afterHook {
+method {
+ name = "test"
+ param(StringClass)
+ returnType = StringClass
+}.hook {
+ after {
// <方案1> 不使用泛型,不获取方法执行结果
invokeOriginal("test value")
// <方案2> 使用泛型,已知方法执行结果参数类型进行 cast,假设返回值为 String,失败会返回 null
diff --git a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.md b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.md
index c8eef615..30914f30 100644
--- a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.md
+++ b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.md
@@ -867,54 +867,60 @@ inline fun HookClass.hook(initiate: YukiMemberHookCreator.() -> Unit): YukiMembe
**功能描述**
-> 这是一切 Hook 的入口创建方法,Hook 方法、构造方法。
+> Hook 方法、构造方法。
-**功能示例**
+## Member+BaseFinder.BaseResult.hook - i-ext-method
-如你所见,Hook 方法体的创建可使用 2 种方式。
-
-使用 `String.toClass(...)` 得到 `Class` 实例进行创建。
-
-> 示例如下
-
-```kotlin
-"com.example.demo.DemoClass".toClass().hook {
- // Your code here.
-}
+```kotlin:no-line-numbers
+inline fun Member.hook(initiate: YukiMemberHookCreator.MemberHookCreator.() -> Unit): YukiMemberHookCreator.MemberHookCreator.Result
```
-使用 `stub` 或直接拿到 `Class` 实例进行创建。
-
-默认情况下 API 会将 `Class` 实例转换为类名并绑定到 `appClassLoader`,若失败,则会使用原始 `Class` 实例直接进行 Hook。
-
-> 示例如下
-
-```kotlin
-Stub::class.java.hook {
- // Your code here.
-}
+```kotlin:no-line-numbers
+inline fun BaseFinder.BaseResult.hook(initiate: YukiMemberHookCreator.MemberHookCreator.() -> Unit): YukiMemberHookCreator.MemberHookCreator.Result
```
-若当前 `Class` 不在 `appClassLoader` 且自动匹配无法找到该 `Class`,请启用 `isForceUseAbsolute`。
+**变更记录**
-> 示例如下
+`v1.2.0` `新增`
-```kotlin
-YourClass::class.java.hook(isForceUseAbsolute = true) {
- // Your code here.
-}
+**功能描述**
+
+> 直接 Hook 方法、构造方法。
+
+::: warning
+
+此功能尚在试验阶段,在 1.x.x 版本将暂定于此,在 2.x.x 版本将完全合并到新 API。
+
+:::
+
+## Array<Member>+List<Member>+BaseFinder.BaseResult.hookAll - i-ext-method
+
+```kotlin:no-line-numbers
+inline fun Array.hookAll(initiate: YukiMemberHookCreator.MemberHookCreator.() -> Unit): YukiMemberHookCreator.MemberHookCreator.Result
```
-使用 `VariousClass` 实例进行创建。
-
-> 示例如下
-
-```kotlin
-VariousClass("com.example.demo.DemoClass1", "com.example.demo.DemoClass2").hook {
- // Your code here.
-}
+```kotlin:no-line-numbers
+inline fun List.hookAll(initiate: YukiMemberHookCreator.MemberHookCreator.() -> Unit): YukiMemberHookCreator.MemberHookCreator.Result
```
+```kotlin:no-line-numbers
+inline fun BaseFinder.BaseResult.hookAll(initiate: YukiMemberHookCreator.MemberHookCreator.() -> Unit): YukiMemberHookCreator.MemberHookCreator.Result
+```
+
+**变更记录**
+
+`v1.2.0` `新增`
+
+**功能描述**
+
+> 直接 Hook 方法、构造方法 (批量)。
+
+::: warning
+
+此功能尚在试验阶段,在 1.x.x 版本将暂定于此,在 2.x.x 版本将完全合并到新 API。
+
+:::
+
## HookResources.hook - i-ext-method
```kotlin:no-line-numbers
@@ -931,7 +937,7 @@ inline fun HookResources.hook(initiate: YukiResourcesHookCreator.() -> Unit)
::: danger
-请注意你需要确保当前 Hook Framework 支持且 **InjectYukiHookWithXposed.isUsingResourcesHook** 已启用。
+此功能将不再默认启用,如需启用,请手动设置 **InjectYukiHookWithXposed.isUsingResourcesHook**。
:::