CN116048955A - 一种测试方法及电子设备 - Google Patents

一种测试方法及电子设备 Download PDF

Info

Publication number
CN116048955A
CN116048955A CN202210848724.6A CN202210848724A CN116048955A CN 116048955 A CN116048955 A CN 116048955A CN 202210848724 A CN202210848724 A CN 202210848724A CN 116048955 A CN116048955 A CN 116048955A
Authority
CN
China
Prior art keywords
camera
test
application program
electronic device
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202210848724.6A
Other languages
English (en)
Other versions
CN116048955B (zh
Inventor
王海军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202210848724.6A priority Critical patent/CN116048955B/zh
Publication of CN116048955A publication Critical patent/CN116048955A/zh
Application granted granted Critical
Publication of CN116048955B publication Critical patent/CN116048955B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Studio Devices (AREA)

Abstract

本申请提供一种测试方法及电子设备,所述方法应用于电子设备,所述方法包括:获取第一进程,并确定该第一进程是否为成像测试套件ITS应用程序对应的进程;在确定第一进程为ITS应用程序对应的进程、且电子设备中未安装有陀螺仪传感器的情况下,将时间戳信息设置为第一配置,并基于该第一配置执行与ITS测试进程;将该时间戳信息设置为第一配置用于表示在执行ITS测试进程的过程中跳过关于摄像头与陀螺仪传感器融合度的测试项目。以解决Android 12以上的Google ITS测试中对于未安装陀螺仪传感器的电子设备仍进行摄像头与陀螺仪传感器融合度测试的不合理性问题。

Description

一种测试方法及电子设备
技术领域
本申请涉及测试领域,尤其涉及一种测试方法及电子设备。
背景技术
谷歌综合测试(Google XTS)是谷歌为规范安卓(Android)设备提供的认证测试项目,包含兼容性测试(compatibility test suite,CTS)、谷歌移动服务测试(GoogleMobile Services Test Suite,GTS)、供应商测试套件(vendor test suite,VTS)、以及相机的成像测试套件(imaging test suite,ITS)等测试项目,Android设备在发布正式版本之前均需要通过该Google XTS测试。
其中,ITS测试项目中包含用于测试电子设备的相机应用程序中摄像头和陀螺仪传感器的融合程度的测试项目。在Android 12版本以上的ITS测试程序中,Android设备在进行Google ITS测试时均会执行关于摄像头与陀螺仪传感器融合度的测试项目。
如此,一些未安装陀螺仪传感器的Android 12版本以上的Android设备,在进行Google ITS测试时,执行关于摄像机和陀螺仪传感器融合度的测试项目,面临未安装陀螺仪传感器却要进行陀螺仪传感器融合度测试导致无法通过Google XTS测试中的ITS测试的问题,对未安装陀螺仪传感器的Android 12以上的Android设备的送检和发布带来不合理的阻碍。
发明内容
第一方面,本申请提供一种测试方法,应用于电子设备,所述方法包括:获取第一进程,并确定所述第一进程是否为成像测试套件ITS应用程序对应的进程;在确定所述第一进程为所述ITS应用程序对应的进程、且所述电子设备中未安装有陀螺仪传感器的情况下,将时间戳信息设置为第一配置,并基于所述第一配置执行与所述第一进程对应的ITS测试进程;所述时间戳信息用于指示所述电子设备录制视频得到的视频数据的起始时刻,将所述时间戳信息设置为所述第一配置用于表示在执行所述ITS测试进程的过程中跳过关于摄像头与陀螺仪传感器融合度的测试项目。
由此,对于Android 12以上的未安装陀螺仪传感器的电子设备,在运行ITS测试进程时可以跳过关于摄像头与陀螺仪传感器融合度的测试项目,解决Android 12以上的Google ITS测试项目中对于未安装陀螺仪传感器仍进行sensor_fusion测试的不合理性给未安装陀螺仪传感器的Android设备的送检和发布带来的不合理阻碍的问题。
在一种可能的实现方式中,所述获取第一进程包括:在检测到第一接口调用请求后,确定发起所述第一接口调用请求的进程为所述第一进程,所述第一接口调用请求用于请求访问至少一个目标接口,所述目标接口为所述电子设备的相机硬件抽象层的接口。
ITS应用程序对应的进程也即ITS测试进程。
由此,电子设备检测到上述第一接口调用请求的情况下,再确定该第一进程是否为ITS测试进程,以及在确定该第一进程为ITS测试进程的情况下,将时间戳参数设置为第一配置。也即确定访问相机硬件抽象层(camera hal)的进程是否为ITS测试进程,而不是对于电子设备中的任意一个进程均确定该进程是否为ITS测试进程,改善电子设备运行程序的负载问题。
在一种可能的实现方式中,所述方法还包括:在确定所述第一进程不为所述ITS应用程序对应的进程的情况下,将所述时间戳信息设置为第二配置,并基于所述第二配置执行所述第一进程,将所述时间戳信息设置为所述第二配置用于表示所述电子设备录制视频得到的视频数据的起始时刻为0。
一般地,将时间戳信息设置为上述第一配置还用于表示电子设备录制视频得到的一段视频数据的起始时刻为电子设备的开机时长。
由此,在确定所述第一进程不为所述ITS应用程序对应的进程的情况下,将所述时间戳信息设置为第二配置,可以使得未安装陀螺仪传感器的Android 12版本以上的Android设备跳过Google ITS测试中关于摄像头与陀螺仪传感器融合度的测试项目,且不影响电子设备相机应用程序中音视频录制功能的正常使用。
在一种可能的实现方式中,所述方法还包括:在确定所述第一进程为所述ITS应用程序对应的进程、且所述电子设备中安装有陀螺仪传感器的情况下,将所述时间戳信息设置为第二配置,并基于所述第二配置执行所述ITS测试进程,将所述时间戳信息设置为所述第二配置用于表示所述电子设备录制视频得到的视频数据的起始时刻为0。
由此,本申请提供的测试方法可以同时兼容安装有陀螺仪传感器(例如Android12版本以上安装有陀螺仪传感器)的电子设备和未安装有陀螺仪传感器(例如Android12版本以上未安装有陀螺仪传感器)的电子设备,提高方案兼容性,使得方案设计更为合理。
在一种可能的实现方式中,所述在检测到第一接口调用请求后,确定发起所述第一接口调用请求的进程为所述第一进程,包括:在确定所述电子设备中安装有所述ITS应用程序、且检测到所述第一接口调用请求的情况下,确定发起所述第一接口调用请求的进程为所述第一进程。
在一种可能的实现方式中,所述确定发起所述第一接口调用请求的进程为所述第一进程包括:获取进程标识,所述进程标识为发起所述第一接口调用请求的所述第一进程的标识;所述确定所述第一进程是否为成像测试套件ITS应用程序对应的进程包括:基于所述进程标识确定所述第一进程是否为所述ITS应用程序对应的进程。
在一种可能的实现方式中,所述进程标识为应用程序的包名,所述基于所述进程标识确定所述第一进程是否为所述ITS应用程序对应的进程包括:确定所述进程标识中是否包含目标字段,所述目标字段用于表示应用程序的包名为所述ITS应用程序;在确定所述进程标识中包含所述目标字段的情况下,确定所述第一进程为所述ITS应用程序对应的进程;在确定所述进程标识中不包含所述目标字段的情况下,确定所述第一进程不为所述ITS应用程序对应的进程。
在一种可能的实现方式中,所述第一进程标识为进程号,所述电子设备中存储有进程号与应用程序之间的第一关联关系表,所述基于所述进程标识确定所述第一进程是否为所述ITS应用程序对应的进程包括:基于所述进程标识和所述第一关联关系表确定所述第一进程是否为所述ITS应用程序对应的进程;在基于所述第一关联关系表确定与所述进程标识对应的应用程序为所述ITS应用程序的情况下,确定所述第一进程为所述ITS应用程序对应的进程;在基于所述第一关联关系表确定与所述进程标识对应的应用程序不为所述ITS应用程序的情况下,确定所述第一进程不为所述ITS应用程序对应的进程。
在一种可能的实现方式中,上述将时间戳信息设置为第一配置包括:确定上述时间戳信息的取值是否为第一配置;在确定所述时间戳信息的取值为第一配置的情况下,保持时间戳信息的取值不变;在确定时间戳信息的取值不为第一配置的情况下,将时间戳信息的取值修改为(更新为)上述第一配置。
在一种可能的实现方式中,上述将时间戳信息设置为第二配置包括:确定上述时间戳信息的取值是否为第二配置;在确定所述时间戳信息的取值为第二配置的情况下,保持时间戳信息的取值不变;在确定时间戳信息的取值不为第二配置的情况下,将时间戳信息的取值修改为(更新为)上述第二配置。
第二方面,本申请实施例提供一种测试装置,所述测试装置包括:获取单元,用于获取第一进程,并确定所述第一进程是否为成像测试套件ITS应用程序对应的进程;配置单元,用于在确定所述第一进程为所述ITS应用程序对应的进程、且所述电子设备中未安装有陀螺仪传感器的情况下,将时间戳信息设置为第一配置,并基于所述第一配置执行与所述第一进程对应的ITS测试进程;所述时间戳信息用于指示所述电子设备录制视频得到的视频数据的起始时刻,将所述时间戳信息设置为所述第一配置用于表示在执行所述ITS测试进程的过程中跳过关于摄像头与陀螺仪传感器融合度的测试项目。
第三方面,本申请实施例提供一种电子设备,所述电子设备包括:一个或多个处理器和存储器;所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行第一方面或第一方面的任意可能的实现方式中的方法。
第四方面,本申请实施例提供一种芯片系统,所述芯片系统应用于电子设备,所述芯片系统包括一个或多个处理器,所述处理器用于调用计算机指令以使得所述电子设备执行所述第一方面或第一方面的任意可能的实现方式所示的方法。
第五方面,本申请实施例提供一种包含指令的计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行所述第一方面或第一方面的任意可能的实现方式所示的方法。
第六方面,本申请实施例提供一种计算机可读存储介质,包括指令,其特征在于,当所述指令在电子设备上运行时,使得所述电子设备执行所述第一方面或第一方面的任意可能的实现方式所示的方法。
可以理解的,上述第二方面提供的测试装置、第三方面提供的电子设备、第四方面提供的芯片、第五方面提供的计算机程序产品和第六方面提供的计算机存储介质均用于执行本申请实施例所提供的方法。因此,其所能达到的有益效果可参考对应方法中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种将时间戳信息设置为unknown时出现的音视频时长与真实时长不一致的示意图;
图2为本申请实施例提供的一种测试方法的系统架构示意图;
图3为本申请实施例提供的一种测试方法的应用环境示意图;
图4为本申请实施例提供的一种测试方法的流程示意图;
图5为本申请实施例提供的又一种测试方法的交互流程示意图;
图6为本申请实施例提供的又一种测试方法的交互流程示意图;
图7为本申请实施例提供的又一种测试方法的交互流程示意图;
图8为本申请实施例提供的电子设备100的结构示意图;
图9是本申请实施例的电子设备100的软件结构框图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地描述。
本申请的说明书、权利要求书及附图中的术语“第一”和“第二”等仅用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备等,没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元等,或可选地还包括对于这些过程、方法、产品或设备等固有的其它步骤或单元。
在本文中提及的“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员可以显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上,“至少两个(项)”是指两个或三个及三个以上,“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”。
以下介绍本申请涉及的术语。
(1)ITS测试
成像测试套件(imaging test suite,ITS)是一个对Android设备的摄像头生成的图像进行测试的框架。Android设备摄像头的部件一般可以包括PCB板、镜头、固定器、滤色片、以及光电转换传感器等部件。一般地,ITS中每个测试项目的目标是按照对应方式配置摄像头并捕获一张或多张的照片,然后确定照片是否包含预期的图像处理数据,以确定是否满足Google对于摄像头应用功能的要求。为便于描述,本文将Google XTS测试中的ITS测试简称为Google ITS测试或ITS测试。
ITS中包括摄像头与陀螺仪传感器融合度的测试项目。以下为便于描述,将GoogleITS测试中关于摄像头与陀螺仪传感器融合度的测试项目统称为传感器融合度(sensor_fusion)测试项目。该sensor_fusion测试项目用于测试摄像头(camera)和陀螺仪传感器的融合程度,在测试过程中,需要转动电子设备拍照捕获一张或多张照片,具体要求camera和陀螺仪传感器对于同一张照片的时间戳误差不超过1ms。
可理解的,ITS测试中除了上述sensor_fusion测试项目之外,还包括其他测试项目,本文对此不做限定。例如,ITS测试中还可以包括照摄像头对准特定目标时是否达到一定强度的照明效果的测试项目等。
一般地,对电子设备的相机应用程序进行ITS测试,需要电子设备中安装有与ITS对应的Android应用程序包(Android application package,apk)。在测试时将电子设备连接电脑终端(PC),在PC端运行对应的python脚本以触发电子设备运行ITS测试进程执行ITS测试。本文为便于描述,将ITS的apk称为ITS应用程序。
下面详细说明本申请实施例中音频处理方法的优势:
一般地,Android 12版本以上的ITS测试程序中,无论Android设备是否安装有陀螺仪传感器,都会对Android设备执行摄像头和陀螺仪传感器的融合度测试项目。如此,一些未安装陀螺仪传感器的Android 12版本以上的Android设备,在进行Google ITS测试时,不能跳过关于摄像头与陀螺仪传感器融合度的测试项目,会面临未安装陀螺仪传感器却要进行陀螺仪传感器融合度测试导致无法通过Google ITS测试的问题,对未安装陀螺仪传感器的Android设备的送检和发布带来不合理的阻碍。
鉴于此,本申请实施例提供一种测试方法,能够使得未安装陀螺仪传感器的Android 12版本以上的Android设备跳过Google ITS测试中关于摄像头与陀螺仪传感器融合度的测试项目。具体的,基于ITS测试中执行摄像头与陀螺仪传感器融合度的测试项目时需要满足时间戳参数配置信息为相对时间的判定条件逻辑,本申请实施例提供的测试方法中,当电子设备在执行与ITS应用程序对应的进程时,电子设备将该时间戳参数配置信息设置为绝对时间(也即该时间戳参数信息不设置为相对时间),从而使得电子设备在执行ITS应用对应的测试进程时跳过关于摄像头与陀螺仪传感器融合度的测试项目。
经调研发现,Android 12以上的版本中,当Android设备在执行Google ITS测试进程时,ITS测试进程是否执行sensor_fusion测试项目与时间戳信息有关。该时间戳信息用于指示所述电子设备录制视频得到的视频数据的起始时刻,该时间戳信息的取值可以为相对时间和绝对时间。其中,将该时间戳信息设置为相对时间,则表示电子设备采用摄像头录制视频得到的视频数据中的第一帧视频帧的时间戳为0;将该时间戳信息设置为绝对时间,则表示电子设备采用摄像头录制视频得到的视频数据中的第一帧视频帧的时间戳为电子设备的开机时长。在Android 12以上版本的Android设备进行ITS测试时,若Android设备确定该时间戳信息为相对时间,电子设备则会执行sensor_fusion测试项目的程序;若时间戳信息为绝对时间,则电子设备会跳过sensor_fusion测试项目(也即不执行sensor_fusion测试项目)。
具体的,上述时间戳信息在代码逻辑中可以表现为参数Android.sensor.info.timestampSource,当参数Android.sensor.info.timestampSource取值为realtime即表示时间戳信息为相对时间,当参数Android.sensor.info.timestampSource取值为unknown即表示时间戳信息为绝对时间。以下为便于描述,将参数Android.sensor.info.timestampSource简称为时间戳参数。也即,若时间戳参数取值为realtime,电子设备则会执行sensor_fusion测试项目的程序。若时间戳参数取值为unknown,则电子设备不执行sensor_fusion测试项目的程序。
鉴于上述问题,本申请实施例提供一种测试方法,能够使得未安装陀螺仪传感器的Android 12版本以上的Android设备跳过Google ITS测试中关于摄像头与陀螺仪传感器融合度的测试项目。通过本申请提供的测试方法,电子设备检测到第一应用进程向camerahal发送关于与相机应用程序对应的功能函数接口的接口调用请求时,可以确定该第一应用进程是否为ITS测试进程(该ITS测试进程为Google ITS应用程序对应的进程);若该第一应用进程为ITS测试进程,则将时间戳参数设置为unknown,再根据该时间戳参数响应于该第一应用进程的调用而执行该ITS测试进程。由此,当Android电子设备需要使用摄像头执行ITS测试进程时,时间戳参数会设置为unknown,则电子设备可以跳过该ITS测试中的sensor_fusion测试项目。也就是说,针对Android 12以上的未安装陀螺仪传感器的电子设备,可以通过本申请提供的测试方法,跳过摄像头与陀螺仪传感器融合度的测试项目,解决Android 12以上的Google ITS测试项目中对于未安装陀螺仪传感器仍进行sensor_fusion测试的不合理性给未安装陀螺仪传感器的Android设备的送检和发布带来的不合理阻碍的问题。
另外,经调研还发现,一般地,电子设备通过相机应用程序录制包含音频数据和视频数据的媒体流数据时,若时间戳参数取值为realtime,则摄像机录制得到的视频数据的第一帧视频的时间戳为0毫秒(ms);若时间戳参数取值为unknown,则摄像机录制得到的视频数据的第一帧视频的时间戳为电子设备开机(device boot)后的开机时长对应的时刻,例如电子设备开机时长为5分钟(min),则视频数据的第一帧视频的时间戳为5min。而对于音频数据而言,音频数据的时间戳不会随着该时间戳参数的改变而改变,也即麦克风录制得到的上述媒体流数据中的音频数据,无论时间戳参数取值为realtime或unknown,得到的音频数据帧的时间均为相对时间,也即音频数据的起始时刻均为0。并且,在对音频数据和视频数据进行录制合成(音视频合成)的功能场景中,电子设备会将视频数据的最后一帧图像的时间戳减去音频数据的起始时刻得到的差值作为合成的音视频数据(例如mp4数据)的时长。
一般地,基于用户对于相机音视频录制功能的需求,该时间戳参数一般会设置为realtime,则对于Android12版本以上的未安装陀螺仪传感器的Android设备执行与Android12版本对应的ITS测试程序时,由于时间戳参数设置为realtime,Android设备仍会执行sensor_fusion测试项目,以致面临未安装陀螺仪传感器却要进行陀螺仪传感器融合度测试导致无法通过Google ITS测试的问题。不过,若为了跳过Google ITS测试中的sensor_fusion测试项目,而将时间戳参数设置为unknown,那么电子设备在采用音频数据和视频数据录制合成音视频数据时,会出现得到的音视频数据的时长与真实时长不一致的问题。例如,如图1所示,音频数据的时间段为0ms至20s,视频数据的时间段为5min至(5min+20s),则合成的音视频数据中显示的时长即为5min+20s(5min+20s-0ms=5min+20s),而音视频数据的真实时长实际为20s。本文为便于描述,将电子设备中的相机应用程序录制包含音频数据和视频数据的媒体流数据称为音视频录制功能。
鉴于此,可选的,本申请实施例提供的测试方法中还可以包括:电子设备检测到上述第一应用进程向camera hal发送关于相机应用程序对应的功能函数接口的接口调用请求、且确定该第一应用进程为除了Google ITS应用程序之外的其他应用程序(本文为便于描述,将除了Google ITS应用程序之外的其他应用程序称为其他应用程序)对应的进程,例如除了ITS应用程序之外的其他应用程序对应的进程需要基于摄像头进行视频录制或音视频合成任务时,则将时间戳参数设置为realtime,再根据该时间戳参数响应于该进程的调用而执行该其他录制进程。由此,通过本申请实施例提供的种测试方法,可以使得未安装陀螺仪传感器的Android12版本以上的Android设备跳过Google ITS测试中关于摄像头与陀螺仪传感器融合度的测试项目,且不影响电子设备相机应用程序中音视频录制功能的正常使用。也可以理解为,在测试场景中,不影响除了ITS测试进程中其他测试进程的执行。
也就是说,当Android电子设备需要基于摄像头执行除了ITS测试进程之外的其他应用进程时,时间戳参数会设置为realtime。如此,若该其他应用进程需要使用摄像头进行视频录制时,则录制得到的视频数据的第一帧视频帧的时间戳为0,从而可以改善在视频录制场景中,录制得到的视频数据的起始时刻不为0的程序错误给用户带来的疑惑和困扰问题。以及,若该其他应用进程需要基于摄像头进行音视频合成时,合成的音视频数据的显示时长与真实时长一致。例如,音频数据的时间段为0ms至20s,视频数据的时间段为0至20s,则合成的音视频数据中显示的时长即为20s(20s-0ms=20s),从而可以改善在音频数据和视频数据录制合成音视频数据的场景中,出现合成的音视频数据的显示时长与真实时长不一致的问题。
综上,对于Android 12以上的未安装陀螺仪传感器的Android设备,采用本申请实施例提供的方法,当Android设备在运行Google ITS应用程序时,可以合理跳过ITS测试中关于摄像头与陀螺仪传感器融合度的测试项目;以及,当Android设备在运行除了GoogleITS应用程序之外的其他应用程序、且该其他应用程序需要使用相机应用程序对应的功能时,Android设备可以满足该其他应用程序对于相机应用程序基本功能的使用需求,例如视频录制功能以及音视频合成功能。
可理解的,本文所描述的电子设备的开机时长是指电子设备最近一次开机对应的开机时长。
本文为便于描述,将相机应用程序提供的功能称为相机功能。
以下结合图2介绍本申请实施例提供的测试方法中的系统框架的示意图。
如图2所示,该系统框架包括应用程序层、camera框架层、以及相机硬件抽象层(camera hardware abstraction layer,camera hal),可理解的,该系统框架层还可以包括比图2中的架构更多或更少的内容,本文对此不做限定。示例性的,在camera框架层和camera内核层之间还可以包括camera系统库。
上述应用程序层可以包括Google ITS应用程序和除了Google ITS之外的其他应用程序。该Google ITS应用程序可理解为测试相机功能的软件测试程序或工具。该其他应用程序可以为除了该Google ITS应用程序之外的任意一个应用程序,或者,该其他应用程序也可以为除了该Google ITS应用程序之外的其他具备部分相机功能使用权限或允许向摄像头申请部分相机功能使用权限的应用程序。例如该其他应用程序可以为电子设备中的相机应用程序,或该其他应用程序也可以为支持使用相机功能的第三方应用程序,例如具备视频录制、音视频合成功能的抖音应用程序、微信(WeChat)应用程序等。
上述camera框架层也称为camera sever,其包括一些预先定义的函数,用于给应用程序层中的应用程序提供应用编程接口(application programming interface,API)和编程框架。
上述camera hal中定义了一套标准接口,该camera hal为介于camera框架与camera驱动之间的接口层,该camera驱动为可以直接操作硬件的软件模块,camera hal层的标准接口可以用于调用camera驱动从而进一步控制与拍摄功能相关的硬件。另外,camera hal可以处理缓存区(buffer)中包含音频数据和视频数据的媒体流数据的格式,比如转为合适的yuv格式媒体流数据等,以及实现3A算法(自动对焦auto focuse、自动曝光auto exposure、白平衡white balance等)。也可以理解为,camera hal中定义的标准接口与相机应用程序提供的功能(相机功能)对应。若应用程序层的应用(application,app)需要借助camera硬件实现相机功能,则app需要实现上述camera hal中与该相机功能对应的标准接口,从而保证app能够与camera硬件正确的协调工作。
可理解的,在实际应用中,app可以对接camera框架层中的摄像机框架(cameraframework),该camera framework进一步对接camera hal。示例性的,程序开发人员在开发应用程序层中的app1且需要为该app1提供调用电子设备摄像机以执行拍摄照片、视频录制等功能时,开发人员可以根据camera框架层中camera framework定义的编程接口和编程框架、以及camera hal提供的相机功能标准接口实现为app1提供包含摄像头拍摄、视频录制或音视频合成功能。对应地,在app1进程运行时,需要调用相机功能的情况下,app1可以通过该camera framework向camera hal发送与该相机功能对应的接口的调用请求。
可理解的,相机应用程序的功能与camera框架层中提供的编程接口之间可以是多对多的关系,例如相机应用程序提供的一个功能可以对应camera框架层中的一个或多个编程接口,camera框架层中的一个接口可以对应相机应用程序提供的一个或多个功能。camera框架层中的编程接口与camera hal中的标准接口之间也可以是多对多的关系,例如camera框架层中的一个编程接口可以对应camera hal中的一个或多个标准接口,camerahal中的一个标准接口可以对应camera框架层中的一个或多个编程接口。
一般地,上述camera框架层可以基于应用编程接口和编程框架为电子设备提供原生(native)服务,上述camera hal和应用程序层中的app之间可以基于该native服务采用进程间通信(inter process communication,IPC)机制进行通信。具体的,camera应用程序层中的应用程序与camera框架层(camera sever)可以通过粘结剂(binder)通信机制进行通信,camera框架层与camera hal之间可以通过hal binder通信机制进行通信,该halbinder通信机制可以是hal接口定义语言(hal interface definition language,HIDL)、管道通信(例如pipe管道或fifo命名管道的管道通信方式)、或套接字(socket)通信等通信方式。可理解的,上述binder通信机制、管道通信、socket通信、以及HIDL通信方式均为IPC通信的具体实现。
可理解的,上述camera hal可以作为相机功能的服务器端(server端),运行server进程。上述应用程序层中的app需要使用相机功能时,该app可以作为相机功能的客户机端(client端),运行client进程。具体的,在应用程序层中的app进程与camera框架层之间的通信交互中,app进程作为client端,camera进程作为server端;在camera框架层与camera hal之间的通信交互中,camera框架层作为client端,camera hal作为server端。
示例性的,对于应用程序层中具备相机功能使用权限的第一应用程序,当该第一应用程序需要使用相机功能时,例如第一应用程序接收到用户发起的拍照指令时,第一应用程序可以基于IPC通信机制通过camera框架层向camera hal发送与该拍照功能对应的接口调用请求。camera hal基于该接口调用请求配置了摄像头硬件的相应参数后,响应该第一应用程序发送的接口调用请求,执行拍照功能。
例如,电子设备接收到用户发起的运行Google ITS应用程序的指令后为该GoogleITS应用程序分配Google ITS进程。该ITS测试进程则可以通过camera框架层中的binder通信机制调用camera hal中的代理接口发起接口调用请求,camera hal层中的server进程接收到该接口调用请求后,确定发起该接口调用请求的进程是否为ITS测试进程,若是则将时间戳参数设置为unknown,并根据该时间戳参数响应上述接口调用请求。具体的,由camerahal、camera驱动、以及光电转换传感器sensor硬件(sensor硬件用于进行照片和视频数据采集)配合执行对应的图片拍摄和/或视频采集功能以响应上述接口调用请求。
示例性的,本申请实施例提供的测试方法的应用环境示意图如图3所示,其中,camera hal作为电子设备相机功能的服务器端(S端),应用程序层中的ITS测试进程或其他应用程序的进程作为客户机端(C端)。S端和C端之间基于IPC通信机制进行交互。例如,S端具体可以通过以下方式执行本申请实施例提供的测试方法:S端接收到C端中发起的接口调用请求后,确定发起该接口调用请求的进程是否为ITS测试进程。针对C端的ITS测试场景,也即发起上述接口调用请求的进程为ITS测试进程的情况下,S端将camera驱动中的时间戳参数赋值为unknown,并将该时间戳参数信息基于IPC通信机制传递到C端,响应上述接口调用请求,从而S端和C端基于该unknown参数执行上述Google ITS应用进程时,电子设备可以跳过ITS测试中关于摄像头和陀螺仪传感器的测试项目。针对C端中除了Google ITS应用进程之外的其他C端场景,例如微信音视频录制场景,也即发起上述接口调用请求的进程不是Google ITS应用进程而是其他应用进程的情况下,S端将camera驱动中的时间戳参数赋值为realtime,并基于该realtime时间戳参数响应C端的上述接口调用请求,以满足摄像头基本功能的使用;例如C端的接口调用请求具体为微信应用进程,且该接口调用请求对应的相机功能为计算采集的视频数据的时长以及对采集的视频数据进行时间戳赋值的情况下,S端可以基于该realtime时间戳参数(也即相对时间的配置)对视频数据中的数据帧赋时间戳值。
可理解的,本申请实施例可以由任意具备摄像头拍照功能的电子设备执行,例如,该电子设备可以为具备摄像头拍照功能的平板电脑、移动终端、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑以及超级移动个人计算机(ultra-mobile personalcomputer,UMPC)等电子设备,本文对电子设备的具体形态不做限定。基于简洁性考虑,在本文的一些描述中,也可以省略本申请实施例的执行主体(电子设备)。
实施例1:
以下基于上述图2中的系统框架示意图和图3中的应用环境示意图,结合图4详细描述本申请实施例提供的测试方法。如图4所示,该音频处理方法包括如下步骤:
S401,电子设备检测到对于相机硬件抽象层的第一接口调用请求。
在本申请实施例中,上述第一接口调用请求为用于指示访问一个或一个以上目标接口的接口调用请求,该目标接口为相机的硬件抽象层(camera hal)中封装的接口。
可理解的,camera hal可以通过与camera框架层的交互获取来自应用程序层的应用进程的调用,并通过与camera框架层的交互响应该应用进程的调用,为该应用进程的运行提供对应的标准接口。具体的,在camera hal中定义有与相机功能对应的接口函数,camera应用程序层中的应用进程可以通过camera框架层、IPC通信机制以及接口函数调用的方式向camera hal发起与相机功能对应的上述第一接口调用请求;camera hal接收到该第一接口调用请求后,根据该第一接口调用请求,配置与该第一接口调用请求对应的摄像头硬件的相关参数信息,并通过camera框架层和IPC通信机制响应该第一接口调用请求,以使得向用户提供该第一接口调用请求对应的相机功能。
一般的,电子设备在接收到运行应用程序(例如运行app1)的指令后,会为该app1分配对应的进程,以响应关于该app1的运行指令。示例性的,电子设备中安装了可以调用摄像头执行视频录制功能的app1。电子设备在接收到用户发起的启动app1的指令后,为该app1分配进程A,通过该进程A运行app1中的功能程序以及维护进程A的相关数据。
例如,app1的进程A作为client进程,在需要使用摄像头录制功能录制图像帧时,通过camera框架层、IPC通信机制以及接口函数的调用方式向camera hal发起与摄像头录制功能对应的一个或多个接口的第一接口调用请求,camera hal中的server进程接收到该第一接口调用请求后,根据该第一接口调用请求配置摄像头的相应参数(例如后置摄像头开启、闪光灯开启、时间戳信息配置为realtime等参数),然后执行录制功能,同时向app1的进程A反馈上述第一接口调用请求的请求结果为请求成功以及摄像头正在录制中的同步消息,进程A接收到该请求结果和同步消息后,显示对应的应用界面。
在本申请实施例中,上述测试方法的触发条件为电子设备检测到关于camera hal的第一接口调用请求。对于电子设备而言,电子设备中会设置有相应硬件的硬件抽象层和接口函数之间的关联关系;例如,camera hal与拍照功能接口函数之间的关联关系。也即,当app1调用与相机功能对应的接口函数时,电子设备可以检测到关于该接口函数的调用请求是关于上述camera hal的第一接口调用请求,从而触发执行本申请实施例提供的测试方法。
S402,电子设备确定发起上述第一接口调用请求的进程对应的第一进程标识,并根据第一进程标识确定该第一进程标识对应的进程是否为成像测试套件(ITS)测试进程。
在本申请实施例中,上述第一进程标识可以是应用程序的包名(包名即为程序包对应的名称),也可以是进程号。
具体的,根据第一进程标识为包名或进程号的不同,电子设备可以通过以下三种方式,确定第一进程标识,以及确定该第一进程标识对应的进程是否为ITS测试进程。
方式1:
上述第一进程标识为包名;电子设备根据第一进程标识(包名)中是否包含目标字段确定该第一进程标识对应的进程是否为ITS测试进程。
一般地,Google对于应用程序的包名有一定的命名规范,一般要求除了GoogleITS应用程序之外的应用程序的包名中不能包含its字段,且Google ITS应用程序包中包含its字段。例如,Google ITS应用程序包的名称一般为con.Its.test。
示例性的,电子设备在检测到存在应用程序发起调用底层camera hal接口函数的第一接口调用请求时,基于IPC机制获取发起上述第一接口调用请求的应用程序的包名。若该应用程序的包名中包含“its”字段(也即目标字段),则确定上述第一进程标识对应的进程为ITS测试进程。若该应用程序的包名中不包含“its”字段,则确定上述第一进程标识对应的进程不为ITS测试进程。
方式2:
上述第一进程标识为进程号(pid);电子设备通过进程号(第一进程标识)确定当前该进程号对应的进程是否为ITS测试进程。
示例性的,电子设备可以通过目标方法获取上述进程号(pid);该目标方法用于获取当前发起调用camera hal函数接口的第一接口调用请求的pid。示例性的,该目标方法可以为IPCThreadState::self()->getCalling Pid()。
例如,电子设备可以根据当前运行的应用程序进程实时更新并存储应用程序与该应用程序的pid的关联关系。从而电子设备可以通过上述pid唯一确定该进程号是否为与Google ITS应用程序对应的进程。例如,程序设计中可以包括确定pid是否为pid1,其中,该pid1为第一关联关系表中与Google ITS应用程序对应的进程号,该第一关联关系表用于存储进程号与应用程序的关联关系。
方式3:
上述第一进程标识为进程号(pid);电子设备通过该进程号确定与该进程号对应的应用程序的包名,再根据该包名中是否包含目标字段确定当前该进程号对应的进程是否为ITS测试进程。
示例性的,电子设备可以根据上述pid确定该pid对应的进程所属应用程序的包名。例如,电子设备可以根据pid获取存储该进程数据的路径Proc/pid/cmdline,然后进入cmdline路径查看该pid进程对应的包名。若cmdline路径下的包名中包含“its”字段,则确定上述第一进程标识对应的进程为ITS测试进程;若cmdline路径下的包名中不包含“its”字段,则确定该第一进程标识对应的进程为不ITS测试进程。
电子设备在确定上述第一进程标识对应的进程为ITS测试进程的情况下,执行S103;否则执行步骤S104。
在本文的一些表述中,也将“发起上述第一接口调用请求的进程”称为第一进程,将第一进程标识称为“进程标识”。
S403,电子设备将时间戳信息设置为第一配置,并基于该第一配置响应上述第一接口调用请求。
在本申请实施例中,上述第一配置用于表示采用摄像头进行视频录像得到的视频数据中视频帧的时间戳为绝对时间。且该时间戳信息为上述第一配置时,若电子设备正在运行Google ITS对应的进程(也即ITS测试进程),则电子设备可以跳过ITS测试项目中关于摄像头和陀螺仪传感器融合度的测试项目(sensor_fashion测试项目)。
可理解的,只要与相机应用程序相关的进程需要使用摄像机拍照或采集视频,那么进程在使用摄像机之前,均需要向底层camera hal发送所需要使用的相机功能的接口对应的第一接口调用请求。
示例性的,ITS测试中的sensor_fashion测试项目必须使用摄像机进行拍照或采集视频以便完成测试。在ITS测试进程中,在使用拍照或采集视频功能进行ITS测试之前,ITS测试进程需要基于IPC通信机制先向底层camera hal中的server进程发送与所使用相机功能对应的上述第一接口调用请求。直到电子设备中的camera hal中的server进程接收到该第一接口调用请求,配置好与该第一接口调用请求对应的摄像头参数(例如上述时间戳信息)后,以及ITS测试进程接收到server进程关于该第一接口调用请求的响应后,ITS测试进程才可以基于电子设备提供的相机功能执行ITS测试项目。也就是说,采用本申请实施例提供的测试方法,不会存在ITS测试进程已开始执行sensor_fashion测试项目,电子设备才基于上述第一接口调用请求确定上述第一进程标识是否为ITS测试进程,导致出现代码执行逻辑错误,无法准确跳过ITS测试中的sensor_fashion测试项目的问题。
在本申请实施例中,上述基于第一配置响应上述第一接口调用请求,具体可以理解为:基于上述第一配置执行ITS测试进程。例如,上述第一接口调用请求为Google ITS应用程序对应的进程(也即ITS测试进程)基于用户指令发起拍照功能请求或视频录制功能请求,则电子设备可以基于上述第一配置响应该第一接口调用请求,为该Google ITS应用程序对应的进程提供拍照或视频录制功能的软硬件支持。
在本申请实施例中,上述电子设备将时间戳信息设置为第一配置也可以理解为:确定时间戳信息是否设置为第一配置;若是则保持该时间戳信息的取值不变;若否则将时间戳信息修改为该第一配置。
一般地,为满足用户对于摄像头基础功能(包括录制视频、音视频合成等功能)的使用,上述时间戳信息的默认值一般设置为上述第二配置(也即realtime)。
在本申请实施例中,时间戳信息的默认值可以设置为第二配置,也可以设置为第一配置,本文对此不做限定。无论上述时间戳信息配置为第二配置还是第一配置,电子设备检测到关于camera hal的第一接口调用请求后,均需要确定当前进程是否为ITS测试进程。
示例性的,上述时间戳信息具体为android.sensor.info.timestampSource参数,上述第一配置为android.sensor.info.timestampSource参数被赋值为unknown。
由此,Android 12以上的未安装陀螺仪传感器的电子设备,可以通过本申请提供的测试方法,跳过摄像头与陀螺仪传感器融合度的测试项目,解决Android 12以上的Google ITS测试项目的不合理性给未安装陀螺仪传感器的Android设备的送检和发布带来的不合理阻碍的问题。
S404,将时间戳信息设置为第二配置,并基于上述第二配置响应上述第一接口调用请求。
在本申请实施例中,上述第二配置用于表示采用摄像机进行视频录像得到的视频数据中视频帧的时间戳为相对时间。
在本申请实施例中,上述基于第二配置响应上述第一接口调用请求,具体可以理解为:基于上述第二配置执行与上述第一进程标识对应的进程。例如,与第一进程标识对应的进程为微信应用进程,上述第一接口调用请求为该微信应用进程发起的拍照功能请求或视频录制功能请求。则电子设备可以基于上述第二配置响应该第一接口调用请求,为该微信应用进程提供拍照或视频录制功能的软硬件支持。
在本申请实施例中,上述电子设备将时间戳信息设置为第二配置也可以理解为:确定时间戳信息是否设置为第二配置;若是则保持该时间戳信息的取值不变;若否则将时间戳信息修改为该第二配置。
示例性的,上述时间戳信息具体为android.sensor.info.timestampSource参数,上述第二配置为android.sensor.info.timestampSource参数被赋值为realtime。
可理解的,在摄像头基本功能的使用中,将时间戳信息配置为上述第二时间戳,可以改善在视频录制场景中,录制得到的视频数据的起始时刻不为0的程序错误给用户带来的疑惑和困扰问题,以及可以改善在音频数据和视频数据录制合成音视频数据的场景中,出现合成的音视频数的显示时长与真实时长不一致的问题。从而,采用本申请实施例提供的方法,可以在使用摄像头运行ITS测试进程时合理跳过sensor_fashion测试项目,同时在除了ITS测试之外的其他场景使用摄像头执行摄像头应用进程时满足用户对于摄像头基本功能(例如音视频录制合成功能)的使用。
在一种可能的实现方式中,如图5所示,本申请实施例提供的测试方法中,在上述步骤S401之后,S402之前,本申请提供的测试方法,还包括:
S501,确定电子设备中是否安装有陀螺仪传感器。
可理解的,若电子设备中未安装有陀螺仪传感器,例如对于Android 12以上的未安装有陀螺仪传感器的电子设备,则电子设备可以通过本申请实施例步骤S402至S404中的测试方法,合理跳过ITS测试场景中关于摄像头与陀螺仪传感器融合度的测试项目。
在确定电子设备中未安装有陀螺仪传感器的情况下,执行步骤S402至S404;在确定电子设备中安装有陀螺仪传感器的情况下,执行S502。
S502,电子设备本次不再执行步骤S402至S404,并在再次接收到上述第一接口调用请求时执行步骤S501。
可理解的,若电子设备中安装有陀螺仪传感器,例如对于Android 12以上的安装有陀螺仪传感器的Android设备,则电子设备无需跳过上述sensor_fashion测试项目,从而电子设备无需执行步骤S402至S404(也即无需确定第一进程标识对应的进程是否为ITS测试进程以及确定是否需要合理配置时间戳信息以便于针对ITS测试场景跳过sensor_fashion测试项目)。
由此,本申请提供的测试方法可以同时兼容Android 12版本以上安装了陀螺仪传感器和未安装陀螺仪传感器的Android设备,兼容性更高。
可理解的,图5中关于先执行S501再执行S402的描述仅为示例,本文对于上述S402步骤与S501步骤之间的执行先后顺序不做限定,可以同时执行也可以先后执行。示例性的,在上述步骤S403和S404之前,本申请提供的测试方法,还包括:确定电子设备中是否安装有陀螺仪传感器;在与上述第一进程标识对应的进程为ITS测试进程、且确定电子设备中未安装有陀螺仪传感器或的情况下,执行步骤S403(将时间戳信息设置为第一配置);并在确定与上述第一进程标识对应的进程为ITS测试进程、且电子设备中安装有陀螺仪传感器的情况下,执行步骤S404(将时间戳信息设置为第二配置)。以及,若确定与上述第一进程标识对应的进程不为ITS测试进程,则执行步骤S404。
可理解的,本文提供的测试方法主要针对于Android 12版本的Android设备,但并不表示本文提供的测试方法不适用于Android 11版本的Android设备。
示例性的,对于Android 12版本以上(包括Android 12版本)的未安装陀螺仪传感器的Android设备,可以通过本申请实施例提供的测试方法,在运行ITS应用程序时,将时间戳信息设置为第一配置,跳过sensor_fusion测试项目,解决Android 12以上的Google ITS测试项目中对于未安装陀螺仪传感器仍进行sensor_fusion测试的不合理性问题。以及,在运行除了ITS应用程序之外的其他进程时,将时间戳信息设置为第二配置,保障电子设备摄像头的音视频录制合成功能的正常使用。
示例性的,对于Android 12版本以上的安装有陀螺仪传感器的Android设备,以及Android11版本以下(包括Android 11版本)的安装有陀螺仪传感器的Android设备,程序设计者在希望电子设备执行ITS测试,但又不希望执行ITS测试中的sensor_fusion测试项目时,例如当前相机功能软件开发进程还未进行到陀螺仪传感器功能阶段,只是希望测试相机功能中除了陀螺仪传感器之外的其他功能时,电子设备可以通过本申请实施例提供的测试方法,在运行ITS应用程序时,跳过sensor_fusion测试项目,以达到阶段性测试目的。
实施例2:
以下基于图4和图5所述的测试方法,以camera hal、camera框架层、以及应用程序层的进程A之间的多层交互为例,结合图6详细描述本文提供的测试方法。如图6所示,该测试方法包括如下步骤:
S601,camera框架层接收进程A发起的针对第一功能的第二接口调用请求,相应地,进程A向camera框架层发送该第二接口调用请求。
一般地,应用进程(进程A)与camera框架层对接,具体实现为与camera framework对接,该camera framework编程框架再通过IPC通信机制进一步与camera hal交互。该camera hal可通过camera驱动进一步控制对应的硬件执行拍摄、录制视频或录制音频的功能以响应进程A的功能请求。
在本申请实施例中,上述第一功能为相机应用程序提供的功能中的任意一项功能。示例性的,上述第一功能为音视频录制功能,则该第二接口调用请求即为与音视频录制功能对应的一个或多个函数编程接口调用请求。
示例性的,上述进程A可以基于进程间通信中的binder通信机制与camera框架层通信,将上述第二接口调用请求传递至camera框架层。在进程间通信中,上述进程A与camera框架层之间的通信模式可以理解为C/S通信模式,其中,进程A可以作为client端(C端),camera框架层作为server端(S端)。
S602,camera框架层基于该第二接口调用请求生成第一接口调用请求。
在本申请实施例中,上述第一接口调用请求为与参考接口对应的接口调用请求,该参考接口包括上述第二接口调用请求中涉及的全部编程接口。
S603,camera hal接收camera框架层发送的上述第一接口调用请求,相应地,camera框架层向camera hal发送该第一接口调用请求。
示例性的,camera框架层可以基于进程间通信中的hal binder通信、管道通信、socket通信、或HIDL通信机制将该第一接口调用请求发送给上述camera hal。在进程间通信中,该camera框架层与camera hal之间的通信模式可以理解为C/S通信模式,其中,camera框架层可以作为client端(C端),camera hal作为server端(S端)。
也可以理解为,camera hal基于camera框架层和IPC通信机制获取进程A发起的针对上述第一接口的第一接口调用请求。
关于上述第一接口调用请求的详细说明可以参照本文其他实施例中的相关描述,例如实施例1中S401中关于相机硬件抽象层的接口调用请求的相关说明,在此不再详述。
S604,camera hal确定与第一接口调用请求对应的进程是否属于ITS测试进程,若是则将时间戳信息设置为第一配置,若否则将时间戳信息设置为第二配置,并基于该时间戳信息响应该第一接口调用请求。
关于camera hal具体如何确定与第一接口调用请求对应的进程是否属于ITS测试进程可以参照本文其他实施例的相关说明(例如实施例1中的S402的相关描述),以及,关于camera hal具体如何在确定与上述进程A属于ITS测试进程时将时间戳信息设置为第一配置、在确定该进程A不属于ITS测试进程时将时间戳信息设置为第二配置,可以参照本文其他实施例的相关说明(例如实施例1中的S403和S404的相关描述),在此不再详述。
在本申请实施例中,camera hal检测接收到上述第一接口调用请求后触发执行本申请实施例提供的方法,也即确定与该第一接口调用请求对应的进程是否属于ITS测试进程以设置对应的时间戳信息。
可理解的,本申请实施例提供的测试方法中,camera hal不仅可以根据该第一接口调用请求对应的进程是否属于ITS测试进程确定设置对应的时间戳信息,还可以耦合执行如图5所示方案,根据时间戳信息以及电子设备中是否安装有陀螺仪传感器以确定设置对应的时间戳信息。
关于ITS测试进程、时间戳信息等的说明可以参照实施例1中的相关描述(例如实施例中步骤S402、S403以及S404中的相关描述),在此不再详述。
S605,camera hal基于上述时间戳信息信向camera框架层发送针对上述第一接口调用请求的响应结果,该响应结果携带上述时间戳信息,相应地,camera框架层接收camerahal该响应结果。
一般地,上述响应结果中包括时间戳信息,用于使得进程A可以根据该时间戳信息展示视频录制时间、给拍摄的照片添加时间戳水印等。若上述进程A为ITS测试进程时,上述时间戳信息还可以用于确定是否执行ITS测试中的sensor_fashion测试项目。
示例性的,camera hal接收到上述第一接口调用请求后,通过camera驱动进一步控制对应的sensor硬件执行与上述第一功能对应的任务以响应进程A的功能请求。例如,上述第一功能为拍摄视频,camera hal接收到关于该第一功能对应的接口的调用请求后,配置时间戳信息参数,将响应结果为请求成功以及时间戳信息对应的信息通过camera框架层和IPC通信技术反馈给进程A,以便于进程A根据时间戳参数展示视频帧数据的时间进度条以及根据该时间戳参数确定是否执行ITS测试中的sensor_fashion测试项目。另外,camerahal向camera框架层反馈上述响应结果的同时,触发底层sensor硬件采集视频帧,sensor硬件采集到视频帧后,将视频帧发送给camera hal进行预处理,然后进一步通过camera框架层将视频帧传递至应用程序层中的进程A。
S606,camera框架层向进程A发送针对上述第二接口调用请求的响应结果,相应地,进程A接收上述响应结果。
可理解的,camera框架层接收到的针对第一接口调用请求的响应结果即为camerahal针对进程A发送的上述第二接口调用请求的响应结果。该响应结果中携带上述时间戳信息。
S607,进程A基于上述响应结果中携带的时间戳信息运行进程A。
示例性的,若进程A为ITS测试进程,camera hal反馈的上述时间戳参数即为第一配置。从而进程A可以基于该第一配置跳过ITS测试中的sensor_fashion测试项目,解决Android 12以上的Google ITS测试项目中对于未安装陀螺仪传感器仍进行sensor_fusion测试的不合理性给未安装陀螺仪传感器的Android设备的送检和发布带来的不合理阻碍的问题。
示例性的,若进程A不为ITS测试进程,例如该进程A为CTS测试进程、VTS测试进程、GTS测试进程、电子设备中原有的相机应用程序进程、或可以调用电子设备摄像头的微信应用程序进程,则上述camera hal反馈的上述时间戳参数即为第二配置,从而进程A基于该第二配置使用摄像头的音视频录制功能时,不会出现合成的音视频数据的显示时长与真实时长不一致的问题。
综上,采用本申请实施例提供的方法,可以使得未安装陀螺仪传感器的Android12版本以上的Android设备跳过Google ITS测试中关于摄像头与陀螺仪传感器融合度的测试项目,且不影响电子设备相机应用程序中音视频录制功能的正常使用。
需要说明的,上述实施例1中图5所示的方案也同样适用于实施例2,可以在图6所示的方案中组合实施图5所示的方案。
可理解的,本文提供的测试方法可以作为一个软件测试模块集成到电子设备中(例如电子设备的camera hal中)。示例性的,也可以对本文提供的测试方法的时机做进一步的限定,例如可以在执行完关于ITS的测试任务后关闭该软件测试模块(也即限制该软件测试模块的运行)。例如,一般在Google XTS测试场景(也可以理解为Google ITS测试场景)中存在ITS测试需求,且进行ITS测试时电子设备中需要安装有ITS测试对应的apk。基于此,电子设备可以在确定安装有ITS测试对应的apk时,则启用该软件测试功能模块;在确定电子设备中未安装有该ITS测试对应的apk时,则关闭该软件测试功能模块。从而,在确定应用场景为ITS测试场景时,再启用该软件测试模块,而不是一直启用本申请的该软件测试模块,改善电子设备在投入市场使用后由于一直启用该软件测试模块给电子设备带来负载过大的问题。
可理解的,基于具体需求,电子设备也可以一直启用上述软件测试功能模块,本文对此不做限定。
实施例3:
以下基于实施例1和实施例2所描述的测试方法,结合图6,详细描述本申请提供的又一种测试方法。
如图7所示,该测试方法包括如下步骤:
S701,获取第一进程,并确定该第一进程是否为成像测试套件ITS应用程序对应的进程。
S702,在确定第一进程为ITS应用程序对应的进程、且电子设备中未安装有陀螺仪传感器的情况下,将时间戳信息设置为第一配置,并基于第一配置执行与该第一进程对应的ITS测试进程。
可理解的,若上述第一进程为ITS应用程序对应的进程,则表示该第一进程即为ITS测试进程,从而在将时间戳信息设置为上述第一配置后,电子设备基于该第一配置执行该ITS测试进程(也即第一进程)。
在本申请实施例中,上述时间戳信息用于指示电子设备录制视频得到的视频数据的起始时刻,将时间戳信息设置为上述第一配置用于表示在执行ITS测试进程的过程中跳过关于摄像头与陀螺仪传感器融合度的测试项目(sensor_fission测试项目)。
上述时间戳的取值可以包括第一配置和第二配置。当时间戳取值为第一配置时,电子设备录制视频得到的一段视频数据的起始时刻为电子设备的开机时长(例如电子设备的开机时长为5min,则视频数据的起始时刻为5min),且当时间戳取值为该第一配置时,电子设备执行ITS测试进程时会跳过(也即不会执行)sensor_fission测试项目。当时间戳取值为第二配置时,电子设备录制视频得到的一段视频数据的起始时刻为0,且当时间戳取值为该第二配置时,电子设备执行ITS测试进程时不会跳过(也即会执行)sensor_fission测试项目,关于该第一配置、该第二配置的详细说明可以参照本文其他实施例的相关说明,在此不再详述。
在本申请实施例中,上述第一进程、以及在确定该第一进程为ITS应用程序对应的进程时将时间戳信息设置为第一配置,可以有以下两种情况:
情况1:
上述第一进程为电子设备中任意一个应用程序对应的进程。示例性的,电子设备在接收到运行应用程序(例如运行app1)的指令后,为该app1分配对应的进程以响应关于该app1的运行指令。且电子设备为app1分配上述第一进程之后,确定该第一进程是否为ITS应用程序对应的进程(ITS测试进程)。以及,在确定该第一进程为ITS应用程序对应的进程的情况下,电子设备控制camera hal将时间戳信息更新为第一配置。关于具体如何确定该第一进程是否为ITS应用程序对应的进程可以参照实施例1步骤S402中方式2和方式3中的相关说明,在此不再详述。可理解的,若上述第一进程为ITS测试进程,为使得时间戳信息在电子设备执行ITS测试进程中的sensor_fission测试项目之前完成更新配置,电子设备可以在为该app1分配上述第一进程之后,执行确定第一进程是否为ITS测试进程的任务时,将该第一进程的挂起(也可以理解为暂停该第一进程的运行但不销毁该第一进程),在电子设备确定完成了关于时间戳参数的配置之后再继续正常执行该第一进程。
或者,在另外一种可能的实现方式中,电子设备也可以在接收到运行应用程序(例如运行app1)的指令之后,为app1分配上述第一进程之前,先确定该运行app1的指令是否用于指示运行ITS应用程序,以确定该第一进程是否为ITS应用程序对应的进程;以及,在确定该运行app1的指令用于指示运行ITS应用程序确定该第一进程为ITS测试进程的情况下,控制camera hal将时间戳信息更新为第一配置之后,为该app1分配上述第一进程,从而可以确保上述时间戳信息在电子设备执行ITS测试进程中的sensor_fission测试项目之前已完成更新配置。
情况2:
上述第一进程发起第一接口调用请求的进程,该第一接口调用请求用于请求访问至少一个目标接口,该目标接口为电子设备的相机硬件抽象层(camera hal)的接口。示例性的,camera hal在检测到第一接口调用请求后,确定发起该第一接口调用请求的进程为上述第一进程。并在确定该第一进程为ITS测试进程的情况下,更新上述时间戳信息为第一配置,基于该第一配置运行该第一进程。
可理解的,ITS测试进程中的sensor_fashion测试项目必须使用摄像机采集图片或视频。若该第一进程为ITS测试进程,则该第一进程在使用摄像机执行sensor_fashion测试项目之前,需要先向底层camera hal发送上述第一接口调用请求。camera hal接收到该第一接口调用请求后,可以根据该第一进程是否为ITS测试进程确定更新对应的时间戳信息,例如基于该第一进程为ITS测试进程确定将时间戳信息更新为上述第一配置;camerahal在完成该时间戳信息的配置后基于该时间戳配置(第一配置)响应第一进程发送的上述第一接口调用请求,而后第一进程可以基于该第一配置跳过关于ITS测试进程中的sensor_fashion测试项目。也就是说,时间戳信息一定是在电子设备执行ITS测试进程中的sensor_fission测试项目之前完成更新配置,不会存在ITS测试进程已开始执行sensor_fashion测试项目,电子设备才基于上述第一接口调用请求确定上述第一进程是否为ITS测试进程,导致出现代码执行逻辑错误,无法准确跳过ITS测试中的sensor_fashion测试项目的问题。
由此,针对Android 12以上的未安装陀螺仪传感器的电子设备,当第一进程为ITS测试进程,也即Android电子设备需要使用摄像头执行ITS测试进程时,时间戳参数会设置为第一配置,则电子设备可以跳过ITS测试中的跳过摄像头与陀螺仪传感器融合度的测试项目,解决Android 12以上的Google ITS测试项目中对于未安装陀螺仪传感器仍进行sensor_fusion测试的不合理性给未安装陀螺仪传感器的Android设备的送检和发布带来的不合理阻碍的问题。
可理解的,上述“在确定第一进程为ITS应用程序对应的进程、且电子设备中未安装有陀螺仪传感器的情况下,将时间戳信息设置为第一配置”中的“电子设备中未安装有陀螺仪传感器”的条件可以理解为场景条件状态限定,电子设备可以执行确定电子设备中是否安装有陀螺仪传感器的判断步骤,也可以不执行确定电子设备中是否安装有陀螺仪传感器的判断步骤。例如,若对电子设备进行ITS测试的用户(程序设计者)已提前知晓该电子设备为Android 12版本以上的未安装陀螺仪传感器的设备,则程序设计者可以将代码设计为不需要电子设备执行确定电子设备中是否安装有陀螺仪传感器的任务,而是直接根据第一进程是否为ITS测试进程配置对应的时间戳信息。
在一种可能的实现方式中,上述获取第一进程具体包括:在检测到第一接口调用请求后,确定发起第一接口调用请求的进程为第一进程,该第一接口调用请求用于请求访问至少一个目标接口,该目标接口为电子设备的相机的硬件抽象层的接口。也即对应上述情况2中的相关描述。
在一种可能的实现方式中,上述方法还包括:在确定第一进程不为所述ITS应用程序对应的进程的情况下,将所述时间戳信息设置为第二配置,并基于第二配置执行该第一进程,将时间戳信息设置为第二配置用于表示所述电子设备录制视频得到的视频数据的起始时刻为0。
例如,上述第一进程为微信应用程序对应的进程,且该微信应用程序对应的进程基于camera框架层和IPC通信机制向camera hal发送上述第一接口调用请求,表示该微信应用程序需要访问电子设备的相机功能进行视频录制,则camera hal接收到该第一接口调用请求后将该时间戳信息设置为第二配置,以避免录制视频得到的视频数据的起始时刻为电子设备的开机时长。
在一种可能的实现方式中,上述在检测到第一接口调用请求后,确定发起第一接口调用请求的进程为第一进程,具体包括:在确定电子设备中安装有ITS应用程序、且检测到第一接口调用请求的情况下,确定发起第一接口调用请求的进程为第一进程。可理解的,在确定电子设备中安装有ITS应用程序的情况下,才有可能在接收到第一接口调用请求时,确定上述第一进程以及根据第一进程是否为ITS测试进程而更新时间戳信息。
也就是说,在确定应用场景为ITS测试场景时,再启用该软件测试模块,而不是一直启用本申请的该软件测试模块,从而可以改善电子设备在投入市场使用后由于一直启用该软件测试模块给电子设备带来负载过大的问题。
在一种可能的实现方式中,上述确定发起第一接口调用请求的进程为第一进程具体包括:获取进程标识,进程标识为发起第一接口调用请求的上述第一进程的标识;上述确定第一进程是否为成像测试套件ITS应用程序对应的进程具体包括:基于进程标识确定第一进程是否为ITS应用程序对应的进程。具体如何基于该标识信息确定第一进程是否为ITS测试进程,可以参照实施例1的S402中关于具体如何根据上述第一进程标识确定上述第一进程标识对应的进程是否为ITS测试进程的相关说明,在此不再详述。
在一种可能的实现方式中,上述将时间戳信息设置为第一配置包括:确定上述时间戳信息的取值是否为第一配置;在确定所述时间戳信息的取值为第一配置的情况下,保持时间戳信息的取值不变;在确定时间戳信息的取值不为第一配置的情况下,将时间戳信息的取值修改为(更新为)上述第一配置。
可理解的,在配置了高通相机处理器芯片的Android设备中,为满足用户对于电子设备相机录制功能的基本需求,上述时间戳信息一般默认配置为上述第二配置。当上述第一进程为ITS测试进程、且上述时间戳信息设置为第二配置时,上述将时间戳信息设置为第一配置即为将该时间戳信息修改为上述第一配置(也可以理解为);当上述第一进程为ITS测试进程、且上述时间戳信息设置为第一配置时,上述将时间戳信息设置为第一配置即为保持该时间戳信息的取值不变。
在一种可能的实现方式中,上述将时间戳信息设置为第二配置包括:确定上述时间戳信息的取值是否为第二配置;在确定所述时间戳信息的取值为第二配置的情况下,保持时间戳信息的取值不变;在确定时间戳信息的取值不为第二配置的情况下,将时间戳信息的取值修改为(更新为)上述第二配置。
示例性的,请参阅图8,图8为本申请实施例提供的电子设备100的结构示意图,下面通过移动终端作为该电子设备的一个示例进行详细的描述。
电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,传感器模块180,按键190,摄像头191,显示屏192,以及用户标识模块(subscriber identification module,SIM)卡接口193等。其中传感器模块180可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
在本申请实施例中,处理器110还可以包括相机处理器芯片。示例性的,由该相机处理器芯片控制电子设备中的camera hal配合执行本申请相关实施例提供的方法,或由该相机处理器芯片控制电子设备中的camera hal、camera驱动、光电转换传感器sensor硬件配合执行本申请相关实施例提供的方法。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏192显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备100通过GPU,显示屏192,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏192和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏192用于显示图像,视频等。显示屏192包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏192,N为大于1的正整数。
电子设备100可以通过ISP,摄像头191,视频编解码器,GPU,显示屏192以及应用处理器等实现拍摄功能。
ISP用于处理摄像头191反馈的数据。例如,拍照时,打开快门缝,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头191中。
摄像头191用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头191,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
图9是本申请实施例的电子设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将系统分为四层,从上至下分别为应用程序层,应用程序框架层,运行时(Runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图9所示,应用程序包可以包括摄像头,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序(也可以称为应用(application,App))。
本申请实施例中,该应用程序层还可以包括测试模块,该测试模块用于执行本申请实施例中的测试方法。
在本申请的一些实施例中,该测试模块也可以位于该软件构架的其他层级中,例如应用程序框架层、系统库、内核层等,此处不作限定。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图9所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。视图系统包括可视控件,例如显示文字的控件,显示图像的控件等。视图系统可用于构建应用程序。电话管理器用于提供电子设备100的通信功能。资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图像,布局文件,视频文件等等。通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。
运行时(Runtime)包括核心库和虚拟机。Runtime负责系统的调度和管理。
核心库包含两部分:一部分是编程语言(例如,jave语言)需要调用的功能函数,另一部分是系统的核心库。
应用程序层和应用程序框架层可以运行在虚拟机中。虚拟机可以将应用程序层和应用程序框架层的编程文件(例如,jave文件)执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),二维图形引擎(例如:SGL)等。
内核层是硬件和软件之间的层。内核层可以包含显示驱动,摄像头驱动,音频驱动,传感器驱动,虚拟卡驱动等。
上述实施例中所用,根据上下文,术语“当…时”可以被解释为意思是“如果…”或“在…后”或“响应于确定…”或“响应于检测到…”。类似地,根据上下文,短语“在确定…时”或“如果检测到(所陈述的条件或事件)”可以被解释为意思是“如果确定…”或“响应于确定…”或“在检测到(所陈述的条件或事件)时”或“响应于检测到(所陈述的条件或事件)”。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘)等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (11)

