大家都知道开发中应用程序的性能是非常重要的,将直接影响用户的体验,但是性能优化是个老生常谈的问题,我们需要慢慢来,本篇文章将从如何减少APK的大小开始,来提升Android App的性能,这里只是列举了一些方式方法,读者可根据自身应用需要对自己的APK进行相应处理。
用户经常会避免下载看起来太大的应用程序,尤其是在设备连接到2G和3G网络或付费网络的应用市场内部。这篇文章讲述如何减少您的应用程序APK的大小,以便使更多的用户下载您的应用程序。
理解APK文件结构
在讨论如何降低您的应用程序的大小之前,理解一个应用程序的APK的文件结构它是非常有帮助的。一个APK文件包含一个ZIP归档,主要包含您的应用程序的所有文件。这些文件包括Java类文件,资源文件,和包含编译的文件资源。
一个APK包含如下目录:
-
META_INF/
:包含CERT.SF
和CERT.RSK
签名文件,以及MANIFEST.MF
清单文件。 -
assets/
:包含应用程序的资产,应用程序可以使用一个AssetManager
对象检索。 -
res/
:包含不能被编译进resources.arsc
文件的资源。 -
lib/
:包含编译后的代码,是特定于处理器的软件层。这个目录包含为每个平台类型分配的子目录,像armeabi
,armeabi-v7a
,arm64-v8a
,x86
,x86_64
,和mips
。 但是优化 APK还包含以下文件。其中,只有AndroidManifest.xml
是强制性的。 -
resources.arsc
:包含编译的资源。这个文件包含来自文件夹res/values/
下所有配置的XML内容。包装工具提取这个XML内容,将它编译成二进制形式并且归档这些内容。这个内容包括语言字符串和样式以及路径下不存在于resources.arsc
文件的内容,比如布局文件和图片。 -
classes.dex
:包含DEX文件中编译的类可以被 Dalvik/ART 虚拟机理解的格式。 -
AndroidManifest.xml
:包含Android的核心清单文件。这个文件列出了应用的名称,版本,访问权限,以及引用的库文件的应用程序。文件使用Android的二进制XML格式。
减少资源的数量和大小
APK的大小影响应用程序的加载速度,对内存的使用,和它对电量的消耗。一个使您的APK较小的简单方式是减少它包含资源的数量和大小。特别是,您可以移除应用程序不再使用的资源,和您可以使用可拉伸的Drawable图像文件。本节讨论这些方法以及其他几个方法都是通过减少您的应用程序使用的资源来减少您的APK总体规模。
移除不使用的资源
Android Studio 内部包含一个静态代码分析器lint
工具,使用它可以检索资源文件夹res/
,找出您的代码不引用的资源。当lint
工具在您的工程中发现一个潜在的未被使用的资源,它会打印一条消息就像下面的例子。
res/layout/preferences.xml: Warning