我使用两种不同的技术创建了同一个移动应用程序的两个版本.React Native+Expo和React+ capacitor .

引起我注意的是,APK包的大小差异很大.因此,我try 用React Native+Expo创建一个Hello World应用程序,甚至该应用程序的大小也相当大.到底是什么导致React Native创建的简单应用程序如此庞大?

推荐答案

React-native有许多样板代码,它需要这些样板代码来创建React-native和native之间的桥梁.除此之外,它还有 node 模块和其他依赖项,这些依赖项增加了APK的大小.

基本上,应用程序大小取决于:

  1. JS代码(例如用JS编写的代码,用JS编写的nodemodule代码)
  2. 本机代码(因为RN与本机端通信,所以它会创建一个桥,因此默认情况下会添加更多的样板代码)
  3. assets资源 (如图像、视频)可能会影响大小,因此最好有远程URL.

一个建议是创建一个AAB文件,然后上传到playstore,因为这样可以大大减小大小.

您也可以判断此线程RN-reducesuze

如果有任何疑问,一定要告诉我

Android相关问答推荐

在编写中强制软键盘呈现

道查询注释部分房间表名称

Jetpack Compose Scaffold—content不在TopAppBar下面开始'

当我在Android上运行应用程序时,组件会随机调整大小和移动

将DiffUtils用于Android上的Recrecerview适配器

如何在Android中将以前的数据保存在复选框中?

Kotlin为多个控件设置一个侦听器

是否可以附加事件处理程序,如onClick,拖动到Canvas Composable中绘制的内容,或使用drawBehind修饰符?

由于Xcode运行脚本阶段没有指定输出,在IOS Emulator中的KMM项目中生成失败

将输出写入已发布的 Android 应用程序中的日志(log)文件?

当 EditText 用于在 android studio 中将字符串发送到 firebase 时,仅允许安全调用错误

如何在ExecutorService中设置progressBar的进度?不想使用 AsyncTask,因为它已被弃用

Jetpack Compose:在屏幕外制作长水平图像的动画

如何在 Jetpack Compose 中对齐按钮底部中心?

如何从 firebase 实时数据库中检索最后一个值

Koin Android-KMM:我有嵌套范围但注入不起作用

Compose Accompaniist Pager 中的 TabRow/Tab 重组问题

如何从日期 Select 器计算年龄?

Jetpack Compose Alignment - 误解了 alignBy 修饰符

Android 应用程序在启动时自动启动