android图片导致bin文件夹和apk很大
2014-10-29 21:49
375 查看
最近帮别的企业做android开发,居然解开了我多年来对outofmemoryError(OOM错误)的心结。
插一段废话,我刚毕业在一个听说是跟军方有合作的公司里做android的app,接手的第一个项目是一个已经做完的项目,我做项目的跟进和改进工作。 那时候app要发布了,却遇到了一个非常严重的问题,项目会保存摄像头返回的图片,当图片超过3幅的时候,会报OOM异常。我记得当时图片的分辨率是2K,也就是2048*1536左右。这个OOM错误连之前的项目经理都说,可能需要做更多调试才能确定原因。他们之前也遇到过类似的错误,但是一直没有很好的解决。都是用避开的方式。
这次我用的是小米平板来测试,按道理来说,现在是3年之后了,设备的性能提升很大,小米平板的分辨率本身就是2048*1536,应该可以流畅打开和读取图片。但是我们把3个2k的图片放进去,却发现突然设备的编译时间增大了很多,而且编译好直接就报oom错误。当时我们马上就要跑去客户那边跟客户谈app了,遇到这个错误,我心理其实很震惊。连以前经理都想要避开的错误,今天又被我遇上了。
后来的测试发现从放了那3个2k的文件之后,apk的文件从139M迅速变成了390m。而且编译好的文件即使可以安装到手机,打开的时候,也很容易报OOM错误。开始的时候以为是其他代码导致的错误。
这篇文章对我的启发很大:http://www.jb51.net/article/47458.htm
文章的结论是:图片对内存的占用只跟图片的分辨率和色彩模式有关。
后来细心想想,才顿悟,导致我apk突然变得这么大的原因,会不会是内存呢?
之后我的测试,把2048*1536的分辨率变成1024*773,居然编译速度快了很多,而且编译出来的apk马上变成140M左右,bin文件夹也小了很多。
这么多年一直放在心里的大疑惑终于解开了,原来导致OOM错误的元凶,很多时候,正是我们放进去的大图片本身,而不是bitmapfactory方法。
希望这个重要的经验可以给更多的开发者看到,避免大家再犯在同样错误。
插一段废话,我刚毕业在一个听说是跟军方有合作的公司里做android的app,接手的第一个项目是一个已经做完的项目,我做项目的跟进和改进工作。 那时候app要发布了,却遇到了一个非常严重的问题,项目会保存摄像头返回的图片,当图片超过3幅的时候,会报OOM异常。我记得当时图片的分辨率是2K,也就是2048*1536左右。这个OOM错误连之前的项目经理都说,可能需要做更多调试才能确定原因。他们之前也遇到过类似的错误,但是一直没有很好的解决。都是用避开的方式。
这次我用的是小米平板来测试,按道理来说,现在是3年之后了,设备的性能提升很大,小米平板的分辨率本身就是2048*1536,应该可以流畅打开和读取图片。但是我们把3个2k的图片放进去,却发现突然设备的编译时间增大了很多,而且编译好直接就报oom错误。当时我们马上就要跑去客户那边跟客户谈app了,遇到这个错误,我心理其实很震惊。连以前经理都想要避开的错误,今天又被我遇上了。
后来的测试发现从放了那3个2k的文件之后,apk的文件从139M迅速变成了390m。而且编译好的文件即使可以安装到手机,打开的时候,也很容易报OOM错误。开始的时候以为是其他代码导致的错误。
这篇文章对我的启发很大:http://www.jb51.net/article/47458.htm
文章的结论是:图片对内存的占用只跟图片的分辨率和色彩模式有关。
后来细心想想,才顿悟,导致我apk突然变得这么大的原因,会不会是内存呢?
之后我的测试,把2048*1536的分辨率变成1024*773,居然编译速度快了很多,而且编译出来的apk马上变成140M左右,bin文件夹也小了很多。
这么多年一直放在心里的大疑惑终于解开了,原来导致OOM错误的元凶,很多时候,正是我们放进去的大图片本身,而不是bitmapfactory方法。
希望这个重要的经验可以给更多的开发者看到,避免大家再犯在同样错误。
相关文章推荐
- Android项目中把bin文件夹里面的.apk文件删除,怎么让它再生成
- Android知识总结:图片放错mipmap文件夹导致内存泄露的问题
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等) 收藏
- Android遍历某个文件夹的图片并实现滑动查看的的Gallery
- 删除Android工程下的Bin文件夹,生成错误
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
- [转]Android系统文件夹结构解析(二)--/system/bin
- Android通过减少图片以降低apk大小
- 图片文件导致android项目红叉
- 向android工程的res里边的drawable文件夹导入图片,以便工程使用
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等) 收藏
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用 ...
- Android放置图片的三个文件夹
- Android开发之--读取文件夹下图片生成略缩图并点击显示大图
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用 ...
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
- Android开发之--读取文件夹下图片生成略缩图并点击显示大图
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等) .
- Android学习:\OurPiano\bin\OurPiano.apk installed on device异常处理