AndroidStudio 快速集成 秒级编译工具Freeline

2024-08-29 14:58

本文主要是介绍AndroidStudio 快速集成 秒级编译工具Freeline,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

      前段时间,由于项目工程较大,项目编译比较慢,一同事告诉我集成Freeline就会快很多。我百度了一下才发现,Freeline由蚂蚁金服开发的号称Android平台上的毫秒级编译工具,于是粗略研究了一下Freeline,这篇文章为大家简单介绍快速集成Freeline。

什么是Freeline?

Freeline是蚂蚁金服旗下一站式理财平台蚂蚁聚宝团队在Android平台上的量身定做的一个基于动态替换的编译方案。它集成了 Google的Instant-Run 、LayoutCast以及Facebook的Buck的所有优点。它的编译速度比这些都快了许多。为我们节省了许多编译与安装的时间。总的来说就是一个字“”。

关于Freeline的原理可以阅读以下几个:

  • https://github.com/alibaba/freeline
  • Freeline - Android平台上的秒级编译方

Freeline快速集成

    在集成Freeline 之前我们必须搭建Python环境,因为项目每次用Freeline编译时,会执行python freeline.py。关于Python环境的搭建这里就不说了。

     Freeline的集成有两种方法,在线集成和离线集成,在线集成非常简单,只需要一下几个步骤:

1、首先我们需要安装AndroidStudio 的 Freeline插件。

依次点击Files/AndroidStudio -> Settings/Perferences -> Plugins -> Browns depositories ,搜索Freeline然后安装并重启,如下图所示:


安装完成后我们会在工具栏看到Freeline的图标,如下所示:


2、在项目级的build.gradle 文件中添加Freeline的依赖

3、在项目的主module的build.gradle中,应用Freeline插件的依赖


4、在AndroidStudio的Terminal用命令行下载freeline的python和2进制依赖

Windows:gradlew  initFreeline

MacOS: ./gradlew  initFreeline

下载Freeline 没翻墙的话有点慢,在命令后加上 -Pmirror    如我的是MacOS,我们初始化时输入命令./gradlew  initFreeline  -Pmirror 这样就会快很多。


执行完成后就集成好了Freeline ,如下所示,第一次编译一个项目只用了42s


 

Freeline离线集成

    Freeline离线集成就是将所需要的依赖以module的形式添加到本地项目中,如下所示我们在线添加依赖后,项目的依赖里会有runtime。

    我们离线集成就是将runtime以module的形式导入项目中,去掉我们在项目级build.gradle中添加的依赖,在setting.gradle中添加runtime,然后在主module中引用就行了。


这篇关于AndroidStudio 快速集成 秒级编译工具Freeline的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1118182

相关文章

SQLite3命令行工具最佳实践指南

《SQLite3命令行工具最佳实践指南》SQLite3是轻量级嵌入式数据库,无需服务器支持,具备ACID事务与跨平台特性,适用于小型项目和学习,sqlite3.exe作为命令行工具,支持SQL执行、数... 目录1. SQLite3简介和特点2. sqlite3.exe使用概述2.1 sqlite3.exe

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

Python使用FFmpeg实现高效音频格式转换工具

《Python使用FFmpeg实现高效音频格式转换工具》在数字音频处理领域,音频格式转换是一项基础但至关重要的功能,本文主要为大家介绍了Python如何使用FFmpeg实现强大功能的图形化音频转换工具... 目录概述功能详解软件效果展示主界面布局转换过程截图完成提示开发步骤详解1. 环境准备2. 项目功能结

Linux系统之stress-ng测压工具的使用

《Linux系统之stress-ng测压工具的使用》:本文主要介绍Linux系统之stress-ng测压工具的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、理论1.stress工具简介与安装2.语法及参数3.具体安装二、实验1.运行8 cpu, 4 fo