android apk 瘦身

App瘦身

代码瘦身

  1. 移除无用代码、功能,缩减方法数;
  2. 移除无用的库、避免功能雷同的库;
  3. 启用Proguard,让方法字符串长度变小;

资源瘦身

  1. 移除无用的资源文件;移除无用资源文件要比移除无用代码容易,在Android Studio的任何文件中右击,选择清除无用资源即可删除没有用到的资源文件。
    备注:另外在build.gradle中设置shrinkResources为true后,每次打包的时候就会自动排除无用的资源。shrinkResources需要配合minifyEnabled一起使用。但是根据我的实验:无用的资源还是会被打进Apk中,只是变成一张黑图,体积也非常小,只有不到100b(待验证)。
  2. Drawable目录尽量只保留一份资源;对UI不是最顶级要求的话根据自己的用户群体机型放在一个合适的目录下。
  3. 对图片进行压缩;可以考虑使用TinyPng、pngquant、ImageOptim等工具对图片进行压缩,这些工具可以减少PNG文件大小,同时保持图像质量
    有一个AndroidStudio插件:TinyPngPlugin,能够批量地压缩项目中的图片,更加方便。
  4. PNG转换JPG;PNG是无损压缩,JPG是有损压缩,根据UI情况可选。
  5. 使用矢量图;SVG,svg比较耗cpu,小图标等常见。
  6. 使用WebP;Android 4.2.1+才支持显示含透明度的WebP。
  7. 资源混淆;资源混淆,于是路径变短,resources.arsc中文件变小,如res/drawable-xhdpi/icon.png被修改为R/s/f.png。
    可参考微信的资源混淆方案:AndResGuard
  8. 资源在线化;不经常使用又非常大的资源放网上,按需下载。

So瘦身

在允许的情况下,针对用户机型分布保留特定架构的So;

其它

采用google的bundle机制,根据手机本身的特点按需下载对应的资源及so等,类似插件化,将Dex与资源文件放在服务端,需要时下载;但需考虑插件化实施以及与现有项目结合难度;通过在 build.gradle配置include来针对每个CPU架构生成单独的安装包,按照架构上传Apk;但是这个方案在国内应用市场几乎没有采用的,只能在Google Play上使用。

对Apk进行瘦身,瘦身So以及资源文件见效最快,而针对Dex的优化可能作用不会很明显。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,142评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,298评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,068评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,081评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,099评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,071评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,990评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,832评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,274评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,488评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,649评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,378评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,979评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,625评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,643评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,545评论 2 352

推荐阅读更多精彩内容

  • 瘦身意味了什么呢?人们瘦身味了更好的身体和更匀称的身材。那么app呢?提高下载转化率,用户在无wifi情况下少用流...
    乐之飞于阅读 607评论 0 3
  • 要尽可能减小 APK 文件,我们应该启用压缩来移除发布构建中未使用的代码和资源。 1. 使用 ProGuard 混...
    云飞扬1阅读 2,852评论 0 51
  • Android APK瘦身经验总结 写在前面: 无论手机的内存有多大, 我们自然都希望一个应用的安装包能越小越好,...
    MeloDev阅读 4,633评论 1 35
  • 本文记录自己之前做的一些apk瘦身措施,都是在网上搜索整理的通用方法 依据官方文档进行瘦身 参考文章:压缩代码和资...
    小草凡阅读 1,766评论 0 0
  • 五月份吃西瓜按说是反季。小孩子馋,早上临上学走嘱咐晚上考完期中试要降降火。应了。 接近五点下班路过菜市场,拐进去菜...
    不言简书阅读 355评论 3 2