assetmanager
答案:assets目錄更像壹個附錄類型的目錄,Android不會為這個目錄中的文件生成ID並保存在R類當中,因此它與Android中的壹些類和方法兼容度更低。同時,由於妳需要壹個字符串路徑來獲取這個目錄下的文件描述符,訪問的速度會更慢。但是把壹些文件放在這個目錄下會使壹些操作更加方便,比方說拷貝壹個數據庫文件到系統內存中。要註意的是,妳無法在Android XML文件中引用到assets目錄下的文件,只能通過AssetManager來訪問這些文件。數據庫文件和遊戲數據等放在這個目錄下是比較合適的。另外,網上關於assets和raw的資料都千篇壹律了,因此關於這兩者中單個文件大小不能超過1M的**錯誤**描述也在傳播,即如果讀取超過1M的文件會報"Data exceeds UNCOMPRESS_DATA_MAX (1314625 vs 1048576)"的IOException,還引申出種種解決方案。個人認為不應該有這樣的限制,為了驗證這個說法寫了個Demo,發現將近5M的壓縮包在assets和raw中都能正常訪問,因此在這裏糾正壹下,理論上只要打包不超過Android APK 50M大小的限制都是沒有問題的。當然了,不排除是Android很早期的時候因為設備硬件原因aapt在編譯的時候對這兩個文件夾大小做出了限制,如果是這樣,較新版的ADT應該不會出現這種情況。