Freeline 让AndroidStudio飞起来

0?wx_fmt=gif

直播通知

让大家久等了,一直说要直播但是由于我个人原因推迟了两周,这次终于来了,时间定于2016.12.17(周六)、2016.12.18(周日)两天晚18点到22点直播,直播内容:1. 使用NoHttp自定义Request结合业务逻辑封装强大的网络请求模块。2. 从0开始封装一个强大的网络框架。届时欢迎大家来看直播,有问题即时沟通,当然考虑到很多同学忙,所以也会录屏。推荐使用YY观看,频道:56600481,浏览器观看地址:http://www.huya.com/yolanda。

AndroidStudio编译运行很慢

你的AndroidStudio编译时是否很卡?你的Gradle编译时是否很慢,运行一次要等10分钟?如果你还没有遇到,那可能说明你的电脑配置够好,或者项目还不够大。

尤其像我这种公司电脑配置渣,还是机械硬盘的开发者肯定是忍不了的,太影响开发效率了,所以我们就想办法加快编译速度了,当然加快编译的手段有很多种,在Android官方Instant Run出来之前,很多开发者是使用第三方的一些库来提高开发效率,底层原理几乎都是apk热更新原理。在Instant Run出来之后,很多开发者都开始用这个被称为闪电编译的功能,但是它还是有很多不足的,具体大家可以看官网的说明:Instant Run。

Freeline介绍

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


Freeline代码开源在Github: 

https://github.com/alibaba/freeline


Freeline在云栖社区的原理说明: 

https://yq.aliyun.com/articles/59122?spm=5176.8091938.0.0.1Bw3mU


介绍这款工具也是我本人使用了好几周以后觉得真心不错,所以来分享给大家,有什么使用上的问题欢迎来交流啊,自从使用了Freeline后真的省下了很多喝咖啡的时间,本人表示非常欢喜。


以下是从官网整理来的一些说明: 

Freeline内部采用了类似Facebook的开源工具buck的多工程多任务并发思想:端口扫描,代码扫描,并发编译,并发dx,并发merge dex等策略,在多核机器上有明显加速效果,另外在class及dex,resources层面作了相应缓存策略,做到真正增量开发,另外引入并优化buck的部分加速组件dx,DexMerger,资源编译方面,深入改造了Aapt资源编译流程,当资源发生改变时候,秒级完成增量包编译,其中增量包仅含最小的变更集合(10Kb~数百Kb内),后期也被运用到线上进行资源/代码动态替换。


Freeline的特性

  • 支持调试

  • 系统最低支持到api level 9

  • 支持标准的多模块Gradle工程的增量构建

  • 并发执行增量编译任务

  • 进程级别异常隔离机制

  • 支持so动态更新

  • 支持resource.arsc缓存

  • 支持retrolambda

  • 支持DataBinding

  • 支持各类主流注解库

  • 支持Windows,Linux,Mac平台

当然每个事物都有自己的不足,现在已经Freeline的一些不足:

  • 第一次增量资源编译的时候可能会有点慢

  • 不支持删除带id的资源,否则可能导致aapt编译出错

  • 暂不支持抽象类的增量编译

  • 不支持开启 Jack 编译

  • 不支持 Kotlin/Groovy/Scala


看了上面的这些介绍后不知道你有没有心动?什么,已经心动了?那么下面我们来看看它到底怎么用?

Freeline使用教程

1、在项目level的build.gradle中添加插件依赖

0?wx_fmt=png

2、在项目主module的build.gradle中应用freeline插件的依赖

0?wx_fmt=png

3、一些注意点 

修改了上面的gradle文件后,在你的编辑区域顶部会有一个黄色的警告条,警告条的右边有一个Sync Now的超链接,嗯没错你必须点一下,来同步编译项目。 

上面说过freeline最低支持到android level api 9,如果你在这里遇到提示minSdkVersion是14,你就得检查一下是否开启了Jack。


4、安装python、并配置系统环境变量 

因为Freeline是用python写的,下面的的所有操作,包括编译等都要依赖python,所以我们要安装python,并且配置系统环境变量,因为每个同学的系统不一样,所以这里我给出python的下载页面,其它的自己去Google。


Python分2.x版本和3.x版本,但是Freeline目前只支持2.x版本的,以前学过一点点python,这里为大家推荐2.7.12版: 

https://www.python.org/downloads/release/python-2712/


5、一句命令为你的项目下载安装Freeline 

