Android性能调优:apk大小优化

  • 一方面,在发布android apk版本的时候,往往需要对apk空间进行优化。另一方面,用户在应用市场下载安装时,往往会将apk的大小作为一个考虑因素。所以合理的apk大小是必要的。

    近期在新项目调优时,发现apk大小较之前增加了6M多。使用Android Studio自带的apk analysis发现如下图:

    举例说明,优化前,drawable文件夹下面的xxhdpi占3.2M。
    Android性能调优:apk大小优化_第1张图片
    优化后:,xxhdpi占1.2M。
    Android性能调优:apk大小优化_第2张图片

    如果我们对项目中的所有资源文件都同等程度的优化,那么我们的apk将缩小很大的空间,运行也会较之前更快,内存占用也会更小。

    这里采用的工具是pngquant,是一个开源的工具,可以对png图片等进行几乎无损的压缩,而且可以自行设置压缩比。为了能一次性压缩文件夹下面的png图片,用python写了个批处理的小脚本。

    代码如下:

#!/usr/bin/python
# -*- coding:utf8 -*-
import os
print os.getcwd()
files = os.listdir(r'/root/vic/drawable_sources/src')
display_size = "ls -lht ./temp/*.png"
def command():
    return "pngquant -f --ext .png --quality 80-80 ./temp/*.png"
for file in files:
    if (not os.path.isdir(file) and (file.endswith('.png') or file.endswith('.PNG'))):
        os.system(command())
os.system(display_size)
  • 注意
    这里采用压缩比为80%,相对比较保守。

  • 报错处理

    批处理之后导入项目,编译报错如下:

这里写图片描述

该报错初步感觉是资源文件出了问题,通过beyandcompare比较之后发现,文件夹下面存在.9.png图片,应该是pngquant工具还不支持对.9.png图片的处理,去掉这类图片的替换,项目就构建成功了。

你可能感兴趣的:(Android进阶)