2015-09-16 32 views
6

当我在我的主/新手机中安装我的应用程序,安装的大小约为18.5MB ,当我在一个旧的三星Galaxy ACE(MK1),对于一些安装我的应用程序因此,用几乎相同的大小安装,因为你在这里看到:应用安装尺寸相同的不同的设备类型

enter image description here

它完美地运行,我主要的手机上,但显然,老银河王牌真的与它斗争。

现在,我从Play商店下载一个随机的游戏,并与一个你可以看到结果这里:

enter image description here

好多了,它占用更少的空间能力较弱的手机上比它在更强大的手机上做的。

但是,我的问题是,我可以从哪里开始尝试弄清楚为什么我的应用程序没有展现出这种所需的行为?

我的项目信息

我已经提供了4组显卡我的项目中,他们是:

图形

  • XHDPI:的3.73MB
  • 总华电国际:中2.87MB
  • MDPI总:托塔1.33MB
  • LDPI的L:的1.03MB

总声

  • OGG声音文件:202KB
  • MP3原声:5.6MB

的(无符号并签署)APK文件大小约为16.02MB

除此之外,APK中有一个classes.dex文件,大约3.5MB。

在Eclipse中,我链接BaseGameUtils和谷歌播放服务-lib的jar文件。

我知道我的游戏比我下载的其他游戏的资源要多一点 - 但这不是这个问题的要点。我需要确保安装的应用程序的尺寸在功能较差的手机上小于“较好”的手机,但您可以看到,我的正好与完全相同。

任何帮助,将不胜感激。

编辑

其他信息,如果有帮助:

三星Galaxy王牌运行的是Android 2.3.4 姜饼

其他手机运行的是Android 4.4.2 奇巧

+0

是否启用ProGuard的在你的应用程序? – George

+1

是@georgerappell Proguard已启用并正在运行。问题不在于导出/签名APK的尺寸没有缩小 - 因为问题是这两个设备的安装路径是相同的,而我安装的其他每个应用程序的安装路径都显着减少在银河王牌 - 谢谢! – Zippy

回答

6

答案是图片..你看到Android应用程序可以指定应用程序都应该是安装的位置,你无论是内部还是外部 - 能做到这一点在你的Android清单文件

android:installLocation="auto" 

在找你从设置屏幕截图中应用你没有在清单中指定该元素,因此“move_to_sdCard按钮”处于非活动状态。 Ÿ我们的应用程序安装在内部存储器

来到其他应用程序,看截图,你会看到,因为他们指定的特征中的“move_to_phone按钮”是活动的,因此由于没有足够的空间您的设备会自动将您的应用程序安装在内部外部存储器或严格的外部存储器中。但是当设置了该功能时,并非所有资源或文件都安装在共享的内部 - 外部存储器上,因此尺寸被修剪因此输出的过程。

说到你的应用程序的滞后性,你需要非常深入地研究你的代码。还较新的API均包含旧的没有,因此你需要重新评估各种选择的代码..

希望我是清醒的足够

+1

辉煌 - 这是正确的答案! - 我将它放入我的清单中现在我的应用程序只注册为6.87MB而不是18.49,如上面的截图所示。干杯! – Zippy

1

可能是“其他应用程序”使用Multiple APK技术在Play商店发布应用程序。使用此功能,您可以构建和部署多个apk,每个apk都针对特定的设备密度屏幕。通过这种方式,您可以减少apk维度,因为每个apk都只有他的目标资源,Play Store会自动提供正确的资源。

+0

我不认为这就是@Pollizzio,当我在Play商店中查看这个其他应用的APK大小时,它会在两个设备上报告相同的大小,而且这可能更具说服力,我下载了APK我用来测试这个应用程序,并手动安装它在我的2个设备,相同的APK,完全不同的安装脚印,所以我猜我有一些步骤我错过了某处 – Zippy

+0

也许? http://developer.android.com/google/play/expansion-files.html – Pollizzio

+0

不幸的是,我怀疑它是@Polizzio,扩展文件是针对大于50MB的.APK文件,据我所知。我们所采用的APK远远没有这么做,所以没有理由使用扩展文件,并且在运行它们后不会下载任何内容,它仍然无法解释为什么最初的安装脚印不同。无论如何感谢:-) – Zippy

相关问题