Причина для активов и ресурсов в Android

это какой-то философский вопрос …. Я нахожусь в середине моих исследований в мире Android, и я просто рассказал об активах и сырьевых ресурсах.

Я пытаюсь понять причину использования ресурсов Raw и Assets.

  1. Они оба обеспечивают stream несвязанных ресурсов.

  2. Кажется, что Активы обеспечивают гораздо большую гибкость и функциональность, чем ресурсы Raw.

    а. Вы можете создать структуру папок в разделе Активы, а не под Raw

    б. вы можете динамически перечислить все ресурсы в папке с ресурсами, а не в папке Raw.

Почему я должен использовать Raw-ресурсы в Android?

Благодарю.

Основные различия между raw папкой и папкой « Assets ».

  • Поскольку raw является подпапкой Resources (res), Android автоматически генерирует ID для любого файла, находящегося внутри него. Этот ID затем сохраняет R class который будет выступать в качестве ссылки на файл, то есть его можно легко получить из других classов и методов Android и даже в файлах Android XML. Использование автоматически сгенерированного идентификатора – это самый быстрый способ доступа к файлу на Android.

  • Папка «Активы» – это «приложение» . Класс R не генерирует идентификаторы для файлов, размещенных там, поэтому он менее совместим с некоторыми classами и методами Android. Кроме того, гораздо медленнее получить доступ к файлу внутри него, так как вам нужно будет обработать его на основе String . Однако некоторые операции легче выполнять, помещая файлы в эту папку, например, копирование файла базы данных в память системы. Нет (простого) способа создания ссылки на Android XML для файлов внутри папки «Активы».

В документации для Android raw/ каталог используется для:

Произвольные файлы для сохранения в исходном виде. Чтобы открыть эти ресурсы с помощью сырого InputStream , вызовите Resource.openRawResource () с идентификатором ресурса, который является R.raw.filename .

Однако, если вам нужен доступ к исходным именам файлов и иерархии файлов, вы можете подумать о сохранении некоторых ресурсов в каталоге assets/ (вместо res / raw /) . Файлы в активах / не получают идентификатор ресурса, поэтому вы можете читать их только с помощью AssetManager .


В одной строке файлы в каталоге raw/ не компилируются платформой , им присваивается идентификатор ресурса и не может быть сгруппирован в подпапки, тогда как если вы хотите, чтобы в противном случае использовали каталог assets/ .

Добавляя к ответам, приведенным выше …

/ res / strings, / res / layout, / res / xml и т. д. все скомпилируются в двоичный формат. Но если вы помещаете файлы, в том числе файлы XML, в каталог / res / raw / вместо них, они не собираются в двоичном формате.

Одним из больших преимуществ использования активов над необработанными ресурсами является file:///android_asset/ Uri prefix. Это полезно для загрузки актива в WebView. Например, для доступа к ресурсу, расположенному в loadUrl("file:///android_asset/foo/index.html") assets / foo / index.html, в вашем проекте вы можете вызвать loadUrl("file:///android_asset/foo/index.html") загружая этот HTML-код в WebView.

  • Предпочтительный способ загрузки ресурсов в Java
  • Unity load medias из папки и отображения на RawImage
  • Добавить изображение в JAR Java
  • Весна 3 Ресурсы MVC и тег
  • Встраивание ресурсов (изображений, звуковых fragmentов и т. Д.) В проект Java, затем использование этих ресурсов
  • Android: альтернативный макет xml для ландшафтного режима
  • Получить ресурс из банки
  • Какая самая влиятельная книга, которую должен прочитать каждый программист?
  • iPhone Dev: UIWebView baseUrl для ресурсов в папке Documents not app bundle
  • Утечка ресурсов: «in» никогда не закрывается
  • Использование папки ресурсов в единстве
  • Interesting Posts

    Изменение выхода камеры с использованием SurfaceTexture и OpenGL

    Почему простое разделение кабеля Ethernet не работает?

    Как разрешить java.lang.UnsatisfiedLinkError в NDK на Android?

    Выполнение динамического кросс-таблицы запроса

    Как далеко вы получите команду «rm -rf /»?

    Как использовать селектор для отображения изображения в андроиде

    методы getViewTypeCount и getItemViewType для ArrayAdapter

    Является ли это ошибкой в ​​Files.lines (), или я что-то не понимаю о параллельных streamах?

    Как настроить список приветственных файлов в web.xml

    Почему я не должен обертывать каждый блок в «try» – «catch»?

    Каковы различия между профилями H.264?

    Программное обеспечение для резервного копирования данных и файлов на компьютере под управлением Windows

    Будет ли обычная плата PCI Express работать в слот PCI Express x16 Graphics (PEG)?

    angularjs – ng-switch не привязывает ng-модель

    Архитектуры для доступа к смарт-карте из общего браузера? Или: как устранить разрыв между браузером и ПК / SC?

    Давайте будем гением компьютера.