Saya berada di tengah-tengah studi Android saya, dan saya baru saja membahas aset dan sumber daya mentah. Saya mencoba memahami alasan untuk menggunakan sumber daya mentah vs. Aset.
Keduanya menyediakan aliran input sumber daya yang tidak dikompilasi.
Tampaknya Aset memberikan lebih banyak fleksibilitas dan fungsionalitas daripada sumber daya Raw.
Sebuah. Anda dapat membuat struktur folder di bawah
assets
tetapi tidak di bawahraw
b. Anda dapat membuat daftar semua sumber daya secara dinamis di
assets
folder tetapi tidak diraw
folder.
Jadi, mengapa saya menggunakan sumber daya mentah di Android?
android
android-resources
android-assets
Mortalus
sumber
sumber
Jawaban:
Perbedaan utama antara
raw
folder danassets
folder.Karena raw adalah subfolder dari Resources (res), Android akan secara otomatis menghasilkan
ID
file apa pun yang berada di dalamnya. IniID
kemudian disimpan diR class
yang akan bertindak sebagai referensi ke file, yang berarti dapat dengan mudah diakses dari kelas dan metode Android lainnya dan bahkan dalam file Android XML. Menggunakan ID yang dibuat secara otomatis adalah cara tercepat untuk memiliki akses ke file di Android.The
assets
folder adalah “lampiran” direktori. Kelas R tidak menghasilkan ID untuk file yang ditempatkan di sana, yang kurang kompatibel dengan beberapa kelas dan metode Android. Akses file dalamassets
folder lebih lambat karena Anda harus mengaturnya berdasarkan String . Namun beberapa operasi lebih mudah dilakukan dengan menempatkan file di folder ini, seperti menyalin file database ke memori sistem. Tidak ada cara (mudah) untuk membuat referensi Android XML ke file di dalam folder Aset.sumber
/asset
direktori.Dari dokumentasi Android ,
raw/
direktori digunakan untuk:Dalam satu baris, file-file dalam
raw/
direktori tidak dikompilasi oleh platform , diberi ID sumber daya dan tidak dapat dikelompokkan ke dalam sub-folder sedangkan jika Anda inginassets/
direktori gunakan sebaliknya .sumber
Menambah jawaban yang diberikan di atas ...
/ res / string, / res / tata letak, / res / file xml dll semua akan dikompilasi ke dalam format biner. Tetapi jika Anda menempatkan file, termasuk file XML, di direktori / res / raw / sebagai gantinya, mereka tidak bisa dikompilasi ke dalam format biner.
sumber
file:///android_res/
awalan untuk menunjuk ke sumber daya mentah.