Flutter在Debug和Release下分别使用啥编译模式,有啥区别?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter在Debug和Release下分别使用啥编译模式,有啥区别?相关的知识,希望对你有一定的参考价值。
参考技术A Debug模式下使用JIT编译模式,即Just in time(即时编译),Release下使用AOT模式,即Ahead of time(提前编译)。JIT模式因为需要边运行边编译,所以会占用运行时内存,导致卡顿现象,但是有动态编译效果对于开发者来说非常方便调试。AOT模式提前编译不会占用运行时内存,相对来说运行流畅,但是会导致编译时间增加。Flutter中如何判断当前运行模式是Debug还是Release
说这个之前,我们先来回顾一下 Flutter的四种运行模式:Debug、Release、Profile和test ,在实际开发中,我们往往需要根据当前运行模式的不同,选择不同的操作,比如在Debug模式启用Log、在生产模式关闭Log。
如果你是一名Android开发者,肯定对于这个不陌生,在Android中,有一个根据gradle配置自动生成的BuildConfig类来判断当前的运行模式。同样的,在Flutter里面也是有方法来判断的,我们需要用到 dart.vm.product 环境标识位,具体使用方法为:
const bool inProduction = const bool.fromEnvironment(“dart.vm.product”);
当App运行在Release环境时,inProduction为true;当App运行在Debug和Profile环境时,inProduction为false。
Release:const bool.fromEnvironment(“dart.vm.product”) = true;
Debug:assert(() …; return true; );断言语句会被执行;
Profile:上面的两种情况均不会发生。
————————————————
版权声明:本文为CSDN博主「吉原拉面」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yumi0629/article/details/83007315
以上是关于Flutter在Debug和Release下分别使用啥编译模式,有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
Flutter中如何判断当前运行模式是Debug还是Release
Flutter中如何判断当前运行模式是Debug还是Release
Flutter中如何判断当前运行模式是Debug还是Release
Flutter - DEBUG 中的 Webview 正在工作,但在 RELEASE apk 上显示为空白,为啥?