应该使用SVG图像
VectorDrawable是一种矢量图形,定义在XML文件中,由一组点、线和曲线以及其相关的颜色信息组成。使用矢量图形的主要优点是图像的可伸缩性。它可以被缩放而不会损失显示质量,这意味着同一个文件可以被重新调整大小以适应不同的屏幕密度而不会丢失图像质量。
矢量对象比光栅图像格式要小得多。如果我们有完整尺寸的图像需要更新,矢量文件可能只占用系统上几千字节的空间,而相同的图像在中等分辨率位图格式下可能无法放在CD-ROM上。
顺便提一下
请使用应用程序包
代替apk。
有多种方法可以减小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 文件。
你可以尝试的一件事情是从重构
>删除未使用的资源
,它将删除未使用的类、图片、XML等,从而减小apk大小。
另外,你还可以通过在build.gradle
中添加shrinkResources true
来进行shrinkResources
。
android {
// Other settings
buildTypes {
release {
minifyEnabled true
shrinkResources true
}
}
}