【问题标题】:nativescript app size bigger than android app sizenativescript 应用程序大小大于 android 应用程序大小
【发布时间】:2018-09-28 09:17:51
【问题描述】:

我使用空白模板和 vanilla javascript 开发了一个简单的 nativescript 应用程序。当我构建应用程序时,大小约为 12 MB。我在 android studio 中做了同样的应用程序,apk 大约是 2.5 MB,这意味着小了 5 倍。我正在使用最新版本的 nativescript,并且使用了 CLI 命令。

tns build android --release --key-store-path petscrapbook.keystore --key-store-password petscrapbook --key-store-alias petscrapbook --key-store-alias-password petscrapbook

你有同样的问题吗?

【问题讨论】:

  • 您的问题到底是什么?我假设非本机解决方案总是会导致更大的应用程序大小。我的意思是它们是建立在原生框架之上的。
  • @zanza67 对于“我在 android studio 中做了同样的应用程序”是原生 android 应用程序..对吗??
  • 使用非原生框架时这很正常。

标签: android nativescript


【解决方案1】:

当我最初由应用程序构建时,它达到了 40MB 左右。然后使用下面的标志,我可以得到它低于 15MB。

tns build android --bundle --env.uglify --env.aot --env.snapshot --release --key-store-path <path-to-your-keystore> --key-store-password <your-key-store-password> --key-store-alias <your-alias-name> --key-store-alias-password <your-alias-password> --aab --copy-to <android-app-bundle-path>.aab

您可以在此处查看有关这些标志的详细信息:https://docs.nativescript.org/angular/performance-optimizations/startup-times

最后一个标志 --aab,用于构建 Android App Bundle,而不是 apk。参考:https://docs.nativescript.org/angular/tooling/publishing/android-app-bundle

你可能没有纯 android 那样小,但这绝对比没有这些标志要好。

【讨论】:

  • 我尝试了一切,您使用的确切命令。我的应用程序大小从 43 mb 减少到 36 mb 就是这样。我不知道原因。甚至我也在官方github上提出了一个问题。没有人回答为什么我的应用程序很大。我的应用中没有图像视频。也没有任何硬编码的字符串值。
  • 如果您已将应用程序上传到 google play 商店,您可以在 Google Play 控制台 > Android Vitals > 应用程序大小中查看应用程序下载大小细分,这可以让您大致了解什么占用了更多大小。
【解决方案2】:

根本没有任何问题。这很正常

【讨论】:

    【解决方案3】:

    Native-script 与 node_modules 一起工作,在构建应用程序时,它的依赖项被添加到构建中,这就是增加原生脚本 android 和 ios 应用程序大小的原因。

    【讨论】:

    • 感谢 Jay,但我认为非原生应用可以比原生应用更大,但在这个维度上则不行。如果只是构建 hello world 应用程序要大 5 倍,那么专业应用程序呢?这是不可接受的。没有人会开发在尺寸方面差异如此之大的专业应用程序。你同意吗?
    • 是的。但是客户仍然要求这样做,因为它将与单个开发人员同时开发 android 和 ios。而不是每个新文件大小都会倍增 *5 ..
    • 我不能向我的老板提出这样的差异,即使我同意你关于 2 平台的 1 框架,他肯定会走出这条路。我们需要性能并保持较小的尺寸
    • @zanza67 是的,它完全基于客户端要求的不同标准、要求和性能。对于一般场景,我们确实更喜欢不同的原生应用程序。但根据目前的情况,native-script 正在获取市场。如果您认为答案有帮助,那么您可以批准和投票,以便其他人可以从讨论中获得更好的想法。
    • 感谢 jay 的有用回答。我知道我们不能指望使用框架与原生应用程序相比具有相同的代码、大小、性能、优化,但至少我会假设我可以应用一些提示和技巧来管理差异,但如果差异如此之大在此基础上,我怀疑它是否会获得更多市场。 ionic 和 corbova 因这个原因而下降,因为优势小于优势。确实,代码更容易维护,你有 javascript、angular、vuejs,但另一方面,原生应用程序仍然是最好的选择
    【解决方案4】:

    根据 Nativescript 博客(https://www.nativescript.org/blog/nativescript-android-application-package-size-revealed),不幸的是这是正常的:

    为了让 NativeScript Android 应用程序在具有不同二进制接口的设备上可用,NativeScript Android 运行时包必须为其原生库提供正确的 ABI 版本。

    现在最常见的 ABI 是:x86、armeabi-v7a、arm64-v8a。

    Android 的空白 NativeScript 项目默认约为 12MB,因为它们包含为不同 Android CPU 架构构建的三个 NativeScript 运行时副本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-16
      • 1970-01-01
      相关资源
      最近更新 更多