1.一种测试方法,其特征在于,应用于电子设备,所述方法包括:
获取第一进程,并确定所述第一进程是否为成像测试套件ITS应用程序对应的进程;
在确定所述第一进程为所述ITS应用程序对应的进程、且所述电子设备中未安装有陀螺仪传感器的情况下,将时间戳信息设置为第一配置,并基于所述第一配置执行与所述第一进程对应的ITS测试进程;所述时间戳信息用于指示所述电子设备录制视频得到的视频数据的起始时刻,将所述时间戳信息设置为所述第一配置用于表示在执行所述ITS测试进程的过程中跳过关于摄像头与陀螺仪传感器融合度的测试项目。
2.根据权利要求1所述的方法,其特征在于,所述获取第一进程包括:
在检测到第一接口调用请求后,确定发起所述第一接口调用请求的进程为所述第一进程,所述第一接口调用请求用于请求访问至少一个目标接口,所述目标接口为所述电子设备的相机硬件抽象层的接口。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在确定所述第一进程不为所述ITS应用程序对应的进程的情况下,将所述时间戳信息设置为第二配置,并基于所述第二配置执行所述第一进程,将所述时间戳信息设置为所述第二配置用于表示所述电子设备录制视频得到的视频数据的起始时刻为0。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
在确定所述第一进程为所述ITS应用程序对应的进程、且所述电子设备中安装有陀螺仪传感器的情况下,将所述时间戳信息设置为第二配置,并基于所述第二配置执行所述ITS测试进程,将所述时间戳信息设置为所述第二配置用于表示所述电子设备录制视频得到的视频数据的起始时刻为0。
5.根据权利要求2所述的方法,其特征在于,所述在检测到第一接口调用请求后,确定发起所述第一接口调用请求的进程为所述第一进程,包括:
在确定所述电子设备中安装有所述ITS应用程序、且检测到所述第一接口调用请求的情况下,确定发起所述第一接口调用请求的进程为所述第一进程。
6.根据权利要求5所述的方法,其特征在于,所述确定发起所述第一接口调用请求的进程为所述第一进程包括:
获取进程标识,所述进程标识为发起所述第一接口调用请求的所述第一进程的标识;
所述确定所述第一进程是否为成像测试套件ITS应用程序对应的进程包括:
基于所述进程标识确定所述第一进程是否为所述ITS应用程序对应的进程。
7.根据权利要求6所述的方法,其特征在于,所述进程标识为应用程序的包名,所述基于所述进程标识确定所述第一进程是否为所述ITS应用程序对应的进程包括:
确定所述进程标识中是否包含目标字段,所述目标字段用于表示应用程序的包名为所述ITS应用程序;
在确定所述进程标识中包含所述目标字段的情况下,确定所述第一进程为所述ITS应用程序对应的进程;
在确定所述进程标识中不包含所述目标字段的情况下,确定所述第一进程不为所述ITS应用程序对应的进程。
8.根据权利要求6所述的方法,其特征在于,所述第一进程标识为进程号,所述电子设备中存储有进程号与应用程序之间的第一关联关系表,所述基于所述进程标识确定所述第一进程是否为所述ITS应用程序对应的进程包括:
基于所述进程标识和所述第一关联关系表确定所述第一进程是否为所述ITS应用程序对应的进程;
在基于所述第一关联关系表确定与所述进程标识对应的应用程序为所述ITS应用程序的情况下,确定所述第一进程为所述ITS应用程序对应的进程;
在基于所述第一关联关系表确定与所述进程标识对应的应用程序不为所述ITS应用程序的情况下,确定所述第一进程不为所述ITS应用程序对应的进程。
9.一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器、存储器和显示屏;
所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行如权利要求1至8任一项所述的方法。
10.一种芯片系统,其特征在于,所述芯片系统应用于电子设备,所述芯片系统包括一个或多个处理器,所述处理器用于调用计算机指令以使得所述电子设备执行如权利要求1至8中任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括指令,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1至8中任一项所述的方法。
CN202210848724.6A 2022-07-19 2022-07-19 一种测试方法及电子设备 Active CN116048955B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210848724.6A CN116048955B (zh) 2022-07-19 2022-07-19 一种测试方法及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210848724.6A CN116048955B (zh) 2022-07-19 2022-07-19 一种测试方法及电子设备

