仰望 发表于 2010-4-18 13:53

JAVA堆栈解析

什么是JAVA内存堆栈?可以理解为电脑的内存,它不是硬盘的储存空间,在JAVA应用程序运行时被消耗。它的大小直接影响着游戏运行的可能性。
一、内存堆栈使用原理
JAVA程序的文件可以分为程序文件class和资源文件,当一个程序被启动时,所有的class都会被调入并占用掉内存,而资源文件则根据程序的需要被调入或释放。如果程序编译得当,无论资源文件再大,即便是1M的程序都可以运行。所以,游戏是否能运行并不是看程序本身的大小,而是取决于程序的编制方法和资源文件的储存方式。
二、内存不够的特征
以MOTO手机为例,当内存差一点不够时,程序表现为LOADING时卡住,无法继续运行,而当内存的消耗远远超出时,会出现应用程序错误。(索爱则是会报储存文件太大)。当出现内存差一点不够的情况时,我们可以通过一些手段来使游戏增加运行的可能:
1,重启手机。内存被使用过后并不会释放干净,所以重启手机就是清理内存的最好方法。
2,关闭游戏音乐。在游戏的音乐选项中关闭音乐,如此游戏可能便不加载音乐使得内存得到节约。
3,删除游戏音乐。部分游戏在关闭音乐时仍然会加载,程序仅仅是将音量设为0而已(例如音乐方块)。这个时候必须将jar包中的音乐资源文件删除才可以节约内存。当然少部分游戏这么做的话会造成程序错误。
4,修改资源图片。有的游戏中一张标题图可能占用掉10K以上的空间,用PHOTOSHOP等工具对图片进行必要的缩减,虽然会损失一些美观度,但是可以增加游戏运行机会。
注。本文转至手机之家zx89753489发于moto区的一个帖子,群里有人问就转来分享下。

触龙睡赵太后 发表于 2010-4-18 13:54

学习了

jmin1989 发表于 2010-4-18 14:03

了解了解了

Nazing 发表于 2010-4-18 14:29

不错的帖子!呵呵

▲α★β◆ 发表于 2010-4-18 15:22

支持了,谢谢

qq602776238 发表于 2010-4-18 16:39

很不错,支持下~~~~~~~~~~~~~~~~~

倾心越者 发表于 2010-4-18 16:53

好贴,学习了。。。。。。。

麦田的守望者 发表于 2010-4-18 18:09

学习了·~~~~~~~

ccc77cc 发表于 2010-4-18 18:16

跟帖学习,顶个,谢谢分享

changechange 发表于 2010-4-18 18:18

学习了。。。
页: [1] 2
查看完整版本: JAVA堆栈解析