Android开发性能优化干货;让你的APK瘦身88%

本文介绍了如何优化Android应用APK的大小,通过理解APK结构,重点关注classes.dex、lib、res和assets的优化。减少第三方库的使用,避免枚举,启用ProGuard进行代码压缩,以及对资源文件进行压缩和优化,如使用WebP格式和矢量图形。此外,还提到了针对未使用资源的处理和动态链接库的优化策略。
摘要由CSDN通过智能技术生成

写在开头;

随着业务复杂度的逐渐增加,代码、资源也在不断的增加,此时你的APP大小也在增加。从用户层面来说,面对动辄几十兆的APP来说在非WIFI情况下还是会犹豫要不要下载,不下载你就可能因此失去了一个用户。从公司层面来讲,流量就是钱,减少APP的大小就显得尤为重要。从开发者层面上来讲,你掌握了这个手艺也会略显逼格满满。

废话不多说了,开始正题。

1.APK结构的那些事

知己知彼,方能百战不殆。了解应用程序APK的结构对于我们来说很有帮助。APK文件由一个ZIP存档组成,其中包含组成应用程序的所有文件。这些文件包括Java类文件,资源文件和包含编译资源的文件。

APK包含以下目录:

  • META-INF/:包含CERT.SF和 CERT.RSA签名文件以及MANIFEST.MF 清单文件。
  • assets/:包含应用可以使用AssetManager对象检索的应用资源。
  • res/:包含未编译到的资源 resources.arsc。
  • lib/:包含特定于处理器软件层的编译代码。该目录包含了每种平台的子目录,像armeabi,armeabi-v7a, arm64-v8a,x86,x86_64,和mips。
  • resources.arsc:包含已编译的资源。该文件包含res/values/ 文件夹所有配置中的XML内容。打包工具提取此XML内容,将其编译为二进制格式,并将内容归档。此内容包括语言字符串和样式,以及直接包含在resources.arsc文件中的内容路径 ,例如布局文件和图像。
  • classes.dex:包含以Dalvik / ART虚拟机可理解的DEX文件格式编译的类。
  • AndroidManifest.xml:包含核心Android清单文件。该文件列出应用程序的名称,版本,访问权限和引用的库文件。该文件使用Android的二进制XML格式。
  • 来看看淘宝APP的unzip之后的文件目录

一般来讲APK结构中比较大的部分一般是classes.dex、lib、res、assets这些文件或者目录。所以接下来将会针对这四种情况进行讲解。

另外,我们通过APK Analyser 可以分析 APK

2.减小 classes.dex

classes.dex 包含了所有 Java 代码。当你编译你的应用时,gradle 会将你的所有模块里的 .class 文件转换成 .dex 文件并将这些文件合成一个 classes.dex 文件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值