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

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

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

编辑(请参阅@BT下面的评论 ):根据hackbod在另一个post中的这个答案 ,似乎确实有16位可用,因此任何一种types的资源最多可达65,535(不是65,536,因为零不可用)。 另请注意,此限制仅适用于单个配置的资源数(区域设置,像素密度等)。 不同配置的资源的变化共享相同的资源ID,并且不会对计数产生影响。 所以你实际上可以拥有超过65,535种任何一种types的资源(例如,布局或字符串),而不是任何一种配置。

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

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