当前位置:首页 » 安卓系统 » androidcts源码

androidcts源码

发布时间: 2023-02-14 15:30:03

Ⅰ 如何通过Android CTS测试

解决方法:
1. 生成加密key文件:
将/android_src/development/tools/生成的key COPY到android\build\target\proct\security\

2. 编译android源码
重新编译android源码,此时out/.../system/app下就是重新编译的APK
重新构建NFS挂载使用的根文件系统再次测试

3. 单个APK的签名
重新测试时发现com.android.pts.browser包还是PASS不了,查看out/.../system/app/下的APK文件,发现在步骤2中,
out/.../system/app/PtsDeviceBrowserLauncher.apk没有重新生成,还是原来的。
不知道为啥没有重新生成? 我的解决方法是对此APK单独签名,将signapk.jar 及自签名密匙,platform.pk8 platform.x509.pem COPY到下面路径并
cd /out/target/proct/xxxx/obj/APPS/PtsDeviceBrowserLauncher_intermediates
文件位置:可以在platform/build/target/proct/security/中找到platform.pk8 platform.x509.pem等签名文件,对应不同的权限。
signapk.jar:由/platform/build/tools/signapk/编译产出,可以在/out/host/linux-x86/framework/中找到。
然后运行下面命令 :
# java -jar signapk.jar platform.x509.pem platform.pk8 package.apk.unsigned PtsDeviceBrowserLauncher.apk
package.apk.unsigned 表示未签名的该APK文件, 重新签名后为PtsDeviceBrowserLauncher.apk //签过名的APK重新签名可能会出错,最好找到未签名的APK

其他参考:
签名:
java -jar signapk.jar platform.x509.pem platform.pk8 MyDemo.apk MyDemo_signed.apk 得到具有对应权限的APK

优化APK:
zipalign -v 4 MyDemo_signed.apk MyDemo_new.apk

查循APK是否优化过:
zipalign -c -v 4 MyDemo.apk

Ⅱ android 源码中的CTS与google发布版本不一致

cts是否通过,好像是要最新的版本判定的。

Ⅲ android的cts测试到底有多细

1.下载完整的cts测试工具包,方式有两种:

a.在现有代码上编译,代码版本与目标机器版本一致;

b.在Google官网下载:http://source.android.com/compatibility/downloads.html,Compatibility
Test Suite (CTS)即可。

2.下载media测试内容,还是上边的官网,在网页最下边:

CTS Media Files

These media files are required for the CTS media stress tests.

CTS Media 1.0

3.连接手机与电脑(至少一台手机)

4.测试前准备

android-cts/repository/testcases中的.apk和CtsDeviceAdmin.apk

安装完成以上apk后,在手机端操作:

a.设置->辅助程序->Delegating Accessibility Service,打开;

b.设置->安全->设备管理器->CTS相关的两个选项都激活;

c.打开USB调试模式;

d.保持屏幕唤醒;

e.允许模仿位置;

f.切换至英文模式US。

5.进入cts控制台

执行android-cts/tools/cts-tradefed

dev@linux -dev:~/android/CTS/android-cts/tools$ ./cts-tradefed

09-0509:20:52 I/: Detectednew device c8090fe4

09-0509:20:52 I/: Detectednew device5348300e

Android CTS 4.2_r1

我现在连接着两台设备,都检测到了。

6.开始进行CTS测试

首先,在控制台中输入help看这个控制台都能干什么。

cts-tf > help

CTS-tradefed host version 4.2_r1

CTS-tradefed is the test harness for running the Android Compatibility
Suite, built on top of the tradefed framework.

Available commands and options

Host:

help: show this message

help all: show the complete tradefed help

exit: gracefully exit the cts console, waiting till all invocations are
complete

Run:

run cts --plan test_plan_name: run a test plan

run cts --package/-p: run a CTS test package

run cts --class/-c [--method/-m]: run a specific test class
and/ormethod

run cts --continue-session session_ID: run all not executed tests from a
previous CTS session

run cts [options] --serial/s device_ID: run CTS on specified device

run cts [options] --shards number_of_shards: shard a CTS run into given
number of independent chunks, to run on multiple devices inparallel

run cts --help/--help-all: get more help on running CTS

List:

