我们的一个应用程序有几千个小数据文件,我们目前正在打包为资产。如果我们可以将它们打包为原始资源,这将对我们的代码有所帮助。我试图找出应用程序可以拥有的每种类型的资源数量的限制,但我没有找到任何关于此的文档。有谁知道Android资源数量的限制是什么?
3 回答
经过大量试验后,您似乎可以为每种资源类型拥有多达 16 位的资源(65,536 个资源)。(可能会保留额外的位以供将来使用,这会减少最大资源数,但我找不到任何证据。)如果有人可以提供权威答案会很好,但一年后,我'米放弃。
编辑(参见@BT 下面的评论):基于hackbod 在另一个线程中的这个答案,似乎确实有 16 位可用,所以一个人最多可以拥有 65,535 个任何一种类型的资源(不是 65,536,因为零不可用)。另请注意,此限制仅适用于单个配置(区域设置、像素密度等)的资源数量。不同配置的资源变体共享相同的资源 ID,不计入计数。因此,您实际上可以拥有超过 65,535 个任何一种类型(例如,布局或字符串)的资源,而不是任何一种配置。
我所知道的也没有明确的文档,但是可以做出合理的假设,即 Android 开发人员已经根据他们的建议适当地设计了 Android。他们建议您将字符串和可绘制对象放入资源中,以便为不同的语言环境、屏幕尺寸、屏幕密度和方向提供不同的资源。这些可能性的绝对数量向我表明,他们希望应用程序包含数千种资源,而您提供数千种小型原始资源就可以了。
考虑到自动类 R 和 api 中使用的资源值,我假设在 Integer.MAX_INTEGER 附近的某个地方分别用于字符串、可绘制和布局 id。