HardBirch

Android开发Assets文件大小限制

时间:13-06-26 栏目:安卓技术篇 作者:魔豆先生 评论:1 点击: 3,264 次

Android Asset Packaging Tool(aapt)使用这个工具可打包所有数据Image XML文件任何资源文件.在生成APK时aapt选择性的压缩各种资源来节省设备空间,aapt使用后缀来决定哪个资源需要压缩,aapt源码定义一些不 需要压缩的文件后缀。附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 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)以下的文件.

声明: 本文由( 魔豆先生 )原创编译,转载请保留链接: Android开发Assets文件大小限制

Android开发Assets文件大小限制:目前有1 条留言

  1. 沙发
    iHackSoft.com:

    虽然还是不太懂,不过也学习到了。

    2013-06-28 16:59 [回复]

发表评论


QQ群互动

Linux系统与内核学习群:194051772

WP建站技术学习交流群:194062106

魔豆之路QR

魔豆的Linux内核之路

魔豆的Linux内核之路

优秀工程师当看优秀书籍

优秀程序员,要看优秀书!

赞助商广告

友荐云推荐