美文网首页
Android对apk包进行瘦身

Android对apk包进行瘦身

作者: 小宇宙_XYZ | 来源:发表于2018-02-23 19:12 被阅读21次

原文:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2017/0419/7848.html

http://wuxiaolong.me/2017/03/19/ReduceAPKSize/

APK文件内容速揽:

apk文件结构

各个文件和目录的作用是什么呢?

各个文件和目录的作用

OK,既然我们已经了解了APK的各个组成部分,那么我们就可以针对下面的三个组成部分,采取逐个击破的方式,达到缩减APK体积的目的:

1、Java代码

我们可以使用Proguard,在编译时对Java代码进行混淆,优化和压缩。Proguard对代码进行遍历,然后剔除其中未被使用的冗余的代码,并对类,属性,接口等进行重命名,从而达到瘦身的目的。

我们可以在 build.gradle 文件中配置Proguard。

Proguard

除此之外,微信的工程师还开源了一个项目,可以直接对APK进行处理,缩小体积。具体的使用方法:https://github.com/shwenzhang/AndResGuard。

2、资源文件

Lint

由于Proguard只对Java代码起作用,对于资源文件,它就无能为力了。这个时候,Lint就派上用场了。Lint是一个静态的代码分析器,我们可以通过在 Android Studio -> Analyze -> Inspect code... , 选择范围即可开始就检查。

Inspect code

Lint在检查完成后,会提供一份详细的资源文件清单,并且将没有用到的资源在 UnusedResources:Unused resources区域。只要我们没有通过反射使用这些资源,就可以放心的删掉它们了

下面是我根据lint的提示,剔除了部分无用资源后,APK的体积:

图片压缩

对于资源文件的优化,其实占大头的还是图片。Android打包本身会对png进行无损压缩,在不那么影响图片显示效果的情况下,对图片进行有损压缩对apk体积的减小还是非常可观的。

我们先使用TinyPng对项目中四张比较大的图片进行压缩,可以看出,效果还是非常不错的。

使用TinyPng后,我们还可以将图片转换为 WebP 格式,进一步缩小图片的体积。不过需要注意的是,WebP格式仅适用于Android 4.0+版本,如果你的应用需要兼容Android 2.3,那么需要额外的引入 .so 文件,apk的体积自然也会增加。所以,根据你的需求,权衡利弊吧。

在 Android Studio 中,选定需要转换的图片,然后右键鼠标,即可在菜单底部看到 Convert to WebP 的选项了,然后就可以进行转换的操作。

3、Native Code

如果你的App使用到了Native code,在不影响功能的前提下,可以考虑去除部分平台对应的代码,例如移除对 armeabi、mips的支持

Native Code

4、其他

别忘了最简单,也最容易忽视的,去除重复的依赖,或者是引用更加轻量级的库,也可以达到apk瘦身的效果。

在Release版本中,去除那些只会在debug时才会出现的代码。

对于那些使用频率很小的文件或者是图片,可以存放到云端后,通过网络加载。

相关文章

  • Android对apk包进行瘦身

    原文:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/...

  • Android Apk包瘦身

    目录 1、Android 编译打包流程2、Apk包瘦身 1、Android 编译打包流程及APK构成 1.1、An...

  • Android APP 终极瘦身指南

    前言 APK瘦身即是对APK大小进行压缩策略,减小APK安装包大小,更小的安装包更有助于吸引用户安装;虽然说APK...

  • Android性能优化:安装包优化

    1.常规apk瘦身 apk压缩包的大小经过优化之后变小 1.1 apk中的图片的压缩 对apk中的图片进行压缩 【...

  • APK瘦身-是时候给App进行减负了!

    前言 APK瘦身即是对APK大小进行压缩策略,减小APK安装包大小,更小的安装包更有助于吸引用户安装。前一段时间我...

  • 【性能优化】也谈APK瘦身

    前言 APK瘦身即是对APK大小进行压缩策略,减小APK安装包大小,更小的安装包更有助于吸引用户安装。前一段时间我...

  • Android Apk包瘦身

    首先我们来了解Android编译打包流程 1.Android编译打包流程及APK构成 1).通过Java编译器对于...

  • app性能优化

    Android冷启动时间优化 Android开发——避免内存泄露 APK瘦身实践 APK瘦身记,如何实现高达53%...

  • Android应用瘦身实践

    参考文章 APK瘦身记,如何实现高达53%的压缩效果 Android APP终极瘦身指南 优化效果 优化前包大小是...

  • APK瘦身 减小APP体积

    APK dex瘦身 APK res瘦身 APK减小语言包 APK 重新打包 PNG转JPG tiny处理png w...

网友评论

      本文标题:Android对apk包进行瘦身

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