Estou no meio dos meus estudos do Android e acabei de cobrir os recursos Assets e Raw. Estou tentando entender o motivo do uso de recursos brutos x ativos.
Ambos fornecem um fluxo de entrada de recurso não compilado.
Parece que os ativos fornecem muito mais flexibilidade e funcionalidade do que os recursos brutos.
uma. Você pode criar estruturas de pastas sob,
assets
mas não sobraw
b. Você pode listar todos os recursos dinamicamente na
assets
pasta, mas não naraw
pasta.
Então, por que eu usaria recursos brutos no Android?
android
android-resources
android-assets
Mortalus
fonte
fonte
Respostas:
As principais diferenças entre a
raw
pasta e aassets
pasta.Como raw é uma subpasta de Recursos (res), o Android gera automaticamente um
ID
para qualquer arquivo localizado dentro dele. EmID
seguida, ele é armazenado noR class
que atuará como uma referência a um arquivo, o que significa que pode ser acessado facilmente de outras classes e métodos do Android e até mesmo em arquivos XML do Android. Usar o ID gerado automaticamente é a maneira mais rápida de acessar um arquivo no Android.A
assets
pasta é um diretório "apêndice" . A classe R não gera IDs para os arquivos colocados lá, o que é menos compatível com algumas classes e métodos do Android. O acesso ao arquivo naassets
pasta é mais lento, pois você precisará identificá-lo com base em uma String . No entanto, algumas operações são mais fáceis de colocar os arquivos nessa pasta, como copiar um arquivo de banco de dados na memória do sistema. Não existe uma maneira (fácil) de criar uma referência XML do Android para arquivos dentro da pasta Assets.fonte
/asset
diretório.Na documentação do Android , o
raw/
diretório é usado para:Em uma linha, os arquivos no
raw/
diretório não são compilados pela plataforma , recebem um ID de recurso e não podem ser agrupados em subpastas; se você desejar, use oassets/
diretório.fonte
Adicionando às respostas dadas acima ...
/ res / strings, / res / layout, / res / xml etc etc tudo é compilado em formato binário. Mas se você colocar arquivos, incluindo arquivos XML, no diretório / res / raw /, eles não serão compilados no formato binário.
fonte
file:///android_res/
prefixo para apontar para um recurso bruto.