l/list d/devices: list connected devices and their state

l/list packages: list CTS test packages

l/list p/plans: list CTS test plans

l/list i/invocations: list invocations aka CTS test runs currentlyin
progress

l/list c/commands: list commands: aka CTS test run commands currently in
the queue waiting to be allocated devices

l/list r/results: list CTS results currently present in the repository

Add:

add derivedplan --plan plane_name --session/-s session_id-r
[pass/fail/notExecuted/timeout]: derive a plan from the given session

Dump:

d/mp l/logs: mp the tradefed logsfor all running invocations

Options:

--disable-reboot: Do not reboot device after running some amount of
tests.

run cts --plan + 运行某个plan,查看当前支持的plan,运行l
p,实际上所有的plan存放在android-cts/repository/plans;

run cts --package/-p 运行某一个测试包;

run cts --class/-c [--method/-m] 运行某一个测试类或测试方法;

run cts --continue-session session_ID 继续运行之前没有完成的CTS测试,要知道它的session_ID;

run cts [options] --serial/s device_ID 在某个串号的设备上进行CTS测试,对应多个机器的时候,通过adb
devices能够查看当前连接的所有设备的串号;

run cts [options] --shards number_of_shards 在多个设备上同时运行CTS测试,如run cts --plan
CTS --shards 2,在两个设备上同时运行;

run cts --help/--help-all 展示更多帮助

查看列表:

查看行为是l/list,接不同的参数显示对应信息。

d/devices 当前连接的设备,效果同adb devices,不过信息更详细,还有设备电量信息;

packages 当前CTS plan的所有测试包;

p/plan 当前所支持的CTS plan有哪些;

i/invocations 当前CTS的运行状态;

c/commands 展示出用户输入过的命令;

r/results 展示以往的测试结果

Session Pass Fail Not Executed Start time Plan name Device serial(s)

0 17720 239 12 2013.08.24_18.23.23 CTS c8090fe4

1 17907 64 0 2013.09.04_17.51.15 CTS FUSC85YLYPAMRC69

需要特别关注的几点注意事项:

首先,手机的功能一定要完整,WIFI BT 3G CAMERA等;

手机要切换至英文语言;

连接到可用WIFI;

有SIM卡,并能够打电话发短信;

对于屏幕密度,目前CTS中最高支持320,但实际上Google已经添加了对480,也就是1080p的支持;

会检测Fingerprint,注意厂家名;

要保证能够访问到www.google.com;

实战演戏:

连接两台手机后,进入cts控制台:

run cts --plan CTS --shards 2

两台手机上会同时跑起CTS测试,大概5小时候测试完成,生成测试报告,保存在results下。

Ⅳ 如何通过Android CTS测试

Android的CTS测试,英文为Compatibility Test Suite,意为兼容性测试。只有通过CTS测试的设备才有可能获得Android的商标和享受Android Market的权限。以下分享我对Android CTS的认识。
一、取得Compatibility Test Suite的两种方法:
(1)可以从http://source.android.com/compatibility/downloads.html下载最新版本的Compatibility Test Suit;
(2)也可以通过编译Android源代码的方式获得。在android源代码目录下输入make cts命令来编译CTS,之后会在out/host/linux-x86/cts/下生成android-cts文件夹。这个文件夹就是Compatibility Test Suit。
二、运行CTS的方法,步骤如下:
(1)进入目录android-cts,该目录是通过上面那两种方法获得的。在android-cts目录下会有3个文件夹,其中一个是tools。
(2)进入tools目录,输入./startcts来启动CTS。
(3)如果运行成功会出现Android CTS version 2.3_r1的字样(我的android的版本是2.3的)。如果有连接设备到PC上还会出现Device(设备ID)connected的字样。这里设备可以是连接PC的android的机器,也可以是模拟器。
三、CTS测试的方法:
(1)在cts_host>下敲入help,会显示cts下的许多命令。ls –plan命令显示google自带的测试方案,如:Java、Signature、Android、CTS、VM、RefApp、Performance、AppSecurity。其中Performance这个方案是google暂不要求的。Java、Signature、Android、VM、RefApp、Appsecurity方案都是CTS方案的子集。
(2)用命令ls -d来查看已连接的设备,CTS测试之前我们必须保证至少有一个设备连接上。
(3)输入命令start –plan CTS来执行CTS测试方案,该方案有两万多条测试项目,需要很长时间,因此除了第一次测试之外,不建议这么做。我做的都是针对某些包的测试。如果连接了多个设备的话需加上-d参数,后面跟上设备id来告诉CTS需要测试的设备。
(4)对单独一个包进行测试的方法:start –plan CTS –p 包名;推荐用这种方法来进行针对性的测试。需要知道有哪些包名,可以输入命令:ls –plan CTS
(5)也可以针对单独一个case进行测试:start –plan CTS –test 类名#方法名
四、查看测试的结果:
测试生成的log在\android-cts\repository目录下以log+测试时间.txt命名。测试报告在android-cts\repository\results目录下,也是以测试时间命名。
五、注意事项:
(1)测试前需要安装一个apk:adb install -r android-cts/repository/testcases/.apk 然后在设置里面的辅助功能中会多一个Delegating Accessibility Service选项,将这个选项勾起。
(2)在android设备设置中:显示->屏幕超时->选取30分钟
(3)在android设备设置中:应用程序->开发->勾选保持唤醒状态。
(4)保证测试前,android设备在主界面状态。
(5)将android设备的语言设置为英文。

