嵌入式平台项目开发研究

来源 :计算机光盘软件与应用 | 被引量 : 0次 | 上传用户:ahclgc
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:使用J2ME平台在嵌入式平台所能提供的有限的硬件上开发应用软件与游戏,这对J2ME开发者来说是一个挑战。通常来说,刚刚开发完成的软件,要运行在真机设备上常常会出现一些问题。所以开发完成的产品,必须通过对产品进行多方面的优化。通过算法与编码方式的优化可以提高程序的运行速度、减少内存的占用、提高程序的运行效率。
  关键词:J2ME代码优化与紧缩;测试基准;垃圾回收器
  中图分类号:TP311.52文献标识码:A文章编号:1007-9599 (2010) 13-0000-02
  Study on Embody Platform Development
  ——Optimization and Contraction of J2ME Code
  Zheng Hong
  (Fuzhou University,Institute of Mathematics and Computer Science,Fuzhou350011,China)
  Abstract:In embedded platform using J2ME,can offer the development and application of the hardware and game,is a challenge to the developer J2ME.Generally speaking,software,just to run in the real machine equipment will often appear some problems.Therefore,the product must be through the optimization of various products.Through the optimization algorithm and coding method can improve the operation procedure of speed,reducing the memory and improving efficiency.
  Keywords:J2ME optimization and contraction;Test benchmark;Garbage collection
  通常来说,刚刚开发完成的手机游戏或应用软件,要运行在真机设备上常常会出现一些问题,如:程序无法运行,占用大量内存,运行缓慢等等。所以开发完成的产品,必须通过对游戏产品进行多方面的优化。为了解决这些问题,首先本文先介绍优化准则,再介绍解决方案。
  一、优化准则
  任何的优化方案一般要满足以下规则:
  (1)设计正确:整体结构和设计正确将对代码優化起到最大的促进:服务器和客户端之间的操作如何进行分割。
  (2)最后优化。如果在开发过程中过早地进行优化将会产生很多复杂的代码,这会阻碍改良的设计。
  (3)有必要的时候才进行优化。查出瓶颈的所在并且集中精力把他们排列出来,这需要使用探查和堆空间分析工具。
  (4)不要过度优化。你越优化你的代码,那么它就会变得在特定的应用环境下高度地和谐。如果在特定环境之外运行,那么它们可能变得非常缓慢。
  (一)内存测试基准
  为了测试内存的使用情况,可以使用在java.lang.Runtime中所提供的两种方法:
  public long freeMemory();
  public long totalMemory();
  第一种方法告诉程序当前有多少字节的剩余内存可以使用,第二种方法给出在当前运行环境中总共的内存大小。
  (二)时间测试基准
  除了可以检查内存的使用情况外,还应该关注应用程序的运行速度。可以使用java.lang.System类中的currentTimeMillis()函数获得应用程序的运行时间。
  计算程序执行时间的代码如下:
  long start=System.currentTimeMillis();
  //要计时的运算代码放在这儿
  long time=System.currentTimeMillis–start;
  二、优化方案
  根据上文的优化准则,优化方案主要着眼于程序的执行速度、内存占用与JAR包大小。要使用整个应用在时间和空间上达到和谐统一的整体优异性能,必定是在矛盾的两者间取一个平衡点。
  (一)优化代码运行速度
  嵌入式的应用程序一般要求即时的反映,以满足应用环境下的信息有效性,所以对程序的运行响应速度都有特定的要求。
  1.使用容器。
  CLDC提供了4种常用的容器:Vector,Stack(Vector的子类),Hashtable和Array.J2SE中的BitSet类提供了可以存储任意长度比特的模式,它在CLDC中没有被支持。在容器使用方面有一些问题需要说明。应该避免使用Hashtable和Vector的默认构造方法.Java没有说明默认的初始化容量,这可能比我们需要的大很多。Vector和Hashtable都提供了可以指定初始容量的构造方法,分别是Vector(int initalCapcity)和Hashtable(Int initalCapcity)。
  2.使用数组代替对象。
  通常数组比对象运行的更快,更可靠。如文献[1]中所述,在矢量和哈希表中,虽然矢量和哈希表即简单又方便,但使用它们会增加大量的系统开销。在使用矢量或哈希表的场合,如果需要提高效率,就可以使用数组来代替。如果使用RMS系统,可能程序中会使用ByteArrayInputStream类进行记录的处理,但使用ByteArrayInputStream类的代价很大。因此,应该直接使用字节数组来进行处理。
  3.使用缓存I/O。
  缓存可以加快对文件的随机访问,所以在频繁进行I/O操作的应用程序中具有重要的作用。虽然数据I/O流提供了读写一个字节的方法,但是应尽量避免从数据流中读写一个字节。因为单个字节的读写效率非常低,应尽量使用带有缓冲的流读写方法。在J2ME中没有提供这两个类,要想提高I/O效率,就应该自己设计符合要求的带有缓冲的I/O方式。
  4.内存清理。
  一个有效而又简单的使用内存的方式在程序中使用主动地清理内存。一旦不再使用内存就应立即释放,这样能提高应用程序的性能。在程序中如果有数组不再使用,就应该释放,方法是设置数组指向null,使数组能被垃圾收集器收集,也可以调用System.gc()方法来进行垃圾收集。当程序在设法从一个网络的输入流中读取数据时,发生一个意外,这时就会导致异常的出现。在这种情况下,程序的执行将会跳转到异常处理部分,但已经打开的输入流尚未关闭。这些打开的输入流会占用大量的内存,应该尽量避免这个问题。
  (二)优化内存使用
  嵌入式设备一般内存空间十分有限,对内存的优化与管理是程序优化的重点。
  创建和重复使用对象:
  应尽量避免在一个循环内部创建一个新的对象,因为每创建一个新对象时,内存将被重新分配,而内存分配将花费大量的时间。而且一般来说,在一个循环体内创建的对象,有可能在循环体结束时被释放。这就意味着,每一次循环体的执行将促使系统运行一次垃圾收集器,这将导致循环体的执行速度与垃圾收集器的运行速度差不多。
  在一个循环体内创建对象,将会导致程序性能受到很大得的影响。由于要花很长的时间来新建一个对象,于是应该尽量重复利用对象。因此,最明智的做法是保存和更新旧对象的字段,而不是创建一个新对象。例如,不要在自己的paint()方法中新建一个Font对象。相反,应将其声明成实例对象,再初始化一次。在这以后,可在paint()里需要的时候随时进行更新。
  三、结论
  程序设计过程就是一个不断权衡和折衷的过程。需要考虑不同的情况,对于某些设计或者技巧做出全面的权衡和取舍。时间和空间是程序设计的永恒的主题,程序设计过程就是对时间和空间的权衡和取舍。程序设计过程中的优雅和效率也是程序设计中必须考虑到的,一味使用面向对象技术,各个类之间的耦合程序最小,这样就不可避免地造成类膨胀。究竟采用何种设计方法,都需要根据项目和具体的情况做出全面的衡量。
  参考文献:
  [1]"Mobile Code,Distributed Computing,adn Agents."J.Waldo,in IEEE Intelligent Systems.March/April,2001
  [2]Software Engineering Concerns for Mobile Agent Systems.J.Cook,New Mexico State University,2001
