5

我们包含此AndroidPdfViewer 库以支持在应用程序中查看 PDF 报告。它导致 APK 大小从 4.7Mb 大量增加到 20.1Mb。

有没有办法减小这个尺寸。让我知道在哪里以及需要修补什么来帮助或解决这个问题。

我熟悉 proguard 并让它为我的应用程序配置并取得了相当大的成功。

4

4 回答 4

2

您必须为不同的设备生成多个 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详细解释如何做到这一点。

于 2017-08-17T08:44:02.643 回答
2

为什么生成的 apk 这么大

barteksc/AndroidPdfViewer 文档中所述

Android PdfViewer 依赖于 PdfiumAndroid,它是一组适用于许多架构的本地库(大约 16 MB)。Apk 必须包含所有这些库,才能在市场上可用的每台设备上运行。幸运的是,Google Play 允许我们上传多个 apk,例如每个架构一个。有一篇关于自动将您的应用程序拆分为多个 apk 的好文章,可在此处获得。最重要的部分是使用 APK 拆分改进多个 APK 创建和版本代码处理,但整篇文章值得一读。您只需要在您的应用程序中执行此操作,无需分叉 PdfiumAndroid 左右。

API:https ://github.com/barteksc/AndroidPdfViewer

于 2017-03-16T17:29:16.670 回答
0

如果有人正在为您的应用寻找轻量级的 pdf 查看器,那么试试这个

使用这个库

它帮助我将应用程序大小从 27MB 减少到 10MB,因为 barteksc-androidpdfviewer 需要更多空间

于 2020-01-17T01:16:38.457 回答
0

我也遇到了同样的问题,但是到目前为止,通过使用 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 概念更复杂。

所以,我建议你使用这种方式。

于 2020-07-05T19:51:42.807 回答