Ⅳ Android CTS4.0测试的fail项怎么办

系统源码下有cts目录,这个目录都是测试的源码,你可以查看代码写一个简单的测试程序来查看问题所在。。。具体问题具体分析,有的是需要查看源码,有的是不需要。。。到底是哪个fail了 你最好能帖一下。。。不然谁知道啊?

Ⅵ android cts如何到另一台电脑继续测试

Android 4.0 CTS 测试方法
这段时间公司做CTS测试,下面是一些总结,以android4.0.3为例,希望对大家有所帮助!
一 CTS测试简介
The Android compatibility program makes it easy for mobile device manufacturers to develop compatible Android devices
CTS具体的介绍,大家可以参考google的官方网站,大家可以详细的了解CTS测试的目的和环境,我们一般的疑惑都能在该网站上找到答案。

1.1为什么需要兼容性测试(以下称CTS)?
1.1.1、让APP提供更好的用户体验。用户可以选择更多的适合自己设备的APP。让APP更稳定。
1.1.2、让开发者设计更高质量的APP。
1.1.3、通过CTS的设备可以运行Android market。
1.2怎么样才能让我的设备变成兼容的。

1.2.1、与Android Compatibility Definition文档(以下简称ACD)匹配
先看一下与你的系统版本相匹配的ACD,文档中描述了你需要具备的软件和硬件参数。
1.2.2、通过CTS测试
CTS是开源的测试框架,使用它来测试你的设备是否具备兼容性。
1.2.3、提交报告
你可以把测试结果发送给[email protected]。当你提交了一个CTS报告时,你还可以要求访问Android Market。
如果是google的合作伙伴,需要将CTS测试报告、机器、以及软件一共寄给google进行测试,取得google的approval以后,手机才能上市,这是后话,相信好多人都是用不到的。
1.3 CTS测试原理

CTS主要包含两个组件:
运行在PC上的测试框架组件。主要用来管理测试用例(test case)的执行。
运行在设备或模拟器上的测试用例。这些用例用JAVA写成的APK文件。
1.4工作流程
1)可以从源码编译CTS,也可以从网站下载编译好的CTS

