구글 PLAYSTORE에서 내 앱 번들 다운로드 크기는 약입니다 23메가바이트 :
설치 후 왜 그러나, 디스크에 앱 크기가 크게 제기 83메가바이트 :
왜 이런 일이 발생하는지에 대한 아이디어 :
1) 약 11MB의 프로젝트에 대한 Flutter의 자산 파일 (이미지, 사운드 및 글꼴)
2) 디스크의 Flutter 소스 코드 (.dart) 크기는 1.4MB
3) 약 800KB의 Android 기본 리소스 / 아이콘 (Res)
flutter의 플러그인과 관련하여 아래에서 사용합니다.
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
그때는 매우 긴 오류가 발생합니다, 여기 로그입니다 :
== 안드로이드 구축 ==
... (매우 길기 때문에 오류 로그를 잘라 냈지만 전체 로그는 여기에서 볼 수 있습니다 : https://www.dropbox.com/s/jy92d1lmj9pgb6d/full_flutter_error_log.txt?dl=0 )
참고 : 구성은 진입 점을 'io.flutter.plugins.googlesignin.GoogleSignInPlugin $ Delegate $ 3 {void onComplete (com.google.android.gms.tasks.Task); } '이지만 디스크립터 클래스'com.google.android.gms.tasks.Task '는 아님
참고 : 구성은 시작점 'io.flutter.plugins.inapppurchase.Translator {java.util.HashMap fromSkuDetail (com.android.billingclient.api.SkuDetails); } '이지만 디스크립터 클래스'com.android.billingclient.api.SkuDetails '는 아님
참고 : 구성은 시작점 'io.flutter.plugins.inapppurchase.Translator {java.util.HashMap fromPurchase (com.android.billingclient.api.Purchase); } '이지만 디스크립터 클래스'com.android.billingclient.api.Purchase '는 아닙니다.
참고 : 구성은 시작점 'io.flutter.plugins.inapppurchase.Translator {java.util.HashMap fromPurchasesResult (com.android.billingclient.api.Purchase $ PurchasesResult); } '이지만 설명자 클래스'com.android.billingclient.api.Purchase $ PurchasesResult '는 아닙니다.
참고 : 알 수없는 클래스에 대한 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 개의 unkept 디스크립터 클래스가 있습니다.
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 처리 중 예외 : 위의 경고를 먼저 수정하십시오.
Thread (Tasks limiter_1) : 파괴 Gradle 작업 'bundleRelease'실행 중 ... 690.7s (!)
****************************************************** **********************> ******************* Gradle 실패로 인해 이 Flutter 앱의 AndroidX> 비 호환성 문제에 대한 자세한 내용과 해결 방법은 "https : //goo.gl / CP92wY"를 참조하십시오. ****************************************************** **********************> ******************* Gradle 작업 번들 종료 코드 1로 해제하지 못했습니다.
빌드 실패 : | 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 { *; }