34 | 如何理解Flutter的编译模式?
该思维导图由 AI 生成,仅供参考
Flutter 的编译模式
- 深入了解
- 翻译
- 解释
- 总结
Flutter的编译模式包括Debug、Release和Profile三种运行模式,分别适用于开发、测试和发布阶段。Debug模式支持快速开发和运行,包括断言、调试信息和热重载;Release模式则优化了应用启动速度、代码执行和二进制包大小,适用于线上发布。在开发中,可以通过断言和Dart提供的编译常数来识别当前的编译模式,从而实现针对不同模式的代码执行行为。 文章介绍了如何在Flutter应用中引用开发环境和生产环境,以便在不破坏生产环境代码的情况下测试开发期的新功能。通过抽象配置、配置多入口、读配置和编译打包等步骤,读者可以了解如何实现分离配置环境。通过InheritedWidget对可配置部分进行封装抽象,为应用的启动注入配置环境,实现了定制化的功能。 此外,文章还介绍了如何利用Flutter提供的编译选项,构建出不同配置的安装包。同时,读者还可以在Android Studio中为应用程序创建不同的启动配置,通过Flutter插件为main_dev.dart增加启动入口,实现在不同的启动入口中切换和运行应用程序。 总的来说,本文通过介绍Flutter编译模式的特点和分离配置环境的实现步骤,帮助读者了解了如何在Flutter应用中灵活应用不同的编译模式和配置环境,从而更好地进行开发和测试工作。
《Flutter 核心技术与实战》,新⼈⾸单¥59
全部留言(8)
- 最新
- 精选
- 渐醒AINY老师讲的很棒,帮助了我很多,我的一个Flutter项目也制作完成,并上架发布了
作者回复: 厉害👍
2019-10-188 - Geek_082580对于一个 flutter module 工程, 即需要嵌入到已有 Android 项目,又需要单独运行调试,在这两种状态下需要不同的配置,比如不同的 plugin,请问老师有什么好的办法吗?
作者回复: 用InheritedWidget配置多入口就可以了吧
2019-09-1523 - liyuan仅仅通过-t能配置的参数还是太弱了,如果有dev,qa,uat,prod等多个环境,每个环境的app应用名称/图标可能有差别,同时希望手机上多个环境的app共存 android可以用build flavor实现,ios应该怎么做比较好?
作者回复: 之前有讲过,Flutter只能接管引擎初始化以后的行为(运行时),像app名称、图标、启动图这些还是需要原生工程去搞的。按照这个标准解答你的问题: 1、dev,qa,uat,prod等多个环境可以在flutter工程里通过指定工程入口搞定 2、原生工程相关的配置差异,iOS可以采用多个build target方式实现。
2019-10-072 - 矮个子先生😝看到过另外一种判断方法:bool.fromEnvironment('dart.vm.product')
作者回复: 你可以点击kReleaseMode查看其声明,这两种方式是一样的
2019-09-2321 - hzvar config = AppConfig.of(context); 获取配置的时候需要context作为参数,在build方法里面就可以方便获得配置。在其他地方没有context作为参数的时候,需要获取配置应该怎么获取
作者回复: 坦白讲以InheritedWidget的方式传递数据,其原理就是基于Widget树的,所以如果获取不到Widget树上下文,就拿不到数据
2019-09-1621 - 和小胖思考题:老师我的理解是直接再 new 一个 AppConfig 出来传入不同的参数不就好了吗?只是相当于我们有多种开发的 config,有几种就配置几个 AppConfig 可以吗?
作者回复: 恩,加一个开关就好,本质上跟切换主题类似
2019-10-23 - 火腿配置信息可以写到json或其它格式的本地文件里, 启动时读取配置信息。 或者把配置文件放到远程,可以实现动态加载样式或模块,本地有默认的配置, 以防网络不可用。2019-12-263
- 。。。。。。InheritedWidget 麻烦问一下如何能脱离了context 来使用呢?2020-05-161