mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-04 17:55:24 +08:00
Merge document file
This commit is contained in:
@@ -20,8 +20,16 @@
|
||||
|
||||
> 这里收录了 `YukiHookAPI` 可能会在后期添加的功能。
|
||||
|
||||
### 支持独立使用的 Lite 版本
|
||||
|
||||
**计划状态:待定**
|
||||
|
||||
目前 API 只支持通过自动处理程序绑定到 `xposed_init`,若您不喜欢自动处理程序,一定要自己实现模块装载入口,未来会按照需求人数推出仅有 API 功能的 Lite 版本。
|
||||
|
||||
### 支持资源 Hook 和注入系统框架
|
||||
|
||||
**计划状态:近期**
|
||||
|
||||
目前的 API 仅支持 APP 内的功能 Hook,并不支持 `Resource` 的替换以及 Hook 系统框架。
|
||||
|
||||
API 还未实现对 `handleInitPackageResources` 和 `initZygote` 的调用。
|
||||
|
@@ -47,8 +47,8 @@ class MyApplication: ModuleApplication() {
|
||||
|
||||
```xml
|
||||
<application
|
||||
android:name="com.demo.MyApplication"
|
||||
...>
|
||||
android:name="com.demo.MyApplication"
|
||||
...>
|
||||
```
|
||||
|
||||
如果你不需要自定义 `Application` 可以直接将 `ModuleApplication` 设置到 `AndroidManifest.xml` 的 `application` 标签中。
|
||||
@@ -57,8 +57,8 @@ class MyApplication: ModuleApplication() {
|
||||
|
||||
```xml
|
||||
<application
|
||||
android:name="com.highcapable.yukihookapi.hook.xposed.application.ModuleApplication"
|
||||
...>
|
||||
android:name="com.highcapable.yukihookapi.hook.xposed.application.ModuleApplication"
|
||||
...>
|
||||
```
|
||||
|
||||
### appContext [field]
|
||||
|
@@ -28,6 +28,20 @@ class YukiHookModulePrefs(private val context: Context?)
|
||||
|
||||
若你正在使用 `PreferenceFragmentCompat`,请迁移到 `ModulePreferenceFragment` 以适配上述功能特性。
|
||||
|
||||
**可选配置**
|
||||
|
||||
若你不想将你的模块的 `xposedminversion` 最低设置为 `93`,你可以在 `AndroidManifest.xml` 中添加 `xposedsharedprefs` 来实现支持。
|
||||
|
||||
详见 [New XSharedPreferences](https://github.com/LSPosed/LSPosed/wiki/New-XSharedPreferences#for-the-module)。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```xml
|
||||
<meta-data
|
||||
android:name="xposedsharedprefs"
|
||||
android:value="true"/>
|
||||
```
|
||||
|
||||
### isRunInNewXShareMode [field]
|
||||
|
||||
```kotlin
|
||||
@@ -40,7 +54,7 @@ val isRunInNewXShareMode: Boolean
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 获取 `YukiHookModulePrefs ` 是否正处于 EdXposed/LSPosed 的最高权限运行。
|
||||
> 获取 `YukiHookModulePrefs` 是否正处于 EdXposed/LSPosed 的最高权限运行。
|
||||
|
||||
前提条件为当前 Xposed 模块已被激活。
|
||||
|
||||
|
@@ -86,6 +86,11 @@ dependencies {
|
||||
<meta-data
|
||||
android:name="xposedminversion"
|
||||
android:value="93" />
|
||||
|
||||
<!-- 可选:配置支持 New XSharePrefs 可无需调整 xposedminversion 为 93 -->
|
||||
<meta-data
|
||||
android:name="xposedsharedprefs"
|
||||
android:value="true"/>
|
||||
```
|
||||
|
||||
在你的项目中创建一个 Hook 入口类,继承于 `YukiHookXposedInitProxy` 并加入注解 `@InjectYukiHookWithXposed`。
|
||||
|
@@ -770,7 +770,7 @@ loggerE(msg = "This is an error")
|
||||
// 假设这就是被抛出的异常
|
||||
val e = Throwable(...)
|
||||
// 打印日志
|
||||
loggerE(msg = "This is an error", throwable = e)
|
||||
loggerE(msg = "This is an error", e = e)
|
||||
```
|
||||
|
||||
打印的结果为如下所示。
|
||||
@@ -805,6 +805,10 @@ java.lang.Throwable
|
||||
|
||||
原生的 `Xposed` 给我们提供了一个 `XSharedPreferences` 用于读取模块的 `Sp` 数据。
|
||||
|
||||
### 在 Activity 中使用
|
||||
|
||||
> 这里描述了在 `Activity` 中装载 `YukiHookModulePrefs` 的场景。
|
||||
|
||||
通常情况下我们可以这样在 Hook 内对其进行初始化。
|
||||
|
||||
> 示例如下
|
||||
@@ -859,4 +863,14 @@ val testName = prefs.name("specify_file_name").getString("test_name", "default_v
|
||||
|
||||
若你的项目中有大量的固定数据需要存储和读取,推荐使用 `PrefsData` 来创建模板,详细用法可参考 [PrefsData](api/document?id=prefsdata-class)。
|
||||
|
||||
更多用法可参考 [YukiHookModulePrefs](api/document?id=yukihookmoduleprefs-class)。
|
||||
更多用法可参考 [YukiHookModulePrefs](api/document?id=yukihookmoduleprefs-class)。
|
||||
|
||||
### 在 PreferenceFragment 中使用
|
||||
|
||||
> 这里描述了在 `PreferenceFragment` 中装载 `YukiHookModulePrefs` 的场景。
|
||||
|
||||
若你的模块使用了 `PreferenceFragmentCompat`,你现在可以将其继承类开始迁移到 `ModulePreferenceFragment`。
|
||||
|
||||
!> 你必须继承 `ModulePreferenceFragment` 才能实现 `YukiHookModulePrefs` 的模块存储功能。
|
||||
|
||||
详情请参考 [ModulePreferenceFragment](api/document?id=modulepreferencefragment-class)。
|
Reference in New Issue
Block a user