La taille de téléchargement de mon ensemble d'applications dans Google PlayStore est d'environ 23 Mo :
Mais pourquoi après l'installation, la taille de l'application sur le disque augmente considérablement à 83 Mo :
Toute idée pourquoi cela se produit, car:
1) Fichier d'actifs Flutter (images, sons et polices) sur des projets d'environ 11 Mo
2) Taille du code source Flutter (.dart) sur le disque seulement 1,4 Mo
3) Ressource / icône Android native (Res) seulement environ 800 Ko
concernant le plugin de flutter que j'utilise ci-dessous:
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
Toute idée Comment réduire la taille de l'application ?
Merci d'avance...
MISE À JOUR
Si je mets minifyEnabled = true
et shrinkResources = true
( comme suggéré par Ravinder Kumar ) dans mon build.gradle
alors cela générera une très longue erreur, voici le journal:
== Construire pour Android ==
... (J'ai coupé le journal des erreurs car très long, mais le journal complet peut être vu ici: https://www.dropbox.com/s/jy92d1lmj9pgb6d/full_flutter_error_log.txt?dl=0 )
Remarque: la configuration conserve le point d'entrée 'io.flutter.plugins.googlesignin.GoogleSignInPlugin $ Delegate $ 3 {void onComplete (com.google.android.gms.tasks.Task); } ', mais pas la classe de descripteurs' com.google.android.gms.tasks.Task '
Remarque: la configuration conserve le point d'entrée 'io.flutter.plugins.inapppurchase.Translator {java.util.HashMap fromSkuDetail (com.android.billingclient.api.SkuDetails); } ', mais pas la classe de descripteurs' com.android.billingclient.api.SkuDetails '
Remarque: la configuration conserve le point d'entrée 'io.flutter.plugins.inapppurchase.Translator {java.util.HashMap fromPurchase (com.android.billingclient.api.Purchase); } ', mais pas la classe de descripteurs' com.android.billingclient.api.Purchase '
Remarque: la configuration conserve le point d'entrée 'io.flutter.plugins.inapppurchase.Translator {java.util.HashMap fromPurchasesResult (com.android.billingclient.api.Purchase $ PurchasesResult); } ', mais pas la classe de descripteurs' com.android.billingclient.api.Purchase $ PurchasesResult '
Remarque: il y avait 7 références à des classes inconnues.
You should check your configuration for typos. (http://proguard.sourceforge.net/manual/troubleshooting.html#unknownclass)
Remarque: il y avait 3 références à des élèves inconnus.
You should check your configuration for typos.
Remarque: il y avait 242 classes de descripteurs non maintenues dans les membres de classe conservés.
You should consider explicitly keeping the mentioned classes (using '-keep'). (http://proguard.sourceforge.net/manual/troubleshooting.html#descriptorclass)
Remarque: il y avait 68 références dynamiques non résolues à des classes ou des interfaces.
You should check if you need to specify additional program jars. (http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclass)
Avertissement: il y avait 25 références non résolues à des classes ou des interfaces.
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)
Avertissement: il y avait 2 références non résolues aux membres de la classe de bibliothèque.
You probably need to update the library versions. (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedlibraryclassmember)
Avertissement: exception lors du traitement de la tâche java.io.IOException: veuillez d'abord corriger les avertissements ci-dessus.
Thread (Tasks limiter_1): destruction Exécution de la tâche Gradle 'bundleRelease' ... 690.7s (!)
************************************************** **********************> ******************* L'échec de Gradle peut être dû à AndroidX> incompatibilités dans cette application Flutter. Voir "https: //goo.gl / CP92wY" pour plus d'informations sur le problème et> comment le résoudre. ************************************************** **********************> ******************* Ensemble de tâches Gradle La libération a échoué avec le code de sortie 1
Échec de la construction: | Impossible de créer pour Android
btw, ci-dessous est mon 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 { *; }