手机游戏优化技巧

来源:互联网 发布:mac word 选项 编辑:程序博客网 时间:2024/06/10 07:27

手机游戏优化技巧:
    a.减少内存使用:
      —尽可能避免使用对象:具备某种意义功能时才使用对象,否则用基本数据类型;
      —重用对象:重用对象(初始化对象状态)而不重新创建;
      —显示清除对象:显示设置无用对象为空,以便来及收集器能尽快释放内存;
    b.最小化网络数据;
    c.去除不必要图形:去除动画帧,使用图形旋转或变形(90度、180度等);
    d.代码优化技巧:
      —不带调试信息的编译:调试游戏代码后,用-g:none选项关闭调试信息,如javac -g:none MyMIDlet.jar;
      —去除不必要赋值:如
                          for(int i=0;i<size();i++) a=(b+c)/i;//循环size()次就赋值size()次
                        改写成:
                          int s=size();
                          int tmp=b+c;
                          for(int i=0;i<s;i++) a=tmp/i;//一次赋值即可
      —去除常用子表达式:如
                          b=Math.abs(a)*c;
                          d=e/(Math.abs(a)+b);//两次调用Math.abs函数;
                          改写成:
                          int tmp=Math.abs(a);
                          b=tmp*c;
                          d=e/(tmp+b);//一次调用Math.abs函数;
      —利用局部变量:如
                      for(int i=0;i<1000;i++) a=obj.b*i;//多次循环访问对象的变量
                      改写成
                      int localb=obj.b;
                      for(int i=0;i<1000;i++) a=localb*i;
      —扩展循环:如
                      for(int i=0;i<1000;i++)  a[i]=25;//循环1000次
                      改写成
                      int i=0;
                      for(j=0;j<100;j++) {
                         a[i++]=25;
                         a[i++]=25;
                         a[i++]=25;
                         a[i++]=25;
                         a[i++]=25;
                         a[i++]=25;
                         a[i++]=25;
                         a[i++]=25;
                         a[i++]=25;
                         a[i++]=25;                       
                      }//循环100次
        —代码紧缩和混淆:利用代码紧缩器(code shrinker)和代码混淆器(cod obfuscator);
                          开源工具ProGuard混合代码紧缩器(code shrinker)和代码混淆器;
      e.探查手机游戏代码:WTK的"preference"->"Monitor"->"profiler"勾选"Enable profiling";
                          WTK模拟器退出应用程序后会自动运行探查器并显示方法及其调用次数、执行时间、CPU占比;
      f.监视手机游戏内存使用:WTK的"preference"->"Monitor"->"Memory Monitor"勾选"Enable Memory Monitor";
                          激动内存监视在WTK模拟器运行MIDlet时显示内存使用情况,尤其是各类对象内存使用情况;

原创粉丝点击