Android最佳构建工具介绍

简介:                          本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处!Instant Run为我们提供了增量更新的方式,支持 gradle2.0和Android4.0以上版本,让构建项目变的快速,同时由于multiDex出现,增量更新也变的简单,但现实状况是Studio编译依然卡卡。


                         本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处!


Instant Run为我们提供了增量更新的方式,支持 gradle2.0和Android4.0以上版本,让构建项目变的快速,同时由于multiDex出现,增量更新也变的简单,但现实状况是Studio编译依然卡卡。

Facebook的Buck是不错的,但它只支持Linux开发机;而Alibaba 开源的Freeline却可以在Windows机器上使用,根据依赖关系充分利用缓   存最少编译,并开启SocketServer保证crash同时也可以进行编译,最终实现全量编译和增量编译同时进程,提高2-3倍的编译速度。   

注意事项

1、只能使用2.2以上的gradle版本和python2.7及以下版本,配置好环境变量

2、使用jcenter编译而非mavenCenter,因为某些gradle后者没有

3、此文件里的gradle版本需要更换,csdn限制只能传80M以内的文件,大家只好到官网下载,地址:gradle3.3


4、

主项目的build.gradle加入如下内容:

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

apply plugin: 'com.antfortune.freeline'

dependencies {
    compile 'com.antfortune.freeline:gradle:0.8.5'
}
目前最高版本是0.8.5

5、配置完,在Android Studio的Terminal里执行如下命令,代表从国内镜像下载,要快的多。

gradlew initFreeline -Pmirror

其他特色Features

  • 支持标准的多模块 Gradle 工程的增量构建
  • 并发执行增量编译任务
  • 进程级别异常隔离机制
  • 支持 so 动态更新
  • 支持 resource.arsc 缓存
  • 支持 retrolambda
  • 支持 DataBinding
  • 支持各类主流注解库
  • 支持 Windows,Linux,Mac 平台

以下列表为 Freeline 支持的热更新情况:

  Java drawable, layout, etc. res/values native so
add
change
remove x -

Freeline 已经分别在 API 17,19,22,23 的 Android 模拟器、Android 6.0 Nexus 6P 以及 Android 4.4 锤子手机上经过测试。如果想要充分体验 Freeline 增量编译的速度的话,最好使用 Android 5.0+ 的设备。

限制Limitations

  • 第一次增量资源编译的时候可能会有点慢
  • 不支持删除带 id 的资源,否则可能导致 aapt 编译出错
  • 暂不支持抽象类的增量编译
  • 不支持开启 Jack 编译
  • 不支持 Kotlin/Groovy/Scala
欢迎 大家提意见!

官方地址:https://github.com/alibaba/freeline/

另外项目打包工具Jenkins也值得研究一下:http://blog.csdn.net/mabeijianxi/article/details/52680283

