zoukankan      html  css  js  c++  java
  • 【android】assert目录下文件的大小限制

        前阵子,在研究如何将exe文件打包到apk文件中,然后当apk升级时将exe文件复制粘贴到其他目录下。但是在粘贴exe文件时,抛出异常Data exceeds UNCOMPRESS_DATA_MAX。查找相关文献后,发现android对资源文件的大小有限制(有些文献说只有android2.3之前的版本才有文件大小的限制?),不超过1M,否则将抛出异常。

        解决的办法有三种:

    1.将你的资源文件后缀改成下面列出的后缀。

      /* 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" 
      };

    2.在命令行上使用-0参数来指定不需要压缩的文件后缀。但是如果你是使用Eclipse,目前还不知道有什么方法可以传递-0参数给aapt。

    3.将你的资源文件分割成UNCOMPRESS_DATA_MAX(1M)以下的文件.

        在windows下要下载一个文件分割器,linux下就比较简单

        用split 命令即可

    Linux命令:split

    功能说明:切割文件。  

    语 法:split [--help][--version][-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名]

    补充说明:split可将文件切成较小的文件,预设每1000行会切成一个小文件。

    参 数:-<行数>或-l<行数> 指定每多少行就要切成一个小文件。 -b<字节> 指定每多少字就要切成一个小文件。 -C<字节> 与-b参数类似,但切割时尽量维持每行的完整性。 --help 显示帮助。 --version 显示版本信息。 [输出文件名] 设置切割後文件的前置文件名,split会自动在前置文件名後再加上编号。

        例如:split -b 640k  id.db      执行后产生两个文件,xxa,xxb

        如果使用分割文件的办法,可能还需要考虑小文件再合成大文件~

    参考文献:http://byandby.iteye.com/blog/835744

                  http://www.cnblogs.com/stay/articles/1898965.html 

  • 相关阅读:
    HDU 2544 最短路
    HDU 3367 Pseudoforest
    USACO 2001 OPEN
    HDU 3371 Connect the Cities
    HDU 1301 Jungle Roads
    HDU 1879 继续畅通工程
    HDU 1233 还是畅通工程
    HDU 1162 Eddy's picture
    HDU 5745 La Vie en rose
    HDU 5744 Keep On Movin
  • 原文地址:https://www.cnblogs.com/Amandaliu/p/2149803.html
Copyright © 2011-2022 走看看