Estoy en la mitad de mis estudios de Android, y acabo de cubrir los recursos activos y sin procesar. Estoy tratando de entender la razón para usar los recursos sin procesar frente a los activos.
Ambos proporcionan un flujo de entrada de recursos sin compilar.
Parece que los activos proporcionan mucha más flexibilidad y funcionalidad que los recursos sin procesar.
a. Puede crear estructuras de carpetas debajo
assets
pero no debajoraw
si. Puede enumerar todos los recursos dinámicamente en la
assets
carpeta pero no en laraw
carpeta.
Entonces, ¿por qué usaría recursos sin formato en Android?
android
android-resources
android-assets
Mortalus
fuente
fuente
Respuestas:
Las principales diferencias entre la
raw
carpeta y laassets
carpeta.Dado que raw es una subcarpeta de Recursos (res), Android generará automáticamente un
ID
archivo para cualquier archivo ubicado dentro de él. EstoID
se almacena en elR class
archivo que actuará como referencia a un archivo, lo que significa que se puede acceder fácilmente desde otras clases y métodos de Android e incluso en archivos XML de Android. Usar la ID generada automáticamente es la forma más rápida de tener acceso a un archivo en Android.La
assets
carpeta es un directorio "apéndice" . La clase R no genera ID para los archivos colocados allí, lo cual es menos compatible con algunas clases y métodos de Android. El acceso a los archivos en laassets
carpeta es más lento ya que necesitará obtener un identificador basado en una cadena . Sin embargo, algunas operaciones se realizan más fácilmente colocando archivos en esta carpeta, como copiar un archivo de base de datos en la memoria del sistema. No hay una forma (fácil) de crear una referencia XML de Android a los archivos dentro de la carpeta Activos.fuente
/asset
directorio.De la documentación de Android , el
raw/
directorio se utiliza para:En una línea, la plataforma no compila los archivos en el
raw/
directorio , se les asigna un ID de recurso y no se pueden agrupar en subcarpetas, mientras que si lo desea, use elassets/
directorio.fuente
Agregando a las respuestas dadas arriba ...
/ res / strings, / res / layout, / res / xml files etc. todo se compila en formato binario. Pero si coloca archivos, incluidos archivos XML, en el directorio / res / raw /, no se compilan en formato binario.
fuente
file:///android_res/
prefijo para señalar un recurso sin procesar.