Android应用性能优化
最新书摘:
-
大头2012-11-28广播接收器默认是禁用的;广播接收器必须在onResume()中启用,在onPause()被禁用。
-
大头2012-11-28只有当应用在前台运行时才可以启用广播接收器。
-
大头2012-11-28当应用不在运行或在后台运行时,我们想禁用这些Toast消息。
-
大头2012-11-28在只有真正需要时启用广播接收器,否则一直开着会浪费很多电。
-
大头2012-11-28在用户界面不在前台时更新TextView的文本毫无意义,只会浪费电量。
-
大头2012-11-27Debug.threadCpuTimeNanos()只测量在当前线程中所花费的时间,所以它的结果更准确。如果要测量的部分运行在多个线程上,只调用一次Debug.threadCpuTimeNanos()不会给出准确的估值,必须在所有涉及的线程调用此方法并把结果相加。
-
大头2012-11-27精度和准确度可能不够;更改系统时间会影响结果。最好使用System.nanoTime()。
-
大头2012-11-16Dalvik的JIT编译器可以显著提高性能。本地实现并不总是比启用JIT的Java版本速度更快。在本地空间花费更多的时间,可以摊薄Java和本地空间的过渡成本。
-
大头2012-11-15不要再Android.mk设置优化级别,而是由Application.mk的APP_OPTIM选项决定。
-
大头2012-11-15当新NDK发布时,特别是更新包含新版本的编译器时,建议用新NDK重新编译应用,并发布更新。
-
大头2012-11-15Android的包管理器将在应用安装时,确定在设备上安装哪个库。Android系统定义了主要ABI和可选的次要ABI。
-
大头2012-11-12MRS 从PSR移动到寄存器MRS 从系统协处理器移动到寄存器MSR 从寄存器移动到PSRMSR 从寄存器移动到系统协处理器
-
大头2012-11-09ARMv6架构中引入并行指令,它们无法编译为armeabi ABI(ARMv5)。
-
大头2012-11-05相对布局在条目列表中非常重要,应用通常用它来显示10个及以上的项目。
-
大头2012-11-02嵌套线性布局会深化布局层次,从而导致布局和按键处理变慢。
-
大头2012-11-02减少创建对象数量。可以用不同的布局达到同样的视觉效果,消除不必要的对象,或推迟创建对象。
-
大头2012-11-02如果不知道代码的使用方式,就不能正确地优化代码。在找到要解决问题的关键点之前不要优化。
-
大头2012-11-05确保在发布应用之前认真处理layoutopt报告的所有问题,这些问题通常很容易纠正。未优化的布局会拖慢应用。
-
大头2012-11-01处理大量数据时,使用可以满足要求的最小数据类型。避免类型转换。尽量保持类型一致,尽可能在计算中使用单一类型。多半情况下,使用较少内存的原则是值得遵守的。
-
大头2012-11-01在代码中使用推迟初始化是一个好习惯,它可以让你在实现onLowMemory()时几乎不用改动其他地方的代码。