APK文件大小和Android Studio APK构建过程

时间:2017-09-12 13:47:20

标签: android android-studio gradle android-gradle apk

我意识到,出于某种原因,Android Studio会生成不同大小的APK文件,而不是使用Gradle手动

因此,当我使用Gradle(gradle buildgradle assembleDebug)构建文件时,我会根据我是否激活了ProGuard来获得apks大小。

如果没有ProGuard,我会得到一个包含大约62k方法引用的文件。启动ProGuard后,我得到一个apk文件,其中大约有37k方法引用和6mb重。这似乎没问题。

但是!当我从Android Studio运行应用程序(激活了ProGuard)时,我得到一个大约3mb的apk文件,当导入进行分析时有两个dex文件(classes.dexclasses2.dex),两者都是他们在一起只显示了300个方法参考,显然这是不正确的。

无论我采用哪种方式构建它,应用程序都能正常工作,我还没有看到任何违规行为。

那么,它是如何以及为何发生的?我试着稍微谈谈Android Studio如何构建流程,但没有成功。我认为它基本上不应该使文件与我调用gradle build的文件不同,但显然情况并非如此。

我正在使用Gradle 3.3(作为Gradle Wrapper)和Android Studio 2.3.3。

这是一些可能相关的数字:

compileSdkVersion 26
buildToolsVersion '26.0.1'
minSdkVersion 16
targetSdkVersion 25

1 个答案:

答案 0 :(得分:1)

使用Android Studio上的手动运行按钮进行APK编译,专门针对其目标设备进行了优化,而使用gradle命令编译的APK可用于定位任何其他设备。看看

https://medium.com/@elye.project/manual-compile-produces-smaller-apk-size-from-command-line-gradle-compile-6cc08d98f2be

https://medium.com/@elye.project/dont-publish-your-manually-compiled-apk-c8ce2bf7e6b4

不确定为什么您的APK只有300个方法引用。