您好,登錄后才能下訂單哦!
Android 中raw和assets文件夾的區別
以下是我通過整理網上與自己的經驗所得。
raw 和 assets 的相同點
它們會被原封不動的拷貝到APK中,而不會像其它資源文件那樣被編譯成二進制的形式。
raw 和 assets 的不同點
1.它們在代碼中的不同方式 :
assets:
InputStream assets = getAssets().open("xxxx");
raw:
InputStream raw = getResources().openRawResource(R.raw.xxxx)
assets下可以創建目錄結構,還能夠動態的列出assets中的所有資源(getAssets().list(String path);),raw文件目錄下不行
raw 文件夾下的的會資源生成一個資源id,assets文件下的資源不會
raw 和 assets 的使用場景
1.由于raw是Resources(res)的子目錄,Android會自動的為這目錄中的所有資源文件生成一個ID,這個ID會被存儲在R類當中,作為一個文件的引用。這意味著這個資源文件可以很容易的被Android的類和方法訪問到,甚至在Android XML文件中你也可以@raw/的形式引用到它。在Android中,使用ID是訪問一個文件最快捷的方式。MP3和Ogg文件放在這個目錄下是比較合適的。
2.assets目錄更像一個附錄類型的目錄,Android不會為這個目錄中的文件生成ID并保存在R類當中,因此它與Android中的一些類和方法兼容度更低。同時,由于你需要一個字符串路徑來獲取這個目錄下的文件描述符,訪問的速度會更慢。但是把一些文件放在這個目錄下會使一些操作更加方便,比方說拷貝一個數據庫文件到系統內存中。要注意的是,你無法在Android XML文件中引用到assets目錄下的文件,只能通過AssetManager來訪問這些文件。數據庫文件和游戲數據等放在這個目錄下是比較合適的
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。