在一个Hello World示例中,反应本机APK大小约为20M(in recent versions),因为它支持不同的硬件体系结构(ARMv7,ARMv8,X86等),而同一应用程序的Flutter APK大小约为7M。
大小不同的原因是什么? Flutter是否支持所有硬件体系结构?
答案 0 :(得分:1)
前天,我发布了Flutter应用程序,其中还包含图像。但是,该应用程序具有像Firebase一样小的库,我设法使其变为2.3 Mb。相反,我有另一个我发布的Flutter应用程序,其重量为8.5 Mb,您是否想知道唯一的区别? Api Min从21开始,而Api Min从16开始重8.5。这是一个很大的优势,因为2.3很少。仅在调试模式下,大小才会非常大,因此不必担心,因为当您将appBundle中的flutter应用程序压缩到Play商店等时,他的大小会变得更大。
答案 1 :(得分:0)
RN使用开源JavaScriptCore
,这是Safari的默认引擎。 RN iOS和Android应用程序的大小不同。对于iOS RN,使用iOS平台提供的JavaScriptCore;对于Android RN,将JavaScriptCore
与应用程序捆绑在一起,这会增加应用程序的大小。 Flutter和RN Hello World的大小之所以不同是因为JavaScriptCore
。
答案 2 :(得分:0)
因此,朱尼厄斯的回答是正确的,但我不相信这是为什么。因此,无论RN是否使用本机代码和JavaScript跨桥通信的组合,Flutter都可以编译为100%本机代码。
这就是为什么Flutter不需要添加JavaScript核心,因此尺寸更小的原因。但是无论如何,随着您的应用程序的增长,JS部分将始终具有相同的大小。
答案 3 :(得分:0)
尝试访问以下提到的网址,也许它们可以帮助您解决所需的问题。
https://nevercode.io/blog/flutter-vs-react-native-a-developers-perspective/
https://android.jlelse.eu/comparing-apk-sizes-a0eb37bb36f
如果不是这样,它将仍然为他人提供更多关于Flutter与众不同的见解,以及是否应该选择Flutter而不是其他任何混合应用程序开发技术。
答案 4 :(得分:0)
以防万一,请确保您比较在“发布”模式下编译的二进制文件。
对于Android,我也建议切换到AAB格式。平均而言,与通用APK相比,它可将二进制文件减少约20%。 Google Play会根据您的设备配置来处理定位。