Kích thước tải xuống gói ứng dụng của tôi trong Google PlayStore khoảng 23 MB :
Nhưng tại sao sau khi cài đặt, Kích thước ứng dụng trên Đĩa tăng đáng kể lên 83 MB :
Bất kỳ ý tưởng tại sao điều này xảy ra, bởi vì:
1) Tệp tài sản của Flutter (hình ảnh, âm thanh & phông chữ) trên các dự án chỉ khoảng 11 MB
2) Kích thước của Mã nguồn rung (.dart) trên đĩa chỉ 1,4 MB
3) Biểu tượng / Tài nguyên bản địa của Android (Res) chỉ khoảng 800 KB
liên quan đến plugin của flutter tôi sử dụng dưới đây:
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
Bất kỳ ý tưởng Làm thế nào để giảm ứng dụng trên kích thước ?
Cảm ơn bạn trước ...
CẬP NHẬT
Nếu tôi đặt minifyEnabled = true
và shrinkResources = true
( như được đề xuất bởi Ravinder Kumar ) build.gradle
thì tôi sẽ tạo ra một lỗi rất dài, đây là nhật ký:
== Xây dựng cho Android ==
... (Tôi đã cắt nhật ký lỗi vì rất dài, nhưng nhật ký đầy đủ có thể được xem tại đây: https://www.dropbox.com/s/jy92d1lmj9pgb6d/full_flutter_error_log.txt?dl=0 )
Lưu ý: cấu hình giữ điểm nhập 'io.flutter.plugins.googlesignin.GoogleSignInPlugin $ Delegate $ 3 {void onComplete (com.google.android.gms.t task.Task); } ', nhưng không phải là lớp mô tả' com.google.android.gms.t task.Task '
Lưu ý: cấu hình giữ điểm nhập 'io.flutter.plugins.inapppurchase.Translator {java.util.HashMap từSkuDetail (com.android.billingclient.api.SkuDetails); } ', nhưng không phải là lớp mô tả' com.android.billingclient.api.SkuDetails '
Lưu ý: cấu hình giữ điểm nhập 'io.flutter.plugins.inapppurchase.Translator {java.util.HashMap fromPurchase (com.android.billingclient.api.Purchase); } ', nhưng không phải là lớp mô tả' com.android.billingclient.api.Purchase '
Lưu ý: cấu hình sẽ giữ điểm nhập 'io.flutter.plugins.inapppurchase.Translator {java.util.HashMap từPurchaseResult (com.android.billingclient.api.Purchase $ PurchasingResult); } ', nhưng không phải là lớp mô tả' com.android.billingclient.api.Purchase $ PurchasingResult '
Lưu ý: có 7 tài liệu tham khảo cho các lớp chưa biết.
You should check your configuration for typos. (http://proguard.sourceforge.net/manual/troubleshooting.html#unknownclass)
Lưu ý: có 3 tài liệu tham khảo cho các thành viên lớp chưa biết.
You should check your configuration for typos.
Lưu ý: có 242 lớp mô tả unkept trong các thành viên lớp được giữ.
You should consider explicitly keeping the mentioned classes (using '-keep'). (http://proguard.sourceforge.net/manual/troubleshooting.html#descriptorclass)
Lưu ý: có 68 tài liệu tham khảo động chưa được giải quyết cho các lớp hoặc giao diện.
You should check if you need to specify additional program jars. (http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclass)
Cảnh báo: có 25 tài liệu tham khảo chưa được giải quyết cho các lớp hoặc giao diện.
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)
Cảnh báo: có 2 tài liệu tham khảo chưa được giải quyết cho các thành viên lớp thư viện.
You probably need to update the library versions. (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedlibraryclassmember)
Cảnh báo: Ngoại lệ trong khi xử lý tác vụ java.io.IOException: Vui lòng sửa các cảnh báo trên trước.
Chủ đề (Nhiệm vụ giới hạn_1): hủy bỏ Chạy nhiệm vụ Gradle 'bundleRelease' ... 690.7s (!)
****** / TÌM KIẾM ****** / TÌM HIỂU R ***** RÀNG AndroidX> không tương thích trong ứng dụng Flutter này. Xem "https: //goo.gl / CP92wY" để biết thêm thông tin về sự cố và> cách khắc phục. ****** / TÌM KIẾM ****** / TÌM KIẾM Gói nhiệm vụ cấp bậcRelease không thành công với mã thoát 1
Xây dựng thất bại: | Không thể xây dựng cho Android
btw, dưới đây là của tôi 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 { *; }