【问题标题】:NativeScript Angular Basic app size on Android is > 160 MBAndroid 上的 NativeScript Angular Basic 应用程序大小 > 160 MB
【发布时间】:2018-12-12 23:33:59
【问题描述】:

基本的 HelloWorld Nativescript-Angular 应用程序大小 > 160 MB(当它被推送到 Android 手机时)。
将基本 HelloWorld Native-Android 应用程序推送到 Android 手机时,其大小小于 4 MB。

为什么 Nativescript-Angular 应用程序这么大,可以做些什么来减小它的大小..?

重现步骤:

  1. tns 创建 HelloWorld --ng
  2. 连接手机
  3. tns 运行安卓
  4. 设置 -> 搜索“应用程序管理器” -> 点击“应用程序管理器”
  5. 点击 HelloWorld 应用程序。
  6. 点按存储以查看应用的大小。

【问题讨论】:

  • 确保您没有错误地安装任何 devDependencies 作为依赖项,我观察到的一个常见问题是开发人员使用 tns-platform-declarations 作为依赖项,这会导致更大的输出大小构建应用程序。它应该作为 devDedepdency 安装,例如npm i tns-platform-declarations --save-dev
  • 例如,此应用程序已存档 15MB,安装后为 34MB play.google.com/store/apps/… ..repos 在这里 github.com/NickIliev/nativescript-ng-cosmos - 当然,该应用程序是通过所有优化构建的 (tns run android --bundle --env.uglify --env.snapshot --env.aot --release <release-params-here>)

标签: nativescript nativescript-angular


【解决方案1】:

这很正常,因为 Native-script 与 node_modules 一起工作,并且在构建应用程序时,它的依赖项被添加到 build.xml 中。

NativeScript Android 运行时由几个提供核心功能的主要部分组成。其中包括:

Аn 嵌入版本的 Google JavaScript 虚拟机 - V8 - 运行 JavaScript。 一个 C++ 层,它告诉 V8 如何处理所有 Android API。 一个 Java 层,它执行原生 C++/JavaScript 到 Android API 的粘合(反之亦然)。 前两层是本地库(编译为机器代码),它们依赖于 CPU 架构,即 ABI(应用程序二进制接口),与动态 (JIT) 编译的 Java 和 JavaScript 不同

要优化性能和包大小,您可以使用快照插件。这仅适用于发布版本。您需要提供 --env.snapshot 标志以及其他发布参数:

tns build android --bundle --env.snapshot --release 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-16
    • 1970-01-01
    • 1970-01-01
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多