zoukankan      html  css  js  c++  java
  • Android CTS 测试 过程

    Android CTS 测试  

    2011-03-22 16:13:54|  分类: Android |  标签:android  cts  编译   |字号 订阅

    一、工具篇
    准备
    Android 环境Android代码、jdk1.6git及相应的编译环境

    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、  repo sync external/apache-http等
    据个人记忆,好像build 、bionic、dalvik、prebuilt、frameworks/base这几个包比较大,建议单独同步。
    (据网上高人说,repo服务器,每个终端最多支持3个线程,也就是我们可以同时开三个repo)
    同步过程网络失败太正常了,多试几次就好了,全部下来大概1.3个G,具体时间,看个人网速。


    4、下载CTS  http://source.android.com/compatibility/cts-intro.html

      在手机或者模拟器上安装CtsDelegatingAccessibilityService.apk
      $sudo ./adb install -r /cts/android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk


    手机或者模拟器设置
      Settings->Accessibility->两个选项都选上;
      Settings > Application > Development 三个选项都选上;
      Settings > Sound & Display > Screen Timeout should be set to "Never Timeout";

    5.编译篇

    #make(这个编译比较长)
    #make sdk

    代码下载完成后,进入代码目录,这里就以/home/android/为例
    里面有一个build/envsetup.sh ,执行.(这个是配置编译环境的,具体细节我目前还不清楚)

    $ . build/envsetup.sh          //配置选项,并编译android源码
    $ make cts                                 //android源码编译好后,在编译cts

    6、编译好cts后生成的文件位置如下
    #mydroid/out/host/linux-x86/
    在该目录下包含如下测试文件
    • 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
    7、连接上Device后,进入如下目录
    #mydroid/out/host/linux-x86/bin/
    并输入./cts来启动cts测试,效果如下:
    Android  CTS  version  2.1_pre_r2  
    device(0123456789ABCEDF)  connected
    cts_host >
    此时输入 help  将会列出cts所有的操作。
    cts_host> ls  --plan   //list all  test plan 
    cts_host> ls  -p           //list all testcase
    cts_host>start  --plan  [plan name]     //test   plan
    .............
    .............
    进入目录 
    #mydroid/out/host/linux-x86/cts/android-cts/repository/plans
    将会看到有8个测试的基类,它们分别是
     Android.xml     
    AppSecurity.xml
    CTS.xml
    Java.xml
    Performance.xml
    RefApp.xml
    Signature.xml
    VM.xml
    用UltraEdit打开这些文件后,将会看到所有基类里包含的package 都给出了相应的uri,
    cts将根据这些uri去测试每个基类里的package,

    8、cts_host > start  --plan  Android  
    输入上面的命令后,就开始测试 Android API, 其它的类测试命令和这个一致,如下:
    cts_host > start  --plan  Android           //test    Android  API
    cts_host > start  --plan  CTS               //contains all tests and will run ~21,000 tests on your device  
    cts_host > start  --plan  Java             //test   Java  core  libary
    。。。。。。。。。

    9、测试好后,通过输入如下命令来查看测试情况
    cts_host > ls  -r

    10、CTS测试会自动生成相应的测试包,该包位于如下目录:
    #mydroid/out/host/linux-x86/cts/android-cts/repository/results
    运行测试时,在CTS运行界面能看到测试报告与运行状况。测试完成后可在android-cts/repository/results/下生成详细的测 试报告和一些附加信息,其中用日期和时间命名的文件夹下为所有的测试结果,同时文件夹也会被打成一个对应的.zip包方便提交。用浏览器打开.xml文件 (默认就是,直接双击)就可以查看所用的测试报告了
    每个测试包中包含了如下文件;
    cts_result.css
    cts_result.xsl
    logo.gif
    newrule-green.png
    testResult.xml
    该包的测试情况都在 testResult.xml 文件中,通过查看该文件可以知道,那些是和Android兼容的。

  • 相关阅读:
    操作系统发展、同步异步阻塞非阻塞、进程
    day27作业
    tcp粘包、解决粘包问题
    基于TCP连接的socket套接字编程
    《python》join、守护进程、锁/信号量/事件、进程队列
    《Python》并发编程
    《Python》网络编程之验证客户端连接的合法性、socketserver模块
    《Python》网络编程之客户端/服务端框架、套接字(socket)初使用
    《Python》网络编程基础
    《Python》re模块补充、异常处理
  • 原文地址:https://www.cnblogs.com/yuzaipiaofei/p/4124364.html
Copyright © 2011-2022 走看看