O tamanho do download do meu pacote de aplicativos no Google PlayStore é de cerca de 23 MB :
Mas por que, depois de instalado, o Tamanho do Aplicativo no Disco aumenta significativamente para 83 MB :
Alguma idéia de por que isso acontece, porque:
1) Arquivo de ativos do Flutter (imagens, som e fontes) em projetos com apenas 11 MB
2) Tamanho do código-fonte de vibração (.dart) no disco apenas 1,4 MB
3) Recurso / ícone nativo do Android (Res) apenas cerca de 800 KB
sobre o plugin do flutter que eu uso abaixo:
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
Alguma idéia Como reduzir o tamanho do aplicativo ?
Agradeço antecipadamente...
ATUALIZAR
Se eu definir minifyEnabled = true
e shrinkResources = true
( como sugerido por Ravinder Kumar ) no meu build.gradle
, ele irá gerar um erro muito longo, aqui está o log:
== Construindo para Android ==
... (Cortei o log de erros por muito tempo, mas o log completo pode ser visto aqui: https://www.dropbox.com/s/jy92d1lmj9pgb6d/full_flutter_error_log.txt?dl=0 )
Nota: a configuração mantém o ponto de entrada 'io.flutter.plugins.googlesignin.GoogleSignInPlugin $ Delegate $ 3 {void onComplete (com.google.android.gms.tasks.Task); } ', mas não a classe do descritor' com.google.android.gms.tasks.Task '
Nota: a configuração mantém o ponto de entrada 'io.flutter.plugins.inapppurchase.Translator {java.util.HashMap deSkuDetail (com.android.billingclient.api.SkuDetails); } ', mas não a classe do descritor' com.android.billingclient.api.SkuDetails '
Nota: a configuração mantém o ponto de entrada 'io.flutter.plugins.inapppurchase.Translator {java.util.HashMap fromPurchase (com.android.billingclient.api.Purchase); } ', mas não a classe do descritor' com.android.billingclient.api.Purchase '
Nota: a configuração mantém o ponto de entrada 'io.flutter.plugins.inapppurchase.Translator {java.util.HashMap dePurchasesResult (com.android.billingclient.api.Purchase $ PurchasesResult); } ', mas não a classe do descritor' com.android.billingclient.api.Purchase $ PurchasesResult '
Nota: houve 7 referências a classes desconhecidas.
You should check your configuration for typos. (http://proguard.sourceforge.net/manual/troubleshooting.html#unknownclass)
Nota: havia três referências a alunos desconhecidos.
You should check your configuration for typos.
Nota: havia 242 classes de descritores não mantidas em membros da classe mantidos.
You should consider explicitly keeping the mentioned classes (using '-keep'). (http://proguard.sourceforge.net/manual/troubleshooting.html#descriptorclass)
Nota: havia 68 referências dinâmicas não resolvidas para classes ou interfaces.
You should check if you need to specify additional program jars. (http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclass)
Aviso: havia 25 referências não resolvidas para classes ou 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)
Aviso: havia duas referências não resolvidas para os membros da classe da biblioteca.
You probably need to update the library versions. (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedlibraryclassmember)
Aviso: Exceção ao processar a tarefa java.io.IOException: primeiro corrija os avisos acima.
Tópico (Tarefas limitador_1): destruição Tarefa executando o Gradle 'bundleRelease' ... 690.7s (!)
**************************************************** **********************> ******************* A falha Gradle pode ter sido devido a AndroidX> incompatibilidades neste aplicativo Flutter. Consulte "https: //goo.gl / CP92wY" para obter mais informações sobre o problema e>> como corrigi-lo. **************************************************** **********************> ******************* O pacote de tarefas GradleRelease falhou com o código de saída 1
Falha na compilação: | Falha ao criar para Android
btw, abaixo é o meu 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 { *; }