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


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

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

  1. Они оба обеспечивают неоткомпилированной входной поток ресурсов.

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

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

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

Так почему бы мне использовать необработанные ресурсы в Android ?

спасибо.

3 124

3 ответа:

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

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

  • папка Assets-это "приложения"

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

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

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


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

добавление к ответам выше...

/РЭС/строки,/РЭС/макет,/РЭС/XML-файлы и т. д. все компилируется в двоичный формат. Но если вы помещаете файлы, включая XML-файлы, в каталог /res/raw/, они не компилируются в двоичный формат.

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