Розмір завантаження пакета мого додатка в Google PlayStore становить близько 23 Мб :
Але чому після встановлення розмір додатка на диску значно збільшується до 83 Мб :
Будь-яка ідея, чому це відбувається, тому що:
1) Файл активів Flutter (зображення, звук та шрифти) для проектів лише близько 11 Мб
2) Розмір вихідного коду Flutter (.dart) на диску всього 1,4 Мб
3) Рідний ресурс / значок Android (Res) лише близько 800 Кб
стосовно плагіна Flutter я використовую нижче:
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: спочатку виправте вищезазначені попередження.
Нитка (обмеження завдань_1): знищення Запуск завдання Gradle 'bundleRelease' ... 690,7s (!)
**************************************************** **********************> ******************* Невдача Gradle могла статися через AndroidX> несумісність у цій програмі Flutter Див. "Https: //goo.gl / CP92wY" для отримання додаткової інформації про проблему та> як її виправити. **************************************************** **********************> ******************* Пакет завдань GradleЗапустіть помилку з кодом виходу 1
Помилка побудови: | Не вдалося створити для Android
btw, нижче моє 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 { *; }