1 / 9
文档名称:

优就业android教程-android应用程序运行的性能设计.doc

格式:doc   大小:24KB   页数:9页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

优就业android教程-android应用程序运行的性能设计.doc

上传人:2982835315 2022/1/25 文件大小:24 KB

下载得到文件列表

优就业android教程-android应用程序运行的性能设计.doc

相关文档

文档介绍

文档介绍:-
. z
优就业Android教程-Android应用程序运行的性能设计
Android应用程序运行的移动设备受限法不需要更新此对象的状态。
6. 防止部的Getters/Setters
在源生语言像C++中,通常做法是用Getters(i=getCount())代替直接字段(i=mCount)。这是C++中一个好的****惯,因为编译器会联这些,如果需要约束或者调试这些域的,你可以在任何时间添加代码。
在Android中,这是个不好的想法。虚方法调用代价比直接存取字段高昂的多。按照通常面向对象语言的做法在公共接口中使用Getters和Setters是有原因的,但应该在一个经常其字段的类中采用直接。
无JIT时,直接字段大约比调用无关紧要的getter来快3倍。有JIT时(直接字段开销和局部变量是一样的),要快7倍。在Froyo版本中确实如此,但以后会在JIT中改进Getter方法的联。
7. 对常量使用Static Final修饰符
考虑下面类首的声明:
-
. z
Java代码
static int intVal = 42; static String strVal = "Hello, world!";
编译器生成一个类初始化方法clinit, 当类初次被使用时执行,这个方法将42存入intVal中,并得到类字符串常量strVal的引用。当这些值在后面被引用时,他们通过字段查找进展。
我们改进实现,采用 final关键字:
Java代码
static final int intVal = 42; static final String strVal = "Hello, world!";
类不再需要clinit方法,因为常量进入了de*文件中的静态字段初始化器中。引用intVal的代码,直接调用整形值42,而strVal时也会采用相对开销较小的 string constant(字符串常量)指令替代字段查找。(这种优化仅仅是针对根本数据类型和String类型常量的,而非任意的引用类型。但尽可能的将常量声明为static final类型是一种好的做法。
8. 使用改进的For循环语法
改进的for循环(有时被称为for-each循环)能够用于实现了iterable接口的集合类及数组中。在集合类中,迭代器促使接口hasNe*t()和ne*t()方法,在ArrayList中,计数循环迭代要快3倍(无论有没有JIT),但其他集合类中,改进的for循环语法和迭代器具有一样的效率。
-
. z
这里有一些迭代数组的实现:
Java代码
static class Foo { int mSplat; } Foo[] mArray = ... public void zero() { int sum = 0; for (int i = 0; i ;