阿里发力了,吸取了Instant Run,Buck,LayoutCast 三者的经验,freeLine的表现确实不错,经过笔者这些天的试毒,有一些体会,分享给大家。
具体介绍,一篇更好的介绍文章:http://mt.sohu.com/20160829/n466633496.shtml
0,freeline的接入:按照官方文档的顺序,在项目级别的 build.gradle 文件里添加依赖
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.antfortune.freeline:gradle:0.6.0'
}
}
module级的 build.gradle 文件里添加依赖
apply plugin: 'com.antfortune.freeline'
android {
...
freeline {
hack true
}
}
dependencies {
compile 'com.antfortune.freeline:runtime:0.6.0'
}
在application 类里面初始化freeline,注意这里的application 类一定是在清单文件里面注册的那个
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
FreelineCore.init(this);
}
}
1,首先安装python环境,freeLine不支持最新的3.5版本,所以我们仍需要安装2.7的Python,一定要注意!笔者就是在这里入了坑,装了最新的3.5版本,发现并不能使用,最后在https://github.com/alibaba/freeline/issues/71这个issues里才发现;
2,安装好以后,把安装目录导入到环境变量,比如:默认安装的是 C:\Python27 ,将其导入到path中。
最终效果,就是打开cmd,然后输入 python 命令,能进入python shell ,说明就 OK 了;
3,cmd命令行cd 进入到项目的根目录,比如我的是 I:\tbuluwc\branches\freeline 。
4,在这个目录下,输入编译命令 gradlew.bat initFreeline
等待编译,成功的结果应该是看到:
5,进入下一步,部署应用到手机,使用 python freeline.py 命令
成功会看到
有时候应用不会自动启动,需要手动打开(测试过,实际上应该是部署上了新的代码)
6,修改了代码,继续执行第5步即可。
7,某些时候,你想全部重新编译一次代码,可以使用 python freeline.py -f
来执行一次完全的编译。
8,freeLine的增量编译是和调试设备相关的,如果更换了测试机,需要重新走一次完整的编译流程。即执行python freeline.py -f
如果还是有问题,先执行 gradlew.bat initFreeline , 再执行 python freeline.py -f