android CTS测试之TV智能电视总结笔记

Android TV开发全攻略:从环境搭建到性能优化 智能电视开发是移动应用生态的重要延伸,Android TV作为谷歌专为大屏设备设计的操作系统,采用独特的10英尺UI设计原则和DPAD导航机制。在技术实现上,开发者需要处理4K视频播放、DRM加密、语音控制等核心功能,同时遵循Leanback库的界面规范。通过ExoPlayer实现自适应码率切换和字幕渲染,结合Google Assistant的深度集成,可以打造沉浸式的家庭娱乐体验。针对TV设备2-4GB的内存限制,需要特别注意位图加载优化和列表项回收,而遥控器交互优化和焦点管理则是确保用户体验的关键。 阅读详情


google的cts详细说明网址:
http://source.android.com/compatibility/index.html

硬件厂商测试cts的目的

1.平台兼容性测试:不需要过google cts认证(国内一些厂商这样做的,海外产品必须过cts)

2.过google的兼容性测试:拿到google的cts认证,才具有Google Play的通行证

cts相关源码目录:

jb\cts
jb\cts\tests\tests
jb\libcore\luni\src  --》测试android.core.test.libcore.*相应的测试源码路径

cts 测试设置步骤:

1.配置测试环境(测试电脑的环境要求及配置等,具体步骤和要求参考google说明)

2.cts所需测试资源:在sd卡下面创建test目录,放入如下网站下载的测试资料CTS Media Files,主要是视频播放片源等
http://source.android.com/compatibility/downloads.html  -》CTS Media Files

3.目标设备的设置

1).安装cts测试需要的apk到目标板:CtsDelegatingAccessibilityService.apk,CtsDeviceAdmin.apk

(这两个APK可以在cts源码目录的testcase中找到)

2).系统setting的配置 

(如果项目删除了默认的setting或者深度修改了,可以用google的原生setting替代原有的setting来进行设置)
 进入settings打开Wi-Fi并连接AP (AP需要连外网)
 进入settings->Security->Screenlock设为None
 进入settings->Security->Deviceadministrators->Enable两个选项
 进入Language&input->language设为English(UnitedStates)
 进入settings->Display->Sleep设为30minutes或None
 进入settings->Accessibility->EnableDelegating Accessibility Service
 进入settings->Developeroptions->Enable USB debugging、Stay awake、Allowmock locations
 手动设置时间,并将时区调为北京,设置国家为china

4.连接要求

   测试过程中:测试电脑和目标板通过adb连接,目标板连上wifi热点

   我们的设备是智能电视,没有usb device接口,所以只能通过网络来连接adb。

   为了保证测试过程中adb的稳定性,可以通过网线,路由在电脑和设备之间组成一个局域网络,并连接外网测试

5.目标板插上usb摄像头(设备没有自带的摄像头,部分测试用例需要camera功能),

6.执行cts测试命令

CTS测试步骤命令精简:

首先按上面步骤配置好相应环境,然后在电脑终端执行下面的命令

1. setprop sys.usb.config adb         

在android设备终端串口输入这个命令,打开ADB功能 (若adb默认打开,不需要此步)

2. adb connect IP_address_android   

在电脑命令终端输入adb connect 192.168.1.XX  (android设备的IP地址,在串口中通过ifconfig命令可以查看到)

3. ./cts-tradefed       android-cts/tools目录下面自带的执行文件,目的是用来进入CTS测试模式cts-tf >

4. l d                 查看设备是否连接正常

5. run cts --plan CTS --disable-reboot    

启动CTS测试,测试CTS的全部测试计划

加上--disable-reboot选项,防止设备重启(某些CTS测试项可能会使设别重启,不能继续测试,加上这个选项可以避免)

中断后重新启动测试:

6. l r             查看上次运行情况,获知 sessionID 号

7. run cts --continue-session sessionID --disable-reboot  

继续运行上次的cts项 ,sessionID = 0, 1 ,2 。。。。。。

单独测试:

8.run cts -p package_name     单独测试package_name包

9.run cts -c com.class_name  -m methmod_name  单独测试某个类的方法  -c 后面跟类名全路径 –m 后面跟方法名

单独对fail/notExecuted/timeout的测试项进行测试:

10. l r      获取上次测试的session ID

11. add derivedplan --plan plan_name --session/-s sessionID -r [pass/fail/notExecuted]

