Android中asset資料夾和raw資料夾區別
轉載自:CSDN部落格
這陣子有位同學在一個命名非“raw”的資料夾中放置mp3檔案,導致R檔案報錯,故此研究,尋得此篇文章,特做分享。
摘自:http://www.cnblogs.com/leizhenzi/archive/2011/10/18/2216428.html
*res/raw和assets的相同點:
1.兩者目錄下的檔案在打包後會原封不動的儲存在apk包中,不會被編譯成二進位制。
*res/raw和assets的不同點:
1.res/raw
中的檔案會被對映到R.java檔案中,訪問的時候直接使用資源ID即R.id.filename;assets資料夾下的檔案不會被對映到R.java中,訪問的時候需要AssetManager類。2.res/raw不可以有目錄結構,而assets則可以有目錄結構,也就是assets目錄下可以再建立資料夾
*讀取檔案資源:
1.讀取res/raw下的檔案資源,通過以下方式獲取輸入流來進行寫操作
· InputStream is =getResources().openRawResource(R.id.filename);
2.讀取assets下的檔案資源,通過以下方式獲取輸入流來進行寫操作
· AssetManager am =null;
· am = getAssets();
· InputStream is = am.open("filename");
注意1:Google的Android系統處理Assert有個bug,在AssertManager中不能處理單個超過1MB的檔案,不然會報異常,raw沒這個限制可以放個4MB的Mp3檔案沒問題。
注意2:assets 資料夾是存放不進行編譯加工的原生檔案,即該資料夾裡面的檔案不會像 xml, java 檔案被預編譯,可以存放一些圖片,html,js, css 等檔案。
相關文章
- Eclipse-source folder資料夾和folder資料夾的區別Eclipse
- Android 播放raw資料夾下音訊檔案Android音訊
- android 統計資料夾大小及刪除資料夾下所有檔案和路徑Android
- Vue中的靜態資源管理(src下的assets和static資料夾的區別)Vue
- php中如何建立資料夾PHP
- .git資料夾Git
- 資料夾操作
- .gitignore 在已忽略資料夾中不忽略指定檔案、資料夾...Git
- 把多個資料夾中的檔案批量放到一個資料夾
- SharpZipLib解壓資料夾 包含空資料夾
- C# 將資料夾中檔案複製到另一個資料夾C#
- c# winform 判斷資料夾是否存在,新建資料夾,判斷資料夾存不存在C#ORM
- [INS-32052] Oracle基資料夾和Oracle主資料夾位置同樣Oracle
- python 如何刪除資料夾下的所有檔案和子資料夾?Python
- Qt 選擇資料夾、建立資料夾以及建立檔案QT
- CRS bin資料夾中的程式
- windows資料夾大小Windows
- laravel 建立資料夾Laravel
- mkdir() 建立資料夾
- php 建立資料夾PHP
- java 建立資料夾Java
- XP資料夾共享
- node_modules 資料夾下 .bin 隱藏資料夾的作用
- temp資料夾可以刪除嗎 temp資料夾幹啥的
- documents是什麼資料夾 documents資料夾可以刪除嗎
- drivers是什麼資料夾 drivers資料夾可以刪除嗎
- 獲取資料夾及其子資料夾下的所有檔案
- Android建立資料夾及檔案並寫入資料Android
- 電腦中temp資料夾可以刪除嗎 電腦中temp資料夾怎麼刪除
- 資料夾變exe資料找回方法
- Android SDK下各個資料夾作用Android
- asp.net 遞迴刪除資料夾及其子資料夾和所有檔案[轉]ASP.NET遞迴
- 使用node中fs模組建立和刪除資料夾
- Unity中專屬資料夾介紹Unity
- 資料夾怎麼拖到微信 微信傳送資料夾的辦法
- linux刪除一個資料夾下面的多個資料夾Linux
- 資料夾刪除不掉怎麼辦?資料夾無法刪除
- NAS加密資料夾建立和使用教程加密