配置Freeline,一秒编译android程序
wenzhuw
8年前
<p>fackbook除了buck之后,一直期待在windows上有可以加速编译的工具,后来阿里出了freeline,第一次编译比较耗时,以后每次增量编译,基本是秒级编译。于是笔者也去整了一下,当然折腾的唯一理由是它支持windows。。。目前还在使用中,以后如果放弃再来补充。</p> <p>配置3部曲如下:</p> <p><strong>1.安装python环境</strong></p> <p><strong>2.配置项目gradle文件,Application中实例化FreelineCore类</strong></p> <p><strong>3.配置&编译</strong></p> <p><strong>1.安装Python,并将其加入环境变量</strong></p> <p>链接:https://www.python.org/downloads/</p> <p>注意:freeline只支持2.7.X版本</p> <p>参考:</p> <p>PATH结尾加入: ;C:\Python27</p> <p>运行python -v</p> <p>重启电脑后才能在android studio中运行python命令,不嫌弃麻烦的也可以自己找到对应的服务手动启动。</p> <p><strong>2.配置gradle</strong></p> <p>root :</p> <p>dependencies {</p> <p>classpath ‘com.android.tools.build:gradle:2.1.0’</p> <p>classpath ‘com.antfortune.freeline:gradle:0.8.1’ //加入这行代码</p> <p>}</p> <p>application moudle :</p> <p>apply plugin: ‘com.antfortune.freeline’ //加入这行代码</p> <p>android{</p> <p>…..</p> <p>//加入这3行代码</p> <p>freeline {</p> <p>hack true</p> <p>}</p> <p>}</p> <p>最底层的moudle 或者Application所在的moudle:</p> <p>dependencies {</p> <p>compile fileTree(dir: ‘libs’, include: [‘*.jar’])</p> <p>testCompile ‘junit:junit:4.12’</p> <p>compile ‘com.android.support:appcompat-v7:23.4.0’</p> <p>compile ‘com.antfortune.freeline:runtime:0.8.1’//加入这行代码</p> <p>}</p> <p>自定义的 Application:</p> <p>public class App extends Application {</p> <p>@Override</p> <p>public void onCreate() {</p> <p>super.onCreate();</p> <p>FreelineCore.init(this);//加入这行代码</p> <p>}</p> <p>}</p> <p><strong>3.使用freeline编译项目</strong></p> <p>第一次,需要进入当前工作目录下 执行:</p> <p>gradle initFreeline -Pmirror //这个是国内镜像会快很多</p> <p>windows如果没有将gradle加入环境变量,可以找到一个gradle,然后拖入命令行,这样gradle会自动找到路径。</p> <p>本人用时:17:37:39 开始 17:44:16结束,共计7分钟</p> <p>成功后命令行执行:</p> <p>python freeline.py</p> <p>第二次以后:</p> <p>python freeline.py</p> <p>小项目第一次打包3s以后800ms,中型项目25s,以后1s。具体使用情况以后再评。</p> <p>note:</p> <p>不要混淆代码</p> <p>总结:</p> <p>主项目:</p> <p>classpath ‘com.github.dcendents:android-maven-gradle-plugin:1.5’</p> <p>freeline {</p> <p>hack true</p> <p>}</p> <p>子项目:</p> <p>apply plugin: ‘com.antfortune.freeline’</p> <p>compile ‘com.antfortune.freeline:runtime:0.8.1’</p> <p>application :</p> <p>FreelineCore.init(this);</p> <p>题外:生命在于折腾,使劲折腾吧,少年!</p> <p> </p> <p>来自:http://www.jianshu.com/p/d32ebbf92746</p> <p> </p>