APP瘦身这一篇就够了

  • 时间:
  • 浏览:0

通过查看Bitmap的源码,当我们当我们当我们 要能发现Android中支持的编码格式有JPEG、PNG、WEBP這個 生活。另外当我们当我们当我们 还要能通过引入第三方函数库实现对GIF的支持,接下来分别介绍一下這個 种生活格式的价值形式。

当我们当我们当我们 引入的第三方函数库肯能做了国际化适配,其他当我们当我们当我们 要能根据自身的APP的需求来将当我们当我们当我们 只有的国际化文件给剔除掉。

本文作者:ITGyrfalcon

1). DPI目录:

Android碎片化的发展使得dpi的分类太满,从最初的ldpi、mdpi、hdpi到很久的xhdpi、xxhdpi、xxxhdpi、tvdpi等。

太满的引入第三方的函数库和SDK,不可防止的多了其他重复的代码及资源文件。

本文来自云栖社区合作协议协议伙伴“终端研发部”,了解相关信息要能关注“终端研发部”。



GIF:诞生于1987年,特点是支持多帧动画,社交平台上的各种动态表情大每段是基于GIF来实现的。

JPEG:是這個 生活广泛使用的有损压缩图像的标准格式,它不支持透明和多帧动画,一般影视类作品最终全是以JPEG格式展示。通过控制压缩比,要能调整图片大小。

PNG:PNG是這個 生活无损压缩格式,它支持完整性的透明通道,从图像防止领域讲,JPEG只有RGB有兩个 通道,而PNG有ARGB兩个通道。肯能是无损压缩很久PNG图片一般占用空间比较大,会无形中增加APP大小,其他当我们当我们当我们 在为APP瘦身时一般全是对PNG图片进行防止以降低其大小。

当然当我们当我们当我们 只有过度依赖工具要能人工确认与非 真的多余,这类其他资源是通过Java反射机制来使用的,这时Android Lint还是会检测出资源没法 使用到。

无损压缩:ImageOptim

ImageOptim是一有兩个 无损的压缩工具,它通过优化PNG的压缩参数,移除冗余元数据以及非要能的颜色配置文件等土辦法 ,在不牺牲图片质量的前提下,既减少了PNG图片占用的空间,又提高了加载传输传输速率。

用来去除无用的resource文件,shrinkResources要能在minifyEnable为true的时候要能起作用。

用户对APP视觉要求的不断提高,APP提供的资源细节没法 雄厚,占用的体积不断上升。

ndk.abiFilters:

在app/bulid.gradle文件中增加ndk.abiFilters配置,要能指定当我们当我们当我们 要能的ABI类型,从而要能过滤掉只有的ABI类型的.so文件。

       CompressFormat(int nativeInt) {

共同shrinkResources要要能慎重使用,肯能其他资源肯能是通过反射机制获取的,这类资源也肯能会被过滤掉从而会原应分析在运行应用的时候会报Resource$NotFoundException异常,为了防止這個 具体情况,要能在res/raw/下的一有兩个 叫keep.xml的文件中定义這個 例外,一有兩个 简单的keep.xml的文件如下:



尽量使用NinePath格式格式的PNG图片

.9.png图片格式简称NinePath图,它是针对Android平台的這個 生活特殊格式的PNG图片格式,要能在图片指定的位置拉伸肯能填充内容。NinePath的优点是体积小、拉伸不变形、要能很好的适配Android机型。Android Studio中自带了NinePath图的编辑工具,右键图片取舍Create 9-Patch file即可创建.9.png图片。

resConfigs:在开发中不可防止的会引入第三方函数库肯能SDK,在不修改它们的前提下,不可防止的会引入其他当我们当我们当我们 只有的资源,主要要能分为以下這個 生活:

shrinkResources:

PNG/JPEG转换为WebP

经过Google的测试无损压缩呢后的WebP比PNG文件少了45%的文件大小,即使這個 PNG文件经过其他无损压缩工具的压缩后,WebP依然要能减少约28%的文件大小。不过要能注意的是在Android4.0之上肯能你会支持WebP要能集成第三方函数库如:
webp-android-backport来实现对WebP的支持。另外对于具有Alpha通道的PNG图片来说,肯要可不都可不能否 在Android4.2.1时候的系统上运行,没法 只有转加进去WebP格式肯能只有在Android 4.2.1以上的系统中,要能解析具有Aplha通道的WebP图片。WebP转换工具要能取舍智图iSparta等。

有损压缩:TinyPNG

TinyPNG也是比较知名的有损PNG压缩工具,它以Web站点的形式提供,同所有的有损压缩工具一样经过压缩后的图片要能经过设计师的检验要能上线。

Proguard只会对Java代码起作用,对于res/drawable/* 目录中的图片肯能没法 使用到,Proguard只会移除该图片在R文件中的引用,不想删除该图片。这时就要能用到Android Lint。Android Lint集成在Android Studio中,它会分析res目录下的资源文件,但不想分析assets目录下的资源文件。

微信资源混淆是通过直接修改resources.arsc文件达到资源文件名的混淆,共同利用7z深度1压缩,大大减少了安装包体积,共同也增加了逼格,提升了反破解难度.



肯能Android支持的屏幕密度其他,其他当我们当我们当我们 要能根据自身需求剔除第三方函数库肯能SDK中只有的DPI目录肯能文件

2). 国际化文件:



原文发布时间为:2018-10-23



有损压缩:ImageAlpha

ImageAlpha是ImageOptim作者的一有兩个 有损的PNG压缩工具,相比较而言,图片的大小得到极大的减低,当然共同图片的质量也会受到一定程度的影响,经过该工具压缩的图片,要能经过设计师的检验要能最终上线,很久肯能会影响到整个APP的视觉效果。

minifyEnable:标识与非 开启Proguard混淆,设置为true时要能共同设置Proguard配置文件名和规则,Proguard的作用不仅仅是混淆,它还具有压缩、优化等功能。它会遍历所有代码并找出没法 引用到的代码,這個 无用代码在生成最终Apk文件时候会被过滤掉。



WebP:由Google在2010年发布的,它支持有损无损压缩、支持完整性的透明通道、也支持多针动画,是這個 生活比较理想的图片格式。目前国内像微信淘宝等都肯能应用了WebP,其他在既保证图片质量又限制图片大小的具体情况下WebP应该是首选

在Android Studio中当我们当我们当我们 要能通过配置app/build.gradle来进一步缩减App的大小。