type - android:resource xml




Android中資產和原始資源的原因 (2)

這是某種哲學問題。 我在Android世界的學習中,我剛剛介紹了資產和原始資源。

我試圖理解使用原始資源與資產的原因。

  1. 它們都提供了未編譯的資源輸入流。

  2. 看來,資產提供了更多的靈活性和功能,然後原始資源。

    一個。 您可以在資產下創建文件夾結構,而不是在原始下

    灣 您可以在資產文件夾中動態列出所有資源,而不是在Raw文件夾中。

那麼,為什麼我會在Android中使用原始資源?

謝謝。


raw文件夾和Assets文件夾之間的主要區別。

  • 由於raw是Resources(res)的子文件夾,因此Android會為其中的任何文件自動生成一個ID 。 然後將該ID存儲在R classR class將用作對文件的引用,這意味著可以從其他Android類和方法甚至Android XML文件輕鬆訪問該ID 。 使用自動生成的ID是訪問Android中文件的最快方式。

  • Assets文件夾是一個“附錄”目錄。 R類不會為放置在其中的文件生成ID ,因此它與某些Android類和方法不兼容。 另外,訪問它裡面的文件要慢得多, 因為你需要根據String來獲取它的句柄 。 但是,通過將文件放入此文件夾中可以更輕鬆地完成某些操作,例如將數據庫文件複製到系統內存。 沒有(簡單)的方法來創建一個Android資源文件夾內的文件的XML參考。


Android文檔中raw/目錄用於:

任意文件以原始格式保存。 要使用原始InputStream打開這些資源,請使用資源ID( R.raw.filename 調用Resources.openRawResource()

但是,如果您需要訪問原始文件名和文件層次結構,則可以考慮在assets/目錄中保存一些資源(而不是res / raw /)assets /中的文件沒有給出資源ID,因此只能使用AssetManager讀取它們。

在一行中, raw/目錄中的文件不由平台編譯分配有資源ID不能被分組到子文件夾中,而如果您想以其他方式使用assets/目錄。





android-assets