Java教程

【备战春招】第21天 Flutter项目优化及打包发布

本文主要是介绍【备战春招】第21天 Flutter项目优化及打包发布,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

课程名称:Flutter从入门到进阶 实战携程网App 一网打尽核心技术
课程章节:Flutter进阶拓展:打包发布Flutter应用
课程讲师:CrazyCodeBoy

课程内容

Flutter项目优化

这一节给出了 Flutter 进行优化的一些建议:

  • 通过对图片资源的压缩、使用单架构的 so 文件,来减少包体积大小;
  • 按需创建页面,将耗时的计算放到单独的isolate,来提高流畅性;
  • 根据控件大小加载指定分辨率的图片,通过这一方式进行图片优化;
  • 通过分页加载和使用 ListView.build()来复用子控件,达到列表优化的目的;
  • 为了防止内存泄露,要在 dispose()方法中对用到的 listener 进行销毁。

为了进一步进行优化,还需要了解 Flutter 的编译模式,Flutter支持Release、Profile、Debug编译模式。

  • Release模式,使用AOT预编译模式,预编译为机器码,通过编译生成对应架构的代码,在用户设备上直接运行对应的机器码,运行速度快,执行性能好。此模式关闭了所有调试工具,只支持真机。
  • Profile模式,和Release模式类似,使用AOT预编译模式,此模式最重要的作用是可以用DevTools来检测应用的性能,做性能调试分析。
  • Debug模式,使用JIT(Just in time)即时编译技术,支持常用的开发调试功能hot reload,在开发调试时使用,包括支持的调试信息、服务扩展、Observatory、DevTools等调试工具,支持模拟器和真机。

Flutter提供了profile模式启动应用,进行性能分析,profile模式在Release模式的基础之上,为分析工具提供了少量必要的应用追踪信息。

如果是独立flutter工程可以使用flutter run --profile启动。如果是混合 Flutter 应用,在 flutter/packages/flutter_tools/gradle/flutter.gradle 的 buildModeFor 方法中将 debug 模式改为 profile即可。

Flutter项目打包发布流程

Flutter 打包发布 Android 项目

Flutter 打包发布 Android 项目的大致流程:

  • 在 AndroidManifest.xml 中添加 app 名称和快照名;
  • 检查和配置 build.gradle文件,主要包括 applicationId,versionCode,versionName,minSdkVersion,targetSdkVersion;
  • 添加 App启动图标;
  • 签名 App;
  • 配置 APK 混淆文件;
  • 构建一个 release 包;
  • 发布到 Android 各大应用市场。

在实际的项目中,还面临多渠道打包的需求,从Flutter v1.17 开始,Flutter命令工具增加了自定义参数的功能 --dart-define,开发者可以用这个命令参数在打包或运行App 时设置参数。这样就能在Flutter代码和原生代码中获取传过来的参数,从而实现多渠道功能。

flutter run --dart-define=APP_CHANNEL=ZeroFlutter

也支持传递多组参数:

flutter run --dart-define=APP_CHANNEL=ZeroFlutter --dart-define=OTHER_VAR=Dart

在Dart 代码中的实现,注意和命令行中的参数保持一致:

class EnvironmentConfig {
  static const APP_CHANNEL = String.fromEnvironment('APP_CHANNEL');
  static const OTHER_VAR = String.fromEnvironment('OTHER_VAR');
}

课程总结

这一章介绍了Flutter项目的一些常用的优化手段,以及 Flutter 打包项目的发布流程,实现了从项目创建到项目发布的闭环,最后补充了实际开发中比较常用的多渠道打包的相关内容。

图片描述

这篇关于【备战春招】第21天 Flutter项目优化及打包发布的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!