run cts --plan plan_name  

例子: 
add deriveplan --plan mycts -s 2 -r fail
run cts --plan mycts --disable-reboot  

12.对整体测试完成后,单独测试fail项的一种简单方法: 

1) .整体测试完成,生成result report 等xml文件 ,通过l r 查看session ID号,
2) .编辑result report 中的xml文件,把其中的fail项全部替换成not executed 项,
3) .使用run cts --continue-session  session_ID 重新执行之前的fail项,得到新的result report xml

cts fail项处理

每次测试完一个CTS ID后,都会产生一个目录,里面有测试log及测试result report 的xml文件.

通过xml文件及log信息里面的错误信息,找到对应的cts 测试安排款源码,分析定位问题

cts fail项 log 关键字查找

TestRunner: started:
TestRunner: finished
TestRunner: passed
TestRunner: failed

智能电视cts测试的特点:

除了上述提到的adb连接和手机、平板有区别外,在外围设备上也有一些差别。

比如,一般智能电视android TV 都没有蓝牙等功能,所以在测试cts的蓝牙项时往往会失败,需要把系统的蓝牙配置功能关闭。如下:

1.删除etc/*xml下面蓝牙相关的xml配置文件

删除jb\frameworks\native\data\etc\tablet_core_hardware.xml的bluetooth feature

2.SystemServer.java 关掉buletoothmanagerserver

其他硬件功能相关的配置文件 :etc/*xml 或者 system/etc/*xml

系统xml文件源码路径:
/framework/base/data/etc ,jb\frameworks\native\data\etc

pm list features 可以查看当前的硬件支持信息


android智能电视设备没有phone等功能,在cts测试相关项时,要添加对应的服务或者provider才能测试通过

(这些服务等google一般默认打开,但是很多芯片厂商可能自己修改关闭了,所以要自己添加)

比如测试android.telephony项时,需要安装Phone.apk才能测试通过。

测试android.provider项需要安装 CalendarProvider.apk 。


至于没有gps等其他设备,通过上述思路,配置好后,android.location 等项的cts测试都能通过








不止于连接:深入解读HDMI的HPD与DDC引脚,如何实现设备智能识别与EDID通信? 本文深入解析HDMI的HPD与DDC引脚在设备智能识别与EDID通信中的关键作用,涵盖硬件设计、系统交互及实战调试技巧。通过详细分析HPD信号的电平变化、DDC通道的I2C协议实现,以及CTS兼容性测试要点,帮助开发者优化设备兼容性与显示控制。 阅读详情

相关推荐

Android BSP开发工程师:角色、职责与面试指南

本文详细解析了Android BSP开发工程师的岗位职责和任职要求。该职位主要负责Android驱动程序开发调试、HAL层及Framework接口开发,以及系统稳定性与性能优化。任职要求包括3年以上相关经验,熟练掌握C/C++/Java,熟悉Linux内核机制和外设驱动开发,具备Android系统问题分析和Framework框架知识。文章还提供了详细的面试问答,涵盖BSP架构、内存管理、驱动开发、系统调试等核心技术点,并分析了行业发展趋势。全文超过1万字,为从业者提供了全面的技术指导和职业发展参考。

郑伟强dev的专栏 737

android TV 开发规范

Android TV开发规范 一.Android TV概述 Android TV应用使用与手机和平板电脑相同的架构,这就意味着我们可以根据已经了解的有关构建Android应用的方法去构建新的电视应用程序,或者将现有的应用程序拓展到电视设备上去运行。 二.创建电视应用 Android提供了丰富的用户体验,针对大屏幕的设备(如Android TV)上运行的应用进行了优化。TV的用交互与平板和手机设备有...

android 系统定制开发那些事 1万+

Android 12.0 GMS未认证一直弹没有获得Google认证的问题解决

在12.0的系统rom定制化开发中,在某些时候一个小项目需求用到google商店,但是不想过认证出这笔大费用,就需要 想做一个fingerprint的白名单,然后再联网的时候不弹出没有获得Google认证,正常使用google商店,接下来解决这个问题

安卓兼职framework和app工程师的博客 103

Android Studio开发Android TV

在“Add an Activity to Mobile”(在移动设备上添加一个Activity)页面上,选择“TV”选项卡,然后选择你要创建的Activity类型,比如“Leanback Activity”(Leanback活动)或“Fullscreen Activity”(全屏活动)。你可以通过打开Java文件和XML布局文件来编辑你的代码,并通过点击绿色的“Run”按钮来运行和测试你的应用程序。在弹出的对话框中,填写你的应用程序的名称、包名和所需的最低Android API级别。

牛肉胡辣汤 3756

Amlogic Android 9 GMS认证固件构建与兼容性调试指南

Android TV/OTT设备的GMS认证本质是系统级兼容性工程,其核心在于HAL层适配、Keystore安全服务实现与设备唯一指纹签名链的严格匹配。基于Amlogic S905X2/S905D3/A311D等SoC平台,需在Android 9.0(Pie)框架下完成内核secure_key模块启用、vendor blob集成、platform签名密钥绑定及gms_config.xml策略配置。技术价值在于支撑CTS/VTS测试通过,确保Play Store登录、应用分发与Google账户管理功能可用。典

weixin_30872577的博客 205

Amlogic Android 9.0 GMS认证固件构建指南

Android GMS认证是OTT设备接入Google生态的核心门槛,其本质是通过CTS/VTS/GTS测试套件验证系统兼容性、HAL层适配与签名完整性。技术原理上依赖Treble架构隔离、VNDK版本约束、SELinux策略及平台级签名链。该能力直接决定设备能否预装Play Store、调用Google登录与推送服务,并影响产品上市合规性与应用分发能力。面向Amlogic S905X2/A311D等主流芯片平台,本文详解基于aml_google.zip资源包的可编译固件构建全流程,覆盖GMS框架集成、内核

weixin_29191669的博客 166

原生安卓X86 TV安装配置

1、准备安卓镜像并烧录镜像 系统版本:Android TV x86 9 R3 烧录软件:rufus-3.9 2、插入U盘到电脑设备上,开安装系统 开机按del健设置bios(不同电脑进bios按键不同,自行百度) 建立引导分区 分配大小2048M 打上boottable标签 剩下全部建立数据盘 写入磁盘配置并退出 选择sda2做系统盘 格式化ext4文件系统 写入引导 拔掉u盘重启 进入系统 3、配置简体中文 4、连接网络 5、配置跳过Paypal页面

水彩橘子 3万+

Amlogic Android 9.0 GMS认证固件深度解析与烧录指南

Android TV系统是面向大屏终端的定制化操作系统分支,其核心在于GMS(Google Mobile Services)认证能力与Widevine DRM安全等级的协同实现。原理上,GMS认证依赖CTS/VTS兼容性测试、AVB签名验证、VNDK-SP库版本对齐及HAL层芯片适配;Widevine L1则需内核驱动(vdec/cec)、固件、oemcrypto.so与系统服务四重闭环。该技术组合显著提升OTT设备在海外市场的合规性、内容授权能力和用户体验稳定性,广泛应用于智能电视、机顶盒及教育类嵌入式终

weixin_29176179的博客 121

【测试】Android CTS系统测试指导手册【详细版】

(我们目前使用的是android-cts-media-1.4)进入解压后的文件夹,并执行sh copy_media.sh, 把测试所需文件copy到手机放置的sdcard中,假如copy失败,可能是手机路径不对,请用gedit打开copy_media.sh文件,同时adb shell进入手机终端,查看手机内存目录与copy_media.sh文件中的目录是否一致。之后把“失败的测试用例”中的测试用例再执行三遍,排除测试机系统稳定性尤其是“冻结(freeze)”、“重启(reset)”导致的测试失败。

qq_41604569的博客 5810

Android TV USB路径或手机SDCARD路径获取

通过获取挂载节点获取路径

智能座舱音频系统集成与调试:从芯片选型到音质优化实战

在智能座舱域控制器架构中,音频系统已从简单的功放加扬声器演进为SoC、数字音频总线、外部DSP与多通道功放协同的复杂子系统。TDM总线的时隙分配、PDM麦克风阵列的信号完整性,以及AEC回声消除算法如何与硬件协同,直接决定多音区体验和语音交互的可靠性。工程实践中,音频调试的关键在于先理顺供电、接地、时钟与数据路由,再针对功放削波、采样率失配、TDM slot错位等典型问题进行系统性排查。从芯片选型到系统级指标验收,只有将音频链路视为整车电子电气架构的一个协同整体,才能真正实现从“响”到“好听”的跨越。本文结

weixin_30162121的博客 364

聊聊真实的 Android TV 开发技术栈

智能电视越来越普及了,华为说四月发布智能电视跳票了,一加也说今后要布局智能电视,在智能电视方向,小米已经算是先驱了。但是还有不少开发把智能电视简单的理解成手机屏幕的放大,其实这两者并不一样。 一、序 你慢慢会发现,身边所有的电视都变成了智能电视。这是很容易接受的事实,智能电视更便宜。 价格是不容忽视的敏感点,顾客会天然的选择物美价廉的智能电视。这看似不符合逻辑,为什么选择落后的技术,不允许联网的传...

Android 开发架构 4728

DFT与机器学习协同设计高效光催化剂:从电子结构到性能预测

密度泛函理论(DFT)作为计算材料学的基石,通过求解Kohn-Sham方程,能够在原子尺度精确预测材料的电子结构、能带和光学性质,为理解光催化等能源材料的微观机理提供了关键视角。其核心价值在于替代传统试错法,实现材料性能的理性设计与机理揭示。在工程实践中,面对高通量筛选的需求,机器学习(ML)技术,特别是长短期记忆网络(LSTM)这类擅长处理序列数据的模型,能够学习从材料描述符到复杂性能(如光谱)的映射关系,实现快速性能预测与优化。这种DFT与ML的结合范式,正广泛应用于新能源材料、半导体器件等领域,用于高

weixin_30662937的博客 661

Android TV语音助手定制开发指南:从系统修改到应用集成

基于火山引擎豆包大模型,从零搭建一个实时语音通话应用。它不是简单的问答,而是需要你亲手打通 ASR(语音识别)→ LLM(大脑思考)→ TTS(语音合成)的完整 WebSocket 链路。对于想要掌握 AI 原生应用架构的同学来说,这是个绝佳的练手项目。架构理解:掌握实时语音应用的完整技术链路(ASR→LLM→TTS)技能提升:学会申请、配置与调用火山引擎AI服务定制能力:通过代码修改自定义角色性格与音色,实现“从使用到创造”从0到1构建生产级别应用,脱离Demo,点击打开。

2600_94959852的博客 561

【unity实战】使用unity的Navigation+LineRenderer实现一个3D人物寻路提前指示预测移动轨迹的效果,并可以适配不同的地形

本文介绍了在Unity中使用Navigation导航系统和LineRenderer实现3D人物寻路轨迹预测效果的方法。通过NavMesh.CalculatePath计算路径点,结合Physics.Raycast进行地面点投射,将路径点赋予LineRenderer渲染出移动轨迹。关键点包括:1)利用NavMesh.CalculatePath计算两点间可行走路径;2)通过射线检测获取地面点提高路径适配性;3)使用协程定期更新路径绘制。文章还提供了完整代码实现,并说明需要将地面图层设置为Ground并进行导航网格

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 459

第 13 章:Spring AI Alibaba MCP 与 Nacos3 — 企业级MCP服务

理解Spring AI Alibaba 框架下的MCP服务与Nacos注册中心整合的必要性,学会Spring AI Alibaba-基于Nacos的MCP实现方法

paopao_wu的专栏 788

认证卡在“网络”这一环:Android 设备出海,CTS 的 IPv6 门槛比想象中更硬

海域云在其适配 CTS 测试的方案中给出的数据是,优化路由后跨境延迟可低至 5–20ms,测试流程借助专线网络可缩短 30%–50%,并全面支持 IPv4/IPv6 双协议,与 CTS 对 IPv6 的硬性要求对齐。这类指标的具体数值会因地域和运营商环境而不同,但“路径可管、抖动收窄”的方向,对于需要长时间稳定运行的 CTS 套件而言,价值是直接的。对搭载 Android 系统的手机、平板、电视、机顶盒和智能手表而言,GMS 认证是进入欧美等主流渠道的通行证,而 CTS 是其中绕不开的兼容性门槛。

idcicp_com的博客 224

华为OD机试双机位C卷-流浪地球(Py/Java/C/C++/Js/Go)

华为OD机试双机位C卷【流浪地球】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,并提供在线OJ模拟做题。华为OD机试真题【流浪地球】。

qq_45776114的博客 3140

Android的非Google官方衍生品

Android的非Google官方衍生品什么是Android的Google官方衍生品Android WearAndroid AutoAndroid TVAndroid的非Google官方衍生品亚马逊FireOS不带上层UI的Android国内外手机厂商ROM第三方ROMAndroid非Google官方衍生品定制的内容 什么是Android的Google官方衍生品 所谓Android的衍生品即原生A...

hmh0512的专栏 1017

QProgressBar:常用接口、样式表及自定义进度条实现

在Qt开发中,QProgressBar 是一个非常常用的控件,用于显示任务的进度。无论是文件下载、数据处理还是其他耗时操作,QProgressBar 都能直观地展示当前进度。本文将详细介绍QProgressBar 的使用方法,包括常用接口、样式表设置,并额外补充一个自定义进度条的C++实现。

u011186532的专栏 1012

2025年7月5日全国青少年信息素养大赛图形化(Scratch)编程小学低年级组复赛真题+答案

2025年7月5日全国青少年信息素养大赛图形化(Scratch)编程小学低年级组复赛真题+答案

伶俐角少儿编程 898

Magisk终极指南:解锁Android系统潜能的魔法面具

想象一下,你的Android设备就像一个被层层锁链束缚的超级英雄,而Magisk就是那把能够解除所有限制的魔法钥匙。这个被誉为"Android魔法面具"的开源工具,正在彻底改变我们对手机Root权限的认知。不同于传统的Root方案,Magisk通过巧妙的系统级模块化架构,让你在享受完整系统控制权的同时,还能完美绕过银行应用、游戏等安全检测,真正实现了"鱼与熊掌兼得"的Android定制体验。 #

gitblog_00683的博客 353

嵌套学习 (Nested Learning, NL):赋予AI持续学习能力的革命性范式

嵌套学习(Nested Learning, NL)的核心哲学在于彻底颠覆传统深度学习中将模型架构(Architecture)与优化算法(Optimization)视为两个独立组件的“扁平化”视角 。传统方法通常将神经网络的结构设计和其训练过程分离开来,模型架构是预先定义好的静态蓝图,而优化算法(如SGD、Adam)则是一个外部的、统一的规则引擎,负责在训练期间调整模型参数 。这种分离的视角隐藏了模型内部不同组件之间复杂的梯度流和动态更新过程,将整个学习系统视为一个单一层次的优化问题。然而,嵌套学习范式提出,

步子哥的博客 488

LLVM触发非主流方案春天的到来

【作者】杨碧玲 在人们的印象中,便携消费电子领域一直都是Android+ARM架构的天下,但随着Google在Android中加入LLVM技术,该领域以MIPS为代表的非主流方案也开始迎来春天。 在去年年底的时候,也就是在Google发布Android 4.0两周后,MIPS和北京君正携手率先发布了全球首款采用Android 4.0操作系统的平板电脑。这款平板电脑使用的是基于MIP

handyhuang的专栏 1344

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

蓝牙架构选型实战:从协议栈原理到三种主流方案深度解析

蓝牙协议栈是实现设备无线通信的核心软件架构,其核心在于Host(主机)与Controller(控制器)的分层设计,二者通过标准化的HCI接口协同工作。理解这一原理是进行蓝牙开发的基础,它决定了系统的性能、功耗与灵活性。在工程实践中,开发者常面临三种主流架构方案的选择:集成式单芯片方案将协议栈与应用紧密耦合,追求极致成本与功耗;主控加外挂模块方案通过HCI或AT指令分离职责,兼顾灵活性与开发效率;而基于应用处理器的方案则依托操作系统提供完整、强大的生态支持。本文聚焦于蓝牙协议栈的架构本质,深入剖析这三种方案在

weixin_34080571的博客 346

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

AndroidTV CTS/VTS/GTS/STS

AndroidTV出口海外市场需要google test认证,Google为AndroidTV开发商准备了一系列的测试套件,用于提高app/framework/hal的相容性,进一步提升开发者/用户体验。对于开发者来说就是需要测试-解决-测试相关module fail项,除了google waive项之外,其余的fail issue全都要解决:不管用什么的方式(不能修改原始套件)。 CTS:Co...

平凡之路 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: 编程语言系列(一)--C语言基础知识点总结
下一篇: android linux wifi 等网络设备调试命令总结
杨毅
博客等级 码龄14年 26粉丝 27原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值