Android Studio - 多个屏幕的图像使 apk 的大小变得异常大
AndroidStudio - Images for multiple screens makes size of apk grow exceptionally large
我正在使用 AndroidStudio 制作一个 android 项目,但我对我使用的图像的 物理 大小有疑问。
基本上我有 15 个活动,所有活动的背景和按钮都有不同的 .png
文件。这些图片是全高清 (1080x1920)。我使用拍摄照片的插件 Android Drawable Importer
为每张图片创建了不同的 "variations",并为不同的屏幕密度创建了 "redraws"(ldpi,mdpi、hdpi、xhdpi、xxhdpi 和 xxxhdpi).到目前为止一切顺利。
但是这样做我会为我的每张照片(总共 96 张)制作 5 份。所有可绘制目录中生成的图片的总大小约为 100MB,这使得 .apk
文件如此之大。
所以我的问题是:有没有办法优化这个大小或其他更好的方法?
我已阅读 Supporting multiple screens 文章,其中告诉我做我正在做的事情,但 id 不考虑 .apk 文件的结果大小以及应用程序安装时的大小phone.
你不能让应用根据屏幕尺寸下载一次(只下载一次并且 cache/store 它在 SD 卡中)所需的图像(大的,可能是背景图像,如果不是全部的话)或来自服务器的解析。
我不认为使用那么多图像和那么大尺寸是个好主意。
恕我直言,如果用户使用的是 xxxhdpi 屏幕分辨率的设备,我可以假设他至少有能力下载这些图像至少一次!同样适用于其他用户!
如果上述解决方案不适合您,我建议您通过压缩使用这些图像。有一些软件可以做到这一点。或者您可以使用在线网站:
https://tinypng.com 压缩图像。
尝试使用 svg
http://developer.android.com/tools/help/vector-asset-studio.html
使用现有方法:
如果您使用 5 英寸以下的屏幕,请使用 hdpi 图像;否则,如果超过 7 英寸,则使用 xdpi,使用 xhdpi。如果您只针对屏幕小于 5 英寸的设备,那么坚持使用 hdpi 本身,它将达到目的。
实际上,我的解决方案非常简单。我为我的背景图片使用 .png
文件,这占用了很多 space 并且实际上没有必要这样做,因为我不需要我的背景是透明的。因此,我将背景文件转换为 .jpg
,并将所有其他按钮图像保留在 .png
中,.apk
的大小变为 16MB。这比我最初的 .apk
.
小 8-9 倍
我正在使用 AndroidStudio 制作一个 android 项目,但我对我使用的图像的 物理 大小有疑问。
基本上我有 15 个活动,所有活动的背景和按钮都有不同的 .png
文件。这些图片是全高清 (1080x1920)。我使用拍摄照片的插件 Android Drawable Importer
为每张图片创建了不同的 "variations",并为不同的屏幕密度创建了 "redraws"(ldpi,mdpi、hdpi、xhdpi、xxhdpi 和 xxxhdpi).到目前为止一切顺利。
但是这样做我会为我的每张照片(总共 96 张)制作 5 份。所有可绘制目录中生成的图片的总大小约为 100MB,这使得 .apk
文件如此之大。
所以我的问题是:有没有办法优化这个大小或其他更好的方法?
我已阅读 Supporting multiple screens 文章,其中告诉我做我正在做的事情,但 id 不考虑 .apk 文件的结果大小以及应用程序安装时的大小phone.
你不能让应用根据屏幕尺寸下载一次(只下载一次并且 cache/store 它在 SD 卡中)所需的图像(大的,可能是背景图像,如果不是全部的话)或来自服务器的解析。
我不认为使用那么多图像和那么大尺寸是个好主意。
恕我直言,如果用户使用的是 xxxhdpi 屏幕分辨率的设备,我可以假设他至少有能力下载这些图像至少一次!同样适用于其他用户!
如果上述解决方案不适合您,我建议您通过压缩使用这些图像。有一些软件可以做到这一点。或者您可以使用在线网站: https://tinypng.com 压缩图像。
尝试使用 svg http://developer.android.com/tools/help/vector-asset-studio.html
使用现有方法: 如果您使用 5 英寸以下的屏幕,请使用 hdpi 图像;否则,如果超过 7 英寸,则使用 xdpi,使用 xhdpi。如果您只针对屏幕小于 5 英寸的设备,那么坚持使用 hdpi 本身,它将达到目的。
实际上,我的解决方案非常简单。我为我的背景图片使用 .png
文件,这占用了很多 space 并且实际上没有必要这样做,因为我不需要我的背景是透明的。因此,我将背景文件转换为 .jpg
,并将所有其他按钮图像保留在 .png
中,.apk
的大小变为 16MB。这比我最初的 .apk
.