Android CTS环境搭建

打印 上一主题 下一主题

主题 1012|帖子 1012|积分 3036

CTS即Compatibility Test Suite意为兼容性测试,是Google推出的Android平台兼容性测试机制。其目标是尽早发现不兼容性,并确保软件在整个开发过程中保持兼容性。只有通过CTS认证的设备才气合法的安装并使用Google market等Google应用。
搭建CTS测试环境需满意如下要求


  • 主机设置
    CTS支持64位Linux盘算机,Windows或MacOS不支持CTS。
    适用于Ubuntu的Java开发工具包。
    确保已安装最新版本的adb和aapt2,并将该工具的位置添加到盘算机体系路径中。
    Python3支持的设置如virtualenv。
    网络环境-外网&代理设置。
  • Android设备设置
    主固件及外设等物理要求
    开机向导和设置
    其它Google要求
  • CTS测试工具
    Linux命令行工具,至少连接一台被测设备。
主机设置

1、Linux环境:个人使用Ubuntu 24.04 LTS体系版本。
2、JDK环境: Ubuntu 24.04提供了两个主要的Java选项(OpenJDK & Oracle JDK),我们使用apt安装OpenJDK。
  1. # 更新软件源
  2. sudo apt update
  3. # 查找openjdk
  4. sudo apt search openjdk
  5. # 安装openjdk 11(用于cts)
  6. sudo apt install openjdk-11-jdk
  7. # 安装openjdk 21(用于sdkmanager)
  8. sudo apt install openjdk-21-jdk
  9. # 检查java是否安装成功
  10. java -version
  11. javac -version
  12. # 更换版本,注意javac也同步更换,保持一致
  13. sudo update-alternatives --config java
  14. sudo update-alternatives --config javac
复制代码
设置java环境变量
  1. # 进入该文件进行编辑
  2. vim .bashrc
  3. # 在文件最后添加以下内容
  4. export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
  5. export CLASSPATH=.:%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib
  6. export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
  7. # wq保存后让新增的环境变量生效
  8. source .bashrc
复制代码
3、SDK环境
设置参考:https://stackoverflow.com/questions/34556884/how-to-install-android-sdk-on-ubuntu
sdkmanager是一个命令行工具,可以用它来查看、安装、更新和卸载Android SDK的软件包。如果使用Android Studio,则无需使用此工具。
Android SDK下载路径:https://developer.android.google.cn/studio?hl=zh-cn



  • 解压commandlinetools-linux-11076708_latest.zip,在解压目录/cmdline-tools/bin目录下运行./sdkmanager --list,此时碰到一个错误1:
   Error: LinkageError occurred while loading main class com.android.sdklib.tool.sdkmanager.SdkManagerCli
java.lang.UnsupportedClassVersionError: com/android/sdklib/tool/sdkmanager/SdkManagerCli has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
  说明JDK的环境和Class编译版本号不匹配,须要升级。
可以选择一个commandlinetools的汗青版本比如:https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip
也可以升级JDK:通过JDK version和class file version(Class编译版本号)对应关系,可以查询到版本至少为JDK 17。我们安装当前最新的OpenJDK 21即可。


  • 错误1办理之后再次输入sdkmanager相关命令,此时碰到了报错2:
   Error: Could not determine SDK root.
Error: Either specify it explicitly with --sdk_root= or move this package into its expected location: /cmdline-tools/latest/
  提示很显着,须要把commandline-tools文件夹下的内容放在lastet文件夹下,多了一个latest层级目录。
  1. # 在/usr/lib/android-sdk/cmdline-tools目录下执行
  2. mkdir latest
  3. mv bin/ lib/ NOTICE.txt source.properties -t latest/
复制代码
以上sdkmanager命令题目办理后,就可以安装相应的sdk tools了。


  • 安装最新的平台工具以及适用于API级别33的SDK工具:
  1. ./sdkmanager "platform-tools" "platforms;android-33" "build-tools;33.0.3"
复制代码
sdkmanager如何使用请参考文档:https://developer.android.google.cn/tools/sdkmanager?hl=zh-cn
安装完再查看对应的目录是否生成相关文件夹,然后设置SDK环境变量。
  1. ***@ist-ubuntu:/usr/lib/android-sdk$ ls
  2. build-tools  cmdline-tools  licenses  platforms  platform-tools
复制代码
  1. export ANDROID_HOME=/usr/lib/android-sdk
  2. export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin
  3. export PATH=$PATH:$ANDROID_HOME/build-tools/33.0.3
  4. export PATH=$PATH:$ANDROID_HOME/platform-tools
复制代码
最后敲下adb verison和aapt2 -h检查下是否有输出,确保adb和aapt2位于体系路径中。
4、Python环境
  1. # 检查系统是否安装python3
  2. python3 --version
  3. # Python虚拟环境相关工具
  4. sudo apt install virtualenv
  5. # virtualenv是否安装成功
  6. virtualenv -h
复制代码
5、网络环境
确保PC设备和Android设备均处于外网环境中,并设置JAVA_TOOL_OPTIONS使用代理。
  1. export JAVA_TOOL_OPTIONS='-Djava.net.useSystemProxies=true'
复制代码

Android设备设置

1、主固件及外设:升级主固件(测CTS使用user版本固件,测STS使用userdebug版本固件),须要的外设都接上。
2、开机向导和设置
①开机向导按默认的选项,能跳过的都跳过,不要登录Google账号,不要设置锁屏暗码,不要进入子用户。
②语言切到英语,时区选择美国纽约;
③Settings->Wi-Fi,电脑和设备连接同一个外网WiFi;
④Settings->Security->Screenlock选择None;
⑤如果产物(如laptop类产物)带物理键盘,Languages & input->hysical keyboard->Show virtual keyboard,勾选该选项;
⑥连续点击Settings->About tablet(phone)->Build Number,使被隐蔽的Developer Options显示出来;Setting->Developer Options-USB debugging开关打开;
⑦ Settings->Developeroptions->Stayawake,勾选该选项;
⑧ Settings->Location打开定位服务(默认是打开的,不要关闭);
⑨Settings->Display->Sleep设置成最长时间,将亮度调治到最暗(测试时间较长,以节省电量);
2、Google要求


  • 跑CTS之前须要锁定设备
  1. # 查询值orange是未锁定,green是锁定。
  2. adb shell getprop | grep verified
复制代码



  • 烧录谷歌keyattestation key
  1. # 查询是否烧录谷歌key
  2. adb shell getprop ro.boot.deviceid
  3. # 确认product名称
  4. adb shell getprop | grep -i fingerprint
复制代码

CTS测试工具

CTS是一款通过命令行操纵的工具。现在CTS没有提供windows版本,只能在Linux下测试。
如针对Android 13的DUT,可下载这个【Android 13 R8 兼容性测试套件 (CTS) - ARM】
下载地址:https://source.android.google.cn/docs/compatibility/cts/downloads?hl=zh-cn

注:不得重命名下载的解压后的文件夹。例如,android-cts-*.zip内的android-cts必须保持相同的名称才气正常运行。


  • adb至少连接一个被测设备。然后从解压缩CTS软件包中启动CTS控制台cts-tradefed脚本:
  1. ./android-cts/tools/cts-tradefed
复制代码
  1. # 查看测试模块列表
  2. cts-tf > list modules
  3. # 测试其中的一个指定模块
  4. cts-tf > run cts -m CtsWindowManagerDeviceTestCases
复制代码



  • CTS测试结果解读请参考文档:https://source.android.google.cn/docs/compatibility/cts/interpret?hl=zh-cn


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

欢乐狗

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表