溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Android 中raw和assets文件夾的區(qū)別

發(fā)布時(shí)間:2020-09-25 08:40:41 來源:腳本之家 閱讀:237 作者:lqh 欄目:移動(dòng)開發(fā)

Android 中raw和assets文件夾的區(qū)別

以下是我通過整理網(wǎng)上與自己的經(jīng)驗(yàn)所得。

raw 和 assets 的相同點(diǎn)

它們會被原封不動(dòng)的拷貝到APK中,而不會像其它資源文件那樣被編譯成二進(jìn)制的形式。

raw 和 assets 的不同點(diǎn)

1.它們在代碼中的不同方式 :

assets:

InputStream assets = getAssets().open("xxxx");

raw:

InputStream raw = getResources().openRawResource(R.raw.xxxx)

assets下可以創(chuàng)建目錄結(jié)構(gòu),還能夠動(dòng)態(tài)的列出assets中的所有資源(getAssets().list(String path);),raw文件目錄下不行

raw 文件夾下的的會資源生成一個(gè)資源id,assets文件下的資源不會

raw 和 assets 的使用場景

1.由于raw是Resources(res)的子目錄,Android會自動(dòng)的為這目錄中的所有資源文件生成一個(gè)ID,這個(gè)ID會被存儲在R類當(dāng)中,作為一個(gè)文件的引用。這意味著這個(gè)資源文件可以很容易的被Android的類和方法訪問到,甚至在Android XML文件中你也可以@raw/的形式引用到它。在Android中,使用ID是訪問一個(gè)文件最快捷的方式。MP3和Ogg文件放在這個(gè)目錄下是比較合適的。

2.assets目錄更像一個(gè)附錄類型的目錄,Android不會為這個(gè)目錄中的文件生成ID并保存在R類當(dāng)中,因此它與Android中的一些類和方法兼容度更低。同時(shí),由于你需要一個(gè)字符串路徑來獲取這個(gè)目錄下的文件描述符,訪問的速度會更慢。但是把一些文件放在這個(gè)目錄下會使一些操作更加方便,比方說拷貝一個(gè)數(shù)據(jù)庫文件到系統(tǒng)內(nèi)存中。要注意的是,你無法在Android XML文件中引用到assets目錄下的文件,只能通過AssetManager來訪問這些文件。數(shù)據(jù)庫文件和游戲數(shù)據(jù)等放在這個(gè)目錄下是比較合適的

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI