web-dev-qa-db-fra.com

Quand devrais-je utiliser les actifs par opposition aux ressources brutes dans Android?

Je suis au milieu de mes études dans le monde Android et je viens de couvrir les actifs et les ressources brutes. J'essaie de comprendre la raison d'utiliser les ressources brutes par rapport aux actifs.

  1. Ils fournissent tous deux un flux d'entrée de ressources non compilées.

  2. Il semble que les actifs offrent beaucoup plus de flexibilité et de fonctionnalités que les ressources brutes.

    une. Vous pouvez créer une structure de dossier sous Actifs et non sous Brut.

    b. Vous pouvez répertorier toutes les ressources de manière dynamique dans le dossier des actifs et non dans le dossier Raw.

Alors, pourquoi devrais-je utiliser des ressources brutes dans Android?

130
Mortalus

Les principales différences entre les dossiers raw et Assets

  • Raw étant un sous-dossier de Resources (res), Android générera automatiquement un ID pour tout fichier situé à l'intérieur. Cette ID est ensuite stockée dans le R class qui servira de référence à un fichier Cela signifie qu’il est facilement accessible depuis d’autres classes et méthodes Android. L'utilisation de l'identifiant généré automatiquement Est le moyen le plus rapide d'accéder à un fichier sous Android.

  • Le dossier Assets est un répertoire “annexe” . La classe R ne génère pas les identifiants pour les fichiers qui y sont placés, ce qui la rend moins compatible Avec certaines classes et méthodes Android. De plus, il est beaucoup plus lent d’accéder à un fichier qui se trouve à l’intérieur de celui-ci, car vous devrez lui attribuer un descripteur Basé sur un String . Cependant, certaines opérations sont plus faciles à faire en plaçant des fichiers dans ce dossier, comme la copie d’un fichier de base de données dans la mémoire du système. Il n’existe pas de moyen (facile) de créer une référence XML XML Aux fichiers contenus dans le dossier Assets.

164
user370305

Ajout aux réponses données ci-dessus ...

/ res/strings,/res/layout, fichiers/res/xml, etc.) sont tous compilés au format binaire. Mais si vous placez des fichiers, y compris des fichiers XML, dans le répertoire/res/raw /, compilé au format binaire.

L’avantage majeur de l’utilisation des ressources par rapport aux ressources brutes est le file:///Android_asset/Uri préfixe. Cela est utile pour charger un fichier actif dans une WebView. Par exemple, pour accéder à un actif situé dans assets/foo/index.html de votre projet, vous pouvez appeler loadUrl("file:///Android_asset/foo/index.html") en chargeant ce HTML dans la WebView.

0
Shubham Soni