美文网首页
Gradle插件在包体积优化中的应用

Gradle插件在包体积优化中的应用

作者: HarryChen | 来源:发表于2021-05-18 15:13 被阅读0次

在安卓app包里面,占体积的主要是三块

  • 一块是dex文件,也就是java/kotlin代码,这块基本上都是用了Proguard去 压缩(Shrinking)、优化(Optimization)、混淆(Obfuscation),基本上proguard之后再优化的空间已经不大了。当然可以采用插件化去动态下发。
  • 一块是so库,如果不是自己本公司开发的so库,基本是没有办法去优化三方库的so体积的。当然依然可以使用云端动态下发。
  • 一块就是资源图片,当然依然是可以图片服务器通过glide等从云端拉取。这里主要讲采用gradle插件或工具来便捷的对图片资源的优化。

1、 使用 Lint 的 Remove Unused Resource

APK 的资源主要包括图片、XML,与冗余代码一样,它也可能遗留了很多旧版本当中使用而新版本中不使用的资源,这点在快速开发的 App 中更可能出现。我们可以通过点击右键,选中 Refactor,然后点击 Remove Unused Resource => preview 可以预览找到的无用资源,点击 Do Refactor 可以去除冗余资源。如下图所示:

removeunuse.png

2、检测重复资源

项目开发中可能经常出现不同名但是其实是同张图片或者shape的情况,这个时候要用肉眼去观察其实是一件很难也很费时间的事情,对于文件的唯一性,我们可以通过md5来区分是否是同一资源,这里使用写了md5校验文件的插件。

checkDuplicate.png

3、检测大图上传cdn图片服务器

在项目中,有些很大的图片其实没有必要全部都放在本地。正常情况100k以上的图片就需要放到图片服务器了,那么开发人员那么多,总是会有粗心的会放在本地。那么如何限制进行收口管理,我们可以在讲module upload maven的脚本中加上图片体积限制,大于一定体积直接抛异常即可。这里写了个一个检测图片体积的gradle插件

checkressize.png

4、检测非webp的图片

webp格式是google推出的图片格式,相对于png在体积上进行了一定的压缩,无损webp压缩近30%,有损webp压缩近80%,由于手机屏幕小,采用有损webp肉眼几户也很难察觉出区别,所以使用有损webp格式的话 100k接近压缩至20几k,效果还是很客观的。正常公司ui提供的图是有webp的,但是有些同学可能粗心选择的png。要是每个迭代都去肉眼目测一次图片格式是不现实的,所以,这里依然写了个检测是否存在非webp格式图片的插件

checkwebp.png

代码地址

相关文章

  • Gradle插件在包体积优化中的应用

    在安卓app包里面,占体积的主要是三块 一块是dex文件,也就是java/kotlin代码,这块基本上都是用了Pr...

  • 包体积优化

    为什么需要优化包体积 下载转化率,包体积增加不利于用户下载 推广成本,包体积增大推广成本也会加大 应用市场限制 包...

  • Android应用包体积优化

    前言 我司某产品产品从立项至今已经有三个年头,三年中的功能迭代导致项目中积累了大量过时的功能,把研发人员带到了业务...

  • 包体积瘦身

    包体积是什么 包体积优化前,先要明白包体积是什么,在app store上看到的体积又是什么。在app store里...

  • 浅谈iOS的包体积优化(一)

    为什么要做包体积优化 随着应用的不断更新迭代,应用安装包的体积会越来越大,用户下载应用消耗流量产生的资费就会进一步...

  • Mac上提取assets.car图片

    我们在进行包体积优化时,会去查看分析ipa包,因为看到这篇文章iOS 优化IPA包体积(今日头条)[https:/...

  • ImageOptim – 一款 Mac 上好用的免费图片优化无损

    ImageOptim,简单易用的图片体积优化工具。只需拖动图片至应用界面即可自动对图片体积大小进行优化图片文件中通...

  • iOS APP瘦身之优化图片资源

    本文总结了优化应用中图片资源大小的几种方法,有效的使用这些方法,可以减小应用的图片资源体积。 在使用这些优化方法之...

  • iOS APP瘦身之优化图片资源

    本文总结了优化应用中图片资源大小的几种方法,有效的使用这些方法,可以减小应用的图片资源体积。 在使用这些优化方法之...

  • 包体积优化

    1.删除无用图片资源https://github.com/tinymind/LSUnusedResources2....

网友评论

      本文标题:Gradle插件在包体积优化中的应用

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