在安卓使用本地库时,减小.apk文件大小且不使用pro-guard的方法是什么?

3

enter image description here我正在开发一款Android(Java)的PDF相关应用程序。为了进行PDF编辑和将其他文件类型转换为PDF文件,我添加了一些本地库,并且对我来说工作得很好。但是,在开发应用程序之后,发布的.apk文件大小超过29 MB。如果我使用pro-guard,.apk大小肯定会缩小到22 MB。但是,由于某些功能不适用于pro-guard,因此我不想使用它。那么我该如何减小我的.apk文件大小呢?


2
使用Bundle而不是APK进行发布。 - Abhay Koradiya
使用Android应用程序包无法减小.aab文件的大小。 - Mehul Dhimmar
请阅读此链接中的顶部框,了解更多有关在 Google Play 发布多个 APK 文件的相关内容。显然,Google Play 会自动为您压缩 APK 文件。 - chrylis -cautiouslyoptimistic-
@MehulDhimmar 这个问题解决了吗? - IntelliJ Amiya
@IntelliJ Amiya... 不,我正在尝试各种方法,但到目前为止还没有成功。 - Mehul Dhimmar
3个回答

0

应该使用SVG图像

VectorDrawable是一种矢量图形,定义在XML文件中,由一组点、线和曲线以及其相关的颜色信息组成。使用矢量图形的主要优点是图像的可伸缩性。它可以被缩放而不会损失显示质量,这意味着同一个文件可以被重新调整大小以适应不同的屏幕密度而不会丢失图像质量。

矢量对象比光栅图像格式要小得多。如果我们有完整尺寸的图像需要更新,矢量文件可能只占用系统上几千字节的空间,而相同的图像在中等分辨率位图格式下可能无法放在CD-ROM上。

顺便提一下

请使用应用程序包代替apk。

Google Play的新应用程序服务模型称为动态交付,然后使用您的应用程序包为每个用户的设备配置生成和提供优化的APK,因此他们仅下载运行您的应用程序所需的代码和资源。 您不再需要构建、签名和管理多个APK以支持不同的设备,用户可以获得更小、更优化的下载。

我按照您上面提到的所有步骤进行了操作。我遇到的问题是库的大小,而不是图像。 - Mehul Dhimmar
@MehulDhimmar 阅读 https://developer.android.com/topic/performance/reduce-apk-size - IntelliJ Amiya
@MehulDhimmar https://medium.com/vectorly/how-we-reduced-our-app-size-by-72-c2471ba75954 - IntelliJ Amiya

0

有多种方法可以减小apk大小。您可以开始使用App Bundles,它根据架构(本地库)、密度和语言将您的应用程序拆分为基础、配置和动态功能apks。在安装时,它会合并各种配置包,并使用其规格为该设备创建一个单一的apk。

这样可以减少下载(安装)和更新大小,但最终的捆绑包(.aar)文件与创建没有捆绑的通用apk相同。

另一个选择是创建Multiple APKs。这样,您可以通过指定要支持或忽略的密度、架构和语言来自己创建和管理apks。这可能会有点繁琐,但这肯定会减小最终apk的大小,因为您只使用所需的资源和库。

这两种方式的工作方式相似,但在使用捆绑包的情况下,你不必自行管理多个 APK 文件。你只需处理捆绑包的创建,然后 Play 商店会根据请求更新或安装的设备自行创建 APK 文件。但如果是多个 APK 文件,则需要自己创建所有的 APK 文件。例如,如果你支持 3 种语言(en、es、fr)、2 种架构(x86、x86_64)和 4 种像素密度(mdpi、hdpi、xhdpi、xxhdpi),那么你就需要创建 3x2x4 个 APK 文件。


0

你可以尝试的一件事情是从重构>删除未使用的资源,它将删除未使用的类、图片、XML等,从而减小apk大小。

另外,你还可以通过在build.gradle中添加shrinkResources true来进行shrinkResources

android {
    // Other settings

    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true 

        }
    }
}

看到他的问题 - IntelliJ Amiya
他想要减小apk的大小,我正在建议解决方案。 - YuvrajsinhJadeja
没有使用Proguard。 - IntelliJ Amiya
尊敬的用户,上述解决方案未使用Proguard,请查看更新后的答案。 - YuvrajsinhJadeja
你也可以将此作为你的应用程序包,但这样会在某些时候减小大小。 - YuvrajsinhJadeja
2
@yuvrajsinh,你的答案是使用pro-guard来减小大小。但是我不想使用pro-guard。 - Mehul Dhimmar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接