android中asset和raw的區別?

android中asset和raw的區別

1. res/raw和assets的相同點

兩者目錄下的文件在打包後會原封不動的保存在apk包中,不會被編譯成二進制

2. res/raw和assets的不相點

res/raw中的文件會被映射到R.java文件中,訪問的時候直接使用資源ID即R.id.filename;assets文件夾下的文件不會被映射到R.java中,訪問的時候需要AssetManager類。


res/raw不可以有目錄結構,而assets則可以有目錄結構,也就是assets目錄下可以再建立文件夾

3. res/raw和assets讀取文件資源的區別

讀取res/raw下的文件資源,通過以下方式獲取輸入流來進行寫操作InputStreamis=getResources().openRawResource(R.id.filename);
//通過 資源 id 直接打開 raw 下的 流文件


讀取assets下的文件資源,通過以下方式獲取輸入流來進行寫操作

AssetManager am = null;  
am = getAssets();  
InputStream is = am.open("filename"); 

可以簡寫為InputStream is = getAssets().open("filename");
// 通過 AssectManager 管理器 來打開 assect 下的流文件

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *