Android:为什么apk文件的大小比整个项目小

Android:为什么apk文件的大小比整个项目小,android,apk,Android,Apk,我肯定是个不懂这一点的人。到目前为止,我注意到apk文件通常比我的Android项目小得多。这是怎么发生的?总是这样吗?当我将整个项目压缩到zip文件时,我产生了这个疑问,它显示磁盘大小为128MB…第一次注意到它,而实际的apk只有22.4MB。为什么会有这种差异?您的项目包含所有源文件和仅由IDE使用的文件。apk只包含较小的编译文件 此外,图像/资源等在apk中被压缩。apk是一个Android应用程序包文件。每个Android应用程序都编译并打包在一个文件中,其中包括应用程序的所有cod

我肯定是个不懂这一点的人。到目前为止,我注意到apk文件通常比我的Android项目小得多。这是怎么发生的?总是这样吗?当我将整个项目压缩到zip文件时,我产生了这个疑问,它显示磁盘大小为128MB…第一次注意到它,而实际的apk只有22.4MB。为什么会有这种差异?

您的项目包含所有源文件和仅由IDE使用的文件。apk只包含较小的编译文件


此外,图像/资源等在apk中被压缩。

apk是一个Android应用程序包文件。每个Android应用程序都编译并打包在一个文件中,其中包括应用程序的所有code.dex文件、资源、资产和清单文件。APK文件基本上是一个.zip文件,Android项目通常包含源代码,这些源代码会被编译成类文件,最终会出现在APK中


编译后的文件比源代码小——例如,它们会将文件中的所有注释都删除。您的源文件中确实包含注释,不是吗

这与Android如何编译您的项目有关。它基本上转储大容量、压缩资源,并将所有内容编译成一个简单的二进制文件。几乎每种类型的编程都会发生这种情况,除非在构建中包含外部源,否则最终构建通常会小于整个项目。编译过程中会有大量代码被剥离。

除了其他答案之外,您可能正在使用一种名为的方法,通过缩短字段名、删除无用代码、合并类和几十种其他技巧来进一步压缩项目


查看ProGuard的更多信息。

了解它是一个zip文件,但这样一个巨大的差异128Mb的项目->有22.4MB的apk文件。这是如何解释的,但相关信息+1…基本上不是:这是一个真正的zip文件重命名。将与这一个,因为它有最高的投票,但所有其他答案也解释如下。谢谢。这是一个zip文件,但如此巨大的差异128Mb的项目->有22.4MB的apk文件。这是怎么解释的,但是相关信息+1…是的!如果您使用的是大型库中的一小部分,那么这一点最为明显。它会拔出你不用的钻头。ProGuard相当聪明。