Какие ограничения существуют на количество ресурсов Android? - PullRequest
12 голосов
/ 22 ноября 2011

В одном из наших приложений есть несколько тысяч небольших файлов данных, которые в настоящее время мы упаковываем как активы. Это помогло бы нашему коду, если бы мы могли упаковать их как сырые ресурсы. Я попытался отследить, каковы ограничения на количество ресурсов, которое может иметь приложение каждого типа, но я не нашел никакой документации по этому вопросу. Кто-нибудь знает, какие ограничения на количество ресурсов Android?

Ответы [ 3 ]

11 голосов
/ 19 октября 2012

После долгих экспериментов кажется, что у вас может быть до 16 битов ресурсов (65 536 ресурсов) для каждого типа ресурса. (Могут быть зарезервированы дополнительные биты для будущего использования, что уменьшит максимальное количество ресурсов, но я не могу найти никаких доказательств этого.) Было бы неплохо, если бы кто-то мог дать авторитетный ответ, но через год я м сдаюсь.

РЕДАКТИРОВАТЬ (см. Комментарий ниже @ BT ): Основано на ответе hackbod в другом потоке может иметь до 65 535 ресурсов любого типа (не 65 536, потому что ноль недоступен). Также обратите внимание, что это ограничение применяется только к количеству ресурсов для одной конфигурации (локаль, плотность пикселей и т. Д.). Вариации ресурса для разных конфигураций имеют один и тот же идентификатор ресурса и не влияют на количество. Таким образом, вы можете иметь более 65 535 ресурсов любого типа (например, макета или строки), но не для какой-либо одной конфигурации.

0 голосов
/ 22 ноября 2011

Принимая во внимание автоматически класс R и значение ресурса, используемые в API, я бы предположил где-нибудь около Integer.MAX_INTEGER для строки, рисования и идентификатора макета каждый.

0 голосов
/ 22 ноября 2011

Я не знаю никакой явной документации по этому вопросу, однако можно сделать разумные предположения о том, что разработчики Android спроектировали Android надлежащим образом, учитывая их рекомендации. Они рекомендуют помещать строки и элементы рисования в ресурсы, которые могут предоставить различные варианты для разных локалей, размеров экрана, плотности и ориентации экрана. Огромное количество этих возможностей позволяет мне предположить, что они ожидают, что приложения будут включать в себя тысячи ресурсов, и вы будете просто в порядке предлагать несколько тысяч небольших необработанных ресурсов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...