常见的性能瓶颈: 1.文件的读写和网络的操作 2.CPU 3.内存 4.同步 5.异常 6.屏幕绘制 一、程序设计和编码 1.对象的生成和大小的调整 (1)尽可能的使用静态变量 如果类中的变量不会随他的实例变化而变化,就定义为静态的,从而使它所有的实例都共享这个变量 (2)不要对已生成的变量做过多的改变 如尽可能不要过多改变String对象的值 (3)生成静态对象时,要分配给它合理的空间 一些数据结构的初始化大小要合理 (4)避免生成不常使用或生命周期短的对象或变量 应该定义一个对象缓冲池,这样开销小得多 (5)只在对象作用范围内进行初始化 局部使用的变量尽量拿到局部范围来定义和初始化 2.异常 尽量避免使用try/catch,能使用if,while代替就代替; 尽可能的重用已经存在的异常对象。因为生成一个异常对象要消耗大部分的时间 3.输入和输出 使用输入输出缓冲,尽可能的多使用缓存 OutStream比Writer类开销小,因为它要实现UTF8到byte的转换 4.一些经验技巧 使用局部变量 图形重绘只绘制变化的地方(如“脏矩形技术”) 避免get/set方法来访问变量 避免在同一个循环中生成同一个变量或调用同一个函数 尽可能的使用static,final,private等关键字 二、优化内存的使用 1.代码优化 //a不为空 a = new A(); 这样可能就会产生溢出,因为对象仍存在 a = null; a = new A(); 对于经常使用的对象,如声音处理类,最好是用工厂方法来产生唯一对象 2.图片优化 颜色位数能低则低 多张规格一样的图片合并成一张 大尺寸图片,可以分块载入,如地图 3.基本类型byte,int,long,float,double什么的,能省一点是点 能不使用浮点数就不使用,因为大多数嵌入式处理器没有浮点运算的协处理器 三、减少应用程序体积 减少类 限制使用接口 使用无名包 使用源代码预处理器进行优化 使用混淆器 使用系统库,能不自己实现的就不自己实现 还有,不要过分的使用面向对象的设计方法,在J2ME里,效率是第一位的