不同设备类型上的应用安装大小是否相同

6
当我将我的应用程序安装到我的主要/新手机上时,安装大小约为18.5MB,而当我将我的应用程序安装到旧的三星Galaxy Ace(Mk1)上时,由于某种原因,它安装的大小几乎相同,如你在这里看到的:

enter image description here

它在我的主要手机上运行得非常完美,但显然旧的Galaxy Ace很难应对。
现在,我从Play商店下载了一个随机游戏,你可以在这里看到结果:

enter image description here

更好的是,它在性能较差的手机上占用的空间比性能更好的手机少。
然而,我的问题是,我应该从哪里开始尝试找出为什么我的应用程序没有展现这种期望的行为呢?
关于我的项目的信息:
我在我的项目中提供了4组图形,它们分别是:
图形
XHDPI:总共3.73MB
HDPI:总共2.87MB
MDPI:总共1.33MB
LDPI:总共1.03MB
声音
OGG声音文件:202KB
MP3配乐:5.6MB
未签名和已签名的APK文件大小约为16.02MB。
除此之外,在APK中还有一个classes.dex文件,大约为3.5MB。
在Eclipse中,我链接了BaseGameUtils和Google-play-service-lib jar文件。
我知道我的游戏比我下载的另一个游戏需要更多的资源,但这不是问题的重点。我需要确保安装后的应用程序在低性能手机上的大小比“更好”的手机上要小,但正如您所看到的,我的大小完全相同。
任何帮助都将不胜感激。 编辑 如果有帮助,以下是其他信息:
三星Galaxy Ace正在运行Android 2.3.4姜饼 另一部手机正在运行Android 4.4.2 KitKat

你在应用程序中启用了Proguard吗? - George
1
是的@georgerappell,Proguard已启用并正在工作。问题不在于导出/签名的APK没有缩小尺寸 - 因为它确实有所缩小,问题在于这两个设备上的安装占用空间相同,而我安装的每个其他应用程序在Galaxy Ace上都有显着减少的安装占用空间 - 谢谢! - Zippy
2个回答

6
答案就在图片中。你看,Android应用程序可以指定应用程序应安装的位置,无论是内部还是外部 - 您可以在Android清单文件中执行此操作。
android:installLocation="auto"

从设置截图来看,您的应用程序在清单中未指定该元素,因此“移动到SD卡按钮”无效。 您的应用安装在内部存储器中 来看另一个应用程序的截图,您将看到“移动到手机按钮”是活动的,因为它们指定了该功能,因此由于设备上没有足够的空间,它会自动将您的应用程序安装在内部-外部存储器或严格的外部存储器中。 但是,当设置了该功能时,并非所有资源或文件都安装在内部-外部存储器中,它们是共享的,因此在该过程中大小被削减,因此出现了这种输出。
关于您的应用程序滞后的问题,您需要深入挖掘代码。 此外,新的API包含旧API没有的函数,因此您需要重新评估所选择的代码类型。
希望我表述清晰。

1
太棒了 - 这是正确的答案!- 我将其放入我的清单中,现在我的应用程序仅被注册为占用6.87MB,而不是如上面的截图所示的18.49MB。干杯! - Zippy

1
也许“其他应用程序”正在使用多APK技术在Play商店上发布应用程序。使用此功能,您可以构建和部署几个apk,每个apk针对特定的设备密度屏幕。通过这种方式,您可以减少apk的大小,因为每个apk只会拥有其目标资源,并且自动地,Play商店会传递正确的apk。

我不认为是这样的@Pollizzio,当我在Play商店上查看另一个应用程序的APK大小时,它在两个设备上报告的大小相同。而且,更有意义的是,我下载了我用来测试这个问题的应用程序的APK,并在我的两个设备上手动安装了它,虽然是同一个APK,但安装痕迹完全不同,所以我猜测我可能漏掉了某个步骤。 - Zippy
很遗憾,我怀疑这也不是@Polizzio所说的,扩展文件是针对大于50MB的.APK文件的,据我所知。我们正在讨论的APK远远没有达到那个大小,因此没有理由使用扩展文件,而且它们在运行后不会下载任何东西,这仍然无法解释为什么初始安装占用空间不同。无论如何,还是谢谢您 :-) - Zippy
相同的APK,安装痕迹完全不同 - 你的意思是这些APK完全一样,还是大小一样? - stkent
系统可能使用不同的方式来计算APK的大小。例如,旧设备可能不考虑dalvik-cache的大小,而新手机则会考虑。请使用adb shell检查大小以确保。 - Jared Rummler
@stkent,同一个 APK 复制到 2 台设备并安装。 - Zippy
@JaredRummler,谢谢,我会研究一下这个问题,但是你有没有想过为什么我的应用程序与我测试过的其他每个应用程序都不同呢?这真的很奇怪 - 也就是说,我现在已经在两部手机上安装了几个应用程序,而那些安装在Ace上的应用程序总是占用更少的空间。 - Zippy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接