2)安装配置CTS。
3)把设备连接到PC上。
4)运行CTS。CTS会把相应的测试用例(也就是一个APK文件)传送到设备上并通过instrumentation运行,然后记录运行结果,最后删除测试用例。
所有的测试用例执行完毕后,可以参照测试结果重新调整或优化系统。然后继续运行CTS测试。
1.5、测试通过以后,你可以把CTS生成的结果(就是result下面那个以测一、取得Compatibility Test Suite的两种方法:
(1)可以从 下载最新版本的Compatibility Test Suit;
(2)也可以通过编译Android源代码的方式获得。在android源代码目录下输入make cts命令来编译CTS,之后会在out/host/linux-x86/cts/下生成android-cts文件夹。这个文件夹就是Compatibility Test Suit。
注意:但是源码中的代码可能不是最新的,所以建议冲网站上下载最新的,需要用git在google的网站上下载,网上有好多例子,这里就不再重复了。
二 测试用例的范围
1、Signature
对每个Android产品,都有一些XML文件来描述所有的公开API。CTS包含了一个工具来检测这些API签名中包含的API是否都在系统中被支持。
2、Platform
测试SDK文档中描述的平台API,比如core libraries,Android Application Framework等。要求这些API可以提供:
正确的类、属性、方法签名、方法行为、错误参数处理方式
3、Dalvik VM
专门针对Dalvik Vm的测试。
4、Platform Data Model
平台通过ContentProvider提供给开发者使用的数据,比如:Contacts,Browser,Settings等。
5、Platform Intents
平台提供的用于核心功能的Intent。
6、Platform permission
平台提供的一些重要APP权限
7、Platform Resources
simple values,drawables,nine-patch,animations,layouts,styles and themes,loading alternate resources等

三 如何搭配环境
目前cts没有提供windows版本,只能在Linux下测试。
1 PC机配置环境
PC端网上有好多资料可以供参考,这里就省略了。
2 手机设置
1) 进入settings->Privacy->Factorydata reset,对平台进行reset一次
2) 平台插入一张空的TF卡
3) 平台安装两个APK:.apk,CtsDeviceAdmin.apk
4) 进入settings打开Wi-Fi并连接AP (AP需要连外网)
5) 进入settings->Security->Screenlock设为None
6) 进入settings->Security->EnableUnknown sources
7) 进入settings->Security->Deviceadministrators->Enable两个选项
8) 进入Language&input->language设为English(UnitedStates)
9) 进入settings->Display->Sleep设为30minutes或None
10) 进入settings->Accessibility->EnableDelegating Accessibility Service
11) 进入settings->Developeroptions->Enable USB debugging、Stay awake、Allowmock locations
12) PC上“android-cts-media-1.0”,在android-cts-media-1.0文件下输入./__media.sh运行脚本,将media文件进平台。成功后会在平台的内存中看到test文件夹。(此条适用于CTS4.0 R2和R3,R1上无需使用)

四 测试方法
1.平台用USB线连接LinuxPC (连通后平台左上方会显示usb和debug icon)
2.打开终端
3.输入sudosu -
输入root密码
4.输入cd ../..
输入 cd /home/linux/cts/android-cts-4.0.3_r1-linux_x86-arm/android-cts/tools (这个是cts-tradefed文件所在路径,各位需要输入实际路径)
输入 ./cts-tradefed
终端显示 01-16 15:44:05 I/DeviceManager: Detected newdevice 0123456789ABCDEF(如果没有这行,说明设备没有和PC联通)
Android CTS 4.0.3_r1
cts-tf >

5.输入run cts --plan CTS
终端显示 cts-tf > run cts --plan CTS

cts-tf> 01-16 15:45:34 I/TestInvocation: Starting invocation for 'cts' on build'4.0.3_r1' on device 0123456789ABCDEF
01-16 15:45:35I/0123456789ABCDEF: Created result dir 2012.01.16_15.45.34

开始测试CTS
五 关于CTS4.0测试报告

1.CTS测试报告是自动生成一个xml报表,并自动填写的,不需要测试人员干预

2.当一个CTS测试任务开始时,会在android-cts-4.0.3_r1-linux_x86-arm/android-cts/repository/results中,为这个任务建立一个存放测试报告的文件夹,文件名以任务开始的日期和时间命名。

例如:2012.01.12_13.00.03

3.CTS4.0生成测试报告的速度比CTS2.3/2.2要慢不少,特别是在测试过程中中断测试,CTS4.0需要70秒才会开始生成报告。如果你在此过程中按ctrl+c终止CTS进程,测试报告就无法生成,以后也无法继续测试未完成的计划。

下方是中途断开后生成报告的例子:

01-1813:50:19I/0123456789ABCDEF: android.accounts.cts.AccountManagerTest#testHasFeature FAIL

Testfailed to run to completion. Reason: 'Test run failed to complete. Expected 1tests, received 0'. Check device logcat for details

01-1813:51:29I/0123456789ABCDEF: android.accounts package complete: Passed 20, Failed 2, NotExecuted 6

