Android CTS 测试 过程
准备Android 环境:Android代码、jdk1.6、git及相应的编译环境
1 命令行输入
$ sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind
2.ubuntu10.04 不包含jdk1.6,
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
sudo add-apt-repository "deb-src http://archive.canonical.com/ubuntu lucid partner"
sudo apt-get update
sudo apt-get install sun-java6-jdk
3.准备Android 源码
要下载其源码,先要安装一个Android的构建工具
repo。repo只是google用Python脚本写的调用git的一个脚本,主要是用来下载、管理Android项目的软件仓库。
$ curl http://android.git.kernel.org/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
然后再建立一个存放源码的目录
$ mkdir ~/android ; cd ~/android
之后使用这个repo工具,来初始化这个源码仓库:
$ repo init -u git://android.git.kernel.org/platform/manifest.git //这是主线上的代码,也可以用 //$ repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake来指定某一版本的source提交之后,Google会让你提交用户信息什么的,按照要求就OK了。(–b android-2.1_r2)
片刻等待之后,仓库初始化完成。此时,这个仓库只是更新了repo这个构建工具本身,并下载了整个Android源码仓库的一个清单的版本库, 在~/android/.repo下面能够看到这些文件。其中 ~/android/.repo/repo 目录是构建工具的全部代码,基于Python写成,稍后再看。 其次是 ~/android/.repo/manifests/default.xml文件,这个是整个Android源码库的清单文件,之后repo这个工具会 根据这个清单依次下载所有的代码。而~/android/.repo/manifest.git则是这个清单文件的版本库 :) 。
Git有一个有意思的特性,就是可以制定存放版本库版本信息的目录的位置,因而可以将存放版本信息的目录和实际的项目文件放置于不同的目录下,而不 是像以前的cvs或者Subversion一样在每一个目录下都有一个讨厌的.xxx隐藏目录。这也从某种程度上减少了冗余信息。
经过上述步骤之后,可以开始进行源码仓库的下载了,对于repo来说,称之为“同步”——sync。
$ repo sync
下载过程中随时可以终断,中断后重新执行同步即可更新到最新的源码仓库。
切记,切记
这个同步下来的东西是在当前目录下的,而且是一个因此文件夹.repo 用 ls -al 能看到
所以,你一定要自己建立一个目录,比如/home/android,进入这个目录再执行这个命令,要不然就会生成很多多余的文件,你还不知道到底在哪里。
我第一次就是这个,执行了N次,没有看到一个代码,还好,我用find -name 查找,才把他们揪出来了。
repo
补充
repo 是一个同步命令,如果输入repo 就是同步所有的代码吧,如果加个参数就是同步某个包的代码。
既然有全部同步的命令,为什么我们要自己那么麻烦去同步其它的呢?因为在同步的过程,经常会出现网络错误。
所以,网上有高人指点说,对于比较大的包,加参数同步,其它的,就不加参数。
在执行初始化好,就是第三步的目录下,我们 cd .repo,就会看到project.list文件,我们可以看到所有project,总共116个。比如 repo sync build、
据个人记忆,好像build 、bionic、dalvik、prebuilt、frameworks/base这几个包比较大,建议单独同步。
(据网上高人说,repo服务器,每个终端最多支持3个线程,也就是我们可以同时开三个repo)
同步过程网络失败太正常了,多试几次就好了,全部下来大概1.3个G,具体时间,看个人网速。
4、下载CTS
手机或者模拟器设置
5.编译篇
#make(这个编译比较长)
#make sdk
代码下载完成后,进入代码目录,这里就以/home/android/为例
里面有一个build/envsetup.sh ,执行.(这个是配置编译环境的,具体细节我目前还不清楚)
$ make cts
- Package CTS: out/host/linux-x86/cts/android-cts.zip
- cts make file: mydroid/build/core/tasks/cts.mk
- run cts program: mydroid/out/host/linux-x86/bin/cts
- test plans: mydroid/out/host/linux-x86/cts/android-cts/repository/plans
- test packages: mydroid/out/host/linux-x86/cts/android-cts/repository/testcases
- test results: mydroid/out/host/linux-x86/cts/android-cts/repository/results
- CTS program settings value: mydroid/cts/tools/utils/host_config.xml
运行测试时,在CTS运行界面能看到测试报告与运行状况。测试完成后可在android-cts/repository/results/下生成详细的测 试报告和一些附加信息,其中用日期和时间命名的文件夹下为所有的测试结果,同时文件夹也会被打成一个对应的.zip包方便提交。用浏览器打开.xml文件 (默认就是,直接双击)就可以查看所用的测试报告了