Publications (2)

Publication Number Publication Date
CN116048955A true CN116048955A (zh) 2023-05-02
CN116048955B CN116048955B (zh) 2023-10-20

Family

ID=86117172

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210848724.6A Active CN116048955B (zh) 2022-07-19 2022-07-19 一种测试方法及电子设备

Country Status (1)

Country Link
CN (1) CN116048955B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116955208A (zh) * 2023-09-18 2023-10-27 荣耀终端有限公司 测试方法、终端设备、芯片及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150281567A1 (en) * 2014-03-27 2015-10-01 Htc Corporation Camera device, video auto-tagging method and non-transitory computer readable medium thereof
CN109194436A (zh) * 2018-11-01 2019-01-11 百度在线网络技术(北京)有限公司 传感器时间戳同步测试方法、装置、设备、介质及车辆
WO2019080748A1 (zh) * 2017-10-25 2019-05-02 深圳岚锋创视网络科技有限公司 一种全景视频防抖的方法、装置及便携式终端
CN112526893A (zh) * 2020-10-30 2021-03-19 长安大学 一种智能汽车的测试系统
WO2021102893A1 (zh) * 2019-11-29 2021-06-03 Oppo广东移动通信有限公司 视频防抖优化处理方法和装置、电子设备
CN113705389A (zh) * 2021-08-13 2021-11-26 北京市商汤科技开发有限公司 人脸识别模组测试方法、装置、存储介质及电子设备
CN114371985A (zh) * 2020-10-15 2022-04-19 华为技术有限公司 自动化测试方法、电子设备及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150281567A1 (en) * 2014-03-27 2015-10-01 Htc Corporation Camera device, video auto-tagging method and non-transitory computer readable medium thereof
WO2019080748A1 (zh) * 2017-10-25 2019-05-02 深圳岚锋创视网络科技有限公司 一种全景视频防抖的方法、装置及便携式终端
CN109194436A (zh) * 2018-11-01 2019-01-11 百度在线网络技术(北京)有限公司 传感器时间戳同步测试方法、装置、设备、介质及车辆
WO2021102893A1 (zh) * 2019-11-29 2021-06-03 Oppo广东移动通信有限公司 视频防抖优化处理方法和装置、电子设备
CN114371985A (zh) * 2020-10-15 2022-04-19 华为技术有限公司 自动化测试方法、电子设备及存储介质
CN112526893A (zh) * 2020-10-30 2021-03-19 长安大学 一种智能汽车的测试系统
CN113705389A (zh) * 2021-08-13 2021-11-26 北京市商汤科技开发有限公司 人脸识别模组测试方法、装置、存储介质及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116955208A (zh) * 2023-09-18 2023-10-27 荣耀终端有限公司 测试方法、终端设备、芯片及存储介质
CN116955208B (zh) * 2023-09-18 2024-03-15 荣耀终端有限公司 测试方法、终端设备、芯片及存储介质

