让你的APK足够小

作者: 刘小帅 | 来源:发表于2016-06-26 16:37 被阅读275次

        首先来说一下APK小的好处,APK小就意味着下载耗流量少,下载速度快。站在用户的角度上想一下就知道,用户更愿意下容量小,更精致的APK。当然APK小并不就是意味着功能少,这是站在同样功能的基础上来说的。分析apk的工具https://nimbledroid.com/?spm=5176.100239.blogcont57284.8.aVVWAv

        首先来说一下图标篇,做开发的都知道为了图片设配,图标大小占APK的比重是很大的。从图标出发,思路有二:

      1.压缩图标:使用tinypng优化Android的资源图片,tinypng能在不失真的前提下极大的压缩图标。官网:https://tinypng.com/

    2.减少图标:

      a.随着app版本的迭代,实际上有很多图片已经是用不上了的,但是又没有及时的删除。Android Studio自带的Lint工具能分析出未使用的资源,在AndroidStudio的菜单中选择Analyze->Inspecting Code即可进入Lint工具分析。

       当然也可以直接在build中配置去除无用资源,记得配合代码混淆一起使用

        b.我们会为了设配手机分辨率而让美工切出多套图片,其实并不是每张图片都需要适配多套分辨率的,众所周知drawable下有ldpi、mdpi、hdip、xhdpi、xxhdpi、xxxhdpi来适配不同分辨率的手机,按我个人经验,大多数图标只要设计720分辨率(即xhdpi)下一套,自己设置尺寸来适配。

此外,我们所引入的第三方包中可能也引用了资源图片,但是其中的某些我们可能是不想要的,比如ldpi和xxxhdpi,那么是否可以设置什么东西来让打包的时候剔除他们呢?是可以的,可以配置下build.gradle

defaultConfig {resConfigs"en","de","fr","it"resConfigs"hdpi","xhdpi","xxhdpi"}

        c.多用.9图,9.png格式的图片在android 环境下具有自适应调节大小的能力。记住左上右下,左边和上方是设置.9图横向和纵向可以拉伸的区域,右边和下方是设配横纵向内容的显示区域。

        d.覆盖第三方库里的大图,很多时候我们引入了大量的第三方库,这些第三方库里又引用了一些大图但是实际上并不会被我们用到,删除又怕出错,这时候我们就可以考虑用1x1的透明图片覆盖,已达到减少图片资源空间占用的问题。

      e.用代码代替图片,很多情况下一些简单的图标用shap都能制作,要懂得灵活运用shap。

      f.用layer-list来制作多层图片从而达到复用。

       g.用一张图来制作selector效果,使用selector做遮罩,原图做background。

         h.用图标字体来代替图标,具体可参考阿里巴巴IconFont,地址 http://www.iconfont.cn/

        然后讲一下Progruard,Proguard是Android很早就使用的代码混淆工具,除了用于混淆代码提高安全性以外,他在代码编译的时候也会通过遍历代码的方式来发现没有被调用的代码,从而将其在打包成apk时剔除,最终一定程度上降低了apk的大小。另外提供资源混淆工具AndResGuard

        最后是so的优化,用过百度地图api的同学都知道,百度地图SDK中包含了很多so文件,而这些so文件的体积都很庞大,考虑下我们的用户,基本都是跑在手机上的(没有人跑在模拟器上),所以明显x86和x86_64的so是不需要支持。按个人经验只要保留下面二个就行了。

相关文章

  • 让你的APK足够小

    首先来说一下APK小的好处,APK小就意味着下载耗流量少,下载速度快。站在用户的角度上想一下就知道,用户更...

  • 又一次的重逢,不负最初的遇见

    文/渔小沐 我不知,现在的你是否会让自己足够欢喜,但我记忆中的你始终足够美好。——题记 01 很多时候,我都觉得自...

  • 让你的apk减减肥

    有时候我们在项目中有意无意的就会新建许多的类和接口,然后却没有使用,随着项目迭代的增加,时间增长,无用的文件就变得...

  • 写作成长计划25/365:13天,400公里,徒步肇庆至桂林(2

    徒步是一件足够让你去思考你自己的方式,因为他足够慢,足够累,足够让你崩溃 1 兄弟,你没钱吗? 一个黝黑老汉,把一...

  • #141 责任

    你凭什么让人尊重你?你足够努力吗?足够勤奋吗?

  • 各自努力,巅峰相遇。

    小z, 三年约定, 你足够, 我也足够。 加油!

  • 因为被喷、被怼、被赞,我写了这篇文章

    如果你不能给我足够的爱,那便给我足够的钱。两人的一起,要么足够的爱让我舍不得离不开你,要么足够的钱让我不能离开你。...

  • 养猫的猪(5)👼

    足够喜欢,足够想念 你个小混蛋真的是牢牢的霸占住了我,让我满心满眼都是你,时时刻刻想的都是你 虽然还要好久才能一直...

  • 小心事呀

    其实,喜欢你这件事情就已经足够让我开心了,谢谢你曾经带来的小欢喜

  • 恋爱

    如果没有一个人让你足够爱足够恨,足够恨足够爱,你就没有真正恋爱过。

网友评论

本文标题:让你的APK足够小

本文链接:https://www.haomeiwen.com/subject/keaadttx.html