为什么在热重载后更改未保存到设备?

时间:2020-02-19 23:08:26

标签: android-studio flutter dart

有时候,我会编写并保存一些代码,Android Studio会热装我连接的(Android)设备,并且更改会按预期进行。但是,如果我停止手机上的程序或将设备与Android Studio断开连接,则更改不存在-该程序的外观或工作方式与热重新加载更改之前相同。好像这些更改是在手机的内存中,但没有保存为设备上APK的一部分。 ...这是预期的行为吗? (如果是这样,什么设置会改变行为,以便重新加载的代码被编译并保存为在连接的手机设备上加载的APK的一部分?)

我有Android Studio 3.5.3。我确实看到了this post,但是它已经有几年了,我 do 看到了自己的变化;它们只是没有保存在设备上。

2 个答案:

答案 0 :(得分:2)

在调试模式下,Flutter应用程序在Dart VM上运行,热重载只是重载VM,而不是重新安装实际的APK。

答案 1 :(得分:2)

热加载时,flutter只会对其进行虚拟更新,这就是它如此之快运行的原因。

如果要保留更改,则有两个选择:

  1. 在断开手机连接之前,请重新运行该应用程序(完全重建热重装)

    OR

  2. 在终端中运行 flutter run --release ,这将为您的应用创建调试APK。

希望有帮助。