Also Published As

Publication number Publication date
CN116048955B (zh) 2023-10-20

Similar Documents

Publication Publication Date Title
US11947974B2 (en) Application start method and electronic device
WO2021042978A1 (zh) 一种主题切换方法以及主题切换装置
WO2021027630A9 (zh) 补丁方法、相关装置及系统
CN113691842B (zh) 一种跨设备的内容投射方法及电子设备
CN114040242B (zh) 投屏方法、电子设备和存储介质
CN116360725B (zh) 显示交互系统、显示方法及设备
WO2021073337A1 (zh) 安装插件的方法、装置和存储介质
CN116048955B (zh) 一种测试方法及电子设备
CN114498028B (zh) 数据传输方法、装置、设备及存储介质
CN113703894A (zh) 通知消息的显示方法和显示装置
CN113656089B (zh) 应用程序中的类验证方法和装置
US20230273872A1 (en) Application debuging method and electronic device
CN115185652B (zh) 应用优化方法、装置以及电子设备
CN116795435A (zh) 兼容性管控方法及相关设备
CN115686182A (zh) 增强现实视频的处理方法与电子设备
CN115599565A (zh) 发送剪贴板数据的方法和装置
WO2024083114A1 (zh) 一种软件分发方法、电子设备及系统
CN116723415B (zh) 缩略图生成的方法及终端设备
WO2022161058A1 (zh) 一种全景图像的拍摄方法及电子设备
CN115482143B (zh) 应用的图像数据调用方法、系统、电子设备及存储介质
CN116662150B (zh) 应用启动耗时检测方法及相关装置
CN114168115B (zh) 通信系统、应用下载方法及设备
US20240184504A1 (en) Screen projection method and system, and related apparatus
CN117707562A (zh) 参数更新方法和终端设备
CN117689796A (zh) 一种渲染处理方法及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant