我使用空白模板和原始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
遇到同样的问题吗?
答案 0 :(得分:1)
根本没有任何问题。那很正常
答案 1 :(得分:1)
本机脚本与node_modules一起使用,并且在构建应用程序时,它的依赖项已添加到构建中,这就是增加本机脚本android和ios应用程序大小的原因。
答案 2 :(得分: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小的大小,但这绝对比没有这些标志的情况要好。
答案 3 :(得分:1)
根据Nativescript博客(https://www.nativescript.org/blog/nativescript-android-application-package-size-revealed),不幸的是,这很正常:
为了使NativeScript Android应用程序可以在具有不同二进制接口的设备上使用,NativeScript Android Runtime程序包必须为其本机库提供正确的ABI版本。
当今最常见的ABI是:x86,armeabi-v7a,arm64-v8a。
用于Android的空白NativeScript项目默认情况下约为12MB ,因为它们包括为不同的Android CPU体系结构构建的NativeScript运行时的三个副本。