1. 删除无用资源,使用Lint;
Analyze -> Run Inspection by Name -> Unused resources
2. 一些资源文件差别很小,比如箭头icon只是方向上的差别,这种资源可以通过代码手段处理得到,只需提供一份,不需要多份;
3.业务线提供的aar没有做混淆和代码压缩,导致业务线中没有被使用的代码也会统计大小,需要删除工程中没有被引用到的代码
在IntelliJ IDEA里面build工程,然后使用
Analyze -> Run Inspection by Name -> Unused declaration;
接下来调研如何实现自动删除无用方法
4.检查是否有过大的图片资源需要压缩
- Aapt(Android Asset Packaging Tool)就内置了 保真图像压缩算法。例如,一个只需 256 色的真彩PNG图片会被aapt 通过
一个颜色调色板转化成一个 8-bit PNG 文件。这可以帮助你减少图片文件的大小。当然还可以通过Google查找相应的优化工具,
比如 pngquant, ImageAlpha 和 ImageOptim 等。 - assets目录下的资源文件不会被aapt优化,需要检查是否有优化空间
- 对资源文件进去取舍, 如果你知道某些屏幕密度的设备只有很少部分用户在使用,那么你就可以直接不需要使用相应屏幕密度
的资源文件
5.通过ColorFilter避免存在多个点击态图片
6.良好的编程习惯,经常重构
重用 重用 重用
7.使用矢量图SVG替代png/jpeg
矢量图形的一大好处是它的渲染是在运行时开始的,因此它可以自适应不同的屏幕。由于矢量图其实保存的只是描述几何图形的文本,因此它只占用非常少的空间。当然因为需要在运行时将这些字符串转换成图像,花费多一点点的cpu是肯定的。