我在使用java的android应用程序开发方面有很好的经验.最近我开始了解扑扑.所以,我试图基于官方教程创建一个简单的Android应用程序与flutter .但令人惊讶的是,调试应用程序大小为25MB,发布apk的成本超过7MB.与原生开发的Android应用程序相比,它真的更大.
有没有办法优化它?
自Android Studio 3.5更新以来,在构建我的应用程序时出现此警告:
DSL元素“ useProguard”已过时,将很快被删除。在gradle.properties中使用'android.enableR8'在R8和Proguard之间切换。
我按照以下说明将ProGuard添加到Flutter中,现在在启动应用程序时看到此异常:
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/auth/internal/zzae;
Run Code Online (Sandbox Code Playgroud)
这显然已连接到Firebase Auth。提到的说明还指出以下内容:
任何其他库(例如Firebase)都需要添加自己的规则。
但是,我没有找到任何资源来显示需要添加到的语句proguard-rules.pro。
我可以想象在Auth组件修复后,其他Firebase组件也会类似地崩溃,因此我想知道“例如Firebase”的含义是什么,即是否每个组件都有规则,或者是否只需要修复此问题用于Firebase身份验证。
我正在阅读有关针对Android应用程序使用build.gradle缩小,模糊和优化发行版本的文档。在文档的一部分中,proguard-android.txt将其用作默认的ProGuard文件:
android {
...
buildTypes {
release {
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
}
}
Run Code Online (Sandbox Code Playgroud)
在另一部分中,proguard-android-optimize.txt使用:
android {
...
buildTypes {
release {
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),
'proguard-rules.pro'
}
}
}
Run Code Online (Sandbox Code Playgroud)
它们之间的区别似乎没有解释,我找不到任何信息。有人可以解释一下差异是什么,何时使用proguard-android-optimize.txtvs proguard-android.txt?
谢谢 :)