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 等檔案。
相關文章
- Android 播放raw資料夾下音訊檔案Android音訊
- DeerOJ的前端框架介紹-libs資料夾和controller資料夾前端框架Controller
- SharpZipLib解壓資料夾 包含空資料夾
- .gitignore 在已忽略資料夾中不忽略指定檔案、資料夾...Git
- Vue中的靜態資源管理(src下的assets和static資料夾的區別)Vue
- .git資料夾Git
- 資料夾操作
- python 如何刪除資料夾下的所有檔案和子資料夾?Python
- Windows中的特殊資料夾Windows
- Android SDK下各個資料夾作用Android
- 把多個資料夾中的檔案批量放到一個資料夾
- DeerOJ的前端框架介紹-Web資料夾和App資料夾(route.php)前端框架WebAPPPHP
- C# 將資料夾中檔案複製到另一個資料夾C#
- Qt 選擇資料夾、建立資料夾以及建立檔案QT
- IDEA中的.iml檔案和.idea資料夾Idea
- mkdir() 建立資料夾
- windows資料夾大小Windows
- java建立資料夾Java
- laravel 建立資料夾Laravel
- 在cmake中移動資料夾
- vscode中資料夾層級關係總是在一個資料夾顯示VSCode
- node_modules 資料夾下 .bin 隱藏資料夾的作用
- documents是什麼資料夾 documents資料夾可以刪除嗎
- drivers是什麼資料夾 drivers資料夾可以刪除嗎
- temp資料夾可以刪除嗎 temp資料夾幹啥的
- appdata資料夾在哪裡_win10找不到appdata資料夾APPWin10
- 資料夾變exe資料找回方法
- 電腦中temp資料夾可以刪除嗎 電腦中temp資料夾怎麼刪除
- macOS鎖定檔案和資料夾Mac
- NAS加密資料夾建立和使用教程加密
- Unity中專屬資料夾介紹Unity
- 畸形檔案 資料夾
- CoLab刪除資料夾
- 如何批次新建資料夾?
- 資料夾橫向排版
- 使用C#選擇資料夾、開啟資料夾、選擇檔案C#
- ***python看圖軟體***(+-切換資料夾,d刪除所在資料夾)Python
- Mac怎麼給資料夾設定密碼?mac資料夾加密教程Mac密碼加密