Google PlayStore में मेरा ऐप बंडल डाउनलोड का आकार लगभग 23 एमबी है :
लेकिन क्यों स्थापित करने के बाद, डिस्क पर ऐप का आकार 83 एमबी तक बढ़ जाता है :
कोई भी विचार ऐसा क्यों होता है, क्योंकि:
1) स्पंदन की संपत्ति फ़ाइल (चित्र, ध्वनि और फोंट) केवल 11 एमबी के आसपास की परियोजनाओं पर
2) डिस्क का प्रवाह स्रोत कोड (.dart) डिस्क पर केवल 1.4 एमबी
3) एंड्रॉइड नेटिव रिसोर्स / आइकन (Res) केवल 800 KB के आसपास
स्पंदन के प्लगइन के बारे में मैं नीचे उपयोग करता हूं:
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
किसी भी आइडिया को आकार पर ऐप कैसे कम करें ?
पहले ही, आपका बहुत धन्यवाद...
अपडेट करें
अगर मैं सेट करता हूं minifyEnabled = true
और shrinkResources = true
( जैसा कि रविन्द्र कुमार ने सुझाया है ) build.gradle
तो यह बहुत लंबी त्रुटि उत्पन्न करेगा, यहाँ लॉग है:
== Android के लिए भवन ==
... (मैंने बहुत लंबे समय के कारण त्रुटि लॉग को काट दिया, लेकिन पूर्ण लॉग मधुमक्खी यहां देखी जा सकती है: https://www.dropbox.com/s/jy92d1lmj9pgb6d/full_flutter_error_log.txt?dl0 )
नोट: कॉन्फ़िगरेशन एंट्री पॉइंट को बनाए रखता है 'io.flutter.plugins.googlesignin.GoogleSignInPlugin $ Delegate $ 3 {void onComplete (com.google.android.gms.asks.Task); } ', लेकिन वर्णनकर्ता वर्ग' com.google.android.gms.tasks.Task 'नहीं
नोट: कॉन्फ़िगरेशन एंट्री पॉइंट 'io.flutter.plugins.inapppurchase.Translator {java.util.HashMap fromSkuDetail (com.android.billingclient.api.kuDetails) रखता है; } ', लेकिन वर्णनकर्ता वर्ग नहीं' com.android.billingclient.api.SkuDetails '
नोट: कॉन्फ़िगरेशन एंट्री पॉइंट 'io.flutter.plugins.inapppurchase.Translator {java.util.HashMapPurchase (com.android.billingclient.api.Pachase) से रखता है; } ', लेकिन वर्णनकर्ता वर्ग' com.android.billingclient.api.Purchase 'नहीं
नोट: कॉन्फ़िगरेशन एंट्री पॉइंट को रखता है 'io.flutter.plugins.inapppurchase.Translator {java.util.HashMap fromPurchasesResult (com.android.billingclient.ap..Purchase $ PurchaseResult); } ', लेकिन डिस्क्रिप्टर क्लास' com.android.billingclient.api.Purchase $ $ 100.Res 'पर नहीं
नोट: अज्ञात वर्गों के लिए 7 संदर्भ थे।
You should check your configuration for typos. (http://proguard.sourceforge.net/manual/troubleshooting.html#unknownclass)
नोट: अज्ञात वर्ग के सदस्यों के लिए 3 संदर्भ थे।
You should check your configuration for typos.
नोट: रखे गए वर्ग के सदस्यों में 242 असंगत विवरणक वर्ग थे।
You should consider explicitly keeping the mentioned classes (using '-keep'). (http://proguard.sourceforge.net/manual/troubleshooting.html#descriptorclass)
नोट: कक्षाओं या इंटरफेस के लिए 68 अनसुलझे गतिशील संदर्भ थे।
You should check if you need to specify additional program jars. (http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclass)
चेतावनी: कक्षाओं या इंटरफेस के लिए 25 अनसुलझे संदर्भ थे।
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)
चेतावनी: पुस्तकालय वर्ग के सदस्यों के लिए 2 अनसुलझे संदर्भ थे।
You probably need to update the library versions. (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedlibraryclassmember)
चेतावनी: कार्य करते समय अपवाद java.io.IOException: कृपया उपरोक्त चेतावनियों को ठीक करें।
थ्रेड (कार्य सीमक_1): विनाश रनिंग ग्रैडल कार्य 'बंडललेज़' ... 690.7 ()!
************************************************** ***************************************************** इस फ़्लटर ऐप में AndroidX> असंगतताएं। समस्या के बारे में अधिक जानकारी और इसे ठीक करने के तरीके के लिए "https: //goo.gl / CP92wY" देखें। ************************************************** **********************> *****************************************
बिल्ड फेल: | Android के लिए बनाने में विफल
btw, नीचे मेरा है 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 { *; }