使用矢量可绘制减小 apk 大小

Posted

技术标签:

【中文标题】使用矢量可绘制减小 apk 大小【英文标题】:reducing apk size with vector drawable 【发布时间】:2019-05-09 15:52:13 【问题描述】:

我正在尝试减小我的 android 应用程序的 apk 大小。

我已阅读此指南:https://developer.android.com/topic/performance/reduce-apk-size

我已经将我所有的图像都转换为矢量绘图,所以它们看起来更小了。

但是当我点击生成 apk 时,android studio 确实为我的每个矢量可绘制对象创建了一个 PNG 版本,并将其与最终 apk 中的矢量一起打包

所以这毫无意义,因为现在我的 apk 既有矢量又有 png...

如何强制 android studio 使用可绘制的矢量,让用户在运行时缩放图像?

【问题讨论】:

【参考方案1】:

我知道这是一个老问题,但我最近偶然发现了这个问题。解决方案是启用矢量可绘制支持库。这样它就不会生成旧版本 android 所需的额外 PNG 文件。您可以在 build.gradle 文件中执行此操作:

defaultConfig 
    vectorDrawables.useSupportLibrary = true

您可以在此处找到更多信息: https://developer.android.com/guide/topics/graphics/vector-drawable-resources#vector-drawables-backward-solution

【讨论】:

【参考方案2】:

正如官方文档所说:

如果最低 API 级别为 Android 4.4(API 级别 20)及更低版本,并且 您尚未启用支持库技术 Vector Asset Studio 生成 PNG 文件。

所以检查你的项目是否满足这个条件。

【讨论】:

所以听起来有两种解决方案:1.将minSdkVersion设置为21或更高。 2. 启用“支持库技术”(无论是什么)。 我们的最低 SDK 版本为 21,但仍在生成 PNG 图像。有什么线索吗?

以上是关于使用矢量可绘制减小 apk 大小的主要内容,如果未能解决你的问题,请参考以下文章

如何让带有渐变的矢量可绘制对象在 < API 24 中工作?

Android Dark 主题反转矢量可绘制对象的颜色

绘制与 Panel 相对大小的图像

将矢量绘制为XML中的imageview

如何正确地将 Figma 圆锥(又名径向)渐变转换为 android 矢量可绘制?

调整可绘制图层列表内的位图大小 2