#Android 裡 raw和assets 檔案夾的區別

來源:互聯網
上載者:User

標籤:android

以下是我通過整理網上與自己的經驗所得。

raw 和 assets 的相同點

它們會被原封不動的拷貝到APK中,而不會像其它資源檔那樣被編譯成二進位的形式。

raw 和 assets 的不同點
  1. 它們在代碼中的不同方式 :

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

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

  2. assets下可以建立目錄結構,還能夠動態列出assets中的所有資源(getAssets().list(String path);),raw檔案目錄下不行

  3. raw 檔案夾下的的會資源產生一個資源id,assets檔案下的資源不會

raw 和 assets 的使用情境
  • 由於raw是Resources(res)的子目錄,Android會自動的為這目錄中的所有資源檔產生一個ID,這個ID會被儲存在R類當中,作為一個檔案的引用。這意味著這個資源檔可以很容易的被Android的類和方法訪問到,甚至在Android XML檔案中你也可以@raw/的形式引用到它。在Android中,使用ID是訪問一個檔案最快捷的方式。MP3和Ogg檔案放在這個目錄下是比較合適的。

  • assets目錄更像一個附錄類型的目錄,Android不會為這個目錄中的檔案產生ID並儲存在R類當中,因此它與Android中的一些類和方法相容度更低。同時,由於你需要一個字串路徑來擷取這個目錄下的檔案描述符,訪問的速度會更慢。但是把一些檔案放在這個目錄下會使一些操作更加方便,比方說拷貝一個資料庫檔案到系統記憶體中。要注意的是,你無法在Android XML檔案中引用到assets目錄下的檔案,只能通過AssetManager來訪問這些檔案。資料庫檔案和遊戲資料等放在這個目錄下是比較合適的。

#Android 裡 raw和assets 檔案夾的區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.