Skip to content

Latest commit

 

History

History
54 lines (30 loc) · 2.26 KB

android_apk_optimization.md

File metadata and controls

54 lines (30 loc) · 2.26 KB

###apk瘦身

  • 1.使用一套图资源

对于绝大对数APP来说,只需要取一套设计图就足够了。鉴于现在分辨率的趋势,建议取720p的资源,放到xhdpi目录。

相对于多套资源,只使用720P的一套资源,在视觉上差别不大,很多大公司的产品也是如此,但却能显著的减少资源占用大小,顺便也能减轻设计师的出图工作量了

  • 2.开启minifyEnabled混淆代码

  • 3.开启shrinkResources去除无用资源

  • 4.删除无用的语言资源(大多数情况仅仅需要中文)

       android{
           defaultConfig{
               resConfigs "zh"
           }
       }
    
  • 5.使用tinypng有损压缩

    android打包本身会对png进行无损压缩,所以使用像tinypng这样的有损压缩是有必要的。 重点是Tinypng使用智能有损压缩技术,以尽量少的失真换来图片大小的锐减,效果非常好,强烈推荐。

    Tinypng的官方网站:http://tinypng.com/ 拖进去就可以

  • 6.对于非透明的大图使用jpg格式 jpg将会比png的大小有显著的优势,虽然不是绝对的,但是通常会减小到一半都不止。在启动页,活动页等之类的大图展示区采用jpg将是非常明智的选择。

  • 7.使用webp格式(系统版本需要兼容)

    webp支持透明度,压缩比比jpg更高但显示效果却不输于jpg,官方评测quality参数等于75均衡最佳。

    相对于jpg、png,webp作为一种新的图片格式,限于android的支持情况暂时还没用在手机端广泛应用起来。从Android 4.0+开始原生支持,但是不支持包含透明度,直到Android 4.2.1+才支持显示含透明度的webp,使用的时候要特别注意。

    官方介绍:https://developers.google.com/speed/webp/docs/precompiled

  • 8.shape替换一些背景

  • 9.selector 处理不同颜色图片使用着色方案

  • 10.覆盖第三方库里的大图1x1

    有些第三方库引用了一些大图,但实际上并不会并我们用到,第三方的图片通常会拷贝到我的项目中,因此我们可以使用同名1X1像素透明图片进行覆盖

  • 11.第三方库避免重复引用

  • 12.在线资源应用

  • 13.插件化

  • 14.删除armable-v7下so

  • 15.使用7z极限压缩图片