Kotlin 是一门十分简洁的静态类型语言,同时拥有非常优秀的扩展性,与 Java 相比,使用 Kotlin 进行 Android 开发能有效减少代码量。下面以一个常用的 User 类为例,简单展示下 Kotlin 的简洁性:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class User {

private int id;
private String name;

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

@Override
public String toString() {
return "User{id=" + id + ", name='" + name + "'}";
}
}
1
2
3
4
5
data class User(val id: Int, val name: String) {
override fun toString(): String {
return "Users(id=$id, name='$name')"
}
}

  在 Xposed 模块开发中,如果能够利用 Kotlin 的简洁性,自然能够极大地加快开发速度,让我们把工作中心放到整理逻辑上来,而不是与各种反射斗智斗勇。有人同样也注意到了这个问题,并制定了一套解决方案,比如 KyuubiRan 的 EzXHelper,然而用起来总感觉不太顺手,遂决定自己开发一套 Xposed Hook 增强 API

  首先创建一个空项目(No Activity),然后新建 Module,注意选择类型为 Android Library,将我们的库代码写在这里,然后在模块的 build.gradle 中添加/合并:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
plugins {
id 'maven-publish'
}

afterEvaluate {
publishing {
publications {
release(MavenPublication) {
from components.release
groupId = 'com.github.mufanc.easyhook'
artifactId = 'mufanc'
version = '0.3'
}
}
}
}

  将代码发布到 GitHub,在 Release 页发布一个新的版本,标签为当前版本号:

  现在前往 jitpack.io,将你的仓库地址粘贴到输入框,然后点击右侧的 Look up 按钮:

  在下方选择刚刚发布的版本,点击 Get it 即可开始编译

参考