程序在手机上调试,运行一段话四溅,会报出outofmemoryerror
错误。
不调试,直接运行,过一段时间会异常终止。
Google查阅资料,告知是因应用开的内存过多引起。问Java内存的该如何管理?能否自己释放?
以前是做c++的,一般内存都是自己申请,自己释放。转到java,系统自己回收,自己难道真的无法控制吗?
前辈指点内存管理、释放方面的经验,不胜感激

解决方案 »

  1.   

    代码太多了,是个备份程序
    在获取彩信时崩溃
    但debug可能过去
    不知道为啥?以前没写过java程序,java内存怎么释放?指导一下?
      

  2.   

    logcat查看出错的位置,然后针对具体问题解决。
    java会自动回收内存的,一般不需要人为管理。
      

  3.   

    报outOffMemory往往是虚拟机引起的,只有Java层才会报此类错误JNI层用的是Linux的内存,只有sdk才会是虚拟机的内存这个要么优化你的程序,实在没办法,可在系统级修改虚拟机VMRuntime的内存大小了Android 2.3默认的是25M,你可以把它设到45M,或者更高,有的Pad都设到80M了
      

  4.   

    OutOfMemory错误是由于虚拟机内存不够造成的,虚拟机可以使用的内存较少,虽然Java的VM有垃圾回收机制,但它并不是万能的。很多时候你还是要注意编码,比如连续加载大图等时候,一般都会先加载缩略图,再点开单独加载单个详略图。另外记得及时关闭不使用的对象(调用Release或Close方法)很多时候我们还要手动的去将不使用的对象置为Null,并调用System.gc();方法来立即回收对应的内存。