如何减小 Ionic Android APK 文件的大小?
How do I decrease the size of the Ionic Android APK file?
我使用 Ionic 创建了应用,Android APK 文件太大。
在 API 集成之前文件大小为 4.8MB。当我集成 API 时,我只修改了 10 页,现在 APK 文件大小为 71 MB。
以下是我用过的 Cordova 插件:
cordova-plugin-console
cordova-plugin-datepicker
cordova-plugin-device
cordova-plugin-network-information
cordova-plugin-splashscreen
cordova-plugin-statusbar
cordova-plugin-whitelist
cordova-plugin-x-socialsharing
cordova-sqlite-storage
es6-promise-plugin
ionic-plugin-keyboard
我解压缩了 APK 文件以了解发生了什么。我查看了 assets/www/
文件夹中的 build
文件夹,它本身就有 357MB,其中包含 JavaScript 和 MAP 文件以及一个 4.5MB CSS 文件。
如何减小 Ionic Android APK 文件的大小?
在构建用于生产的 APK 文件时,您应该使用 --prod
和 --release
标志。它通过压缩文件来减小大小。
ionic build android --prod --release
请使用以下命令:
ionic cordova build android --minifycss --optimizejs --minifyjs --release
[note:- "ionic cordova build android --prod --release" command have email pattern matching issue in a form, always give invalid email error hence not used that command]
使用下面 link 了解更多详情:
https://ionicframework.com/docs/cli/cordova/build/
运行 cordova clean
从构建工件中清理项目。
致运行使用较新版本的 Ionic 解决该问题的人:
在 Ionic 4.3 中,构建脚本中似乎存在错误。如果您 运行 调试构建,然后 release/production 构建,www
文件夹不会被清除,您将拥有 www 中的所有源映射 (.js.map) 文件文件夹,因此在最终的 apk 文件中。
看起来像一个错误(不确定)但是当实时重新加载处于活动状态时,摇树功能会导致构建将几个块文件发送到 www
文件夹中,我认为你重新加载的次数越多,就越多你在那里的文件。
所以您会看到
格式的文件
0.7f0f403f3c9f5914fbce.js
0.7f0f403f3c9f5914fbce.js.map
1.0db885b5a44ebd4ca57e.js
1.0db885b5a44ebd4ca57e.js.map
...and the number goes 0, 1, 2, ... n
您只需删除 www
文件夹即可丢弃陈旧的块文件并重建您的应用程序。
之后apk的大小应该是合理的。
执行以下步骤
- ng 构建 --prod
- 从根文件夹构建之前删除 www
- ionic cordova build android --prod --release
检查 sourceMap
在 angular.json
如果 true
把它放在 false
我想我回答有点晚了,但我这里有一些我的观察:
减少生产 APK 的方法。
确保在创建 APK 之前已创建生产版本
使用此命令创建产品构建
ng build --prod
现在使用以下命令打开 android studio 以进行进一步的操作
ionic capacitor run android --prod
//--prod is optional if you have already performed step 1
您可以设置 minifyEnabled
来缩小代码,这也会大大减小 APK 的大小。
我还尝试了另一件事,一旦创建了产品构建,就可以从 android 源文件夹中删除未使用的 SVG。我相信这是在资产中添加的,因此在 prod APK 中。
(虽然我不确定执行第 4 步是否安全,但无论如何它并没有伤害我):)
我已经看到使用第 4 步将大小从 4.2 MB 减少到 3.4 MB ;)
这些是我为减小 ionic APK 的大小而执行的步骤。
编码愉快!!
我使用 Ionic 创建了应用,Android APK 文件太大。
在 API 集成之前文件大小为 4.8MB。当我集成 API 时,我只修改了 10 页,现在 APK 文件大小为 71 MB。
以下是我用过的 Cordova 插件:
cordova-plugin-console
cordova-plugin-datepicker
cordova-plugin-device
cordova-plugin-network-information
cordova-plugin-splashscreen
cordova-plugin-statusbar
cordova-plugin-whitelist
cordova-plugin-x-socialsharing
cordova-sqlite-storage
es6-promise-plugin
ionic-plugin-keyboard
我解压缩了 APK 文件以了解发生了什么。我查看了 assets/www/
文件夹中的 build
文件夹,它本身就有 357MB,其中包含 JavaScript 和 MAP 文件以及一个 4.5MB CSS 文件。
如何减小 Ionic Android APK 文件的大小?
在构建用于生产的 APK 文件时,您应该使用 --prod
和 --release
标志。它通过压缩文件来减小大小。
ionic build android --prod --release
请使用以下命令:
ionic cordova build android --minifycss --optimizejs --minifyjs --release
[note:- "ionic cordova build android --prod --release" command have email pattern matching issue in a form, always give invalid email error hence not used that command]
使用下面 link 了解更多详情:
https://ionicframework.com/docs/cli/cordova/build/
运行 cordova clean
从构建工件中清理项目。
致运行使用较新版本的 Ionic 解决该问题的人:
在 Ionic 4.3 中,构建脚本中似乎存在错误。如果您 运行 调试构建,然后 release/production 构建,www
文件夹不会被清除,您将拥有 www 中的所有源映射 (.js.map) 文件文件夹,因此在最终的 apk 文件中。
看起来像一个错误(不确定)但是当实时重新加载处于活动状态时,摇树功能会导致构建将几个块文件发送到 www
文件夹中,我认为你重新加载的次数越多,就越多你在那里的文件。
所以您会看到
格式的文件0.7f0f403f3c9f5914fbce.js
0.7f0f403f3c9f5914fbce.js.map
1.0db885b5a44ebd4ca57e.js
1.0db885b5a44ebd4ca57e.js.map
...and the number goes 0, 1, 2, ... n
您只需删除 www
文件夹即可丢弃陈旧的块文件并重建您的应用程序。
之后apk的大小应该是合理的。
执行以下步骤
- ng 构建 --prod
- 从根文件夹构建之前删除 www
- ionic cordova build android --prod --release
检查 sourceMap
在 angular.json
如果 true
把它放在 false
我想我回答有点晚了,但我这里有一些我的观察:
减少生产 APK 的方法。
确保在创建 APK 之前已创建生产版本 使用此命令创建产品构建
ng build --prod
现在使用以下命令打开 android studio 以进行进一步的操作
ionic capacitor run android --prod //--prod is optional if you have already performed step 1
您可以设置
minifyEnabled
来缩小代码,这也会大大减小 APK 的大小。我还尝试了另一件事,一旦创建了产品构建,就可以从 android 源文件夹中删除未使用的 SVG。我相信这是在资产中添加的,因此在 prod APK 中。 (虽然我不确定执行第 4 步是否安全,但无论如何它并没有伤害我):)
我已经看到使用第 4 步将大小从 4.2 MB 减少到 3.4 MB ;)
这些是我为减小 ionic APK 的大小而执行的步骤。
编码愉快!!