apk瘦身

  • Proguard
    混淆文件中申明相关的不需要的类直接不参与编译,以及相关的瘦身优化等
  • Vector Drawables
    在Android5.0之后,支持直接通过<vector>标签去定义矢量图,既省了空间,又可以适配不同的屏幕达到不失真,我们可以直接从网上下载相应的SVG图片,然后利用Vector asset studio去根据图片生成矢量图,具体我们可以看下这个哥们如何去使用的
    http://www.jianshu.com/p/456df1434739
  • apk splits
    在gradle文件中添加相应的配置文件来对输出的apk进行拆分
android {
    ...
    splits {
        density {
            enable true
            exclude 'ldpi', 'tvdpi', 'xxxhdpi'
//alternatively use the following two lines to only include:
//            reset()
//            include 'mdpi', 'hdpi', 'xhdpi', 'xxhdpi'
            compatibleScreens 'small', 'normal', 'large', 'xlarge'
        }
    }
}

上面是对不同的分辨率进行拆分
enable: 启用屏幕密度拆分机制
exclude: 默认情况下所有屏幕密度都包括在内,你可以移除一些密度。
include: 表示要包括哪些屏幕密度
reset(): 重置屏幕密度列表为只包含一个空字符串 (这能够实现,在与include一起使用时可以表示使用哪一个屏幕密度,而不是要忽略哪一些屏幕密度)
compatibleScreens:表示兼容屏幕的列表。这将会注入到manifest中匹配的 <compatible-screens> <screen> 节点。这个设置是可选的。
按照分辨率可想而知是对图片进行拆分,我们现在可以使用矢量图去解决这个问题
也可以按照ABI来进行拆分:

android {
  ...
  splits {
    abi {
      enable true
      reset()
      include 'x86', 'armeabi-v7a', 'mips'
      universalApk true
    }
  }
}

enable: 启用ABI拆分机制
exclude: 默认情况下所有ABI都包括在内,你可以移除一些ABI。
include:指明要包含哪些ABI
reset():重置ABI列表为只包含一个空字符串(这可以实现,在与include一起使用来可以表示要使用哪一个ABI,而不是要忽略哪一些ABI)
universalApk:指示是否打包一个通用版本(包含所有的ABI)。默认值为 false。

  • 图片的优化
    我们可以使用trimage或者Optipng等工具对图片文件进行无损压缩
    并且尽量不要使用jpeg格式的图片,可以更多的使用.9图片
  • Lint
    使用lint去检索出来unused resource,然后视情况进行删除
    检测出duplicated 东西,删除多余的重复的方法定义或者是assets等东西
  • 删除所有的debug的相关东西
  • reuse resource
    只要有可能就重复的使用你的资源,换句话说就是尽量把重复的东西抽出来当成公共的使用
  • 尽量使用推荐的媒体格式
    图片 png 音频 aac 视频 h264avc
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 最近几周一直在研究如何为APK瘦身,折腾了很久,是时候写篇博客总结一下了,虽然已经准备了下周一要在客户端周会分享用...
    风清袖一阅读 1,070评论 1 10
  • 学习目标1.学习了解ABI,.so文件,ABI和CPU的关系2.多分辨率适配3.图片处理 ABI API管理不同A...
    鱼__鱼阅读 871评论 0 0
  • 本文来自尚妆Android团队青峰发表于尚妆博客 APK瘦身探索 最近几周一直在研究如何为APK瘦身,折腾了很久,...
    尚妆产品技术刊读阅读 1,796评论 1 23
  • 瘦身意味了什么呢?人们瘦身味了更好的身体和更匀称的身材。那么app呢?提高下载转化率,用户在无wifi情况下少用流...
    乐之飞于阅读 622评论 0 3
  • multer 是express官方推荐的文件上传中间件,express是一款快速而极简的 Node.js Web框...
    BoyiLi阅读 2,533评论 0 0