Android高效编程的实践

看过《 编写高效的Android代码》见 这篇文章,觉得挺有道理的,于是按照其说法从以下几个角度修改了自己的app代码。

1,避免建立对象。 这一点是没有问题的,java编程时都需要尽量控制new 对象的次数,每次在heap中生成新的对象是很费时的。

2,不涉及成员变量和成员方法的方法都定义为static。这一点也没有问题,姑且不论效率问题,这也是OO思想的一个体现。

3,成员变量缓存到本地。 理论上讲,成员变量的访问,是存储在heap中的,heap的访问没有stack中访问高效。而且经过java测试,我发现,对比两次使用成员变量 和 一次申请局部变量缓存后再两次使用局部变量,后者要效率高。代码如下:

public class test {         public long a ;         public long b ;         test(long x , long y){             a = x;             b = y;         }         void reset(long x , long y){             a = x ;             b = y ;         }                  public static void main(String args[]){              test mt = new test(-1,-1);             System.out.print("成员变量访问 与 局部变量 访问对比 1:\n");             long time = System.currentTimeMillis();             for (long i = 0 ; i != 1000000 ; i ++){  //下面是两次对成员变量的使用                if ( mt.a == i ){                     i ++ ;                 }                  if ( mt.a == i ){                     i ++ ;                 }              }             System.out.print("成员变量 : "+(System.currentTimeMillis() - time) + "ms\n");                          time = System.currentTimeMillis();                          for (long i = 0 ; i != 1000000 ; i ++){  //下面先缓存为局部变量,再两次使用局部变量                long x = mt.a ;                 if ( x == i ){                     i ++ ;                 }               if ( x == i ){                     i ++ ;                 }              }             System.out.print("局部变量: "+(System.currentTimeMillis() - time) + "ms\n\n");                                             }      }    

用于测试的app为一个surfaceview为主体的重力感应游戏。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwwjxg.html