美文网首页
在项目中集成Freeline

在项目中集成Freeline

作者: 治學涯 | 来源:发表于2016-10-21 19:46 被阅读380次
什么是Freeline

Freeline是由蚂蚁聚宝Android团队开发的一款针对Android平台的增量编译工具。它可以充分利用缓存文件,在几秒钟内迅速地对代码的改动进行编译并部署到设备上,有效地减少了日常开发中的大量重新编译与安装的耗时。

怎么集成?
  • 第一步:先下载Freeline开源项目代码
    freeline项目目录.png

freeline工程主要分为三大模块,分别为:

runtime:这个模块主要在java层执行,主要的作用是在Application启动的时候重载ClassLoader,插入dex,从而实现增量修改的目的。

freeline_code:python文件集合,主要是扫描本地修改文件,执行编译压缩传输文件等操作。

gardle工程:gradle插件工程,主要实现下载freeline_code集合,更改打包步骤等操作。

  • 第二步:将freeline工程下面的【runtime】拷贝到自己的项目目录下或通过Android Studio的Import Module方式导入到自己(我的项目名为:FreelineDemo)的项目中
    runtime目录:


    runtime目录.png

    自己的项目目录


    Sample目录.png

我这里把Freeline工程中的common、pure_java、resources、ThirdParty等几个Module都一起导进来了

  • 第三步:修改Sample目录下的settings.gradle文件


    settings.png
  • 第四步:配置project-level的build.gradle,加入freeline-gradle的依赖


    sample_build.png
  • 第五步:在你的主module的build.gradle中,应用freeline插件的依赖,具体参考Freeline项目中的Sample项目中的配置

修改完成后当点击Sync Project with Gradle Files 时会报一个异常

Gradle 'Sample' project refresh failed
Error:Could not get unknown property 'FREELINE_RELEASE_VERSION' for project ':runtime:runtime' of type org.gradle.api.Project.

    因为你还没定义FREELINE_RELEASE_VERSION
  • 第六步:在Sample目录下找到gradle.properties文件并打开把FREELINE_RELEASE_VERSION=0.7.3.1 加上即可;0.7.3.1是Freeline中当前版本号,这时再点击Sync Project with Gradle Files时就编译通过了,但要使用Freeline快速编译自己的项目还不够

  • 第七步:在项目中创建一个Application类,并在AndroidManifest.xml中application节点修改 android:name=".GLAPP",GLAPP即为你创建的Application类名
    在onCreate()中添加FreelineCore.init(this);


    app加入初始化freeline.png
  • 第八步:在命令行执行以下命令来下载 freeline 的 python 和二进制依赖

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

     cd FreelineDemo/sample
    ./gradlew initFreeline -Pmirror

显示 BUILD SUCCESSFUL 就是下载成功了
这时Sample目录中就多了freeline.py文件和freeline文件夹,就可以使用 python freeline.py 命令来编译项目了

    ./gradlew -v 查看gradlew版本
   
    如果使用./gradlew命令报permission denied: ./gradlew异常时使用chmod +x gradlew修改权限命令即可 
 python freeline.py -f 整个项目编译运行
 python freeline.py 部分编译运行
 python freeline.py -v 查看freeline版本

常见问题
我的项目

相关文章

网友评论

      本文标题:在项目中集成Freeline

      本文链接:https://www.haomeiwen.com/subject/grrcuttx.html