进一步提升AS编译速度的Freeline尝鲜

今早看了来自StormZhang的微信公众号的文章——Android 秒级编译 Freeline,就决定来尝尝鲜

相关链接

  1. github地址
  2. 中文README
  3. 微信公众号的文章
  4. Python 2.7.12 下载
  5. freeline.zip

正常流程:

  1. gradlew initFreeline -Pmirror
  1. 在Android Studio中,通过以下路径Preferences → Plugins → Browse repositories,搜索“freeline”,并安装。
  2. 直接点击Run Freeline的按钮

Sample Usage

cd freeline/sample
./gradlew initFreeline
python freeline.py```

可惜我每次接触新东西都要费一番周折

我的安装过程

首先需要安装Python,此处务必使用Python2.+版本,文章中没有指明我就顺理成章地踩到了这个坑
另外Python安装过程可以设置自动添加到Path,真是贴心。

再到AS项目中

配置project-level的build.gradle,加入freeline-gradle的依赖:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.antfortune.freeline:gradle:0.8.3'
    }
}

然后,在你的主module的build.gradle中,应用freeline插件的依赖:

apply plugin: 'com.antfortune.freeline'
android { ...}

一切都感觉很自然直到在Terminal中运行了gradlew initFreeline
遇到了issues/25
公司网络问题导致freeline.zip无法成功下载,只好告别gradlew initFreeline命令

解决方法

借助以下两个issue
issues/345
issues/348
手动下载了freeline.zip,将freeline、freeline_core、freeline.py解压到项目根目录下,当然也别忘了设置JAVA_HOME
依次进行以下操作

  1. clean project
  2. gradlew checkBeforeCleanBuild
  3. freeline.py -f

另外还有些注意事项是我有确切体会的:

  1. 第一次增量资源编译的时候有点慢,之后的编译就快了,这很正常;
  1. 不支持多设备同时连接,也就是说不管是模拟器还是真机,只允许同时一台设备连接,否则会失败;
  2. 不支持删除带 id 的资源,否则可能导致 aapt 编译出错;
  3. 如果你的项目又想用 Freeline,又想使用 Gradle,记得执行 Gradle 脚本之前先执行 ./gradlew clean,否则会编译失败;
  4. 不要忘记把产生的文件加入到.gitignore中去,环境还是每个人自行配置来得好,保持工程的纯净也是很重要的;
  5. 最后一点也是最重要一点,通过Freeline应用更改不一定会自动启动被更新的应用[二哈]。

你可能感兴趣的:(进一步提升AS编译速度的Freeline尝鲜)