看了上篇的原理图,我发现
JBlend
并没有直奔手机系统的最底层,而是让手机厂商或者系统开发商去实现它定义的接口,它的
JVM
就是通过这接口与底层通信的,而至于接口的实现质量,就不得而知了。我想这应该是不同厂商,不同机型,用统一的
JVM
,却会产生不同的异常状况的问题所在。这只是我的分析,还确定对与错,希望高手指导。
再说实际一点的,最近做了一个小小测试工具。看看流行的测试工具如:
JBenchMark,SPMarkjava06,AMark
之类的,都是测试手机的性能,而我这个测试工具就有一个目的:是否有异常状况。先介绍一下测试的项目:
1.
手机的基本信息(如:
MIDP
,
CLDC
,屏幕大小之类);
2.
键值(如果支持触摸屏,测试触摸屏的准确率)
3.
画图(普通图,透明图,几何图,字符串,每次
repaint
之间只有小量的运算,画图同时启动另一条线程来模拟游戏状态)
4.
声音(播放,暂停,停止,转换)
5.
内存极限(可变?)
6.
高低级界面转换(
hideNotify,showNotify
)。。。先拿一台联想的新机子测试(型号忘了):启动,画图快(可能是运算量不大和
IO
操作不多的关系,在专业的性能测试软件下,表现就差很多了),但画透明图的时候透明度不统一,不过每次都出现在同一个地方。其它方面都正常,内存不大,好像是
700
多
K
,加压到差不多到
600
多
K
就抛异常了,启动时的内存消耗小(几十
K
)。。。再拿一台天语的机子测:情况跟联想差不多,画透明图正常,但转换播放音乐时(
prefetch()
)抛出异常,内存不到
600K
,支持触摸屏,但响应慢,不够灵敏。。。最后是
M600
:启动都比前两台机慢,启动的内存
200K
左右,画图也较前面两台机慢(当然用专业的性能测试软件就好很多),其它各部分测试都正常,内存可变,触摸屏反应准确,灵敏。。。
总结一下,虽然测试工具不是专业的,但还是可以看出差距的。。。今天就到此为止。。。大家如果有什么高见,不妨一起探讨探讨