Размер загружаемого пакета моего приложения в Google PlayStore составляет около 23 МБ :
Но почему после установки размер приложения на диске значительно увеличивается до 83 МБ :
Любая идея, почему это происходит, потому что:
1) Файл активов Flutter (изображения, звук и шрифты) для проектов всего около 11 МБ
2) Размер исходного кода Flutter (.dart) на диске всего 1,4 МБ.
3) Собственный ресурс Android / иконка (Res) только около 800 КБ
относительно плагина флаттера я использую ниже:
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
angles: ^1.0.1
app_settings: ^1.0.5
archive: ^2.0.8
cached_network_image: ^1.1.1
carousel_slider: ^1.3.0
cron: ^0.2.1
crypto: ^2.0.6
cupertino_icons: ^0.1.2
date_format: ^1.0.5
device_id: ^0.1.3
dio: ^2.0.0
easy_alert: ^0.0.2
localstorage: ^2.0.0
audioplayers: ^0.13.1
path_provider: ^1.1.0
esys_flutter_share: ^1.0.2
flutter_compass: ^0.3.2
flutter_html: ^0.9.6
flutter_local_notifications: ^0.8.2
flutter_offline: ^0.2.4+1
flutter_swiper: ^1.1.6
flutter_xlider: ^2.4.5
font_awesome_flutter: ^8.2.0
geolocator: ^5.0.1
google_maps_flutter: ^0.2.0
google_sign_in: ^4.0.1+1
http: ^0.12.0+2
libcalendar: ^0.2.0
location : ^2.3.0
numberpicker: ^1.0.0
pigment: ^1.0.3
rxdart: ^0.21.0
shared_preferences: ^0.5.1+1
shimmer: ^1.0.0
unicode: ^0.1.0
url_launcher: ^5.0.2
validate: ^1.6.0
vibrate: ^0.0.4
after_layout: ^1.0.7+2
draggable_scrollbar: ^0.0.4
flutter_web_browser: ^0.11.0
flutter_youtube: ^1.1.6
google_api_availability: ^2.0.1
indexed_list_view: ^0.0.5
permission_handler: ^3.1.0
queries: ^0.1.4
rect_getter: ^0.0.1
scroll_to_index: any
sqflite: ^1.1.5
tuple: ^1.0.2
xml2json: ^3.0.3
firebase_messaging: ^5.1.6
firebase_analytics: ^3.0.2
firebase_core: ^0.4.0+3
firebase_auth: ^0.11.1+6
firebase_admob: ^0.9.0+1
firebase_in_app_messaging: ^0.0.1+3
superellipse_shape: ^0.1.5
device_info: ^0.4.0+2
in_app_purchase: ^0.2.0+6
sentry: any
system_info: ^0.1.1
highlighter_coachmark: ^0.0.3
volume: ^0.1.0
admob_flutter: ^0.3.2
bubble_tab_indicator: "^0.1.4"
material_design_icons_flutter: ^3.0.3289
scoped_model: ^1.0.1
flutter_slidable: ^0.4.9
kiwi: ^0.1.0
flutter_markdown: ^0.2.0
flutter_downloader: ^1.2.1
native_ads: ^0.2.0
onesignal_flutter: ^2.0.0
Любая идея, как уменьшить приложение по размеру ?
Заранее спасибо...
ОБНОВИТЬ
Если я установлю minifyEnabled = true
и shrinkResources = true
( как предложено Равиндером Кумаром ) в моем, build.gradle
это вызовет очень длинную ошибку, вот журнал:
== Сборка для Android ==
... (Я вырезал журнал ошибок из-за очень длинного, но полный журнал можно увидеть здесь: https://www.dropbox.com/s/jy92d1lmj9pgb6d/full_flutter_error_log.txt?dl=0 )
Примечание: конфигурация сохраняет точку входа 'io.flutter.plugins.googlesignin.GoogleSignInPlugin $ Delegate $ 3 {void onComplete (com.google.android.gms.tasks.Task); } ', но не класс дескриптора' com.google.android.gms.tasks.Task '
Примечание: конфигурация сохраняет точку входа 'io.flutter.plugins.inapppurchase.Translator {java.util.HashMap fromSkuDetail (com.android.billingclient.api.SkuDetails); } ', но не класс дескриптора' com.android.billingclient.api.SkuDetails '
Примечание: конфигурация сохраняет точку входа 'io.flutter.plugins.inapppurchase.Translator {java.util.HashMap fromPurchase (com.android.billingclient.api.Purchase); } ', но не класс дескриптора' com.android.billingclient.api.Purchase '
Примечание: конфигурация сохраняет точку входа 'io.flutter.plugins.inapppurchase.Translator {java.util.HashMap fromPurchasesResult (com.android.billingclient.api.Purchase $ PurchasesResult); } ', но не класс дескриптора' com.android.billingclient.api.Purchase $ PurchasesResult '
Примечание: было 7 ссылок на неизвестные классы.
You should check your configuration for typos. (http://proguard.sourceforge.net/manual/troubleshooting.html#unknownclass)
Примечание: было 3 ссылки на неизвестных учеников.
You should check your configuration for typos.
Примечание: в сохраненных членах класса было 242 неподдерживаемых класса дескриптора.
You should consider explicitly keeping the mentioned classes (using '-keep'). (http://proguard.sourceforge.net/manual/troubleshooting.html#descriptorclass)
Примечание: было 68 неразрешенных динамических ссылок на классы или интерфейсы.
You should check if you need to specify additional program jars. (http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclass)
Предупреждение: было 25 неразрешенных ссылок на классы или интерфейсы.
You may need to add missing library jars or update their versions. If your code works fine without the missing classes, you can suppress the warnings with '-dontwarn' options. (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass)
Предупреждение: было 2 неразрешенных ссылки на членов библиотечного класса.
You probably need to update the library versions. (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedlibraryclassmember)
Предупреждение: Исключение при обработке задачи. Java.io.IOException: Пожалуйста, сначала исправьте вышеупомянутые предупреждения.
Поток (Задачи limiter_1): уничтожение Запуск задачи Gradle 'bundleRelease' ... 690.7s (!)
************************************************** **********************> ******************* Возможно, сбой Gradle произошел из-за AndroidX> несовместимости в этом приложении Flutter. См. «Https: //goo.gl / CP92wY» для получения дополнительной информации о проблеме и> как ее исправить. ************************************************** **********************> ******************* Пакет задач GradleRelease не удалось с кодом выхода 1
Сборка не удалась: | Не удалось собрать для Android
Кстати, ниже мой proguard-rules.pro
:
#Flutter Wrapper
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.** { *; }
-keep class io.flutter.util.** { *; }
-keep class io.flutter.view.** { *; }
-keep class io.flutter.** { *; }
-keep class io.flutter.plugins.** { *; }
-keep class com.baseflow.** { *; }
#-keep class com.chartboost.** { *; }
-dontwarn com.google.common.base.**
-keep class com.google.common.base.** {*;}
-dontwarn com.google.errorprone.annotations.**
-keep class com.google.errorprone.annotations.** {*;}
-dontwarn com.google.j2objc.annotations.**
-keep class com.google.j2objc.annotations.** { *; }
-dontwarn java.lang.ClassValue
-keep class java.lang.ClassValue { *; }
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
-keep class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement { *; }