现在你必须已经安装好了python,然后在AndroidStudio中打开命令行,输入一下命令,将自动为我们下载freeline相关文件到项目下:

  1. gradle initFreeline

如果你系统没有配置gradle的环境,将会提示你命令不存在,由于AndroidStudio已经为项目配置了默认的gredle,所以输入以下命名也是一样的:

  1. gradlew initFreeline

先别急着输入:因为默认是从国外镜像地址下载,由于众所周知的原因,你很可能下载不到,所以我们可以使用国内镜像,所以如果上述命令没有通过,那么咱们在命令后面加一个-Pmirror:

  1. gradlew initFreeline -Pmirror

大概一分钟左右就下载好了,下载好之后你的项目结构大概是这样子:

0?wx_fmt=png

6、运行项目 

好了,一切准备就绪,下面就可以把你的手机连接运行项目了,当然这里就不是像以前一样点击那个绿色的Run按钮了,而是使用命令。


第一次运行是需要全量编译,所以第一次的时间相对较长,甚至比gradle编译还要长,但是后期的运行会很快。 

第一次全量编译,在命令行输入:

  1. python freeline.py -f

如果我们后期修改了代码,秒秒钟就可以热更新到手机:

  1. python freeline.py

如果你要调试应用,在命令行输入:

  1. python freeline.py -d

常用命令帮助

0?wx_fmt=png

Freeline插件

一般我们开发的时候,想要运行项目时就点一下绿色的Run按钮,几乎不用命令运行项目,所以FreeLine也有这样简单的操作方式,我们需要为AndroidStudio安装一个插件:

0?wx_fmt=png

下面来一个图解:

0?wx_fmt=gif

安装好之后根据提示重启AndroidStudio,然后会在绿色的Run按钮后面会多出来一个蓝色白心的Freeline Run按钮,如果要运行项目就点击下图中Freeline Run按钮即可,如下图:

0?wx_fmt=png


好了到这里就完啦,你也赶紧用起来吧。最后记得到时候来看直播哦,会给你惊喜的。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在风能领域,准确预测风速对于风电场的运行与管理至关重要。Matlab作为一个强大的数学计算和数据分析平台,被广泛应用于风速预测模型的构建。本文将深入探讨基于四种风速——随机风、基本风、阵风和渐变风的组合风速预测技术。 我们来理解这四种风速类型: 1. **随机风**:随机风是指风速呈现出随机性的变化,通常由大气湍流引起。在建模中,通常通过统计方法如高斯分布或Weibull分布来模拟这种不确定性。 2. **基本风**:基本风速是指在无特定扰动条件下的平均风速,它是长期观测结果的平均值,通常用于结构设计和风能评估。 3. **阵风**:阵风是短时间内风速显著增强的现象,对建筑物和风力发电机造成的主要威胁之一。阵风的预测涉及到风的脉动特性分析。 4. **渐变风**:渐变风是指风速随时间和空间逐渐变化的过程,常见于风向转变或地形影响下的风场变化。 在Matlab中,利用这四种风速类型进行组合预测,可以提高预测的准确性。预测模型可能包括以下几个步骤: 1. **数据收集与预处理**:收集历史风速数据,包括随机风、基本风、阵风和渐变风的数据,进行异常值检测、缺失值填充以及数据标准化。 2. **特征工程**:提取风速变化的相关特征,如平均值、标准差、极值、频率分布等,这些特征可能对预测有重要影响。 3. **模型选择**:可以选择多种预测模型,如时间序列分析(ARIMA、状态空间模型等)、机器学习算法(线性回归、决策树、支持向量机、神经网络等)或深度学习模型(LSTM、GRU等)。 4. **模型训练**:利用历史数据训练选定的模型,调整模型参数以优化性能,例如通过交叉验证来避免过拟合。 5. **模型验证与评估**:使用独立的测试集验证模型预测效果,常见的评估指标有均方误差(MSE)、平均绝对误差(MAE)和决定系数(R²)。 6. **组合预测**:结合四种风速的不同模型预测结果,可以采用加权平均、集成学习(如bagging、boosting)等方式,以提升整体预测精度。 7. **实时更新与动态调整**:实际应用中,模型需要不断接收新的风速数据并进行在线更新,以适应风场环境的变化。 通过以上步骤,可以构建一个综合考虑各种风速特性的预测系统,这对于风电场的功率输出预测、风电设备的维护计划以及电网调度都具有重要价值。然而,需要注意的是,每个风场的地理环境、气候条件和设备状况都有所不同,因此模型的建立应根据实际情况进行定制和优
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值