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

Posted

技术标签:

【中文标题】不同设备类型上的应用安装大小相同【英文标题】:App install size the same on different device types 【发布时间】:2015-09-16 13:11:44 【问题描述】:

当我在我的主/新手机上安装我的应用程序时,安装大小约为 18.5MB 当我在旧的三星 Galaxy Ace (Mk1) 上安装我的应用程序时,由于某种原因,它安装的大小几乎相同,如下所示:

它可以在我的主手机上完美运行,但很明显,旧版 Galaxy Ace 真的很难用它。

现在,我从 Play 商店下载了一款随机游戏,您可以在这里看到结果:

更好的是,它在功能较弱的手机上比在功能更强的手机上占用的空间更少。

但是,我的问题是,我可以从哪里开始尝试找出为什么我的应用没有表现出这种期望的行为?

关于我的项目的信息

我在我的项目中提供了 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 Gingerbread

另一部手机运行的是 Android 4.4.2 Kit Kat

【问题讨论】:

您是否在您的应用上启用了proguard? 是的 @georgerapell Proguard 已启用并正在工作。问题不在于导出/签名的 APK 的大小没有减小 - 因为确实如此,问题在于这两个设备上的安装占用空间相同,而我安装的所有其他应用程序的安装占用空间都大大减少在 Galaxy Ace 上 - 谢谢! 【参考方案1】:

答案就是图片..您看到 android 应用程序可以指定应该安装应用程序的位置,无论是内部还是外部 - 您可以在您的 android 清单文件中执行此操作

android:installLocation="auto"

从设置屏幕截图中查看您的应用,您尚未在清单中指定该元素,因此“move_to_sdCard 按钮”处于非活动状态。 Y我们的应用安装在内存中

来到另一个应用程序,查看屏幕截图,您会看到“move_to_phone 按钮”处于活动状态,因为他们指定了该功能,因此由于您的设备上没有足够的空间,它会自动将您的应用程序安装在内部-外部内存或严格的外部内存。但是当设置该功能时,并非所有资源或文件都安装在它们共享的内部-外部内存上,因此在此过程中会修剪大小,因此会产生该输出。

谈到您的应用程序的延迟,您需要深入研究您的代码。较新的 API 还包含旧 API 所没有的功能,因此您需要重新评估您选择的代码种类..

希望我足够清醒

【讨论】:

太棒了——这是正确的答案! - 我将它放入我的清单中,现在我的应用程序只注册为占用 6.87MB 而不是 18.49,如上面的屏幕截图所示。干杯!【参考方案2】:

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

【讨论】:

我认为这不是@Pollizzio,当我在 Play 商店中查看其他应用程序的 APK 大小时,它在两个设备上报告的大小相同。而且,这可能更有说服力的是,我下载了我用来测试它的应用程序的 APK,并在我的 2 台设备上手动安装了它,相同的 APK,完全不同的安装足迹,所以我猜我在某处缺少一些步骤 不幸的是,我怀疑这不是@Polizzio,据我所知,扩展文件适用于 > 50MB 的 .APK 文件。我们正在使用的 APK 远非如此,因此没有理由使用扩展文件,而且在您运行它们后它们不会下载任何东西,它仍然无法解释为什么初始安装占用空间不同。无论如何谢谢:-) “相同的 APK,完全不同的安装足迹” - 你的意思是 apk 是相同的,还是具有相同的大小? 系统可能使用不同的方法来计算 APK 的大小。例如,旧设备可能不会考虑 dalvik-cache 的大小,而新手机会考虑。使用 adb shell 检查大小以确保。 @stkent,将同一个 APK 复制到 2 台设备上并安装。

以上是关于不同设备类型上的应用安装大小相同的主要内容,如果未能解决你的问题,请参考以下文章

它存储在设备上的 IOS 应用程序和数据的大小限制 [重复]

应用程序安装大小在手机上有何不同?

如何以编程方式计算已安装应用程序的所有缓存大小?

为啥我的应用程序在设备上的大小与 APK 或 Play 商店的大小不同

在模拟器和设备中安装应用程序时,图像相同但大小不同,AFNetWorking

设备上的应用大小是不是等于应用商店中的最终大小?