Ukuran Unduhan Bundel Aplikasi Saya di Google PlayStore sekitar 23 MB :
Tapi Mengapa setelah diinstal, Ukuran Aplikasi pada Disk meningkat secara signifikan menjadi 83 MB :
Gagasan mengapa ini terjadi, karena:
1) File aset Flutter (gambar, suara & font) pada proyek hanya sekitar 11 MB
2) Ukuran Flutter Source Code (.dart) pada disk hanya 1,4 MB
3) Android Native Resource / ikon (Res) hanya sekitar 800 KB
tentang plugin flutter yang saya gunakan di bawah:
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
Any Idea Bagaimana mengurangi Ukuran App On ?
Terima kasih sebelumnya...
MEMPERBARUI
Jika saya mengatur minifyEnabled = true
dan shrinkResources = true
( seperti yang disarankan oleh Ravinder Kumar ) di saya build.gradle
maka itu akan menghasilkan kesalahan yang sangat panjang, inilah lognya:
== Membangun untuk Android ==
... (Saya memotong log kesalahan karena sangat panjang, tetapi log lengkap dapat dilihat di sini: https://www.dropbox.com/s/jy92d1lmj9pgb6d/full_flutter_error_log.txt?dl=0 )
Catatan: konfigurasi membuat titik entri 'io.flutter.plugins.googlesignin.GoogleSignInPlugin $ Delegasi $ 3 {batal onComplete (com.google.android.gms.tasks.Task); } ', tetapi bukan kelas deskriptor' com.google.android.gms.tasks.Task '
Catatan: konfigurasi membuat entry point 'io.flutter.plugins.inapppurchase.Translator {java.util.HashMap fromSkuDetail (com.android.billingclient.api.SkuDetails); } ', tetapi bukan kelas deskriptor' com.android.billingclient.api.SkuDetails '
Catatan: konfigurasi membuat entry point 'io.flutter.plugins.inapppurchase.Translator {java.util.HashMap fromPurchase (com.android.billingclient.api.Purchase); } ', tetapi bukan kelas deskriptor' com.android.billingclient.api.Pembelian '
Catatan: konfigurasi membuat titik entri 'io.flutter.plugins.inapppurchase.Translator {java.util.HashMap fromPurchasesResult (com.android.billingclient.api.Purchase $ PurchasesResult); } ', tetapi bukan kelas deskriptor' com.android.billingclient.api.Pembelian $ PurchasesResult '
Catatan: ada 7 referensi ke kelas yang tidak diketahui.
You should check your configuration for typos. (http://proguard.sourceforge.net/manual/troubleshooting.html#unknownclass)
Catatan: ada 3 referensi untuk anggota kelas yang tidak dikenal.
You should check your configuration for typos.
Catatan: ada 242 kelas deskriptor yang tidak diurus di anggota kelas yang disimpan.
You should consider explicitly keeping the mentioned classes (using '-keep'). (http://proguard.sourceforge.net/manual/troubleshooting.html#descriptorclass)
Catatan: ada 68 referensi dinamis yang tidak terselesaikan untuk kelas atau antarmuka.
You should check if you need to specify additional program jars. (http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclass)
Peringatan: ada 25 referensi yang tidak terselesaikan untuk kelas atau antarmuka.
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)
Peringatan: ada 2 referensi yang tidak terselesaikan untuk anggota kelas perpustakaan.
You probably need to update the library versions. (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedlibraryclassmember)
Peringatan: Pengecualian saat memproses tugas java.io.IOException: Harap perbaiki peringatan di atas terlebih dahulu.
Utas (Tugas limiter_1): penghancuran Menjalankan tugas Gradle 'bundleRelease' ... 690.7d (!)
************************************************ **********************> ******************* Kegagalan Gradle mungkin karena AndroidX> tidak kompatibel dalam aplikasi Flutter ini. Lihat "https: //goo.gl / CP92wY" untuk informasi lebih lanjut tentang masalah dan> cara memperbaikinya. ************************************************ **********************> ******************* Tugas bundle kelulusan gagal dengan kode keluar 1
Gagal membangun: | Gagal membangun untuk Android
btw, di bawah ini adalah milik saya 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 { *; }