Почему размер apk файла flutter немного больше - PullRequest
3 голосов
/ 08 января 2020

Существует приложение Android, которое реализовано с ionic4, и я реализовал те же функции в другом приложении, написанном на flutter, но размер файла ioni c apk составляет всего 13MB. С аналогичной функциональностью apk (реализация все еще не завершена) размер файла 21MB.

У меня есть следующие вопросы:

  • Я хочу понять, что возможно делает мой apk больше?

  • Может ли это быть связано с реализацией кода или чем-то еще?

Кто-то поможет мне уменьшить приложение flutter размер?

Ответы [ 2 ]

2 голосов
/ 08 января 2020

Вы собрали Apk Flutter для отладки или выпуска? Это имеет большое значение для размера файла apk. Кроме того, Flutter и Ioni c - это разные фреймворки, поэтому нередко имеют разные размеры apk (подробнее о том, почему Ioni c имеет меньший размер файла, вы можете проверить это , не только сравнить размеры, но производительность, простота использования и т. д. c).

Уважайте ваш второй вопрос: что вы можете сделать, чтобы уменьшить размер Flkter apk?

  1. Удалить пакеты, libs или плагины не используются
  2. Проверьте размер ресурсов, включенных в приложение (изображения, видео и т. д. c)
  3. Проверьте, выполняете ли вы компиляцию в режиме выпуска или отладки. Опять же, это имеет значение.
  4. Если вы собираетесь загрузить свой apk в Google Play Store, вы можете создать Bundle вместо Apk. Это может оптимизировать размер вашего приложения.
0 голосов
/ 08 января 2020

Обратите также внимание на это:

Если вы строите свой apk, используя flutter build apk, он будет содержать apk как arm-32, так и arm-64 (Какой флаттер будет отображаться в коноле при создании apk). Если вы строите комплект приложений, это не проблема, и его размер намного меньше.

Чтобы избежать одного плоского apk, содержащего arm-32 и arm-64, вы можете построить их отдельно, используя две команды:

flutter build apk --target-platform=android-arm

Выше будет выдан arm-32 бит apk. Go в project -> build -> app -> release и переименуйте apk в это: app-armeabi-v7a-release.apk.

, затем увеличьте код версии в pubspe c .yaml, затем flutter pub get и сделайте это:

flutter build apk --target-platform=android-arm64

Выше будет выдан arm-64 бит apk. Go в project -> build -> app -> release и переименуйте apk в это: app-arm64-v8a-release.apk.

Затем вы можете отправить два apk отдельно (сначала нижняя версия apk).

Так как вы должны запустить увеличивая код версии двумя командами, flutter упростил эту команду (думаю, flutter> 1.5.4): flutter build apk --split-per-abi. Эта команда будет увеличивать код версии apk для второго apk и давать вам два переименованных apks (обратите внимание, что эта команда будет генерироваться с более высоким кодом версии (например, 3222)).

From do c:

Из командной строки:

Enter cd <app dir>
(Replace <app dir> with your application’s directory.)
Run `flutter build apk --split-per-abi`
(The flutter build command defaults to `--release`.)

Эта команда приводит к двум файлам APK:

<app dir>/build/app/outputs/apk/release/app-armeabi-v7a-release.apk
<app dir>/build/app/outputs/apk/release/app-arm64-v8a-release.apk
<app dir>/build/app/outputs/apk/release/app-x86_64-release.apk

Удаление флага --split-per-abi приводит к толстому APK, который содержит ваш код, скомпилированный для всех целевых ABI. Такие APK больше по размеру, чем их разделенные аналоги, поэтому пользователь загружает собственные двоичные файлы, которые не применимы к архитектуре их устройства

Подробнее читайте здесь .

Также отметьте это:

  • В качестве другого упомянутого ответа удалите все ненужные ресурсы (изображения, шрифты и файлы).

Если у вас слишком много шрифтов, которые влияют на apk sizely и flutter также создали решение для этого, создав пакет для вас, чтобы вы могли получать шрифты из библиотеки шрифтов google (потрясающий пакет, который дает вам доступ к такому количеству шрифтов и гибкости для использования в любом месте). Получите пакет здесь и Подробнее здесь .

  • Удалите ненужные пакеты / плагин, который не использует (хотя и не сильно влияет).
...