Merge code to inline method, improve execution efficiency

This commit is contained in:
2022-04-25 02:37:22 +08:00
parent 44c3401831
commit 4131772c12
24 changed files with 418 additions and 181 deletions

View File

@@ -37,13 +37,17 @@ var paramCount: Int
### modifiers [method]
```kotlin
fun modifiers(initiate: ModifierRules.() -> Unit): IndexTypeCondition
inline fun modifiers(initiate: ModifierRules.() -> Unit): IndexTypeCondition
```
**变更记录**
`v1.0.67` `新增`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 设置 `Constructor` 标识符筛选条件。
@@ -125,13 +129,17 @@ inner class RemedyPlan
#### constructor [method]
```kotlin
fun constructor(initiate: ConstructorFinder.() -> Unit)
inline fun constructor(initiate: ConstructorFinder.() -> Unit)
```
**变更记录**
`v1.0` `添加`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 创建需要重新查找的 `Constructor`。
@@ -183,7 +191,7 @@ constructor {
### Result [class]
```kotlin
inner class Result(internal val isNoSuch: Boolean, private val e: Throwable?)
inner class Result(internal val isNoSuch: Boolean, internal val e: Throwable?)
```
**变更记录**
@@ -197,13 +205,17 @@ inner class Result(internal val isNoSuch: Boolean, private val e: Throwable?)
#### result [method]
```kotlin
fun result(initiate: Result.() -> Unit): Result
inline fun result(initiate: Result.() -> Unit): Result
```
**变更记录**
`v1.0` `添加`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 创建监听结果事件方法体。
@@ -307,13 +319,17 @@ fun wait(initiate: Instance.() -> Unit)
#### remedys [method]
```kotlin
fun remedys(initiate: RemedyPlan.() -> Unit): Result
inline fun remedys(initiate: RemedyPlan.() -> Unit): Result
```
**变更记录**
`v1.0` `添加`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 创建构造方法重查找功能。
@@ -342,13 +358,17 @@ constructor {
#### onNoSuchConstructor [method]
```kotlin
fun onNoSuchConstructor(initiate: (Throwable) -> Unit): Result
inline fun onNoSuchConstructor(initiate: (Throwable) -> Unit): Result
```
**变更记录**
`v1.0` `添加`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 监听找不到构造方法时。

View File

@@ -63,13 +63,17 @@ var type: Any?
### modifiers [method]
```kotlin
fun modifiers(initiate: ModifierRules.() -> Unit): IndexTypeCondition
inline fun modifiers(initiate: ModifierRules.() -> Unit): IndexTypeCondition
```
**变更记录**
`v1.0.67` `新增`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 设置 `Field` 标识符筛选条件。
@@ -145,13 +149,17 @@ inner class Result(internal val isNoSuch: Boolean, private val e: Throwable?)
#### result [method]
```kotlin
fun result(initiate: Result.() -> Unit): Result
inline fun result(initiate: Result.() -> Unit): Result
```
**变更记录**
`v1.0` `添加`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 创建监听结果事件方法体。

View File

@@ -71,13 +71,17 @@ var returnType: Any?
### modifiers [method]
```kotlin
fun modifiers(initiate: ModifierRules.() -> Unit): IndexTypeCondition
inline fun modifiers(initiate: ModifierRules.() -> Unit): IndexTypeCondition
```
**变更记录**
`v1.0.67` `新增`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 设置 `Method` 标识符筛选条件。
@@ -209,13 +213,17 @@ inner class RemedyPlan
#### method [method]
```kotlin
fun method(initiate: MethodFinder.() -> Unit): Result
inline fun method(initiate: MethodFinder.() -> Unit): Result
```
**变更记录**
`v1.0` `添加`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 创建需要重新查找的 `Method`。
@@ -281,13 +289,17 @@ inner class Result(internal val isNoSuch: Boolean, private val e: Throwable?)
#### result [method]
```kotlin
fun result(initiate: Result.() -> Unit): Result
inline fun result(initiate: Result.() -> Unit): Result
```
**变更记录**
`v1.0` `添加`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 创建监听结果事件方法体。
@@ -381,13 +393,17 @@ fun wait(instance: Any?, initiate: Instance.() -> Unit)
#### remedys [method]
```kotlin
fun remedys(initiate: RemedyPlan.() -> Unit): Result
inline fun remedys(initiate: RemedyPlan.() -> Unit): Result
```
**变更记录**
`v1.0` `添加`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 创建方法重查找功能。
@@ -416,13 +432,17 @@ method {
#### onNoSuchMethod [method]
```kotlin
fun onNoSuchMethod(initiate: (Throwable) -> Unit): Result
inline fun onNoSuchMethod(initiate: (Throwable) -> Unit): Result
```
**变更记录**
`v1.0` `添加`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 监听找不到方法时。

View File

@@ -136,6 +136,10 @@ fun prefs(name: String): YukiHookModulePrefs
`v1.0` `添加`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 获得当前使用的存取数据对象缓存实例。
@@ -145,7 +149,7 @@ fun prefs(name: String): YukiHookModulePrefs
### loadApp [method]
```kotlin
fun loadApp(name: String, initiate: PackageParam.() -> Unit)
inline fun loadApp(name: String, initiate: PackageParam.() -> Unit)
```
```kotlin
@@ -156,6 +160,10 @@ fun loadApp(name: String, hooker: YukiBaseHooker)
`v1.0` `添加`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 装载并 Hook 指定包名的 APP。
@@ -165,7 +173,7 @@ fun loadApp(name: String, hooker: YukiBaseHooker)
### withProcess [method]
```kotlin
fun withProcess(name: String, initiate: PackageParam.() -> Unit)
inline fun withProcess(name: String, initiate: PackageParam.() -> Unit)
```
```kotlin
@@ -323,19 +331,19 @@ val variousClass = VariousClass("com.example.demo.DemoClass1", "com.example.demo
### hook [method]
```kotlin
fun String.hook(isUseAppClassLoader: Boolean, initiate: YukiHookCreater.() -> Unit): YukiHookCreater.Result
inline fun String.hook(isUseAppClassLoader: Boolean, initiate: YukiHookCreater.() -> Unit): YukiHookCreater.Result
```
```kotlin
fun Class<*>.hook(isUseAppClassLoader: Boolean, initiate: YukiHookCreater.() -> Unit): YukiHookCreater.Result
inline fun Class<*>.hook(isUseAppClassLoader: Boolean, initiate: YukiHookCreater.() -> Unit): YukiHookCreater.Result
```
```kotlin
fun VariousClass.hook(isUseAppClassLoader: Boolean, initiate: YukiHookCreater.() -> Unit): YukiHookCreater.Result
inline fun VariousClass.hook(isUseAppClassLoader: Boolean, initiate: YukiHookCreater.() -> Unit): YukiHookCreater.Result
```
```kotlin
fun HookClass.hook(isUseAppClassLoader: Boolean, initiate: YukiHookCreater.() -> Unit): YukiHookCreater.Result
inline fun HookClass.hook(isUseAppClassLoader: Boolean, initiate: YukiHookCreater.() -> Unit): YukiHookCreater.Result
```
**变更记录**
@@ -358,6 +366,10 @@ fun HookClass.hook(isUseAppClassLoader: Boolean, initiate: YukiHookCreater.() ->
新增 `isUseAppClassLoader` 参数
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 这是一切 Hook 的入口创建方法Hook 方法、构造类。
@@ -427,6 +439,7 @@ findClass("com.example.demo.DemoClass1", "com.example.demo.DemoClass2").hook {
> 示例如下
```kotlin
// 这里的做法标识了 hook 不会再将 YourClass 重新与当前 appClassLoader 绑定
YourClass.hook(isUseAppClassLoader = false) {
// Your code here.
}

View File

@@ -113,7 +113,7 @@ fun String.hasClass(loader: ClassLoader?): Boolean
### hasField [method]
```kotlin
fun Class<*>.hasField(initiate: FieldFinder.() -> Unit): Boolean
inline fun Class<*>.hasField(initiate: FieldFinder.() -> Unit): Boolean
```
**变更记录**
@@ -124,6 +124,10 @@ fun Class<*>.hasField(initiate: FieldFinder.() -> Unit): Boolean
合并到 `FieldFinder`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 查找变量是否存在。
@@ -131,7 +135,7 @@ fun Class<*>.hasField(initiate: FieldFinder.() -> Unit): Boolean
### hasMethod [method]
```kotlin
fun Class<*>.hasMethod(initiate: MethodFinder.() -> Unit): Boolean
inline fun Class<*>.hasMethod(initiate: MethodFinder.() -> Unit): Boolean
```
**变更记录**
@@ -146,6 +150,10 @@ fun Class<*>.hasMethod(initiate: MethodFinder.() -> Unit): Boolean
合并到 `MethodFinder`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 查找方法是否存在。
@@ -153,7 +161,7 @@ fun Class<*>.hasMethod(initiate: MethodFinder.() -> Unit): Boolean
### hasConstructor [method]
```kotlin
fun Class<*>.hasConstructor(initiate: ConstructorFinder.() -> Unit): Boolean
inline fun Class<*>.hasConstructor(initiate: ConstructorFinder.() -> Unit): Boolean
```
**变更记录**
@@ -164,6 +172,10 @@ fun Class<*>.hasConstructor(initiate: ConstructorFinder.() -> Unit): Boolean
合并到 `ConstructorFinder`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 查找构造方法是否存在。
@@ -171,13 +183,17 @@ fun Class<*>.hasConstructor(initiate: ConstructorFinder.() -> Unit): Boolean
### hasModifiers [method]
```kotlin
fun Member.hasModifiers(initiate: ModifierRules.() -> Unit): Boolean
inline fun Member.hasModifiers(initiate: ModifierRules.() -> Unit): Boolean
```
**变更记录**
`v1.0.67` `新增`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 查询 `Member` 中匹配的描述符。
@@ -217,13 +233,17 @@ fun Member.hasModifiers(initiate: ModifierRules.() -> Unit): Boolean
### field [method]
```kotlin
fun Class<*>.field(initiate: FieldFinder.() -> Unit): FieldFinder.Result
inline fun Class<*>.field(initiate: FieldFinder.() -> Unit): FieldFinder.Result
```
**变更记录**
`v1.0.2` `新增`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 查找并得到变量。
@@ -231,7 +251,7 @@ fun Class<*>.field(initiate: FieldFinder.() -> Unit): FieldFinder.Result
### method [method]
```kotlin
fun Class<*>.method(initiate: MethodFinder.() -> Unit): MethodFinder.Result
inline fun Class<*>.method(initiate: MethodFinder.() -> Unit): MethodFinder.Result
```
**变更记录**
@@ -246,7 +266,11 @@ fun Class<*>.method(initiate: MethodFinder.() -> Unit): MethodFinder.Result
`v1.0.2` `修改`
合并到 `MethodFinder` 方法体
合并到 `MethodFinder` 方法体
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
@@ -255,7 +279,7 @@ fun Class<*>.method(initiate: MethodFinder.() -> Unit): MethodFinder.Result
### constructor [method]
```kotlin
fun Class<*>.constructor(initiate: ConstructorFinder.() -> Unit): ConstructorFinder.Result
inline fun Class<*>.constructor(initiate: ConstructorFinder.() -> Unit): ConstructorFinder.Result
```
**变更记录**
@@ -268,7 +292,11 @@ fun Class<*>.constructor(initiate: ConstructorFinder.() -> Unit): ConstructorFin
`v1.0.2` `修改`
合并到 `ConstructorFinder` 方法体
合并到 `ConstructorFinder` 方法体
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
@@ -312,44 +340,56 @@ inline fun <reified T : Any> T.current(initiate: CurrentClass.() -> Unit): T
> 获得当前实例的类操作对象。
### buildOf [method]
```kotlin
fun <T> Class<*>.buildOf(vararg param: Any?, initiate: ConstructorFinder.() -> Unit): T?
```
**变更记录**
`v1.0.70` `新增`
**功能描述**
> 通过构造方法创建新实例,指定类型 `T`。
### buildOfAny [method]
```kotlin
fun Class<*>.buildOfAny(vararg param: Any?, initiate: ConstructorFinder.() -> Unit): Any?
inline fun Class<*>.buildOfAny(vararg param: Any?, initiate: ConstructorFinder.() -> Unit): Any?
```
**变更记录**
`v1.0.70` `新增`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 通过构造方法创建新实例,任意类型 `Any`。
### allMethods [method]
### buildOf [method]
```kotlin
fun Class<*>.allMethods(callback: (index: Int, method: Method) -> Unit)
inline fun <T> Class<*>.buildOf(vararg param: Any?, initiate: ConstructorFinder.() -> Unit): T?
```
**变更记录**
`v1.0.70` `新增`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 通过构造方法创建新实例,指定类型 `T`。
### allMethods [method]
```kotlin
inline fun Class<*>.allMethods(callback: (index: Int, method: Method) -> Unit)
```
**变更记录**
`v1.0.70` `新增`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 遍历当前类中的所有方法。
@@ -357,13 +397,17 @@ fun Class<*>.allMethods(callback: (index: Int, method: Method) -> Unit)
### allConstructors [method]
```kotlin
fun Class<*>.allConstructors(callback: (index: Int, constructor: Constructor<*>) -> Unit)
inline fun Class<*>.allConstructors(callback: (index: Int, constructor: Constructor<*>) -> Unit)
```
**变更记录**
`v1.0.70` `新增`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 遍历当前类中的所有构造方法。
@@ -371,13 +415,17 @@ fun Class<*>.allConstructors(callback: (index: Int, constructor: Constructor<*>)
### allFields [method]
```kotlin
fun Class<*>.allFields(callback: (index: Int, field: Field) -> Unit)
inline fun Class<*>.allFields(callback: (index: Int, field: Field) -> Unit)
```
**变更记录**
`v1.0.70` `新增`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 遍历当前类中的所有变量。

View File

@@ -162,6 +162,10 @@ var isEnableMemberCache: Boolean
`v1.0.68` `新增`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 是否启用 `Member` 缓存功能。
@@ -179,7 +183,7 @@ var isEnableMemberCache: Boolean
### configs [method]
```kotlin
fun configs(initiate: Configs.() -> Unit)
inline fun configs(initiate: Configs.() -> Unit)
```
**变更记录**

View File

@@ -1,13 +1,17 @@
## YukiHookCreater [class]
```kotlin
class YukiHookCreater(private val packageParam: PackageParam, private val hookClass: HookClass)
class YukiHookCreater(private val packageParam: PackageParam, internal val hookClass: HookClass)
```
**变更记录**
`v1.0` `添加`
`v1.0.80` `修改`
`hookClass` 进行 inline 处理
**功能描述**
> `YukiHookAPI` 核心 Hook 实现类。
@@ -35,13 +39,17 @@ val instanceClass: Class<*>
### injectMember [method]
```kotlin
fun injectMember(tag: String, initiate: MemberHookCreater.() -> Unit): MemberHookCreater.Result
inline fun injectMember(tag: String, initiate: MemberHookCreater.() -> Unit): MemberHookCreater.Result
```
**变更记录**
`v1.0` `添加`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 注入要 Hook 的方法、构造类。
@@ -175,13 +183,17 @@ injectMember {
#### method [method]
```kotlin
fun method(initiate: MethodFinder.() -> Unit): MethodFinder.Result
inline fun method(initiate: MethodFinder.() -> Unit): MethodFinder.Result
```
**变更记录**
`v1.0` `添加`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 查找当前 `Class` 需要 Hook 的方法。
@@ -207,13 +219,17 @@ injectMember {
#### constructor [method]
```kotlin
fun constructor(initiate: ConstructorFinder.() -> Unit): ConstructorFinder.Result
inline fun constructor(initiate: ConstructorFinder.() -> Unit): ConstructorFinder.Result
```
**变更记录**
`v1.0` `添加`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 查找当前 `Class` 需要 Hook 的构造方法。
@@ -235,13 +251,17 @@ injectMember {
#### field [method]
```kotlin
fun HookParam.field(initiate: FieldFinder.() -> Unit): FieldFinder.Result
inline fun HookParam.field(initiate: FieldFinder.() -> Unit): FieldFinder.Result
```
**变更记录**
`v1.0` `添加`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 使用当前 `hookClass` 查找并得到 `Field`。
@@ -271,13 +291,17 @@ injectMember {
#### method [method]
```kotlin
fun HookParam.method(initiate: MethodFinder.() -> Unit): MethodFinder.Result
inline fun HookParam.method(initiate: MethodFinder.() -> Unit): MethodFinder.Result
```
**变更记录**
`v1.0.2` `添加`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 使用当前 `hookClass` 查找并得到方法。
@@ -285,13 +309,17 @@ fun HookParam.method(initiate: MethodFinder.() -> Unit): MethodFinder.Result
#### constructor [method]
```kotlin
fun HookParam.constructor(initiate: ConstructorFinder.() -> Unit): ConstructorFinder.Result
inline fun HookParam.constructor(initiate: ConstructorFinder.() -> Unit): ConstructorFinder.Result
```
**变更记录**
`v1.0.2` `添加`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 使用当前 `hookClass` 查找并得到构造方法。
@@ -431,7 +459,7 @@ inner class Result
##### result [method]
```kotlin
fun result(initiate: Result.() -> Unit): Result
inline fun result(initiate: Result.() -> Unit): Result
```
**变更记录**
@@ -442,6 +470,10 @@ fun result(initiate: Result.() -> Unit): Result
~~`failures`~~ 修改为 `result`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 创建监听失败事件方法体。
@@ -466,13 +498,17 @@ injectMember {
##### by [method]
```kotlin
fun by(initiate: () -> Boolean): Result
inline fun by(initiate: () -> Boolean): Result
```
**变更记录**
`v1.0.5` `新增`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 添加执行 Hook 需要满足的条件,不满足条件将直接停止 Hook。
@@ -622,7 +658,7 @@ inner class Result
#### result [method]
```kotlin
fun result(initiate: Result.() -> Unit): Result
inline fun result(initiate: Result.() -> Unit): Result
```
**变更记录**
@@ -633,6 +669,10 @@ fun result(initiate: Result.() -> Unit): Result
~~`failures`~~ 修改为 `result`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 创建监听事件方法体。
@@ -640,13 +680,17 @@ fun result(initiate: Result.() -> Unit): Result
#### by [method]
```kotlin
fun by(initiate: () -> Boolean): Result
inline fun by(initiate: () -> Boolean): Result
```
**变更记录**
`v1.0.5` `新增`
`v1.0.80` `修改`
将方法体进行 inline
**功能描述**
> 添加执行 Hook 需要满足的条件,不满足条件将直接停止 Hook。

View File

@@ -4,6 +4,10 @@
`v1.0` `添加`
`v1.0.80` `修改`
合并到 `IYukiHookXposedInit`,将方法体进行 inline
**功能描述**
> 这是 `YukiHookAPI` 相关 `lambda` 方法的封装类以及部分 API 用法。
@@ -11,13 +15,17 @@
### configs [method]
```kotlin
fun IYukiHookXposedInit.configs(initiate: YukiHookAPI.Configs.() -> Unit)
inline fun IYukiHookXposedInit.configs(initiate: YukiHookAPI.Configs.() -> Unit)
```
**变更记录**
`v1.0.1` `新增`
`v1.0.80` `修改`
合并到 `IYukiHookXposedInit`
**功能描述**
> 在 `IYukiHookXposedInit` 中配置 `Configs`。
@@ -36,6 +44,10 @@ fun IYukiHookXposedInit.encase(vararg hooker: YukiBaseHooker)
`v1.0` `添加`
`v1.0.80` `修改`
合并到 `IYukiHookXposedInit`
**功能描述**
> 在 `IYukiHookXposedInit` 中装载 `YukiHookAPI`。