Freeline比instant-run更好用的Android增量编译方案及常见问题

Freeline 是一款 Android 平台上的秒级编译方案,能够显著地提高 Android 工程的编译速度。与Android Studio官方提供的InstantRun一样,都是增量编译,但是Instant Run有很多的局限性。必须Android5.0以上系统才能使用,而且经常挂掉导致重新全量编译。

接入方式:

方式一:插件化安装Preferences → Plugins → Browse repositories,搜索“Freeline”,安装。第一次点击Freeline图标会自动检测是否安装了Freeline点击确定,插件会自动为你修改配置文件,并自动安装Freeline依赖。

方式二:在project级的build.gradle文件中加入

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.antfortune.freeline:gradle:x.x.x'
    }
}
在主moudle 的build.gradle中添加

apply plugin:'com.antfortune.freeline'

如果项目中本身添加了buildTypes和productFlavors的话,需要添加

buildTypes {
        freeline {
            hack true
            productFlavor 'dev'
        }
    }
其中'dev'应该是你项目的渠道名,也就是productFlavors中的渠道,注意:这个渠道必须是debug模式下的。不然会出现

的提示。

最后,下载Freeline的python和二进制信赖,

  • Windows[CMD]: gradlew initFreeline
  • Linux/Mac: ./gradlew initFreeline

Mac下使用./gradlew时,需要配置用户级环境变量(.bash_profile),打开并编辑

export GRADLE_HOME=/Applications/Android\ Studio.app/Contents/gradle/gradle-2.14.1(个人电脑下的路径)

export PATH=${PATH}:${GRADLE_HOME}/bin

如果提示找不到命令,可能是几个原因:

1.路径错误。

2.没有执行source .bash_profile使配置生效。

3..bash_profile文件中包含其它字符影响命令的执行,检查文件删除不必要的字符。

如果在执行过程中如果出现:

Unzipping XXX/.gradle/wrapper/dists/gradle-2.14-bin/76oc0mnc3ieqtsukq90mp0rxk/gradle-2.14-bin.zip to /XXX/.gradle/wrapper/dists/gradle-2.14-bin/76oc0mnc3ieqtsukq90mp0rxk 
Exception in thread “main” Java.util.zip.ZipException: error in opening zip file 

类似解压出错的信息,很可能是你的gradle-2.14.1-all文件出问题了,重新下载一份放到目录下,注意不要解压(Mac下载后会自动 解压,需要设置safari)。

以上问题解决之后,执行:python freeline.py (python freeline.py -f 强制进行全量编译)差不多就可以运行起来了,第一次编译稍微慢一些,之后编译速度还是相当快的。


如果是应用卸载了重新安装也是和第一次一样会相对慢一些。 如果应用是在打开的情况下编译不会重启应用而改变页面元素,很赞!

有其它的问题也可以到Freeline的官网查看:Freeline中文文档








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值