Update documentation files

This commit is contained in:
2022-05-21 01:49:52 +08:00
parent a879db99a1
commit 76bb612a4c
11 changed files with 560 additions and 28 deletions

View File

@@ -499,11 +499,36 @@ class MyApplication : Application() {
你只能在 [作为 Xposed 模块使用](config/xposed-using) 时使用 `YukiHookModulePrefs`,在 Hook 自身 APP 中请使用原生的 `Sp` 存储。
!> `IllegalStateException` YukiHookDataChannel not allowed in Custom Hook API
**异常原因**
在 Hook 自身 APP(非 Xposed 模块) 中使用了 `YukiHookDataChannel`
> 示例如下
```kotlin
class MyApplication : Application() {
override fun attachBaseContext(base: Context?) {
YukiHookAPI.encase(base) {
// ❗不能在这种情况下使用 channel
channel.get("test_data", "default_data")
}
super.attachBaseContext(base)
}
}
```
**解决方案**
你只能在 [作为 Xposed 模块使用](config/xposed-using) 时使用 `YukiHookDataChannel`
!> `IllegalStateException` Xposed modulePackageName load failed, please reset and rebuild it
**异常原因**
在 Hook 过程中使用 `YukiHookModulePrefs` 时无法读取装载时的 `modulePackageName` 导致不能确定自身模块的包名。
在 Hook 过程中使用 `YukiHookModulePrefs``YukiHookDataChannel` 时无法读取装载时的 `modulePackageName` 导致不能确定自身模块的包名。
**解决方案**
@@ -523,6 +548,7 @@ class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ❗错误的使用方法
// 构造方法已在 API 1.0.88 及以后的版本中设置为 private
YukiHookModulePrefs().getBoolean("test_data")
}
}
@@ -539,9 +565,7 @@ class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ❗为防止存在多个实例 - 不要这样使用
YukiHookModulePrefs(this).getBoolean("test_data")
// ✅ 推荐的使用方法
// ✅ 正确的使用方法
modulePrefs.getBoolean("test_data")
}
}
@@ -551,12 +575,33 @@ class MainActivity : AppCompatActivity() {
**异常原因**
在使用 `YukiHookModulePrefs``get``put` 方法时传入了不支持的存储类型。
在使用 `YukiHookModulePrefs``get``put` 方法或 `YukiHookDataChannel``wait``put` 方法时传入了不支持的存储类型。
**解决方案**
`YukiHookModulePrefs` 支持的类型只有 `String``Set<String>``Int``Float``Long``Boolean`,请传入支持的类型。
`YukiHookDataChannel` 支持的类型为 `Intent.putExtra` 限制的类型,请传入支持的类型。
!> `IllegalStateException` YukiHookDataChannel cannot used in zygote
**异常原因**
`loadZygote` 中使用了 `YukiHookDataChannel`
> 示例如下
```kotlin
loadZygote {
// 调用了此变量
dataChannel...
}
```
**解决方案**
`YukiHookDataChannel` 只能在 `loadSystem``loadApp` 中使用。
!> `IllegalStateException` HookParam Method args index must be >= 0
**异常原因**