androidCTS资料大全.docx
- 文档编号:6766028
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:70
- 大小:1.66MB
androidCTS资料大全.docx
《androidCTS资料大全.docx》由会员分享,可在线阅读,更多相关《androidCTS资料大全.docx(70页珍藏版)》请在冰点文库上搜索。
androidCTS资料大全
CTS目录整理
1.CTS简介
Android兼容性测试套件标准
CTS测试就是用来确保某手机或者模拟器符合该兼容性规范。
CTS测试基于Androidinstrumentation测试,其又基于JUnit测试。
说白了,CTS就是一堆单元测试用例。
这也是Java语言的擅长部分。
目前CTS主要包括功能方面的测试,有少数的性能方面的测试。
性能测试未来会越来越多。
总的来说,它只包括自动化测试,目的主要是保证API的兼容性。
由于基于单元测试,CTS本身不能用于测试多应用交互的情况。
对我们的帮助:
1) 应用程序的开发者可以开发出自己应用的单元测试,并将其加入CTS测试集。
2) 设备制造商可以通过周期性运行CTS测试,确保没有对Android伤筋动骨。
2.CTS目录说明
CTS中主要目录有:
tests,tools,apps,development,libs分别说明如下:
TESTS文件目录
├─accessibilityservice
│
├─ApiDemosReferenceTest //API Demo测试用例
│
├─appsecurity-tests //放置应用程序安全性测试用例
│
├─assets//用来放置“原料”文件的,在这个目录中可以包含为流媒体和动画准备的音频文件。
├─anim//卡通动画
├─color //色彩
├─drawable//图片
├─layout//布局文件
├─menu//菜单
├─raw//未加工文件mp3,video
├─values//风格,字符串,数组
│
├─config_demo//存放配置测试用例,包括API检验测试,TestPlan TestResult
│
├─core //mk,AndroidManifest.xml
│
├─jni
├─ProcessTest //放进程测试用例
│
├─res//项目资源放置并且编译应用程序的地方。
当创建一个新的Android项目,res目录包含3个子目录:
drawable,layout,values。
前两个是放置并显示图形和布局,values目录放置了XML文件命名字符串,string.xml文件是用来放置遍及程序全局的字符串。
在此目录上放置的文件会在R.java(gen目录中)中生成相应的ID,使用时就引用这些ID就行了(引用方式如:
@string)。
│
├─SignatureTest //存放有关签名的测试用例
│
├─src//此目录包含项目里所有的源文件,
│
├─tests //源码对应的测试用例,网上下的CTS用例包比SVN上的tests\tests测试用例中少了一个preference包
│
└─vm-tests
Android.mk
AndroidManifest.xml//此文件是一个指定全局设定的地方,包括程序许可,活动,和意向过滤器等的设定。
如果创建一个应用程序,这个文件里相应的也要增加信息。
此文件相当于是ASP.NET中的Web.config和Global.asax的二合一。
该文件是每个应用都必须定义和包含的,它描述了应用的名字、版本、权限、引用的库文件等
tools(工具包)
├─annotation-helper(注解帮助,输入某个符号如:
可以获得帮助信息)
│└─src
│└─spechelper
├─cts-api-coverage(ToolthatgeneratesareportofwhatAndroidframeworkmethodsarebeingcalled可生成txt|xml|html形式文件,不知道怎么用)
│└─src
│├─com
││└─android
││└─cts
││└─apicoverage(程序入口类:
com.android.cts.apicoverage.CtsApiCoverage)
├─cts-reference-app-lib(BaseClassthatprovidescommonfunctionalityforallReferenceApplicationTests,主要对activity的startTime及snapShot(屏幕)time控制)
│└─src
│└─android
│└─cts
│└─refapp
├─dasm(反编译.d文件(不是很清楚,好像是配置文件))
│├─etc
│├─src
││├─dasm
│││└─tokens
││└─java_cup
││└─runtime
│└─test
(需要在看看)├─device-setup
│└─TestDeviceSetup(DeviceInfoActivity收集device信息,DeviceInfoInstrument主)
│└─src
│└─android
│└─tests
│├─getinfo
│└─util(DisableKeyguardReceiver使键盘锁无效,)
├─dex-tools
│├─dex
│├─src
││└─dex
││├─reader主要是对structure的接口的实现(DexAnnotationImpl(签名的注解,解析时用到)DexClassImpl获取class的信息(如,methods,name,fields等),
DexFileImple获取该文件下的class类(DexClassclazz=dexFile.getDefinedClasses().get(0);)
││└─structure接口,定义了结构
│└─test
│└─dex
│└─reader测试dex下的类
│└─util测试dex下的类的工具类
├─dx-tests
│├─etc
││└─morescripts
│├─lib
│├─scripts
│├─srcjavaVM的test,可以运行CollectAllTests.java(对root进行分析取得testCase)
││├─dxc
│││└─junit
││├─dxconvext
│││└─util
││└─util(收集test;编译jasmin语言(JAVA组合语言))
│└─utilclasses
│└─util
├─host(重要,跟运行框架有关系)
│├─etc
│├─src(对应于android-CTS/tools/cts.jar)
│└─test(对应于host/src的testCase)
├─signature-tools(签名,主要分compare和converter转换)
│├─src源码
││└─signature
││├─compare
││├─converter
││├─io
││└─model
│├─templates
││├─delta
││└─model
│└─test(signatrue-tools/src的testCase)
│└─signature
│├─comparator
│└─converter
├─spec-progress(检查DOC文档的完整性和正确性)
├─test-progress(testandroid_doc.html生成)
├─test-progress-new(testandroid_doc.html生成,还不是很清楚多了什么)
├─utils通过分析XML配置文件,取得相应的testCase
└─vm-tests(dalvikVM的test,类似于dx-tests)
├─etc
├─lib
└─src
├─dot
│└─junit
│├─format
│├─opcodes
│└─verify
└─util
└─build(BuildDalvikSuiteMainclasstogeneratedatafromthetestsuitetolaterrunfromashell)
E:
\ANDROID2.2\CTS\Development文件目录
├─ide集成开发环境
├─eclipse
├─.classpath,genclasspath.sh
E:
\ANDROID2.2\CTS\Libs文件目录
├─Annotation用于指定哪些特性需要执行测试用例,为了能执行所有的应用设备都要有特定的注解。
E:
\ANDROID2.2\CTS\APPS
└─CtsVerifier
├─arduino-helper//帮助信息
├─jni//mk,cppC++代码
├─res//项目资源放置并且编译应用程序的地方
├─src//有关verifier的源码
└─tests//src目录对应的测试用例
3.相关文件说明
CTS中有很多Android.mk文件,
Android.mk是整个工程的“Makefile”,其内容如下所示:
LOCAL_PATH:
=$(callmy-dir)
include$(CLEAR_VARS)
LOCAL_MODULE_TAGS:
=tests
#Onlycompilesourcejavafilesinthisapk.
LOCAL_SRC_FILES:
=$(callall-java-files-under,src)
LOCAL_PACKAGE_NAME:
=CtsTestStubs
LOCAL_SDK_VERSION:
=current
include$(BUILD_PACKAGE)
#Usethefollowingincludetomakeourtestapk.
include$(callall-makefiles-under,$(LOCAL_PATH))
其中LOCAL_PACKAGE_NAME表示了这个包的名字。
这个文件是最终生成的包(*.apk)的名称,注意,包的名称和应用程序目录的名称无关,而与这里的CtsTestStubs的名称有关。
AndroidManifest.xml工程的描述文件说明:
AndroidManifest.xml是每个android程序中必须的文件。
它位于application的根目录,描述了package中的全局数据,包括了package中暴露的组件(activities,services,等等),他们各自的实现类,各种能被处理的数据和启动位置。
此文件一个重要的地方就是它所包含的intent-filters。
这些filters描述了activity启动的位置和时间。
每当一个activity(或者操作系统)要执行一个操作,例如:
打开网页或联系簿时,它创建出一个intent的对象。
它能承载一些信息描述了你想做什么,你想处理什么数据,数据的类型,和一些其他信息。
Android比较了intent对象中和每个application所暴露的intent-filter中的信息,来找到最合适的activity来处理调用者所指定的数据和操作。
除了能声明你程序中的Activities,ContentProviders,Services,和IntentReceivers,你还能指定permissions和instrumentation(安全控制和测试)在AndroidManifest.xml文件中
xmlversion="1.0"encoding="utf-8"?
>
android=" package="com.android.app" android: versionCode="1" android: versionName="1.0"> icon="@drawable/icon"android: label="@string/app_name"> name=".app" android: label="@string/app_name"> name="android.intent.action.MAIN"/> name="android.intent.category.LAUNCHER"/> 值得一提一些常用之处: •几乎所有的AndroidManifest.xml(以及许多其他Android的xml的文件)在第一个元素中包含了命名空间的声明xmlns: android=" •大部分manifests包含了单个 •任何被用户看作顶层应用程序,并能被程序启动器所用的package,需要包含至少一个Activity组件来支持MAIN操作和LAUNCHER种类,如上述代码中所见。 这里是AndroidManifest.xml文件结构的一个详细的列表,描述了所有能被使用的标记。 manifest 根节点,描述了package中所有的内容。 在它之下能放置: uses-permission 请求你的package正常运作所需赋予的安全许可。 permission 声明了安全许可来限制哪些程序能你package中的组件和功能。 instrumentation 声明了用来测试此package或其他package指令组件的代码。 application 包含package中application级别组件声明的根节点。 此元素也可包含application中全局和默认的属性,如标签,icon,主题,必要的权限,等等。 一个manifest能包含零个或一个此元素(不允许多余一个)。 在它之下能放置零个或更多下列组件声明: activity Activity是用来与用户交互的主要工具。 当用户打开一个应用程序的初始页面时一个activity,大部分被使用到的其他页面也由不同的activity所实现并声明在另外的activity标记中。 注意: 每一个activity必须要一个 如果一个activity没有对应的标记,你将不能运行它。 另外,为了支持运行时迟查找你的activity,你能包含一个或多个 在Activity中可以放置很多控件,一个Activity就是一个类,而且要继承Activity,需要重写onCreate方法。 当Activity运行的时候就会通过Android操作系统调用onCreatey方法。 每一个Activity都需要在AndroidManifest.xml文件中配置,Activity中通过 intent-filter 声明了指定的一组组件支持的Intent值,从而形成了IntentFilter。 除了能在此元素下指定不同类型的值,属性也能放在这里来描述一个操作所需的唯一的标签,icon和其它信息。 action 组件支持的Intentaction。 category 组件支持的IntentCategory. type 组件支持的IntentdataMIMEtype. schema 组件支持的IntentdataURIscheme. authority 组件支持的IntentdataURIauthority. path 组件支持的IntentdataURIpath. receiver IntentReceiver能使的application获得数据的改变或者发生的操作,即使它当前不在运行。 利用activity标记,你能选择地包含一个或多个receiver所支持的 service Service是能在后台运行任意时间的组件。 利用activity标记,你能选择地包含一个或多个receiver所支持的 provider ContentProvider是用来管理持久化数据并发布给其他应用程序使用的组件。 在工程描述文件中,package的名称需要和JAVA文件中包的名称相同,activity的名称必须和JAVA文件中JAVA类的名称相同,JAVA文件的文件名也必须和其中类的名称相同。 而那个android: label的名字既是应用程序在菜单中的名字,也是应用程序启动后的标题. 用到的service和Activity都要在AndroidManifest.xml中声明一下。 android将UI与代码彻底分开,UI以xml的形式存放于res中的layout中,程序可以通过R.java来调用layout中定义的UI元素。 strings.xml定义了string、color、style等元素,这些元素可以通过Resources获取。 上面说的R.java是自动生成的文件,它索引了项目中所有的资源,在源代码中作为一种快捷方式使用,来索引已经包括在项目中的资源。 Android“四大天王”: Activity(用户接口,应用程序中的数据显示),Intent(传输数据),Service(数据处理),ContentProvider(存数据,并让有需要的应用程序访问这些数据) Intent包含的: Componentname Action Data Category Extras Flags 为Activity增加控件: LinearLayout线形布局 RelativeLayout相对布局 4.CTS测试环境搭建步骤: a)Android-sdk安装 1.平台: 虚拟机+Ubuntu9.10 2.下载android-sdk2.2网址: 择: linux环境android2.2 3.安装android-sdk2.2解压下载所得的android-sdk到安装的目录(任意),如: /home/tester/cts/android-sdk-linux_86。 进入/home/tester/cts/android-sdk-linux_86/tools,运行android可执行文件: 双击 ,点击“在终端运行”,出现 在左菜单中选择“Installedpackage”选项,点击下方“updateAll…”按钮,进入更新界面: 选择左边的的package,选择“Reject”,不会更新该package,点击Install。 进入更新状态,需要一段时间,长短取决于网速。 4.将platfrorm-tools目录下的adb文件拷贝到tools目录下(安装CTS时会用到) 安装完成。 b)CTS搭建 1.下载CTS包 2.在手机或者模拟器上安装CtsDelegatingAccessibilityService.apk (1)$sudo./adbinstall-r/home/tester/cts/android-cts/repository/testcases /CtsDelegatingAccessibil ityService.apk (2)手机或模拟器设置Settings>Accessibility>Accessibility>DelegatingAccessibilityService 3.进入android/out/host/linux-x86/cts/android-cts/repository/tools目录下,修改startcts脚本文件。 将脚本中的SDK_ROOT该成自己的androidSDK路径. $cdhome/tester/cts/android-cts/repository/tools$vimstartcts修改脚本中出现的第一个SDK_ROOT,如"SDK_ROOT=/home/tester/cts/android-sdk-linux_86"。 4.执行startcts脚本。 在执行CTS测试计划时(执行一段时间后,大于5分钟)会出现没有足够权限启动devices,使用$sudo./startcts可解决该问题。 5.出现如下提示符表示启动cts并连接设备成功。 (红色部分未deviceID,视设备号而定) AndroidCTSversion2.1_r2 Device(CB511KADGR)connected cts_host>cts_host> 6.在“cts_host>”提示符下输入命令,以下为几个常用的命令 help查看所有 exit退出 ls-p列出所有的测试包 ls--plan列出所有的测试方案 start--planplan_name运行一个测试方案,如: start--planCTS start--planplan_name--packagepackage_name运行一个特定的测试包,如: start--planCTS--packageandroid.bluetooth 查看测试报告 运行测试时,在CTS运行界面能看到测试报告与运行状况。 测试完成后可在android-cts/repository/results/下生成详细的测试报告和一些附加信息,其中用日期和时间命名的文件夹下为所有的测试结果,同时文件夹也会被打成一个对应的.zip包方便提交。 用浏览器打开.xml文件(默认就是,直接双击)就可以查看所用的测试报告了 常见问题: a)问题描述: 在执行paln时,执行一段时间后会抛
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- androidCTS 资料 大全
![提示](https://static.bingdoc.com/images/bang_tan.gif)