freeline 快速入门 - 初体验

455 查看

本文环境

  • android studio 2.1.2

  • window

  • 国外 vpn...............如果你不能连上国外的网站,请老老实实买一个 vpn

介绍...........摘自蚂蚁金服高级技术专家-博客-弦影

Freeline是蚂蚁金服旗下一站式理财平台蚂蚁聚宝团队在Android平台上的量身定做的一个基于动态替换的编译方案,稳定性方面:完善的基线对齐,进程级别异常隔离机制。性能方面:内部采用了类似Facebook的开源工具buck的多工程多任务并发思想, 并对代码及资源编译流程做了深入的性能优化。

freeline开源地址 github

OK ,废话不多说,上代码ing

第一步:安装phyton 2.7 环境

  1. phyton 2.7 下载地址

  2. 配置环境变量...................不会配置的自己去面壁思过

第二步:配置 gradle 文件

    //1. 在项目级别的 gradle 文件里添加如下 classpath 
    dependencies {
        ...省略...
        classpath 'com.antfortune.freeline:gradle:0.7.2'
        }
    //2. 在application 的 gradle 文件里添加
    apply plugin: 'com.android.application'
    apply plugin: 'com.antfortune.freeline'

    android {

        ...省略...
    
        freeline {
            hack true
        }
    }

    dependencies {

        compile 'com.antfortune.freeline:runtime:0.6.0'

        ...省略...
    }

接下来 sync project

    //2. 在application 的 onCreate() 加入 FreelineCore.init(this);
    public class APP extends Application {

        @Override
        public void onCreate() {
            super.onCreate();
            FreelineCore.init(this);
        }
    }
    //3. AndroidManifest.xml 中指定 name
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="xxx.xxx.xxx">

        <application android:name=".app.APP">
        
            ...省略...
        
        </application>
    </manifest>

第三步:编译

  • 在项目的根目录下打开 cmd,输入 gradlew.bat initFreeline

如果是初次安装,你可能会看到 cmd 窗口一直在打印 . 符号,那是因为它在下载 gradle,你只需要耐心等候,如果出现 timeout ,那么你的 vpn 也太 low 了,建议换 vpn 或重试。

OK,我猜你已经下载完了,这时候如果 cmd 不动弹了,你可以重新打开 cmd 窗口,继续输入上一条 gradlew.bat initFreeline 命令,此时你会看到这样的 cmd 窗口,它还是在下载东西,

又要等,我已经受不了了,我去***

不过为了以后的秒级编译速度,就暂且等等吧

OK,我猜你已经等完了,你应该看到这样的 cmd 窗口

恭喜,大功快告成了

  • 接下来输入 python freeline.py

你应该看到这样的 cmd 窗口

OK 大功告成!!!!!!!!

有时候应用不会自动启动,需要手动打开(测试过,实际上应该是部署上了新的代码)


freeline 3条命令

  1. gradlew.bat initFreeline //初始化

  2. python freeline.py //增量编译并部署至手机

  3. python freeline.py -f //全量编译并部署至手机

前方施工.请注意.有坑

  • 目前只支持 python 2.7

  • freeline 和 instant run 可能会出现不兼容[我就出现了],如果集成了 freeline 后用 instant run 编译后运行到手机上出现问题或报错,移除 freeline 的集成,即可。或者使用 freeline 命令编译部署就不会出现问题

最后的建议是:如果集成了 freeline 环境,就请使用 freeline 来编译。如果想 instant run ,最好去掉 freeline 的集成,别作哦..............