再谈Android应用瘦身

Android应用apk安装包的大小,虽然对于现在WiFi普及情况而言消耗流量已经微乎其微,但是,对于一款好的应用,对于一款负责任的应用,当然是越小越好了。

 

引言:

.应用越小,下载越快,也就意味着新用户能在最短时间内安装,体验应用,而不是看着通知栏里面的丑陋的下载进度条,盯着看几分钟(30-50M的应用很常见,网不好,下载几分钟很正常)就像这样...

 

. 随着应用的迭代,应用必须满足人们越来越高的体验需求,应用需要更多的代码,更多的第三方库,更多的资源文件,随着设备的分辨率越来越高,资源文件也是水涨船高,越来越大,最终导致应用大小一直上升.如果解压一个应用,查看他的分布,会发现,最占大小的是这3部分,classes.dex, resources.asrc , res folder. 有时候assets folder 也包含比较大的视频音频图片文件.there are some tools that can help you....whaha

 

正文:

优化点1:Apk Splits  对资源文件做优化配置

Density Splits

android {
  ...
  splits {
    density {
      enable true
      exclude "ldpi", "tvdpi", "xxxhdpi"
      compatibleScreens 'small', 'normal', 'large', 'xlarge'
    }
  }

enable: enables the density split mechanism

exclude: By default all densities are included, you can remove some densities.

include: indicate which densities to be included

reset(): reset the list of densities to be included to an empty string (this allows, in conjunctions with include, to indicate which one to use rather than which ones to ignore)

compatibleScreens: indicates a list of compatible screens. This will inject a matching <compatible-screens><screen ...> node in the manifest. This is optional.

 

Note that this will also always generate a universal APK with all the densities.

 

ABIs Splits

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

enable: enables the ABIs split mechanism

exclude: By default all ABIs are included, you can remove some ABIs.

include: indicate which ABIs to be included

reset(): reset the list of ABIs to be included to an empty string (this allows, in conjunctions with include, to indicate which one to use rather than which ones to ignore)

universalApk: indicates whether to package a universal version (with all ABIs) or not. Default is false.

 

优化点2:WEBP 另外一种谷歌推的web图片格式,小!!!

具体用法,或者兼容低版本,都有解决方案。

 

优化点3:Vector Drawables..同理WEBP....

 

优化点4: 手动压缩图片,神器 imageoptim ,官网:https://imageoptim.com/mac

 

 

https://www.novoda.com/blog/leaner-apks-with-custom-asset-minification/

 

时间: 2024-09-21 21:12:26

再谈Android应用瘦身的相关文章

Android APP瘦身(清除工程中没用到的资源)详解_Android

清除Android工程中没用到的资源 项目需求一改再改,UI一调再调,结果就是项目中一堆已经用不到但却没有清理的垃圾资源,不说工程大小问题,对新进入项目的人或看其他模块的代码的人来说,这些没清理的资源可能也可能会带来困扰,所以最好还是清理掉这些垃圾,对于一个稍微大一点的工程来说,手工清理明显是不现实的,这就需要一个方法做这些事情. 清理资源文件 要清理没用的资源,首要的工作当然是找到他们,我们知道Anroid SDK中有一个工具叫lint,可以帮助我们查看工程中存在的问题,其中有一项功能就是查找

Android APK瘦身实践

因为推广的需要,公司需要把APK的大小再"减小"一下,4M以内! 当达到4M以内之后,公司建议说,能否再压压?2M如何? 瘦身前 因为平时就考虑到大小的限制,所以很多工作已经做过了,如下列举现在的状态: 7.3M(Debug版本)和6.5M(Release版本) 开启minifyEnabled 开启shrinkResources 已经去除不相关的大型库 图片和代码已经经历过粗略的一轮清理 开始魔鬼瘦身 1. tinypng有损压缩 android打包本身会对png进行无损压缩,不信大家

Android应用瘦身,从18MB到12.5MB

开篇语 前阵子老大交给了我一个任务,主要是帮我们开发的直播应用做 Android 端的安装包瘦身,花了大概一周的时间把安装包从 18MB 减小到了 12.5MB.原本完全可以优化到 10MB 之下,但由于其他原因的限制,所以目前阶段只到 12.5MB 为止.在此记录一下优化的思路和用到的工具,方便自己以后 Review ,有需要的童鞋也可供参考. 瘦身的目的 从目的导向来看,我们是不会无缘无故去做一件事情的,那我们对应用瘦身的目的是为了什么?答案是:提高下载转化率.什么是下载转化率?举个栗子:你

再谈Android客户端进程保活

在很多移动应用中,特别是即时通信类项目中,保活是一个永远无法避免的一个话题.保活,按照我的理解,主要包含两部分:网络连接保活:如何保证消息接收实时性.进程保活:尽量保证应用的进程不被Android系统回收. 在很早以前,谈Android的保活都会涉及到进程常驻内存,如何进行性能优化等话题,今天就这些话题,做一个简单的总结. Android进程 在讨论这个问题之前,我们首先来看一些现象级APP的进程. 搞Android的同学都知道,每一个Android应用启动后至少对应一个进程,有的则有多个进程,

Android App瘦身实战

随着业务的快速迭代增长,不断引入新的业务逻辑代码.图片资源和第三方SDK等,很多app都面临一个一个结果,app越来越大,甚至很多无用的代码,包体积的增大带来了很多问题,诸如app启动更慢,代码维护越来越困难.公司业务发展到一定程度之后,重构,代码优化,app瘦身成为不得不做的一个任务.这里以xx外卖app为例给大家讲讲app瘦身过程中常用的几种方法(也都是网上老生常谈的). apk文件构成 我们可以用Zip工具打开APK,一个常见的APK结构如下: 可以看到APK由以下主要部分组成: 文件/目

再谈Android的许可证

两周前,我写了一篇<Android,开源还是封闭?>.其中有一些内容,我今天要做修正,还想谈一些别的感想. 在谈具体的修正之前,我先来说说,那篇文章的一些情况. 那天白天,我在外面办事,从手机上读到Linux内核撤下所有Android代码的消息,感到很震惊.晚上回家后,仔细读完了相关报道,就一口气写了一些感想.写完已经将近半夜12点.我改了几个错别字,直接把文章贴上网,然后就上床睡觉了.当时也没多想,不觉得它和我的其他文章有何不同. 但是,第二天起床以后,我发现事情变得复杂了.那篇文章被转贴到

Android APP瘦身(清除工程中没用到的资源)详解

清除Android工程中没用到的资源 项目需求一改再改,UI一调再调,结果就是项目中一堆已经用不到但却没有清理的垃圾资源,不说工程大小问题,对新进入项目的人或看其他模块的代码的人来说,这些没清理的资源可能也可能会带来困扰,所以最好还是清理掉这些垃圾,对于一个稍微大一点的工程来说,手工清理明显是不现实的,这就需要一个方法做这些事情. 清理资源文件 要清理没用的资源,首要的工作当然是找到他们,我们知道Anroid SDK中有一个工具叫lint,可以帮助我们查看工程中存在的问题,其中有一项功能就是查找

我的Android进阶之旅------&amp;gt;Android APP终极瘦身指南

首先声明,下面文字转载于: APK瘦身实践 http://www.jayfeng.com/2015/12/29/APK%E7%98%A6%E8%BA%AB%E5%AE%9E%E8%B7%B5/ APP终极瘦身指南 http://www.jayfeng.com/2016/03/01/Android-APP%E7%BB%88%E6%9E%81%E7%98%A6%E8%BA%AB%E6%8C%87%E5%8D%97/                                           

扇贝张志博--APK瘦身的实践与演进

[51CTO.com原创稿件]扇贝是一个全面有效提升英语的移动互联网学习平台,有包括单词.听力.口语.新闻.阅读.炼句在内的六大应用,是目前国内唯一能让用户在移动端完成英语学习整个一套闭环的学习系统. 为什么要做APK瘦身? 一个很现实的事情是,到上个月底有23.49%用户使用移动网络使用App,其中有4.09%用户还在使用2G网络,这是一个很可怕的数字,因为到今天为止仍在使用Android2.3的用户已经是1%甚至连1%都不到的在网用户量,然而使用2G网络用户还有4.09%.因为现在用户使用移