標籤:
在建立項目中一般會預設建立assets檔案,當然我們還可以在res檔案下面建立raw檔案夾,這裡面都可以存放一些多媒體檔案或者文本資訊,可以供我們在程式中使用。
assets下面的檔案不會被編譯,通過路徑可以去訪問其中的內容。raw中檔案會自動編譯,我們可以在R.java檔案中找到對應的ID。
其中比較重要的是擷取Assets和Raw中的資源方法 (對於檔案test.txt)
Assets: InputStream inputStream = = getAssets().open(test.txt);
Raw: InputStream inputStream = getResources().openRawResource(R.raw.test);
補充:
大家都知道建立一個Android項目後會產生assets與res的兩個檔案夾,理論上他們都是存放資源的檔案夾,那麼他們到底有什麼區別呢?
1.assets:不會在R.java檔案下產生相應的標記,存放到這裡的資源在運行打包的時候都會打入程式安裝包中
2.res:會在R.java檔案下產生標記,這裡的資源會在運行打包操作的時候判斷哪些被使用到了,沒有被使用到的檔案資源是不會打包到安裝包中的。
在res檔案夾下其實還可以定義一下目錄:
res/anim:這裡存放的是動畫資源。
res/xml:可以在Activity中使用getResource().getXML()讀取這裡的資源檔
res/raw:該目錄下的檔案可以直接複製到裝置上,編譯軟體時,這裡的資料不需要編譯,直接加入到程式安裝包中,使用方法是getResource().OpenRawResources(ID),其中參數ID的形式是R.raw.XXX.
補充一點:res下只能只能建立系統認可的目錄,而且只能建立一級,下面不能有子目錄;而assets下面可以放置放任意多級任意多個。【來自評論2樓】
Android面試之assets和aw檔案的使用