Ich bin mitten in meinen Android-Studien und habe gerade die Assets and Raw-Ressourcen behandelt. Ich versuche den Grund für die Verwendung von Rohstoffen im Vergleich zu Assets zu verstehen.
Beide bieten einen nicht kompilierten Ressourcen-Eingabestream.
Es scheint, dass Assets viel mehr Flexibilität und Funktionalität bieten als Raw-Ressourcen.
ein. Sie können Ordnerstrukturen unter,
assets
aber nicht unter erstellenraw
b. Sie können alle Ressourcen dynamisch im
assets
Ordner auflisten, jedoch nicht imraw
Ordner.
Warum sollte ich Raw-Ressourcen in Android verwenden?
android
android-resources
android-assets
Mortalus
quelle
quelle
Antworten:
Die Hauptunterschiede zwischen dem
raw
Ordner und demassets
Ordner.Da raw ein Unterordner von Resources (res) ist, generiert Android automatisch einen
ID
für jede darin befindliche Datei. DiesID
wird dann in derR class
Datei gespeichert , die als Referenz auf eine Datei dient. Dies bedeutet, dass auf andere Android-Klassen und -Methoden und sogar in Android-XML-Dateien problemlos zugegriffen werden kann. Die Verwendung der automatisch generierten ID ist der schnellste Weg, um auf eine Datei in Android zuzugreifen.Der
assets
Ordner ist ein Anhangsverzeichnis . Die R-Klasse generiert keine IDs für die dort abgelegten Dateien, was mit einigen Android-Klassen und -Methoden weniger kompatibel ist. Der Dateizugriff imassets
Ordner ist langsamer, da Sie ein Handle basierend auf einem String benötigen . Einige Vorgänge lassen sich jedoch einfacher ausführen, indem Dateien in diesen Ordner gestellt werden, z. B. das Kopieren einer Datenbankdatei in den Systemspeicher. Es gibt keine (einfache) Möglichkeit, einen Android-XML-Verweis auf Dateien im Ordner "Assets" zu erstellen.quelle
/asset
Verzeichnis zu stellen.In der Android-Dokumentation wird das
raw/
Verzeichnis verwendet für:In einer Zeile werden die Dateien im
raw/
Verzeichnis nicht von der Plattform kompiliert , erhalten eine Ressourcen-ID und können nicht in Unterordnern gruppiert werden, wenn Sie dasassets/
Verzeichnis anderweitig verwenden möchten .quelle
Hinzufügen zu den oben gegebenen Antworten ...
/ res / strings, / res / layout, / res / xml-Dateien usw. werden alle im Binärformat kompiliert. Wenn Sie jedoch Dateien, einschließlich XML-Dateien, im Verzeichnis / res / raw / ablegen, werden sie nicht im Binärformat kompiliert.
quelle
file:///android_res/
Präfix verwenden, um auf eine Rohressource zu verweisen.