mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-06 02:35:40 +08:00
Merge document file
This commit is contained in:
@@ -157,7 +157,7 @@ Test::class.java.method {
|
||||
}.get(instance).string() // 得到方法的结果
|
||||
```
|
||||
|
||||
是的,对于确切不会变化的方法,你可以精简查询条件,<b>`YukiHookAPI` 会默认按照字节码顺序匹配第一个查询到的结果</b>。
|
||||
是的,对于确切不会变化的方法,你可以精简查询条件,**`YukiHookAPI` 会默认按照字节码顺序匹配第一个查询到的结果**。
|
||||
|
||||
问题又来了,这个 `Class` 中有一个 `release` 方法,但是它的方法参数好长,而且很多的类型都无法直接得到。
|
||||
|
||||
@@ -578,7 +578,7 @@ method {
|
||||
|
||||
#### 必要的查询条件
|
||||
|
||||
!> 在方法、构造方法查询条件中,<u><b>即使是无参的方法也需要设置查询条件</b></u>。
|
||||
!> 在方法、构造方法查询条件中,<u>**即使是无参的方法也需要设置查询条件**</u>。
|
||||
|
||||
假设我们有如下的 `Class`。
|
||||
|
||||
@@ -607,13 +607,13 @@ TestFoo::class.java.method {
|
||||
}
|
||||
```
|
||||
|
||||
但是,上面的例子<u><b>是错误的</b></u>。
|
||||
但是,上面的例子<u>**是错误的**</u>。
|
||||
|
||||
你会发现这个 `Class` 中有两个 `foo` 方法,其中一个带有方法参数。
|
||||
|
||||
由于上述例子没有设置 `param` 的查询条件,得到的结果将会是匹配名称且匹配字节码顺序的第一个方法 `public void foo(String string)`,而不是我们需要的最后一个方法。
|
||||
|
||||
这是一个<b>经常会出现的错误</b>,<b>没有方法参数就会丢失方法参数查询条件</b>的使用问题。
|
||||
这是一个**经常会出现的错误**,**没有方法参数就会丢失方法参数查询条件**的使用问题。
|
||||
|
||||
正确的使用方法如下。
|
||||
|
||||
@@ -687,7 +687,7 @@ field {
|
||||
}
|
||||
```
|
||||
|
||||
在 Java 中常见的基本类型都已被封装为 <b>类型 + Type</b> 的方式,例如 `IntType`、`FloatType`。
|
||||
在 Java 中常见的基本类型都已被封装为 **类型 + Type** 的方式,例如 `IntType`、`FloatType`。
|
||||
|
||||
相应地,数组类型也有方便的使用方法,假设我们要获得 `String[]` 类型的数组。
|
||||
|
||||
@@ -697,7 +697,7 @@ field {
|
||||
|
||||
同时由于 `String` 是常见类型,所以还可以直接使用 `StringArrayClass` 来得到这个类型。
|
||||
|
||||
一些常见的 Hook 中查询的方法,都有其对应的封装类型以供使用,格式为 <b>类型 + Class</b>。
|
||||
一些常见的 Hook 中查询的方法,都有其对应的封装类型以供使用,格式为 **类型 + Class**。
|
||||
|
||||
例如 Hook `onCreate` 方法需要查询 `Bundle::class.java` 类型。
|
||||
|
||||
|
Reference in New Issue
Block a user