对于
Android
平台上
软件的性能测试
可以通过以下几种
方法来
分析效率
瓶颈,目前
Google在Android软件
开发
过程中已经引入了多种
测试工具包,比如Unit测试工程,调试类,还有模拟器的Dev
Tools都可以直接反应
执行性能。
1. 在模拟器上的Dev Tools可以激活屏幕显示当前的FPS,CPU使用率,可以帮助 我们测试 一些 3D图形 界面的性能。
2. 一般涉及到网络 应用的程序,在效率上和网速有很多 关系,这里需要多次的调试才能实际了解。
3. 对于逻辑 算法的效率执行,我们使用Android上最普遍的,计算执行 时间来查看:
long start = System.currentTimeMillis();
//这里做实际的处理do someth ing
long duration = System.currentTimeMillis() - start;
最终duration保存着实际处理该方法需要的毫秒数。这里类似Win32上的GetTickCount,在Win 32和Symbian上都 提供了高精度的性能 计数器和低阶计时器,这里在Dalvik VM上的 Java层这种方法对于一般的应用足以。
4. GC效率 跟踪,如果你执行的应用比较简单,可以在DDMS中查看下Logcat的VM释放 内存情况,大概模拟下那些 地方可以缓存 数据或改进算法的。
5. 线程的使用和 同步,Android平台上给我们提供了丰富的多任务同步方法,但在深层上并没有过多的比如自旋锁等高级应用, 不过对于 Service和appWidget而言,他们实际的 产品中都应该以 多线程的方式处理,以释放CPU时间,对于线程和堆内存的查看这些都可以在DDMS中看到。
1. 在模拟器上的Dev Tools可以激活屏幕显示当前的FPS,CPU使用率,可以帮助 我们测试 一些 3D图形 界面的性能。
2. 一般涉及到网络 应用的程序,在效率上和网速有很多 关系,这里需要多次的调试才能实际了解。
3. 对于逻辑 算法的效率执行,我们使用Android上最普遍的,计算执行 时间来查看:
long start = System.currentTimeMillis();
//这里做实际的处理do someth ing
long duration = System.currentTimeMillis() - start;
最终duration保存着实际处理该方法需要的毫秒数。这里类似Win32上的GetTickCount,在Win 32和Symbian上都 提供了高精度的性能 计数器和低阶计时器,这里在Dalvik VM上的 Java层这种方法对于一般的应用足以。
4. GC效率 跟踪,如果你执行的应用比较简单,可以在DDMS中查看下Logcat的VM释放 内存情况,大概模拟下那些 地方可以缓存 数据或改进算法的。
5. 线程的使用和 同步,Android平台上给我们提供了丰富的多任务同步方法,但在深层上并没有过多的比如自旋锁等高级应用, 不过对于 Service和appWidget而言,他们实际的 产品中都应该以 多线程的方式处理,以释放CPU时间,对于线程和堆内存的查看这些都可以在DDMS中看到。