Android应用性能概览 |
Android的运行时性能模型
性能典型问题列表
性能原因初探
性能检测和诊断工具
|
Android的测试环境 |
创建Android虚拟设备
- 从命令行运行AVD
- 没有标题的模拟器
- 取消键盘监视功能
- 清理
- 终止模拟器
额外的模拟器参数
运行monkey
使用monkeyrunner运行测试脚本
|
BDD(行为驱动开发) |
BDD思考
FitNesse
- 从命令行运行FitNesse
- TemperatureConverterTests创建subwiki
- 给subwiki创建子页面
- 增加可以接受的测试fixture
- 增加测试的支持类
GivWenZen
|
Android测试技巧 |
Android单元测试
测试Activity和Application
- Applications和preferencesRenamingMockContext类
TemperatureConverterApplicationTests类
测试文件、数据库和ContentProvider
测试exception
测试本地和远程service
mock对象的进一步的应用
- 导入libraries
- testTextChanged
- Hamcrest介绍
- Hamcrest匹配器
- hasToString
测试View
测试parser
- Android assets
- parser activity
- parser测试
Memory Leaks测试
|
持续的集成 |
使用Ant构建程序
使用快速的版本控制工具-Git
使用Hudson持续集成
- 安装和配置Hudson
- 创建任务
- 获得Android测试的结果
|
性能测试和分析 |
使用传统的Log中的方法
Android SDK中的性能测试
- 启动性能测试
- 创建LaunchPerformanceBase
- 创建TemperatureConverterActivityLauchPerformance类
- 运行测试
使用Traceview和dmtracedump工具
Microbenchmarks
|
升级的测试策略 |
从源代码编译Android
- 代码的coverage
- EMMA特征
- 系统需求
- 下载Android源代码
- 安装repo
- 创建一个working副本
- Buiding的步骤
TemperatureConverter的code coverage
- 产生code coverage分析报告
- 涵盖状态恢复
- 涵盖异常
- 绕开访问限制
- 涵盖选择菜单
Ant coverage的目标
介绍Robotium
- 下载Robotium
- 配置工程
- 创建测试用
- testFahrenheitToCelsiusConversion()
- testOnCreateOptionsMenu()
测试本地的JVM
- 创建一个TemperatureConverterJVMTest工程
- 比较性能优势
介绍Roboletric
- 安装Robolectric
- 建立一个新的Java工程
- 编写测试
|