01-1813:51:29 I/0123456789ABCDEF: -----------------------------------------

01-1813:51:29 I/0123456789ABCDEF: Test package android.admin started

01-1813:51:29 I/0123456789ABCDEF: -----------------------------------------

……

01-1813:51:30 I/0123456789ABCDEF: -----------------------------------------

01-1813:51:30 I/0123456789ABCDEF: Test package android.widget started

01-1813:51:30 I/0123456789ABCDEF: -----------------------------------------

01-1813:51:30 I/0123456789ABCDEF: Saved log device_logcat_8558243668624894128.zip

01-1813:51:30 I/0123456789ABCDEF: Saved log host_log_6087775957743010530.zip

Ⅶ 谷歌CTS认证是什么该如何通过

谷歌CTS,英文为Compatibility Test Suite,中文意思是兼容性测试,手机设备需要通过Android的兼容性测试(CTS),以确保在android上开发的程序在手机设备上都能运行。

Google并没有在源代码中提供Android Market应用,因为他们希望所有设备生产商能够通过CTS测试。如果他们通过了CTS测试,那么就可以向Google申请使用Android market,Google才会给Market应用。

谷歌公司(Google Inc.)成立于1998年9月4日,由拉里·佩奇和谢尔盖·布林共同创建,被公认为全球最大的搜索引擎,是一家位于美国的跨国科技企业,业务包括互联网搜索、云计算、广告技术等,同时开发并提供大量基于互联网的产品与服务,其主要利润来自于AdWords等广告服务。

Ⅷ 如何判断 cts android

CTS是什么?
资料:CDD、CTS官网、android-cts-manual-r4;
CTS是什么我就不多费话了,看上面官方的说法就行了。不过有一点需要明确,你的设备只有满足CDD的规定并且通过CTS,才有可能获得Android的商标和享受Android Market的权限。这里有可能指的是需要你自己去向google申请的,不是说兼容了,这些东西就自然而然有了。

怎么用:
资料: android-cts-manual-r4、宋立新_Android CTS测试研究;
安装与配置:
下载或自己编译;修改startcts中SDK_ROOT;在板子或emulator上装一个apk;设置setting;
各种命令的用法:
注意:start --plan –p以及start --plan –t的用法,-t要指定一个具体的测试方法
方法1:一般使用的方法
$ ./startcts 注意如果用手机设备调试,用root权限执行
cts_host > ls --plan 列出所有plan
out/host/linux-x86/cts/android-cts/repository/plans中有plan的具体内容
cts_host > start --plan VM 运行某个plan
测试结果在out/host/linux-x86/cts/android-cts/repository/results目录下,用浏览器看时间目录下的xml文件即可
注意在改动cts后,还要make cts重新编译,若只在cts目录中编译不能生效
cts_host > ls -p 看当前可用的用例包
cts_host > start --plan Android -p android.app 只运行某个用例包,节约时间
cts_host > start --plan Android -p android.app -t android.app.cts.AlertDialogTest#testAlertDialog
只运行某个用例包中的某个用例
方法2:遇到问题时方便调试的方法
$ adb install out/target/proct/xxxx/data/app/SginatureTest.apk 安装某个用例包
$ adb shell pm list instrumentation pm用于管理package,看当前机器安装了什么用例
$ adb shell am instrument -w android.tests.sigtest/.InstrumentationRunner am用于管理activity 运行某一用例
$ adb shell am instrument -e class android.app.cts.AlertDialogTest#testAlertDialog -w com.android.cts.app/android.test/InstrumentationCtsTestRunner 单独运行一个小case
如果在一个时间很长的plan(如Android)中,某处错了,而错误信息又不全,需要单独跑一个小case,用-e指明class明就可以节约很多时间

用完后结果的分析:
结果在repository/results中,放在一个文件夹里,名字是你测试开始的时间。
分析的方法有两种:
1、可以直接从Failure Details找原因;(个人感觉应该难度较大)
2、结合源代码以及Failure Details的信息找原因
第二种方法牵扯到找测试源代码的问题,这就要对CTS源码目录以及相应生成物的命名有一定的了解。

