Rozmiar mojego pakietu aplikacji do pobrania w Google PlayStore wynosi około 23 MB :
Ale dlaczego po zainstalowaniu rozmiar aplikacji na dysku znacznie wzrasta do 83 MB :
Każdy pomysł, dlaczego tak się dzieje, ponieważ:
1) Plik zasobów Fluttera (obrazy, dźwięk i czcionki) w projektach ma tylko około 11 MB
2) Rozmiar kodu źródłowego trzepotania (.dart) na dysku tylko 1,4 MB
3) Android Native Resource / icon (Res) tylko około 800 KB
odnośnie wtyczki fluttera używam poniżej:
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
Jakiś pomysł Jak zmniejszyć rozmiar aplikacji ?
Z góry dziękuję...
AKTUALIZACJA
Jeśli ustawię minifyEnabled = true
i shrinkResources = true
( jak sugeruje Ravinder Kumar ) w moim build.gradle
, wygeneruje to bardzo długi błąd, oto dziennik:
== Budowanie dla Androida ==
... (Wytnąłem dziennik błędów z powodu bardzo długiego, ale pełny dziennik można zobaczyć tutaj: https://www.dropbox.com/s/jy92d1lmj9pgb6d/full_flutter_error_log.txt?dl=0 )
Uwaga: konfiguracja zachowuje punkt wejścia „io.flutter.plugins.googlesignin.GoogleSignInPlugin $ Deleguj 3 $ {void onComplete (com.google.android.gms.tasks.Task); } ”, ale nie klasa deskryptora„ com.google.android.gms.tasks.Task ”
Uwaga: konfiguracja zachowuje punkt wejścia „io.flutter.plugins.inapppurchase.Translator {java.util.HashMap fromSkuDetail (com.android.billingclient.api.SkuDetails); } ”, ale nie klasa deskryptora„ com.android.billingclient.api.SkuDetails ”
Uwaga: konfiguracja zachowuje punkt wejścia „io.flutter.plugins.inapppurchase.Translator {java.util.HashMap fromPurchase (com.android.billingclient.api.Purchase); } ”, ale nie klasa deskryptora„ com.android.billingclient.api.Purchase ”
Uwaga: konfiguracja zachowuje punkt wejścia „io.flutter.plugins.inapppurchase.Translator {java.util.HashMap fromPurchasesResult (com.android.billingclient.api.Purchase $ PurchasesResult); } ”, ale nie klasa deskryptora„ com.android.billingclient.api.Purchase $ PurchasesResult ”
Uwaga: było 7 odniesień do nieznanych klas.
You should check your configuration for typos. (http://proguard.sourceforge.net/manual/troubleshooting.html#unknownclass)
Uwaga: były 3 odniesienia do nieznanych członków klasy.
You should check your configuration for typos.
Uwaga: w utrzymywanych członkach klasy istniało 242 nieutrzymanych klas deskryptorów.
You should consider explicitly keeping the mentioned classes (using '-keep'). (http://proguard.sourceforge.net/manual/troubleshooting.html#descriptorclass)
Uwaga: istniało 68 nierozwiązanych dynamicznych odniesień do klas lub interfejsów.
You should check if you need to specify additional program jars. (http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclass)
Ostrzeżenie: istnieje 25 nierozwiązanych odwołań do klas lub interfejsów.
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)
Ostrzeżenie: istnieją 2 nierozwiązane odwołania do członków klasy biblioteki.
You probably need to update the library versions. (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedlibraryclassmember)
Ostrzeżenie: Wyjątek podczas przetwarzania zadania java.io.IO Wyjątek: Najpierw popraw powyższe ostrzeżenia.
Wątek (Tasks limiter_1): zniszczenie Uruchamianie zadania Gradle „bundleRelease” ... 690,7 s (!)
************************************************** **********************> ******************* Awaria stopniowania mogła być spowodowana AndroidX> niezgodności w tej aplikacji Flutter. Zobacz „https: //goo.gl / CP92wY”, aby uzyskać więcej informacji na temat problemu i> jak go naprawić. ************************************************** **********************> ******************* Stopień pakietu zadań Zwolnienie nie powiodło się z kodem wyjścia 1
Kompilacja nie powiodła się: | Nie udało się zbudować dla Androida
btw, poniżej jest moje 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 { *; }