其他文献
摘要:在有的电信运营企业,大多数赠品管理使用原始的手工账本登记方式,这种方式有多种弊端。开发一套赠品管理系统,以替代落后的手工记账方式,对提升单位的管理水平有着重要的意义。电信运营企业自身内部网络比较健全,根据现有的网络结构——内部局域网,开发终端应用程序即可,无须重新架设网络。一般只需开发一套C/S结构管理系统,使用一台计算机作为数据库服务器,终端程序安装在营业厅等营业终端电脑上,营业员及时把赠
期刊
摘要:在计算机教学中,通过完善教学方法,尝试新的教学手段,从而提高中职学生的学习兴趣,可以提高课堂效率和教学效果。本文试结合教学实践对此进行探索。  关键词:计算机;教学;中职;兴趣  中图分类号:G623.58文献标识码:A文章编号:1007-9599 (2011) 01-0000-01  The Teaching Strategies to Improve Student Interest i
期刊
摘要:网络时代,知识突飞猛进,构建随时学习的网络平台,提高中职学生的学习能力,促进终身学习,构建学习型服务平台。本文从实际出发,结合中职学生网络随时学习现状,阐述了网络学习平台对于学生学习能力提升的重要性,提出了构建中职网络学习平台的几点建议及有效使用网络平台提升学习能力的思考。  关键词:网络学习平台;随时学习;中职学生  中图分类号:G434 文献标识码:A文章编号:1007-9599 (20
期刊
摘要:教师在电脑课的教学过程中把握一个“度”,这个“度”,有“深浅度”,“时间度”,“气氛度”。良好的“度”的把握,能把电脑课程上的即生动又形象,即简洁又易懂,即授知识又育人。  关键词:电脑;教学;度  中图分类号:G434 文献标识码:A文章编号:1007-9599 (2011) 01-0000-01  Teacher about Computer Teaching in the "Degre
期刊
摘要:本文介绍了计算机系统结构辅助教学系统数据库的设计与实现过程。主要介绍了利用JSP创建并运行动态交互的网络服务器应用程序生成动态网页的方法,系统地阐述了使用数据库进行网站数据库的设计、创建、管理和安全维护的方法。  关键词:系统结构;系统;数据库;学习论坛;动态网页;在线考试  中图分类号:G434 文献标识码:A文章编号:1007-9599 (2011) 01-0000-02  Comput
期刊
摘要:VB程序设计作为高等院校理工科的一门基础课程,其理论性和实践性都比较强,本文通过对探究式教学法的概念、教学过程、教学原则的探讨,论述了在VB教学中如何采用探究式教学法来提高教学效果。  关键词:VB;探究式教学法;探究式学习  中图分类号:G434 文献标识码:A文章编号:1007-9599 (2010) 15-0000-01  Research on Exploratory Teachin
期刊
摘要:数学归纳法是一种非常重要的数学方法,它不仅对我们数学的学习有着很大的帮助,而且在计算机学科的研究中也是一种重要的方法。首先必须准确的理解其意义以及熟练的掌握解题步骤,而在三个步骤中运用归纳假设尤为关键,运用归纳假设推出猜想最为重要。最后我们在通过用数学归纳法证明文法语言的过程中,可以更加深刻理解和掌握“归纳——猜想——证明”这一探索发现的思维方法。  关键词:归纳法;计算机科学;计算机应用 
期刊
摘要:为了解决热处理企业在生产过程中使用标准手册知识的繁琐,本文提出建立热处理企业知识库管理系统的方法。通过使用统一建模语言UML对系统进行描述,结果表明系统的开发使热处理标准手册知识得到了有效地表达与获取,不仅可以大大缩短系统的开发周期,并且后期维护和升级也非常方便快捷。  关键词:热处理;知识库;UML  中图分类号:TP315 文献标识码:A文章编号:1007-9599 (2011) 09-
期刊
摘要:动画片以其独特的艺术形式、艺术形象和艺术魅力,深受广大群众尤其是少年儿童的喜爱,无论是它的动画形象还是它所传达的内容,都已经成为标志性的代表,成为人们娱乐生活中重要的组成部分。动画造型设计占首要地位,我们的从业者应当在艺术修养和思想性上下工夫。  关键词:造型设计;漫画风格;写实风格;动画产业  中图分类号:J218.7 文献标识码:A文章编号:1007-9599 (2010) 13-000
期刊
摘要:通过对Word艺术字在Photoshop中的应用实例分析,引导学习者提高多维度迁移性思考和解决问题的能力。  关键词:艺术字;设计技巧;方法理念  中图分类号:G718.3 文献标识码:A文章编号:1007-9599 (2010) 13-0000-01  WordArt Can Do as This  ——Word WordArt Application Case Analysis in P
期刊