Android问题之res/raw和assets文件大小限制
2014-04-13 19:34
1266 查看
转载:http://orgcent.com/android-assets-raw-size-limit/
Android系统对资源文件(res/raw和assets文件夹下)的大小有限制,默认最大仅支持1M的文件。否则apk程序将报错。如果AssetManager或Resources classes方法来获取InputStream,将抛出java.io.IOException的异常如下DEBUG/asset(1123): Data exceeds UNCOMPRESS_DATA_MAX。
1、大文件解决办法
1.将你的资源文件后缀改成后面aapt忽略压缩的文件后缀。
2.在命令行上使用-0参数来指定不需要压缩的文件后缀,具体配置查看aapt帮助文档。
3.把资源文件分割成多个小于UNCOMPRESS_DATA_MAX(1M)的文件,然后在程序中进行组合。
2、aapt压缩忽略文件说明
由于aapt工具在打包apk文件时,会对资源文件进行压缩以减少apk文件大小。查看aapt工具中的Package.cpp源码,发现有些文件不会被压缩处理:
/* 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系统对资源文件(res/raw和assets文件夹下)的大小有限制,默认最大仅支持1M的文件。否则apk程序将报错。如果AssetManager或Resources classes方法来获取InputStream,将抛出java.io.IOException的异常如下DEBUG/asset(1123): Data exceeds UNCOMPRESS_DATA_MAX。
1、大文件解决办法
1.将你的资源文件后缀改成后面aapt忽略压缩的文件后缀。
2.在命令行上使用-0参数来指定不需要压缩的文件后缀,具体配置查看aapt帮助文档。
3.把资源文件分割成多个小于UNCOMPRESS_DATA_MAX(1M)的文件,然后在程序中进行组合。
2、aapt压缩忽略文件说明
由于aapt工具在打包apk文件时,会对资源文件进行压缩以减少apk文件大小。查看aapt工具中的Package.cpp源码,发现有些文件不会被压缩处理:
/* 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问题之res/raw和assets文件大小限制
- Android问题之res/raw和assets的区别及文件大小限制
- Android问题之res/raw和assets文件大小限制
- Android中资源文件夹res/raw和assets的使用(续)——分割文件以及合并文件
- Android res/raw文件以及raw与res/assets异同
- Android 常见问题之Assets文件大小限制
- 【assets&raw】Android中资源文件assets和res下面raw文件的使用不同点
- Android MediaPlayer播放项目res/raw和res/assets下的音频文件
- Android res/raw文件以及raw与res/assets异同
- android 基础 res文件 assets xml raw
- 读取android项目中的文件(可以读取assets文件夹或在res文件夹中raw中的文件)
- Android 分割合并文件 assets res/raw 存放资源的限制
- 读取android项目中的文件(可以读取assets文件夹或在res文件夹中raw中的文件)
- Android中资源文件夹res/raw和assets的使用(续)——分割文件以及合并文件
- Android 读取res文件中raw的json文件 的工具类StreamUtils
- Android如何读取Raw及assets文件夹中文件的数据信息
- [转载]Android Asset,res/raw限制文件大小UNCOMPRESS为1MB
- android系列之二——Android中assets目录和res/raw目录的异同和使用场景
- android assets目录与res下的raw、drawable目录 存放异同
- Android assets 和 res/raw 区别。读取本地网页,读取文本字体样式,读取视频。