Android 常見問題之Assets文件大小限制

Android Asset Packaging Tool(aapt)使用這個工具可打包全部數據 Image XML文件 任何資源文件.在生成APK時aapt選擇性的壓縮各類資源來節省設備空間,aapt使用後綴來決定哪一個資源須要壓縮,aapt源碼定義一些不須要壓縮的文件後綴。 java

[cpp] view plaincopyprint?
/* these formats are already compressed, or don't compress well */  
static const char* kNoCompressExt[] = {  
    ".jpg", ".jpeg", ".png", ".gif",  
    ".wav", ".mp2", ".mp3", ".ogg", ".aac",  
    ".mpg", ".mpeg", ".mid", ".midi", ".smf", ".jet",  
    ".rtttl", ".imy", ".xmf", ".mp4", ".m4a",  
    ".m4v", ".3gp", ".3gpp", ".3g2", ".3gpp2",  
    ".amr", ".awb", ".wma", ".wmv"  
  
};
在Android 2.3之前的任何壓縮的資源的原始大小超過1M將不能從APK中讀出,若是你使用AssetManager 或 Resources classes方法來獲取InputStream,將拋出java.io.IOException的異常以下     DEBUG/asset(1123): Data exceeds UNCOMPRESS_DATA_MAX (20078432 vs 1048576);

      能夠看到若是須要打包數據庫的童鞋文件過大就須要注意了。 數據庫

解決方法以下: 工具

1.將你的資源文件後綴改爲上面列出的後綴。
2.在命令行上使用-0參數來指定不須要壓縮的文件後綴。當你使用Eclipse內的ADT目前還不知道有什麼方法能夠傳遞-0參數給aapt。
3.將你的資源文件分割成UNCOMPRESS_DATA_MAX(1M)如下的文件.
相關文章
相關標籤/搜索