- 背景
- 研发过程中,有些场景需要来回切换,切换意味着配置云控或者本地修改代码重新打包
- 本地修改代码,有可能造成测试代码提交到服务器,引发严重后果
- 配置云控,对于不熟悉的研发或者云控配置数量多,可能会浪费更长时间
- 适用场景
- VIP和非VIP切换
- 首页四宫格和六宫格的切换等
- 使用方式
- build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18//根目录
buildscript {
dependencies {
classpath 'com.github.JuneLeo.mock-method:mock-method-plugin:1.1.6'
}
}
// app 项目
apply plugin: 'MockPlugin'
mock {
packages = [
'com.mock.sample' //mock方法的包名集合
]
dependencyEnable = true //是否使用gradle中的依赖管理,默认使用
}
dependencies {
implementation 'com.github.JuneLeo.mock-method:mock-method-android:1.1.6'
} - @MockMethod (基本数据类型和String,values集合用逗号隔开)
@MockMethod(defaultValue = "修改为a", values = "修改为a,修改为b") public String a() { return "我是a方法的返回值 - 设置后点击我改变值"; }
- 控制返回值界面
- build.gradle
- 思考
- Mock方法:客户端可以直接修改返回值
- 简单快捷:注解,1-收集数据,2-注入代码
- 收集数据时机,高效收集
- 注入代码时机,注入框架选择
- 原理
- javac task :根据注解自动生成类,类中保存注解数据信息
- Transform task :class -> dex 注入代码