这可能听起来像一个愚蠢的问题,但我在开发Android应用程序时遇到了异常,我想与更有经验和知识渊博的Android开发人员讨论它。
我正在开发Android应用程序。我有一个私人仓库,在我进行更改时我会推送代码。不足之处是,Android Packaged File(apk)在两台不同的计算机上的大小差别不到50%。在计算机1上,.apk文件大小为1,037 KB,在计算机2上为541 KB。我在两台计算机上使用相同版本的Eclipse,并且在计算机1上使用完全相同的代码。 所以,
我们将不胜感激。
更新 正如@CommonsWare所建议的那样,我通过WinRar提取了这两个apk文件的内容。我现在列出了apk中的文件数和特定目录/文件大小。让我们将大小为1,037 KB的apk文件称为Bigger_APK.apk,将大小为541 KB的apk文件称为Smaller_APK.apk。
Bigger_APK.apk
META-INF(目录)。 3个档案。总大小:84.8 KB
res(目录)。 413个文件,12个文件夹。总大小:435 KB
AndroidManifest.xml(文件)。总大小:2.61 KB
classes.dex(文件)。总大小:1.48 MB
resources.arsc(文件)。总大小:116 KB
Smaller_APK.apk
META-INF(目录)。 3个档案。总大小:16 KB
res *(目录)。 82个文件,8个文件夹。总大小:230 KB
AndroidManifest.xml(文件)。总大小:2.61 KB
classes.dex(文件)。总大小:851 KB
resources.arsc(文件)。总大小:14 KB
比较后要考虑的要点:
classes.dex
文件的大小不同,尽管我在同一版本的IDE上编译相同的代码?答案 0 :(得分:1)
没有太多细节,我会去玩猜猜游戏。到目前为止,我已经提出了两个可能的答案:
1-)您正在使用proguard或其他混淆器,并且混淆器配置在计算机之间是不同的。如果您使用的是proguard,则配置文件位于project.properties中,通常指向${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
2-)你指向相似但不同的依赖。
无论哪种方式,我只能想象问题出在您的版本控制之外。这两个答案是我能想到的。应该有更多。