我们包含此AndroidPdfViewer 库以支持在应用程序中查看 PDF 报告。它导致 APK 大小从 4.7Mb 大量增加到 20.1Mb。
有没有办法减小这个尺寸。让我知道在哪里以及需要修补什么来帮助或解决这个问题。
我熟悉 proguard 并让它为我的应用程序配置并取得了相当大的成功。
我们包含此AndroidPdfViewer 库以支持在应用程序中查看 PDF 报告。它导致 APK 大小从 4.7Mb 大量增加到 20.1Mb。
有没有办法减小这个尺寸。让我知道在哪里以及需要修补什么来帮助或解决这个问题。
我熟悉 proguard 并让它为我的应用程序配置并取得了相当大的成功。
您必须为不同的设备生成多个 APK,通过这样做,您可以将 apk 的大小减少到比以前少 10 MB。将以下代码添加到 build.gradle (Module:App)
android{
.....
splits {
abi {
enable true
reset()
include 'x86_64', 'x86', 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'mips'
universalApk false
}
}
.....
}
ext.versionCodes = ['armeabi': 1, 'armeabi-v7a': 2, 'arm64-v8a': 3, mips: 4, 'x86': 5, 'x86_64': 6]
import com.android.build.OutputFile
// For each APK output variant, override versionCode with a combination of
// ABI APK value * 1000 + defaultConfig.versionCode
android.applicationVariants.all { variant ->
// assign different version code for each output
variant.outputs.each { output ->
output.versionCodeOverride =
project.ext.versionCodes.get(output.getFilter(OutputFile.ABI)) * 1000 + android.defaultConfig.versionCode
}
}
Whatch 视频在这里https://youtu.be/bP05Vpp49hs详细解释如何做到这一点。
为什么生成的 apk 这么大?
如barteksc/AndroidPdfViewer 文档中所述
Android PdfViewer 依赖于 PdfiumAndroid,它是一组适用于许多架构的本地库(大约 16 MB)。Apk 必须包含所有这些库,才能在市场上可用的每台设备上运行。幸运的是,Google Play 允许我们上传多个 apk,例如每个架构一个。有一篇关于自动将您的应用程序拆分为多个 apk 的好文章,可在此处获得。最重要的部分是使用 APK 拆分改进多个 APK 创建和版本代码处理,但整篇文章值得一读。您只需要在您的应用程序中执行此操作,无需分叉 PdfiumAndroid 左右。
如果有人正在为您的应用寻找轻量级的 pdf 查看器,那么试试这个
它帮助我将应用程序大小从 27MB 减少到 10MB,因为 barteksc-androidpdfviewer 需要更多空间
我也遇到了同样的问题,但是到目前为止,通过使用 android 应用程序包来减少 apk 大小非常容易。首先在 build.gradle(Module: app) 中将这些行添加到 android { } 括号内。
bundle {
abi {
enableSplit = true
}
}
这将根据架构处理 apk 拆分。现在,还记得在 proguard-rules.pro 中添加这一行
-keep class com.shockwave.**
如果您不在 proguard-rules.pro 中添加此行,那么您的应用程序将在发布版本中崩溃。现在,在此之后转到Build然后选择Generate Signed Bundle/apk。从这里,生成一个签名包。捆绑包的生成方式与生成 apk 的方式完全相同。然后,将您的包(.aab 文件)上传到 Google Play 控制台,您会看到每台设备都会根据其架构获得不同的 apk。这是减少应用程序大小的最简单方法。多 apk 概念更复杂。
所以,我建议你使用这种方式。