Android资源的数量有哪些限制?

时间:2011-11-21 20:42:50

标签: android resources android-xml aapt

我们的一个应用程序有数千个小数据文件,我们目前将其打包为资产。如果我们可以将它们打包为原始资源,它将有助于我们的代码。我试图找出应用程序可以拥有的每种类型资源的限制,但我没有找到任何关于此的文档。有谁知道Android资源数量的限制是什么?

3 个答案:

答案 0 :(得分:11)

经过大量的实验,似乎每种资源类型最多可以拥有16位资源(65,536资源)。 (可能会留下额外的位用于将来使用,这将减少最大资源数量,但我找不到任何证据。)如果有人可以提供权威答案,那会很好,但是一年后,我放弃了。

编辑(参见comment below by @B T):基于另一个线程中的this answer by hackbod,似乎确实有16位可用,因此任何一种类型的资源最多可达65,535(不是65,536,因为零不可用)。另请注意,此限制仅适用于单个配置的资源数(区域设置,像素密度等)。不同配置的资源的变化共享相同的资源ID,并且不会对计数产生影响。因此,您实际上可以拥有超过65,535种任何一种类型的资源(例如布局或字符串),而不是任何一种配置。

答案 1 :(得分:0)

我也没有关于此的明确文档,但是可以做出合理的假设,即Android开发者根据他们的建议适当地设计了Android。他们建议您将字符串和drawables放入资源中,以便为不同的区域设置,屏幕尺寸,屏幕密度和方向提供不同的资源。这些可能性的绝对数量告诉我,他们希望应用程序包含数千种资源,您可以很好地提供数千种小型原始资源。

答案 2 :(得分:0)

考虑到自动类R和api中使用的资源值,我假设在Integer.MAX_INTEGER周围的每个字符串,drawable和layout id。