Я нахожусь в середине моих исследований Android, и я только покрыл Ресурсы Актива и Сырья. Я пытаюсь понять причину использования сырья и ресурсов.
Они оба предоставляют некомпилированный поток ввода ресурсов.
Похоже, что активы предоставляют гораздо больше гибкости и функциональности, чем сырые ресурсы.
а. Вы можете создавать структуры папок под,
assets
но не подraw
б. Вы можете динамически перечислять все ресурсы в
assets
папке, но не вraw
папке.
Итак, зачем мне использовать сырье в Android?
android
android-resources
android-assets
Mortalus
источник
источник
Ответы:
Основные различия между
raw
папкой иassets
папкой.Поскольку raw является подпапкой ресурсов (res), Android автоматически сгенерирует
ID
для любого файла, находящегося внутри него. ЭтоID
затем сохраняется вR class
том , что будет выступать в качестве ссылки на файл, то есть он может быть легко доступны из других классов и методов Android и даже в Android файлов XML. Использование автоматически сгенерированного идентификатора - это самый быстрый способ получить доступ к файлу в Android.assets
Папка является «приложение» каталог. Класс R не генерирует идентификаторы для размещенных там файлов, что менее совместимо с некоторыми классами и методами Android. Доступ к файлам вassets
папке медленнее, так как вам нужно получить дескриптор к нему на основе строки . Однако некоторые операции легче выполнить, поместив файлы в эту папку, например, скопировав файл базы данных в системную память. Нет (простого) способа создать Android-XML-ссылку на файлы в папке «Ресурсы».источник
/asset
каталог.Из документации Android , то
raw/
каталог используется для:В одной строке файлы в
raw/
каталоге не компилируются платформой , им присваивается идентификатор ресурса, и они не могут быть сгруппированы в подпапки, тогда как если вы хотите, в противном случае используйтеassets/
каталог.источник
Добавление к ответам, приведенным выше ...
Файлы / res / strings, / res / layout, / res / xml и т. д. компилируются в двоичный формат. Но если вы поместите файлы, включая файлы XML, в каталог / res / raw /, они не будут скомпилированы в двоичный формат.
источник
file:///android_res/
префикс для указания на необработанный ресурс.