简介
对于Android开发者来说,当Android项目开发到一定规模的时候,每次对项目进行修改之后的重新编译都仿佛是一场噩梦,其编译并重新部署的速度简直令人发指(虽然博主尚且没有开发过大型Android项目所以也没有这样的惨痛的经历,但就个人开发体验来说,每次修改代码后等待重新编译、部署、运行这一过程也是非常糟糕的体验)。而Freeline便是针对这一问题的福音。
Freeline是Android平台上的秒级编译方案,由蚂蚁聚宝Android开发,他可以充分利用缓存文件,在几秒内迅速地对代码的改动进行编译并部署到设备上,有效地减少了日常开发中的大量重新编译与安装的耗时。
有兴趣的读者可以访问官网查看详细说明。
上手
配置根目录下的build.gradle(Project)文件
在该文件的dependencies中添加freeline插件:
classpath 'com.antfortune.freeline:gradle:[version]'
其中version为Freeline当前最新的版本,查找最新版本可以点这里。
如:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.1'
classpath 'com.antfortune.freeline:gradle:0.8.7'
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
配置主module下的build.gradle(module)文件
在该文件中添加
apply plugin: 'com.antfortune.freeline'
配置python环境
由于Freeline是以python开发的,因此其依赖于python,故需要安装python(Freeline只支持2.7版本),并将其添加到环境变量,重新启动Android Studio,具体过程不在此阐述。
初始化Freeline
对于Windows用户,在Android Studio中的命令行(Terminal)输入
gradlew initFreeline
下载Freeline的相关以来,然后项目根目录下会生成freeline.py文件和freeline目录。
如果是国内的用户且下载速度较慢,可以输入
gradlew initFreeline -pMirror
通过国内镜像下载。
运行Freeline
打开Android模拟器或连接Androd设备后,在首次运行时输入
python freeline.py -f
(之后只用输入python freeline.py
)
-f选项代表强制执行clean操作,然后再执行build操作。输入后等待控制台输出:
即代表完成构建。
同时也可以通过Freeline插件来进行构建项目,通过File->Settings->Plugins->Browse repositories,输入Freeline安装插件。之后Android Studio工具栏会多出一个Freeline按钮:
点击即可构建项目。
体验
可以看到,刚刚第一次构建项目一共耗时21.1s,现在修改一下当前项目:
在当前界面添加一个退出按钮:
重新构建的时间只要0.5s:
需要注意的是如果仅仅修改资源文件,有时候会出现闪退的问题,博主在Github上查找了类似的问题,开发人员答复是:此问题不是闪退,而是activity在重建的时候调用了两次finish,把重建的activity的关掉了。(至于为什么会调用两次finish博主也不是很清楚)
所以如果仅仅修改资源文件,那就找个java文件打个空格保存一下也不是很麻烦…
结语
由于博主进行测试的项目规模有限,因此无法最大程度地展示出Freeline的神奇之处,但毫无疑问,使用Freeline可以大幅减少Android开发者的无意义等待时间。