persistent="true"
android:
label="@string/home_title"
android:
icon="@drawable/ic_launcher_home"
android:
debuggable="true">
保存修改。
(4)进入手机/模拟器的Settings>Applications,勾选上“Unknownsources”项。
(5)进入手机/模拟器的Settings>Applications>Development,勾选上“USBdebugging”项。
(6)让PC能识别到手机:
.如果使用的是Windows操作系统,需要在PC上安装手机配套的USB驱动。
.如果使用的是Mac操作系统,不需要进行任何设置直接可识别手机。
.如果使用的是UbuntuLinux操作系统,需要在/etc/udev/rules.d/51-android.rules文件(如果没有该文件,需要先手动创建)中配置USB接口:
Øcd/etc/udev/rules.d/
Øls
Øgedit(orvi)51-android.rules
在文件中添加如下内容,保存修改:
SUBSYSTEM=="usb",ATTR{idVendor}=="0bb4",MODE="0666",GROUP="plugdev"
SUBSYSTEM=="usb",SYSFS{idVendor}=="18d1",MODE="0666"
修改文件的使用权限如下:
Øchmoda+r/etc/udev/rules.d/51-android.rules
检测下是否设置成功,执行如下命令,如果显示出手机ID,说明配置USB成功:
Øadbdevices
Note:
各品牌手机的USBVendorIDs分别如下表所示:
Company
USBVendorID
HTC
0BB4
Huawei
12D1
Lenevo
17EF
Motorola
22B8
Qualcomm
05C6
ZTE
19D2
(7)需要通过Settings->SpeechSynthesis->Installvoicedata来下载安装TTS(TextToSpeech,能 将所指定的文本转成不同语言音频输出)文件:
(8)在手机/模拟器上配置了一个谷歌帐号。
(9)确保手机内插有SD卡,或为模拟器配置了虚拟SD卡(可进入/home/username/android-sdk-linux_86/tools目录,执行./mksdcard1024Msdcard.img创建虚拟SD卡,然后编辑模拟器,通过选择目录方式引入该虚拟SD卡,重启模拟器即可)。
(10)在设备/模拟器上做一次恢复出厂设置(Settings->SDCard&phoneStorage->Factorydatareset)。
注意:
这会删除设备上的所有用户数据。
(11)进入手机/模拟器的Settings->Security&location,去勾选“RequirePattern”项。
(12)确保手机/模拟器的“ScreenTimeout”被设置为“NeverTimeout”(Settings->Sound&Display->ScreenTimeout应该被设置为“NeverTimeout”)。
(13)确保手机/模拟器的“StayAwake”被选中(Settings->Applications->Development->Stayawake)。
(14)确保手机/模拟器的Settings->Application->Development->Allowmocklocations被设置为true。
(15)在运行CTS之前,确保手机/模拟器停留在主界面。
(16)正在运行CTS时,不要在手机/模拟器上进行任何其它操作(包括按键/触摸屏幕)。
7.使用CTS:
1.Android-CTS测试的几个概念
在进行CTS测试之前,先阐述CTS测试中几个概念:
ØTest Plan(Plan):
测试计划,Test package的集合,每个Plan中都包含若干个测试包
以android–cts2.2版本为例,总共有8个测试计划
CTS:
包含2万多个测试用例,这些测试用例是检验兼容性必须的,性能测试不包含在本计划中,随版本的更新,本测试计划也会更新。
Signature:
包含所有针对公有APIs的署名测试
Android:
包含针对androidAPIs的所有测试
Java:
包含所有针对Java核心library的测试
VM:
包含对虚拟机的所有测试
RefApp:
包含针对参与应用程序的所有测试,随版本的更新,本测试计划也会更新
Performance:
包含所有针对性能的测试,随版本的更新,本测试计划也会更新
AppSerurity:
针对Application安全性的测试
ØTest Package(Package):
测试包,Test case的集合
ØTest case:
测试用例,Test的集合
ØTest:
测试,每一个测试对应一个或者多个Instrumentation Test
ØInstrumentation Test:
Android测试环境的核心是一个Instrumentation框架,在这个框架下,你的测试应用程序可以精确控制应用程序。
使用Instrumentation,你可以在主程序启动之前,创建模拟的系统对象,如Context;控制应用程序的多个生命周期;发送UI事件给应用程序;在执行期间检查程序状态。
Instrumentation框架通过将主程序和测试程序运行在同一个进程来实现这些功能。
ØResult_Type:
CTS的测试结果可以通过命令查阅,也可以通过浏览器查看下结果文件
命令查阅结果:
其中Test result 有四种类型的值:
Pass, Fail, Timeout, NoExecuted
浏览器查看testResult.xml. 路径:
…/android‐cts/repository/results/
上图为performance plan所包含的Test package的测试结果,可以看到每个测试包的测试情况,详细的测试结果分析我们将在CTS 测试结果分析中介绍,这里主要让大家明确result_type的含义。
2.CTS测试
(1)前提条件:
确保有手机通过USB连接到PC,或模拟器已打开。
检测手机是否连接上电脑
打开终端输入命令:
adbdevices,连接上这会显示设备ID,如果未连接上则会以?
?
?
?
?
?
?
代替,此时可以通过输入以下命令进行连接
$adbkill-server
$sudoadbstart-server
$adbdevices
(2)手机端安装CtsDelegatingAccessibilityService.apk
此包位于android-cts/repository/testcases下面。
可以将安装包拷贝到手机后安装也可通过打开终端输入命令。
输入命令方法:
先定位到plantform-tools文件夹,cdcts/android-sdk-linux/platform-tools然后再输入安装命令:
./adbinstall/安装包的路径/CtsDelegatingAccessibilityService.apk
安装好后设置进入手机设在菜单:
Setting>Accessibility>Accessibility>DelegatingAccessibilityService
(3)进入/home/username/CTS/android-cts/tools,执行其下的startcts:
Østartcts(或者./startcts)
.如果CTS连接成功将显示类似如下的提示:
AndroidCTSversion2.3_r1
Device(emulator-5554)connected
cts_host>
(4)进入CTS测试环境
开启终端输入命令:
startcts//注意权限问题
如果权限不够的话输入:
sudo./startcts
输入用户密码
当出现
Android CTS version 2.2_r1
Device(s5830f1188529) connected
cts_host > cts_host >
就代表已经进入CTS测试环境
(5)启动默认的测试plan:
cts_host>start--planCTS
.执行此cts命令,将运行所有的测试包。
cts_host>help
.执行此cts命令,将显示出所有cts命令。
.通过执行不同的cts命令,可测试一个plan,一个package,一个class,一个method,甚至method中的参数。
.所有的plan在/home/username/CTS/android-cts/repository/plans目录,包含以下几类plan(xml文件):
>CTS:
包含所有的测试用例,大约会在设备上执行121000个测试。
>Signature:
包含对所有公开API的签名认证。
>Android:
包含对Android平台API的测试。
>Java:
包含对Java核心库API的测试。
>VM:
包含对DalvikVm的测试。
>RefApp:
包含对相关应用程序的测试。
>Performance:
包含对系统性能的测试。
.所有的testcase在/home/username/CTS/android-cts/repository/testcases目录(每个apk文件对应一个同名xml文件).
Ls--plan
Ø查看测试包
Ls-p
Ø运行测试计划
start ‐‐plan [test_plan_name]
举例:
运行VM测试计划
输入命令:
--planVM
Ø运行测试计划下的测试包
start ‐‐plan [test_plan_name] ‐p/‐‐package [plan_package_name]
举例:
运行Java计划下的android.core.tests.archive测试包
Ø运行测试计划下测试包中的某个测试项
Start–plan[testplanname]–t
[plan_package_name].[class_name]#[plan_package_test_name]
举例:
运行Java计划下android.core.tests.archive包下的test_tostring测试项
Ø指定某个设备上运行摸个测试计划中的测试包
start --plan [test_plan_name]‐d/--device [device_ID]
举例:
指定设备ID号为1234567890ABCDEF运行VM测试计划
cts_host>exit
.执行此cts命令,退出CTS运行环境。
8.查看CTS测试结果:
Ls–r
举例:
Ø查看某个session的测试记录
ls-r/--result-s/--sessionsession_id
举例:
ls–r–s3
测试结果被放在$CTS_ROOT/repository/results/.zip压缩包中。
解压缩后,找到testResult.xml文件,通过浏览器(推荐火狐3.x版本浏览器)打开浏览详细的CTS测试结果。
9.测试结果分析
Android-CTS运行后会产生一测试报告,测试报告以开始的日期+时间命名,如2011.12.21_12.09.44,一般只要查看testresult.xml文件就可对测试结果进行分析。
由于CTS测试所需要花的时间比较长,当对测试进行调试时可针对的进行测试可节约大量时间。
以下将介绍几种常用的方法:
Ø查看整体测试概览
Ø查看具体测试包测试例执行情况
Ø测试fail项查看失败细节
Ø测试调试
首先确定是哪个测试包出现失败,然后针对该测试包进行重新测试
$ adb install …/andandroid‐cts/package.apk
$ adb shell pm list instrumentation pm用于管理package,看当前机器安装了什么用例
$ adb shell am instrument ‐w android.tests.sigtest/.InstrumentationRunner
Ø定位某个测试失败项进行单独运行
Start–plan[testplanname]–t
[plan_package_name].[class_name]#[plan_package_test_name]
注意寻找class_name,可从测试报告中找到
举例:
10.注意事项:
(1)CTS在测试时会重启设备,这是正常现象。
(2)CTS一次只能在一个设备上执行。
11.附录-编译CTS方法:
(1)在Linux下进入android源码根目录,输入以下命令:
$chmod777build/envsetup.sh
$build/envsetup.sh
$makects
此时生成测试计划,测试包,测试用例,和测试报告生成的目录,
编译好cts后生成的文件位置如下:
#.../…/linux-x86/
在该目录下包含如下测试文件:
◆PackageCTS:
out/host/linux-x86/cts/android-cts.zip
◆ctsmakefile:
mydroid/build/core/tasks/cts.mk
◆runctsprogram:
mydroid/out/host/linux-x86/bin/cts
◆testplans:
mydroid/out/host/linux-x86/cts/android-cts/repository/plans
◆testpackages:
mydroid/out/host/linux-x86/cts/android-cts/repository/testcases
◆testresults:
mydroid/out/host/linux-x86/cts/android-cts/repository/results
◆CTSprogramsettingsvalue:
mydroid/cts/tools/utils/host_config.xml
(2)CTS详细命令
Host:
help:
查看帮助信息
exit:
退出
Plan:
ls--plan:
列出所有的测试包
ls--planplan_name:
查看测试方案
add--planplan_name:
新建一个测试方案
add--derivedplanplan_name-s/--sessionsession_id-r/--resultresult_type:
deriveaplanfromthegi