目录
相关文章
|
6天前
|
Android开发 开发者 Kotlin
探索安卓开发中的新特性
【9月更文挑战第14天】本文将引导你深入理解安卓开发领域的一些最新特性,并为你提供实用的代码示例。无论你是初学者还是经验丰富的开发者,这篇文章都会给你带来新的启示和灵感。让我们一起探索吧!
|
1天前
|
Android开发 开发者
安卓开发中的自定义视图:从入门到精通
【9月更文挑战第19天】在安卓开发的广阔天地中,自定义视图是一块充满魔力的土地。它不仅仅是代码的堆砌,更是艺术与科技的完美结合。通过掌握自定义视图,开发者能够打破常规,创造出独一无二的用户界面。本文将带你走进自定义视图的世界,从基础概念到实战应用,一步步展示如何用代码绘出心中的蓝图。无论你是初学者还是有经验的开发者,这篇文章都将为你打开一扇通往创意和效率的大门。让我们一起探索自定义视图的秘密,将你的应用打造成一件艺术品吧!
18 10
|
3天前
|
Java Linux Android开发
深入理解Android开发:从基础到高级
【9月更文挑战第17天】本文将深入探讨Android开发的各个方面,包括应用开发、操作系统等。我们将通过代码示例来展示如何创建一个简单的Android应用,并解释其背后的原理。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和启示。
|
1天前
|
Java Android开发 C++
🚀Android NDK开发实战!Java与C++混合编程,打造极致性能体验!📊
在Android应用开发中,追求卓越性能是不变的主题。本文介绍如何利用Android NDK(Native Development Kit)结合Java与C++进行混合编程,提升应用性能。从环境搭建到JNI接口设计,再到实战示例,全面展示NDK的优势与应用技巧,助你打造高性能应用。通过具体案例,如计算斐波那契数列,详细讲解Java与C++的协作流程,帮助开发者掌握NDK开发精髓,实现高效计算与硬件交互。
7 1
|
10天前
|
IDE 开发工具 Android开发
安卓与iOS开发对比:平台选择对项目成功的影响
【9月更文挑战第10天】在移动应用开发的世界中,选择正确的平台是至关重要的。本文将深入探讨安卓和iOS这两大主要移动操作系统的开发环境,通过比较它们的市场份额、开发工具、编程语言和用户群体等方面,为开发者提供一个清晰的指南。我们将分析这两个平台的优势和劣势,并讨论如何根据项目需求和目标受众来做出最佳选择。无论你是初学者还是有经验的开发者,这篇文章都将帮助你更好地理解每个平台的特性,并指导你做出明智的决策。
|
6天前
|
XML 编解码 Android开发
安卓开发中的自定义视图控件
【9月更文挑战第14天】在安卓开发中,自定义视图控件是一种高级技巧,它可以让开发者根据项目需求创建出独特的用户界面元素。本文将通过一个简单示例,引导你了解如何在安卓项目中实现自定义视图控件,包括创建自定义控件类、处理绘制逻辑以及响应用户交互。无论你是初学者还是有经验的开发者,这篇文章都会为你提供有价值的见解和技巧。
14 3
|
8天前
|
API Android开发 iOS开发
安卓与iOS开发中的线程管理对比
【9月更文挑战第12天】在移动应用的世界中,安卓和iOS平台各自拥有庞大的用户群体。开发者们在这两个平台上构建应用时,线程管理是他们必须面对的关键挑战之一。本文将深入探讨两大平台在线程管理方面的异同,通过直观的代码示例,揭示它们各自的设计理念和实现方式,帮助读者更好地理解如何在安卓与iOS开发中高效地处理多线程任务。
|
10天前
|
开发框架 Android开发 iOS开发
探索安卓与iOS开发的差异:构建未来应用的指南
在移动应用开发的广阔天地中,安卓与iOS两大平台各占半壁江山。本文将深入浅出地对比这两大操作系统的开发环境、工具和用户体验设计,揭示它们在编程语言、开发工具以及市场定位上的根本差异。我们将从开发者的视角出发,逐步剖析如何根据项目需求和目标受众选择适合的平台,同时探讨跨平台开发框架的利与弊,为那些立志于打造下一个热门应用的开发者提供一份实用的指南。
27 5
|
10天前
|
开发工具 Android开发 iOS开发
安卓与iOS开发:平台选择的艺术与科学
在移动应用开发的广阔天地中,安卓与iOS两大平台如同东西方哲学的碰撞,既有共通之处又各具特色。本文将深入探讨这两个平台的设计理念、开发工具和市场定位,旨在为开发者提供一份简明扼要的指南,帮助他们在这场技术与商业的博弈中找到自己的道路。通过比较分析,我们将揭示每个平台的优势与局限,以及它们如何影响应用的性能、用户体验和市场接受度。无论你是初涉江湖的新手,还是经验丰富的老手,这篇文章都将为你的选择提供新的视角和思考。
26 5
|
11天前
|
安全 Android开发 开发者
探索安卓开发的未来:Kotlin的崛起与Flutter的挑战
在移动开发的广阔天地中,安卓平台始终占据着举足轻重的地位。随着技术的不断进步和开发者需求的多样化,Kotlin和Flutter成为了改变游戏规则的新玩家。本文将深入探讨Kotlin如何以其现代化的特性赢得开发者的青睐,以及Flutter凭借跨平台的能力如何挑战传统的安卓开发模式。通过实际案例分析,我们将揭示这两种技术如何塑造未来的安卓应用开发。
33 6