Merge YukiHookXposedInitProxy to IYukiHookXposedInit

This commit is contained in:
2022-04-22 01:15:59 +08:00
parent a1ed86e6d3
commit ed6cae2add
17 changed files with 148 additions and 67 deletions

View File

@@ -120,7 +120,7 @@ class CustomHooker : YukiBaseHooker() {
> 示例如下
```kotlin
class HookEntryClass : YukiHookXposedInitProxy {
class HookEntryClass : IYukiHookXposedInit {
override fun onHook() = encase {
loadApp(name = "com.example.demo", ChildCustomHooker())
@@ -159,7 +159,7 @@ class FirstHooker : YukiBaseHooker() {
> 示例如下
```kotlin
class HookEntryClass : YukiHookXposedInitProxy {
class HookEntryClass : IYukiHookXposedInit {
override fun onHook() =
YukiHookAPI.encase(FirstHooker(), SecondHooker(), ThirdHooker() ...)
@@ -171,7 +171,7 @@ class HookEntryClass : YukiHookXposedInitProxy {
> 示例如下
```kotlin
class HookEntryClass : YukiHookXposedInitProxy {
class HookEntryClass : IYukiHookXposedInit {
override fun onHook() = encase(FirstHooker(), SecondHooker(), ThirdHooker() ...)
}

View File

@@ -20,12 +20,12 @@
**异常原因**
你尝试在继承 `YukiHookXposedInitProxy` 的 Hook 入口类的 `onInit` 方法中装载了 `encase` 方法。
你尝试在继承 `IYukiHookXposedInit` 的 Hook 入口类的 `onInit` 方法中装载了 `encase` 方法。
> 示例如下
```kotlin
class HookEntry : YukiHookXposedInitProxy {
class HookEntry : IYukiHookXposedInit {
override fun onInit() {
// ❗错误的使用方法
@@ -47,7 +47,7 @@ class HookEntry : YukiHookXposedInitProxy {
> 示例如下
```kotlin
class HookEntry : YukiHookXposedInitProxy {
class HookEntry : IYukiHookXposedInit {
override fun onInit() {
// 这里只能装载 configs 方法

View File

@@ -20,7 +20,7 @@ annotation class InjectYukiHookWithXposed(val sourcePath: String, val modulePack
`@InjectYukiHookWithXposed` 注解是一个标记模块 Hook 入口的重要注解。
!> `@InjectYukiHookWithXposed` 注解的 `Class` 必须实现 `YukiHookXposedInitProxy` 接口。
!> `@InjectYukiHookWithXposed` 注解的 `Class` 必须实现 `IYukiHookXposedInit` 接口。
!> 在你当前项目中的所有 `Class` 标记中**只能存在一次**,若**存在多个声明自动处理程序<u>会在编译时抛出异常</u>**,你可以自定义其相关参数。
@@ -74,10 +74,10 @@ annotation class InjectYukiHookWithXposed(val sourcePath: String, val modulePack
You set the customize module package name to "com.example.demo", please check for yourself if it is correct
```
### YukiHookXposedInitProxy 接口
### IYukiHookXposedInit 接口
```kotlin
interface YukiHookXposedInitProxy {
interface IYukiHookXposedInit {
fun onInit()
@@ -85,12 +85,12 @@ interface YukiHookXposedInitProxy {
}
```
`YukiHookXposedInitProxy` 接口为你的 `HookEntryClass` 必须实现的接口,这是你的模块开始 Hook 的起点。
`IYukiHookXposedInit` 接口为你的 `HookEntryClass` 必须实现的接口,这是你的模块开始 Hook 的起点。
若要了解更多可 [点击这里](api/document?id=yukihookxposedinitproxy-interface) 进行查看。
若要了解更多可 [点击这里](api/document?id=iyukihookxposedinit-interface) 进行查看。
当你的模块被 Xposed 装载后,`onHook` 方法将会被回调,你需要在此方法中开始使用 `YukiHookAPI`
> 基本的调用流程为 `_YukiHookXposedInit.handleLoadPackage` → `HookEntryClass.onInit` → `HookEntryClass.onHook` → `YukiHookAPI.onXposedLoaded`
> 基本的调用流程为 `YukiHookInjectXposedInitClass.handleLoadPackage` → `HookEntryClass.onInit` → `HookEntryClass.onHook` → `YukiHookAPI.onXposedLoaded`
详情请参考 [API 基本配置](config/api-example)。