测试Android系统HAL层API的方法及系统技术方案

技术编号:9568892 阅读:164 留言:0更新日期:2014-01-16 02:29
本发明专利技术公开测试Android系统HAL层API的方法及系统,其中,包括步骤:在Android源码中设置一用于生成测试程序的源代码文件和用于配置所述源代码文件的配置文件;根据所述配置文件控制所述代码源文件生成Android系统下可直接执行的测试程序;所述测试程序按照预设的方式调用硬件设备对应的HAL层so库中的API接口进行测试;将测试结果输出并保存。本发明专利技术通过生成可直接执行的测试程序,通过该测试程序来对Android系统HAL层进行测试,节约了大量测试时间,并且能快速、准确的判断HAL层每个API接口的实现情况,在测试完毕后,还将测试结果以直观的方式输出并保存,方便回查比对。

【技术实现步骤摘要】
【专利摘要】本专利技术公开测试Android系统HAL层API的方法及系统,其中,包括步骤:在Android源码中设置一用于生成测试程序的源代码文件和用于配置所述源代码文件的配置文件;根据所述配置文件控制所述代码源文件生成Android系统下可直接执行的测试程序;所述测试程序按照预设的方式调用硬件设备对应的HAL层so库中的API接口进行测试;将测试结果输出并保存。本专利技术通过生成可直接执行的测试程序,通过该测试程序来对Android系统HAL层进行测试,节约了大量测试时间,并且能快速、准确的判断HAL层每个API接口的实现情况,在测试完毕后,还将测试结果以直观的方式输出并保存,方便回查比对。【专利说明】测试Andro i d系统HAL层API的方法及系统
本专利技术涉及软件领域,尤其涉及一种测试Android系统HAL层API的方法及系统。
技术介绍
由于Android系统具有突出的易用性和开源性,越来越多的电子设备厂商选择采用Android系统作为其操作系统,手机、PAD、甚至是电视,都已经加入了 Android系统的阵告口 ο但由于各个厂商所选用的硬件设备不同,想要Android系统能顺利运行在自己的硬件平台上,就需要针对Android系统的HAL层(Hardware Abstraction Layer,即硬件抽象层)做定制开发来匹配自己的底层硬件,此过程需要在HAL层开发过程中或者开发结束后快速有效的对其测试,来检验HAL层所提供的APKApplication Programming Interface,应用程序编程接口)是否正常匹配了底层硬件。一般而言,用户在使用Android系统的时候,直接接触的是各种丰富的应用程序(Application,简称APP),当用户点击一个APP而打开并使用的时候,Android系统的工作流程为:APP基于Android底层运行,然后调用本地服务,然后调用HAL动态库,加载各种so后缀文件,然后调用系统内核,最后打开相应的硬件设备;在上述流程中,我们要重点关心的是HAL动态库的调用环节,此处涉及到的就是Android系统移植过程中所要开发的HAL层,也是本专利技术中所要验证的一块。通常情况下,针对不同硬件设备开发的HAL层会在系统编译的最后生成XXX.SO的文件(其中XXX表示不同的厂商标识),并将被置于/system/lib/hw目录下,供系统动态调用。例如,音频设备相关的so文件可能为,摄像头设备相关的so文件可能为,GPS设备相关的SO文件可能为,API即各个SO文件中包含的可供上层调用的接口函数,比如audi0.primary, xxx.so 中会包含下列 API:get_supported_devices, init_check, set_voice_volume 等等。在Android系统中,为了测试音频设备相关的HAL层API(包含于audio, primary,xxx.SO中)是否正确的实现了预想的功能,最直观的方式是通过使用相关的APP来测试。比如使用音乐播放器,如果能正常的听到声音,能正常录音,那么基本可以确定待测试的audio相关的HAL层API是正确的实现了其功能的。同理,其他设备,比如camera, gps,sensor等也可以这样测试。但是这种测试方法在测试到APP不能实现正常的功能时,就不能准确定位是哪里出错了,例如在使用音乐播放器测试时,发现不能正常听到声音,在音乐播放器使用过程的众多环节中,问题有可能出在APP本身、runtime阶段或者Native Service层,上述测试方法并不能准确判断是哪里出了问题,并且,这种测试方法不能保证一个APP就能测试到HAL层提供的所有API。因此,现有技术还有待于改进和发展。
技术实现思路
鉴于上述现有技术的不足,本专利技术的目的在于提供测试Android系统HAL层API的方法及系统,旨在解决现有技术中HAL层测试不能准确定位、不能测试预定API的问题。本专利技术的技术方案如下: 一种测试Android系统HAL层API的方法,其中,包括步骤: A、在Android源码中设置一用于生成测试程序的源代码文件和用于配置所述源代码文件的配置文件; B、根据所述配置文件控制所述代码源文件生成Android系统下可直接执行的测试程序; C、所述测试程序按照预设的方式调用硬件设备对应的HAL层so库中的API接口进行测试; D、将测试结果输出并保存。所述测试Android系统HAL层API的方法,其中,所述步骤B具体包括: B1、在Android源码下将所述源代码文件编译为中间文件; B2、根据配置文件控制所述中间文件在Android源码指定路径下生成所述测试程序。所述测试Android系统HAL层API的方法,其中,所述步骤C具体包括: Cl、根据测试程序中不同硬件设备的编号加载相应的HAL层SO库; C2、打开并初始化对应的硬件设备; C3、按照预设的方式调用所述硬件设备对应的HAL层so库中的API接口进行测试。所述测试Android系统HAL层API的方法,其中,所述步骤D具体包括: D1、在Android系统中创建一测试结果输出文件; D2、利用fprintf函数将测试结果输出至所述测试结果输出文件,并保存所述测试结果输出文件。一种测试Android系统HAL层API的系统,其中,包括: 文件设置模块,用于在Android源码中设置一用于生成测试程序的源代码文件和用于配置所述源代码文件的配置文件; 测试程序生成模块,用于根据所述配置文件控制所述代码源文件生成Android系统下可直接执行的测试程序; API接口测试模块,用于按照预设的方式调用硬件设备对应的HAL层so库中的API接口进行测试; 测试结果输出模块,用于将测试结果输出并保存。所述测试Android系统HAL层API的系统,其中,所述测试程序生成模块包括: 编译单元,用于在Android源码下将所述源代码文件编译为中间文件; 生成单元,用于根据配置文件控制所述中间文件在Android源码指定路径下生成所述测试程序。所述测试Android系统HAL层API的系统,其中,所述API接口测试模块包括: 加载单元,用于根据测试程序中不同硬件设备的编号加载相应的HAL层so库; 打开单元,用于打开并初始化对应的硬件设备; 测试单元,用于按照预设的方式调用所述硬件设备对应的HAL层so库中的API接口进行测试。所述测试Android系统HAL层API的系统,其中,所述测试结果输出模块包括: 创建单元,用于在Android系统中创建一测试结果输出文件; 输出单元,用于利用fprintf函数将测试结果输出至所述测试结果输出文件,并保存所述测试结果输出文件。有益效果:本专利技术通过生成可直接执行的测试程序,通过该测试程序来对Android系统HAL层进行测试,节约了大量测试时间,并且能快速、准确的判断HAL层每个API接口的实现情况,在测试完毕后,还将测试结果以直观的方式输出并保存,方便回查比对。【专利附图】【附图说明】图1为本专利技术测试Android系统HAL层API的方法较佳实施例的流程图。图2为图本文档来自技高网
...

【技术保护点】
一种测试Android系统HAL层API的方法,其特征在于,包括步骤:A、在Android源码中设置一用于生成测试程序的源代码文件和用于配置所述源代码文件的配置文件;?B、根据所述配置文件控制所述代码源文件生成Android系统下可直接执行的测试程序;C、所述测试程序按照预设的方式调用硬件设备对应的HAL层so库中的API接口进行测试;D、将测试结果输出并保存。

【技术特征摘要】

【专利技术属性】
技术研发人员:齐珂
申请(专利权)人:TCL集团股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1