Skip to content
This repository was archived by the owner on Jun 26, 2025. It is now read-only.

Commit ee1f5e3

Browse files
committed
update readme.md
1 parent 6b95f6b commit ee1f5e3

File tree

1 file changed

+7
-35
lines changed

1 file changed

+7
-35
lines changed

docs/readme.md

Lines changed: 7 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,18 @@
11
# Xpler
22

3-
4-
53
Xposed Kotlin 开发模板,更适合Kotlin编码风格。
64

7-
将本项目作为 `module` 引入项目,然后正常Xposed编写流程操作即可。
8-
95
`Xpler` 在原 `Xposed Api` 基础上进一步封装,使其支持Kotlin的DSL特性,更简洁的编写Hook逻辑。
106

117
注意:使用本模板,你仍需要手动创建和配置 `xposed_init``application meta-data`
128

13-
14-
159
## Xpler Api
1610

17-
作为原 `Xposed Api` 的封装项目,`Xpler` 提供了部分基本Api。
18-
11+
作为原 `Xposed Api` 的封装项目,`Xpler` 提供了部分基本Api。[![xpler](https://img.shields.io/github/v/release/ThatWorld/xpler)](https://central.sonatype.com/artifact/io.github.thatworld/xpler)
1912

13+
```txt
14+
implementation("io.github.thatworld:xpler:<version>")
15+
```
2016

2117
### HookEntrance.kt
2218

@@ -53,8 +49,6 @@ Xposed Kotlin 开发模板,更适合Kotlin编码风格。
5349

5450
而如果,你只是需要一个简单的Hook,并不需要复杂操作,可以试试 `DefaultHookStart` 接口。
5551

56-
57-
5852
- DefaultHookStart
5953

6054
```kotlin
@@ -70,8 +64,6 @@ Xposed Kotlin 开发模板,更适合Kotlin编码风格。
7064

7165
该接口提供的 `loadPackage` 方法就是原始的 `handleLoadPackage` 操作。
7266

73-
74-
7567
> 记得修改`xposed_init` 中的入口类,如上述的入口类名为:`com.example.module.HookInit`
7668
>
7769
> 还有,如果有混淆优化,记得保留 `HookInit` 入口类。
@@ -81,14 +73,10 @@ Xposed Kotlin 开发模板,更适合Kotlin编码风格。
8173
> -keep class com.example.module.HookInit
8274
> ```
8375
84-
85-
8676
### HookState.kt
8777
8878
该类汇总了框架状态,如果你想要判断模块是否生效、框架类型,可使用该类。
8979
90-
91-
9280
### KtXposedHelpers.kt
9381
9482
区别于原 `XposedHelpers` 该类提供了更符合Kotlin的编码风格:
@@ -173,8 +161,6 @@ Xposed Kotlin 开发模板,更适合Kotlin编码风格。
173161

174162
`onUnhook{hookMethod, callback -> ..}` 属于选写(可写/可不写)方法,当它被书写之后,该Hook 方法都会在执行一次之后被立即解开(即Hook逻辑至少被执行一次);或许你并未在 `onUnhook` 作用域内书写任何代码,但只要它出现了都会立即解开Hook,而 `KtXposedHelpers``onUnhook` 提供的作用域只是为了善后处理,仅此而已。
175163

176-
177-
178164
- `KtXposedHelpers` 的其他操作:
179165

180166
获取模块中的Layout:
@@ -191,11 +177,9 @@ Xposed Kotlin 开发模板,更适合Kotlin编码风格。
191177

192178
更多:`getString``getColor``getAnimation` 等,请自行阅读方法注释。
193179

194-
195-
196180
### KtXposedMore.kt
197181

198-
得益于Kotlin的扩展特性,`Xpler `在部分类型的基础上增加系列扩展,以下是常用Api示例:
182+
得益于Kotlin的扩展特性,`Xpler`在部分类型的基础上增加系列扩展,以下是常用Api示例:
199183

200184
-`XC_LoadPackage.LoadPackageParam` 类增加的扩展:
201185

@@ -225,18 +209,14 @@ Xposed Kotlin 开发模板,更适合Kotlin编码风格。
225209
val moduleDrawable = context.getModuleDrawable(R.drawable.module_background)
226210
```
227211

228-
-`Any `增加 `lpparam` 的扩展,可在任意对象中直接使用 `lpparam` 实例。
212+
-`Any`增加 `lpparam` 的扩展,可在任意对象中直接使用 `lpparam` 实例。
229213

230214
- 其他扩展,请自行阅读方法注释。
231215

232-
233-
234216
### XplerLog.kt
235217

236218
在模块开发中更具通俗的Log工具类,与Log类的调用基本一致,支持LogCat面板等级输出日志。
237219

238-
239-
240220
### HookEntity.kt
241221

242222
为了更合适通俗的编码方式,对于需要被Hook的目标类及其方法 `HookEntity` 支持以传统类定义的方式来书写Hook逻辑,下称`Hook逻辑类`
@@ -319,8 +299,6 @@ class HMainActivity : HookEntity(){
319299

320300
和前文一样 `Xpler` 提供的时机注解 `@..Before``@..After``@..Replace`,中的 `@..Replace` 仍然会替换对应目标方法的逻辑,而这时对于 `@..Before``@..After` 则不会生效。
321301

322-
323-
324302
## Live Template
325303

326304
当大量的模板代码在代码中重复出现时,你可以很好的运用 Android Studio 的 `Live Template` 来快速生成它们的基础代码。
@@ -329,12 +307,6 @@ class HMainActivity : HookEntity(){
329307

330308
![xpler_live_template](images/xpler_live_template.png)
331309

332-
333-
334310
你可以下载 [xpler-templates.zip](https://github.com/GangJust/xpler/tree/master/docs/assets),然后通过 Android Studio 菜单: File -> Manage IDE Settings -> Import Settings 导入该 `Live Template` 模板代码。
335311

336-
337-
338-
339-
340-
> Xpler 在 [FreedomPlus](https://github.com/GangJust/FreedomPlus) 中被很好的实践运用,如果你想要更多示例,请点击 [这里](https://github.com/GangJust/FreedomPlus/tree/master/core/src/main/java/io/github/fplus/core/hook)
312+
> Xpler 在 [FreedomPlus](https://github.com/GangJust/FreedomPlus) 中被很好的实践运用,如果你想要更多示例,请点击 [这里](https://github.com/GangJust/FreedomPlus/tree/master/core/src/main/java/io/github/fplus/core/hook)

0 commit comments

Comments
 (0)