了解CTS这个工程:
资料:宋立新同学的Android CTS测试研究二、android build system、CTS源码、makefile以及shell基本知识
了解Linux工程最好的入手点,就是从它的编译系统入手。
这个涉及到Linux的makefile以及android的编译系统的基本知识,具体内容还是挺多的,不过看懂了android编译系统,以后看其他Android工程应该都会得心应手。

在android CTS上增加自己的test package
资料:CTS命令的用法、Erin Yueh的两篇文章
有两种方法:
1、完美利用自带命令(已验证)
2、用Erin Yueh的方法
用这个方法的前提也是要彻底弄懂CTS的内部结构,不然也只能照猫画虎

如何写test case
资料:JUnit、SDK/docs下面的五篇文章、android open source官网/porting/Instrumentation Testing
这又是另外一门学问了
这个test case 可以涉及各个层次,Android 平台相关的测试的写法可以参考官方的那五篇文章,如何运行可参考上面资料三,其他的可能会涉及到JUnit以及其他一些知识,目前还没实地考察。

接下来要弄明白的
1、android的编译系统(学习下makefile以及shell基本知识)
2、CTS这个工程(看看测试包XML生成器的假设成不成立,能不能提取出来)
3、众多层次test case 的写法

Ⅸ android cts5.0执行错误怎么破

版本不一致的原因啊。 源码目录下的AndroidManifest.xml中的 <uses-sdk android:minSdkVersion="x" /> 删掉,再试试。

Ⅹ android的cts测试到底有多细

以wifi测试为列android.net.wifi模块的cts测试结果如下:android.app.cts.SystemFeaturesTest-- testBluetoothFeaturepass -- testCameraFeaturespass -- ...
以wifi测试为列
android.net.wifi模块的cts测试结果如下:
android.app.cts.SystemFeaturesTest
-- testBluetoothFeature
pass

-- testCameraFeatures
pass

-- testFeatureNamespaces
pass

-- testLiveWallpaperFeature
pass

-- testLocationFeatures
pass

-- testNfcFeatures
pass

-- testScreenFeatures
pass

-- testSensorFeatures
pass

-- testSipFeatures
pass

-- testTelephonyFeatures
pass

-- testTouchScreenFeatures
pass

-- testUsbAccessory
pass

-- testWifiFeature
pass

android.net.http.cts.ApacheHttpClientTest

--
pass

-- testExecute_withMobile
pass

-- testExecute_withWifi
pass

android.net.wifi.cts.ConcurrencyTest
--
pass

-- testConcurrency
pass

android.net.wifi.cts.ScanResultTest
--
pass

-- testScanResultProperties
pass

android.net.wifi.cts.SupplicantStateTest
--
pass

-- testIsValidState
pass

android.net.wifi.cts.WifiConfigurationTest
--
pass

-- testWifiConfiguration
pass

android.net.wifi.cts.WifiInfoTest
--
pass

-- testWifiInfoProperties
pass

android.net.wifi.cts.WifiManagerTest
--
pass

-- testSignal
pass

-- testWifiManagerActions
pass

-- testWifiManagerNetWork
pass

-- testWifiManagerProperties
pass

android.net.wifi.cts.WifiManager_WifiLockTest
--
pass

-- testWifiLock
pass

上面的assert部分为断言,用来检查cts的测试结果是pass还是fail。你会发现cts的测试比较简单,它只能保证 你的android设备支持wifi,和中间件接口控制wifi的工作。
搜遍了wifi的全部测试模块,都没有找到哪里验证了 WifiConfiguration.KeyMgmt (wifi鉴权)。

热点内容
苹果火影忍者脚本 发布:2025-05-16 23:23:46 浏览:450
python写入数据库 发布:2025-05-16 23:19:11 浏览:698
修复系统时什么配置好 发布:2025-05-16 22:52:07 浏览:803
逆战脚本挂机 发布:2025-05-16 22:30:01 浏览:936
java随机产生数 发布:2025-05-16 22:25:52 浏览:256
java任务管理 发布:2025-05-16 22:17:02 浏览:572
安卓如何修改cpu 发布:2025-05-16 21:58:20 浏览:366
pythonainb 发布:2025-05-16 21:45:56 浏览:857
淘汰服务器可以做家用电脑吗 发布:2025-05-16 21:41:31 浏览:844
游程编码c语言 发布:2025-05-16 21:26:51 浏览:587