googleplay空间提示满了


googleplay空间提示满了

尽管谷歌近期调整了Google Play应用大小限制,要求应用大小从50MB提高到了100MB,但在面对多样化严重的Android平台时,游戏开发者仍需面对适配多种屏幕尺寸与压缩包体大小的挑战。针对这一问题,一位安卓游戏开发者在博客中分享了自己将游戏包体大小从106M降至12M的方法。以下是经过Gamelook编译的博文内容,供遇到类似问题的开发者参考:

在分析不同安卓设备的分辨率后,我决定采用六种不同的尺寸来制作游戏资源。我担心这样做会大幅增加游戏的apk文件大小。从游戏开发初期,我便开始关注资源的管理与优化。

最初,我创建了一个包含最低(800480)和最高(25601600)分辨率图片资源的包体,其大小已达106M。为了满足游戏对不同尺寸屏幕的支持,我预计还需增加其他四种分辨率的图片资源,这将使apk大小至少达到300MB以上。显然,这超出了谷歌对于应用大小的限制。对此,谷歌建议通过分割资源包的形式提供额外内容,或者为不同设备提供不同的apk文件。但这两种方案都存在缺陷,我不想让用户下载游戏后再等待数百兆资源的下载时间。我决定寻找新的解决方案。

在在线搜索中,我了解到许多建议,如使用压缩器或模糊处理软件来优化代码,但实际效果并不理想。后来,一个建议引起了我的注意——改用JPEG格式存储图片。我使用TextureAtlas自动整合所有资源,并将图片分为有透明区域和无透明区域两部分。有透明区域的图片以PNG或JPG格式存储,而无透明区域的图片则全部以JPG格式存储。

我的游戏中90%的图片都需要透明度,尤其是卡牌图片。于是,我决定改变处理卡牌图片的方式。我将每张卡牌分为框架和内容两部分。游戏中只有四种类型的卡牌框架,而每张卡牌的内容都是独特的,不需要透明度。我将所有卡牌内容保存为JPG格式,仅将四个框架保存为PNG格式。在绘制过程中,首先绘制JPG格式的卡牌内容,再在其上叠加PNG格式的框架。

为了进一步优化空间占用,我对图片处理过程进行了改进。当卡牌需要翻转时,我只存储初始版本的图像,并在运行时进行翻转操作,而不必存储完整的卡牌图像。这大大节省了存储空间。通过调整图像处理和优化策略,我成功将游戏的apk文件大小降至12MB,相较于最初的106M,节省了88%的空间。即使加入了其他四种分辨率的图片资源后,apk大小也仅增至42MB,相较于预计的300MB大大减少。

总结来说,除了常见的压缩代码等建议外,还有以下建议可供参考:

1. 在保证图像质量的前提下尽可能使用JPG格式的图片;

2. 对于需要使用半透明边框的PNG图片,可以尝试将边框和内容分离存储,以进一步压缩文件大小;

3. 当图像需要翻转或旋转时,只需存储原始版本,在运行时进行相应操作即可。这些策略能有效帮助开发者在适配多种屏幕尺寸的同时控制游戏包体大小。


googleplay空间提示满了