zoukankan      html  css  js  c++  java
  • Nokia60的Image.createImage死机问题

    Nokia 60的Symbian 6.0系统的手机,也就是Nokia 3650和Nokia 7650中在执行Image.createImage(byte[] data,int off,int len)的函数的时候,容易出现死机问题。这个问题已经在Nokia的官方开发论坛上得到确认。

    我的测试主要是针对Image.createImage函数在创建gif图片的时候出现的问题。我曾经专门针对一段图片的内存块反复创建1000次,图片的大小为18x18左右,测试结果表明,创建到500次以后就容易出现错误。而如果是同样大小的png图片的字节流,创建到1000次,没有出现过错误。

    同时,我还发现,如果是使用Image.createImage(String filename)的方式创建gif图片,出现错误的纪律会小一些,但是还是会出现一定几率的错误。

    而在Nokia最新的Symbian 7.0系统的手机,比如Nokia 7610,Nokia 6600上,就没有出现过Image.createImage(byte[] data,int off,int len)创建gif图片的错误。那么,估计这是Symbian 6.0针对gif解码的一个bug.

    针对J2me中的RecordStore中的内存中用Image.createImage(byte[],int,int)创建GIF图片,则没有出现过异常问题。

    奇怪的是,不知道为什么,在我的1000次创建试验中Image.createImage(String filename)方式创建gif图片也出现了错误。这可能跟另外一个问题有关系。

    解决之道:

    1.              程序初始化的时候,基于Nokia 60的手机内存比较大,可以一次性把图片资源都创建到内存中去,那么以后就不用再创建了,可以大大降低出错的几率。(魔幻之旅2的做法)

    2.              本地包中的图片资源不要使用打包的图片,直接使用Image.createImage(String filename)来创建图片。(仙剑的做法)

    3.              使用PNG图片。这种办法还没有具体在项目中测试过,但是基于前面的1000次反复测试,应该是可取之道。

     

    另外一点,在仙剑Nokia 3650版本的开发中,发现,如果反复读取一段资源,比如我在显示物品属性的时候,每次显示的时候再去本地包提取资源属性数据出来,那么在这种高频率的资源提取过程中,也发现了随机性的错误。估计也是Symbian 6.0的不稳定因素造成的。解决之道就是一次装载到内存中,然后每次显示的时候直接从内存中去取属性数据。

  • 相关阅读:
    Using Project Custom Properties to replace all end point of test cases
    Jacoco Code coverage with Robotframework Maven pom.xml example
    Jacoco Code coverage with Robotframework
    Test coverage in a multi module Maven project
    如何让linux的history命令显示时间记录
    项目角色职责分配表
    Linux检查哪些thread在占用CPU
    soapui_mockservicerunner_script.sh
    Some api interface link of Soapui
    GlusterFS分布式存储系统
  • 原文地址:https://www.cnblogs.com/jacktu/p/1376586.html
Copyright © 2011-2022 走看看