res资源优化
(1)只使用一套图片,使用高分辨率的图片。
(2)UI设计在ps安装TinyPNG插件,对图片进行无损压缩。
(3)svg图片:一些图片的描述,牺牲CPU的计算能力的,节省空间。使用的原则:简单的图标。
(4)图片使用WebP(https://developers.google.com/speed/webp/)的格式(Facebook、腾讯、淘宝在用。)缺点:加载相比于PNG要慢很多。 但是配置比较高。工具:http://isparta.github.io/
(5)使用tintcolor(android - Change drawable color programmatically)实现按钮反选效果。
代码优化
(1)实现功能模块的逻辑简化
(2)Lint工具检查无用文件将无用的资源列在“UnusedResources: Unused resources”,删除。
(3)移除无用的依赖库。
lib资源优化
(1)动态下载的资源。
(2)一些模块的插件化动态添加。
(3)so文件的剪裁和压缩。
assets资源优化
(1)音频文件最好使用有损压缩的格式,比如采用opus、mp3等格式,但是最好不要使用无损压缩的音乐格式
(2)对ttf字体文件压缩,可以采用FontCreator工具只提取出你需要的文字。比如在做日期显示时,其实只需要数字字体,但是使用原有的字体库可能需要10MB大小,如果只是把你需要的字体提取出来生成的字体文件只有10KB
代码混淆。
使用proGuard 代码混淆器工具,它包括压缩、优化、混淆等功能。
7z极限压缩
具体请参考微信的安接包压缩,实现实现原理,有时间再分析;