当前位置: 首页 > 知识库问答 >
问题:

React native将apk文件的大小增加6.5 MB

雍志文
2023-03-14

我开始在现有的android项目中测试使用react native对大小的影响。创建一个简单的android项目(带导航抽屉的模板项目)并创建。apk文件,在发布模式下大小为1.1MB

然后,我尝试按照doc中的步骤将react native与之集成,https://facebook.github.io/react-native/docs/integration-with-existing-apps.html

完成此集成并更新我的程序规则后。pro文件,其中定义了progaurd步骤,https://github.com/luggit/react-native-config/blob/master/Example/android/app/proguard-rules.pro

Proguard-rules.pro文件内容类似于,

# React Native

# Keep our interfaces so they can be used by other ProGuard rules.
# See http://sourceforge.net/p/proguard/bugs/466/
-keep,allowobfuscation @interface com.facebook.proguard.annotations.DoNotStrip
-keep,allowobfuscation @interface com.facebook.proguard.annotations.KeepGettersAndSetters
-keep,allowobfuscation @interface com.facebook.common.internal.DoNotStrip

# Do not strip any method/class that is annotated with @DoNotStrip
-keep @com.facebook.proguard.annotations.DoNotStrip class *
-keep @com.facebook.common.internal.DoNotStrip class *
-keepclassmembers class * {
    @com.facebook.proguard.annotations.DoNotStrip *;
    @com.facebook.common.internal.DoNotStrip *;
}

-keepclassmembers @com.facebook.proguard.annotations.KeepGettersAndSetters class * {
  void set*(***);
  *** get*();
}

-keep class * extends com.facebook.react.bridge.JavaScriptModule { *; }
-keep class * extends com.facebook.react.bridge.NativeModule { *; }
-keepclassmembers,includedescriptorclasses class * { native <methods>; }
-keepclassmembers class *  { @com.facebook.react.uimanager.UIProp <fields>; }
-keepclassmembers class *  { @com.facebook.react.uimanager.annotations.ReactProp <methods>; }
-keepclassmembers class *  { @com.facebook.react.uimanager.annotations.ReactPropGroup <methods>; }

-dontwarn com.facebook.react.**

# okhttp

-keepattributes Signature
-keepattributes *Annotation*
-keep class okhttp3.** { *; }
-keep interface okhttp3.** { *; }
-dontwarn okhttp3.**

# okio

-keep class sun.misc.Unsafe { *; }
-dontwarn java.nio.file.*
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
-dontwarn okio.**

现在,我的释放量。apk文件已跳至7.9 MB。这太过分了。我可以在play store上看到各种电子商务应用程序,总大小为9-12MB。我的混合反应原生应用程序是最基本的应用程序,它只有两个几乎不起作用的活动。

为了验证我的发现,我按照这个文档创建了一个新的react原生应用程序,https://facebook.github.io/react-native/docs/getting-started.html

当我发布时。这个纯react原生项目的apk文件,也是基本的Awesome应用程序。apk大小为6.8MB

这是不能接受的。反应原生是增加太多的大小apk。是否有任何进一步的改进可能在我的Proprod文件?还能做些什么来改善这一点?

如果任何人都能分享因React native而对其应用程序产生的大小影响,这将非常有帮助。

共有1个答案

魏鹤轩
2023-03-14

使用react native创建时,apk的大小始终大于本机应用apk。但使用react native时,可以减小apk大小。

你可以在这里和这里看到如何做到这一点。

在文档中,最好是

当你从头开始一个新的移动应用程序时,React Native非常棒。然而,它也可以很好地向现有的本地应用程序添加单个视图或用户流。

所以,我宁愿创建新的反应原生应用程序,而不是与您现有的集成,因为您希望实现反应原生Android应用程序的最小apk大小。

 类似资料:
  • 我在Android studio中创建了一个Android应用程序,并使用Kotlin作为编程语言 现在我的应用程序完成了,我想构建我的应用程序,但构建应用程序后,我的APK文件大小变为35mb<我的可绘制文件夹大小是2mb,我没有任何大文件,但为什么我的应用程序大小是35mb?! 为了生成测试apk版本,我使用了构建- 但是当我使用java语言时,这个大小是7mb!!! 我使用了这些依赖项: 我

  • 问题内容: 在Windows上的Python中,我可以通过创建一个大文件 现在大约是1 GB。但是,在Linux上,这将返回。 有没有办法在Linux上获得与Windows相同的行为?也就是说,能够使用?来增加文件的大小。 问题答案: 至少在POSIX系统上,不能用于增加(或减小)文件的大小。的功能是将文件的一部分映射到内存。合乎逻辑的是,您请求映射的东西应该确实存在!坦白说,我真的很惊讶您实际上

  • 我希望在复制现有的pdf文件时,文件大小大致相同。我不明白为什么尺寸会增加这么多。 我也试过PdfCopy类。我使用PDFcopy遵循了2种方法: 逐页复制。 对pdfcopy对象调用setMergeFields(),然后调用pdfcopy.AddDocument(reader); 但这两种方法的问题都是,它会从pdf文件中丢弃一些非内容的元数据,因此当Adobe Reader打开新的pdf时会损

  • 问题内容: 您好,我有一个带有处理程序的Netty Server,该处理程序应接受字符串。似乎最多只能接收1024个字节的内容。我如何增加缓冲区大小。我已经尝试过 没有成功。 处理程序如下 } 问题答案: 您正在使用UDP吗?如果是这样,数据包将最大为1024字节。此代码注释在QOTM代码示例中: 允许的数据包最大为1024字节(默认值为768)。您可以增加或减小此值,以避免数据包被截断或分别改善

  • 有一个Android应用程序是实现与和我在其他应用程序中实现相同的功能写在但ionic文件大小只有。具有类似功能的flutter(实现仍然不完整)文件大小为。 我有以下问题: > 我想知道是什么让我的apk变得更大? 这可能与代码实现或其他方面有关吗? 有人帮我减少应用程序大小吗?

  • 我有一个通过API rest POST请求上传文件的脚本。我只能上载大小小于1048576的文件 错误是 也许有人知道如何增加这个尺寸? 非常感谢。