游戏地图的内存管理的方式地图太大请问怎么管理好

查看: 3677|回复: 12
主程序和地图合并后太大了怎么办啊!8g内存卡放不下
当前用户组为 注册会员当前积分为 114, 升到下一级还需要 386 点。
上一主题: 下一主题:
当前用户组为 实习版主当前积分为 19956, 该用户为特殊用户。
目前8G卡是可以的哈
当前用户组为 黄金会员当前积分为 8452, 升到下一级还需要
目前,单个地图不可能超过7G
当前用户组为 版主当前积分为 30241, 该用户为特殊用户。
哪有那么大 楼主是下载了两个懒人包吧
当前用户组为 黄金会员当前积分为 19849, 升到下一级还需要
技术上的问题有必要问,放不下就弄个16G的不就OK了
当前用户组为 黄金会员当前积分为 4385, 升到下一级还需要
一个导航8G的卡足够,没有多大也就6G左右(含3D文件),16G可以装3个不同的导航。
当前用户组为 黄金会员当前积分为 3678, 升到下一级还需要
当前用户组为 黄金会员当前积分为 3119, 升到下一级还需要
我只是路过打酱油的。
当前用户组为 黄金会员当前积分为 8412, 升到下一级还需要
如果是导航只支持4g卡,可以有办法精简,8g就不需要问了,因为目前的单个导航都没有超过8g。来自: Android客户端
当前用户组为 实习版主当前积分为 17290, 该用户为特殊用户。
带3D也就6个G撑死了..
当前用户组为 黄金会员当前积分为 10846, 升到下一级还需要
当前用户组为 黄金会员当前积分为 19074, 升到下一级还需要
根本不可能的事情发生了-----
你的操作错误!!
上传安装文件截图---才能帮助你!
当前用户组为 注册会员当前积分为 94, 升到下一级还需要 406 点。
用这个自动的程序加8G版地图真放不了,怎么办?
【GPS导航技术社区】发布的主程序和地图合并后太大了怎么办啊!8g内存卡放不下帖子由网友提供或转载于网络,若发布的主程序和地图合并后太大了怎么办啊!8g内存卡放不下侵犯了您的权益,请联系我们.
Powered by[Android][Bitmap]bitmap设置图片尺寸缩小,避免内存溢出/OutOfMemoryError的优化方法
原帖:/blog/965912
我们都知道Android的Dalvik
VM为一个应用提供了大约16MB的内存,一般我们处理超过8MB的图片将会出现OutOfMemoryError异常(内存溢出异常),报如下错误:
-byte external
allocation too large for this process.
VM won't let
us allocate
Java.lang.OutOfMemoryError :
bitmap size exceeds VM
budget&&&&
FileInputStream&
in&=&new&FileInputStream(path);
byte[]&buffer&=&new&byte[1024];
ByteArrayOutputStream&out&=&new&ByteArrayOutputStream();
int&len&=&0;
while&((len&=&in.read(buffer))&!=&-1)&{
&&&&out.write(buffer,&0,&len);
imageData&=&out.toByteArray();
Bitmap&bitMap&=&BitmapFactory.decodeByteArray(imageData,&0,imageData.length);
&以上是第一次开始写浏览图片,只看到decodeByteArray方法就直接把从SD卡获取图片路径转换为byte[]然后再赋给Bitmap,原来还有一个直接从路径获取Bitmap的方法:
Bitmap&bitMap&=&BitmapFactory.decodeByteArray(paht)&;&
但由于需要显示的图片太大,预览图片就提示内存溢出(但找到资料说处理超过8MB的图片将会出现OutOfMemoryError异常,开始第一段话),不过我显示的图片为4M也出现
-byte external
allocation too large for this process.
VM won't let
us allocate
可能是&算出来大概19M的大少,可能超出了分配给程序的16M大少
我们解码(预览显示)一个图片为了防止内存不足的异常我们可以使用BitmapFactory.Options&的属性解决,代码如下:
1、通过路径获取图片
Java代码&&
ImageView&imageView=(ImageView)findViewById(R.id.image);&&
BitmapFactory.Options&options&=&new&BitmapFactory.Options();&&
options.inSampleSize=2;//图片高宽度都为原来的二分之一,即图片大小为原来的大小的四分之一&&
options.inTempStorage&=&new&byte[5*1024];&//设置16MB的临时存储空间(不过作用还没看出来,待验证)&&
Bitmap&bitMap&=&BitmapFactory.decodeFile(文件路径,&options);&&&
imageView.setImageBitmap(bitMap);&&
2、通过Uri取图片
Java代码&&
Bitmap&bitmap&=&BitmapFactory.decodeStream(cr.openInputStream(uri),&null,&options);&&&
以上代码可以优化内存溢出,但它只是改变图片大小,并不能彻底解决内存溢出。
以下是网上找到的资料:
★Android
还有一些性能优化的方法:
●& 首先内存方面,可以参考
Android堆内存也可自己定义大小 和 优化Dalvik虚拟机的堆内存分配&
基础类型上,因为Java没有实际的指针,在敏感运算方面还是要借助NDK来完成。这点比较有意思的是Google推出NDK可能是帮助游戏开发人员,比如OpenGL
ES的支持有明显的改观,本地代码操作图形界面是很必要的。&
图形对象优化,这里要说的是Android上的Bitmap对象销毁,可以借助recycle()方法显示让GC回收一个Bitmap对象,通常对一个不用的Bitmap可以使用下面的方式,如&
Java代码&&
if(bitmapObject.isRecycled()==false)&//如果没有回收&&&&&&&&&
&&&&&&&&&bitmapObject.recycle();&&&
目前系统对动画支持比较弱智对于常规应用的补间过渡效果可以,但是对于游戏而言一般的美工可能习惯了GIF方式的统一处理,目前
Android系统仅能预览GIF的第一帧,可以借助J2ME中通过线程和自己写解析器的方式来读取GIF89格式的资源。&
● 对于大多数Android手机没有过多的物理按键可能我们需要想象下了做好手势识别 GestureDetector
和重力感应来实现操控。通常我们还要考虑误操作问题的降噪处理。&
Android堆内存也可自己定义大小&
对于一些大型Android项目或游戏来说在算法处理上没有问题外,影响性能瓶颈的主要是Android自己内存管理机制问题,目前手机厂商对RAM都比较吝啬,对于软件的流畅性来说RAM对性能的影响十分敏感,除了上次Android开发网提到的
优化Dalvik虚拟机的堆内存分配外,我们还可以强制定义自己软件的对内存大小,我们使用Dalvik提供的dalvik.system.VMRuntime类来设置最小堆内存为例:&
Java代码&&
private&final&static&int&CWJ_HEAP_SIZE&=&6*&1024*&1024&;&&&&&&&&&
VMRuntime.getRuntime().setMinimumHeapSize(CWJ_HEAP_SIZE);&//设置最小heap内存为6MB大小。&&&&&&
private&final&static&int&CWJ_HEAP_SIZE&=&6*&1024*&1024&;&VMRuntime.getRuntime().setMinimumHeapSize(CWJ_HEAP_SIZE);&//设置最小heap内存为6MB大小。&&
当然对于内存吃紧来说还可以通过手动干涉GC去处理,我们将在下次提到具体应用。&
优化Dalvik虚拟机的堆内存分配&
对于Android平台来说,其托管层使用的Dalvik
JavaVM从目前的表现来看还有很多地方可以优化处理,比如我们在开发一些大型游戏或耗资源的应用中可能考虑手动干涉GC处理,使用
dalvik.system.VMRuntime类提供的setTargetHeapUtilization方法可以增强程序堆内存的处理效率。当然具体原理我们可以参考开源工程,这里我们仅说下使用方法:&&
Java代码&&
private&final&static&floatTARGET_HEAP_UTILIZATION&=&0.75f;&&&&&&&&
private&final&static&floatTARGET_HEAP_UTILIZATION&=&0.75f;&&
在程序onCreate时就可以调用&
Java代码&&
VMRuntime.getRuntime().setTargetHeapUtilization(TARGET_HEAP_UTILIZATION);&&&&&&&&
VMRuntime.getRuntime().setTargetHeapUtilization(TARGET_HEAP_UTILIZATION);&&&
&★android系统中读取位图Bitmap时.分给虚拟机中图片的堆栈大小只有8M。所以不管是如何调用的图片,太多太大虚拟机肯定会报那个错误。超出图片内存预算那个错误.:java.lang.OutOfMemoryError:
bitmap size exceeds VM budget&
遇到这个问题是因为没有回收资源.
Java代码&&
public&void&distoryBitmap(){&&&&&&&
&&&&if(null!=bmb&&!bmb.isRecycled())&&&&&&&
&&&&&&&&bmb.recycle();&&&&&&&
调用上面的代码可以基本解决这个问题.但是千万不要在view中的onDraw()中调用.因为onDraw()方法是系统循环调用.只要图片打开,系统就不停的调用该方法.&
最好的解决方案是在自定义的View中添加一个init()初始化方法的头部调用.或者在构造函数的顶部调用。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。CAD图纸太大占内存导致打开后电脑卡怎么办?
CAD图纸内存大打开后电脑卡怎么办?那我就帮它(图纸)瘦身吧。
1、首先先看看图纸多大,一看5.18MB
2、然后打开CAD图纸
3、在命令行输入-purge-回车
4、弹出窗口-2个都要打钩
5、点击全部清理
6、点击全部是
7、命令行里显示已全清理-点击关闭
8、最后点击保存
9、现在看看刚才的图纸现在还有多大,3.81MB
相关推荐:
AutoCAD怎么修改标注比例?
CAD2015没有CAD经典模式怎么办?可以调出来吗?
顶一下(0) 踩一下(0)
热门标签:小木虫 --- 600万学术达人喜爱的学术科研平台
&&查看话题
ESP格式的图片太大 无法投稿
我用origin导出的EPS 格式的图片内存太大,大约900多k,而投稿时图片会模糊一片无法用!:cat9:请各位虫友帮助如何把它压缩到200k左右!先谢谢大家勒:cat39:
“投稿时图片会模糊一片无法用,即投稿时这个图片只显示一部分,而且很模糊。我用LaTeX写的,用的是PDF格式应该如何降低颜色位深,及分辨率!谢谢你
好像要求就是EPS格式:tiger11:
怎么发啊?
点回帖评分,就可以选择给几个币币了啊。:cat2::cat2::cat2::cat2::cat2::cat2::cat2::cat2::cat2::tiger02::tiger02::tiger02::tiger32::tiger32::tiger32:
北京学而思教育科技有限公司 地址:北京市海淀区北三环甲18号中鼎大厦A座1层102室 电话:010-}

我要回帖

更多关于 内存管理的方式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信