调用硬件接口的方法及电子设备与流程

文档序号:23628436发布日期:2021-01-12 10:42阅读:225来源:国知局
调用硬件接口的方法及电子设备与流程

本申请涉及电子设备领域,并且更具体地,涉及一种调用硬件接口的方法及电子设备。



背景技术:

市场上常见的电子设备有手机、平板电脑、手表、电视、汽车上的人机交互装置等,且不同的电子设备的生产厂家可以不同,因此不同的电子设备的硬件接口可以不同。运行应用时需要调用电子设备上的硬件接口。例如运行视频播放程序时需要调用电子设备上的显示屏的接口和麦克风的接口。由于不同的设备的硬件接口可以不同,为了可以在多种电子设备上运行应用,并成功调用相关的硬件接口,应用开发公司至少需要设计两款应用,才能实现应用成功运行在硬件接口不同的两个设备上。例如,应用开发公司需要针对手机和手表分别设计两款应用。而市场上主流硬件接口的数量繁多,应用公司需要针对多种硬件接口分别设计多种不同的应用,无疑会加重应用开发人员的负担。



技术实现要素:

本申请提供一种调用硬件接口的方法及电子设备,目的在于便利应用开发人员开发应用程序。

第一方面,提供了一种调用硬件接口的方法,包括:读取第一应用的代码中的第一指示信息,所述第一指示信息用于指示第一硬件接口集合的相关信息,所述第一硬件接口集合包括多个电子设备的硬件接口,所述第一硬件接口集合中的任意两个硬件接口的类型相同,或者,所述第一硬件接口集合中的任意两个硬件接口的部分或全部功能相同;根据所述第一指示信息,从所述第一硬件接口集合中确定电子设备所具有的至少一个第一硬件接口;调用所述至少一个第一硬件接口。

在本申请中,第一应用例如可以是通话应用、视频播放应用、音频播放应用、安全应用、地图导航应用、文件传输应用、拍摄应用等。第一应用还可以包括音乐播放、视频播放、阅读应用、应用市场、图库、日历、通话、地图、导航等。本申请对第一应用的具体类型不作限定。

第一硬件接口集合包括多个电子设备的硬件接口,该多个电子设备的类型例如可以包括手机、平板电脑、智能手表、视频播放器、膝上型计算机(laptop)、台式计算机、电视、笔记本电脑中的至少两个。

硬件接口的类型可以包括:移动通信接口、屏幕显示接口、扬声器接口、耳机接口、指纹识别接口、定位接口、无线通信接口、拍摄接口等中的一个或多个。

硬件接口的功能可以包括:语音通话功能、在屏幕上显示图像的功能、声音播放功能、指纹识别功能、定位功能、数据传输功能、捕捉电子设备周围场景的功能等中的一个或多个。

在本申请实施例中,第一应用通过第一指示信息指示第一硬件接口集合,该电子设备可以根据其自身参数(如版本号、电子设备类型等信息)确认该第一应用实际应当调用的真实硬件接口参数。因此,第一应用无需预先获知执行该第一应用的电子设备所具有的真实硬件接口。并且,该第一应用在指示第一硬件接口集合的情况下,该第一应用可以在多个电子设备上被执行。所以本申请实施例提供的方法可以降低应用开发人员的负担。

结合第一方面,在第一方面的某些实现方式中,第一指示信息包括指示第二硬件接口的信息,且所述电子设备不具有所述第二硬件接口,在所述根据所述第一指示信息,从所述第一硬件接口集合中确定电子设备所具有的至少一个第一硬件接口之前,所述方法还包括:根据所述第一指示信息,将所述第二硬件接口所属于的硬件接口集合确定为所述第一硬件接口集合。

在本申请实施例中,第一指示信息可以指示其他电子设备所具有的硬件接口,因此,根据该其他电子设备所具有的硬件接口的功能或类型,执行该第一应用的电子设备可以确定具有相同或相似功能或类型的硬件接口,因此原本被特殊地应用在一个特定电子设备的第一应用可以跨设备地被应用在多个电子设备上。

结合第一方面,在第一方面的某些实现方式中,所述第一指示信息包括指示所述第一应用需要调用的硬件接口的第一功能的信息,在所述根据所述第一指示信息,从所述第一硬件接口集合中确定电子设备所具有的至少一个第一硬件接口之前,所述方法还包括:根据所述第一指示信息,将与所述第一功能匹配的硬件接口集合确定为所述第一硬件接口集合。

在本申请实施例中,第一指示信息可以指示需要调用的硬件接口的功能;根据该功能,电子设备可以确定与该功能匹配的第一硬件接口集合。开发该第一应用的应用开发人员也只需要了解硬件接口代码的功能,无需针对特定的电子设备开发应用程序,因此可以降低应用开发人员的负担。

结合第一方面,在第一方面的某些实现方式中,第一指示信息包括指示所述第一应用需要调用的硬件接口的第一类型的信息,在所述根据所述第一指示信息,从所述第一硬件接口集合中确定电子设备所具有的至少一个第一硬件接口之前,所述方法还包括:根据所述第一指示信息,将与所述第一类型匹配的硬件接口集合确定为所述第一硬件接口集合。

在本申请实施例中,第一指示信息可以指示需要调用的硬件接口的类型;根据该类型,电子设备可以确定与该类型匹配的第一硬件接口集合。开发该第一应用的应用开发人员也只需要了解硬件接口代码的类型,无需针对特定的电子设备开发应用程序,因此可以降低应用开发人员的负担。

结合第一方面,在第一方面的某些实现方式中,所述方法还包括:读取第二应用的代码中的第二指示信息,所述第二指示信息用于指示第二硬件接口集合的相关信息;在所述电子设备不具有所述第二硬件接口集合中的任一硬件接口的情况下,调用预设的目标接口。

预设的目标接口,可以是虚拟接口或是物理接口。

在本申请实施例中,由于电子设备可以调用目标接口,因此不会得到电子设备无法调用硬件接口的调用反馈结果,也就不会导致第二应用运行失败(如第二应用运行崩溃或无限次的循环错误)。

结合第一方面,在第一方面的某些实现方式中,所述方法还包括:读取第二应用的代码中的第二指示信息,所述第二指示信息用于指示第二硬件接口集合的相关信息;在所述电子设备不具有所述第二硬件接口集合中的任一硬件接口的情况下,呈现告警信息。

可选的,所述呈现告警信息,包括呈现与第二硬件接口集合的类型或功能匹配的告警信息。

在本申请实施例中,由于第二指示信息指示第二硬件接口集合,因此电子设备可以获知该第一应用需要调用的硬件接口的类型或功能,而该告警信息与该硬件接口的类型或功能对应,从而可以为使用该第二应用的用户提供更加准确的硬件接口报错信息。

结合第一方面,在第一方面的某些实现方式中,所述根据所述第一指示信息,从所述第一硬件接口集合中确定电子设备所具有的至少一个第一硬件接口,包括:根据所述电子设备的类型以及所述第一指示信息,从所述第一硬件接口集合中确定所述至少一个第一硬件接口。

在本申请实施例中,由于不同电子设备所具有的硬件接口不同,在电子设备类型较多时,根据电子设备类型确定硬件接口,可以提高调用硬件接口的效率。

结合第一方面,在第一方面的某些实现方式中,所述第一指示信息还包括指示所述第一应用需要调用的接口的版本号的信息。

在本申请实施例中,由于不同的硬件接口的版本号可能不同,在硬件接口的版本号较多时,根据硬件接口的版本号确定硬件接口,可以提高调用硬件接口的效率。

第二方面,提供了一种调用硬件接口的方法,包括:读取第三应用的代码中的第三指示信息,所述第三指示信息用于指示所述第三应用需要调用的硬件接口的功能或类型;根据电子设备的类型以及所述第三指示信息,从多个硬件接口中确定所述电子设备所具有的至少一个第三硬件接口,所述多个硬件接口包括多个电子设备所具有的硬件接口;调用所述至少一个第三硬件接口。

在本申请中,第三应用例如可以是通话应用、视频播放应用、音频播放应用、安全应用、地图导航应用、文件传输应用、拍摄应用等。第三应用还可以包括音乐播放、视频播放、阅读应用、应用市场、图库、日历、通话、地图、导航等。本申请对第三应用的具体类型不作限定。

第三硬件接口集合包括多个电子设备的硬件接口,该多个电子设备的类型例如可以包括手机、平板电脑、智能手表、视频播放器、膝上型计算机(laptop)、台式计算机、电视、笔记本电脑中的至少两个。

硬件接口的类型可以包括:移动通信接口、屏幕显示接口、扬声器接口、耳机接口、指纹识别接口、定位接口、无线通信接口、拍摄接口等中的一个或多个。

硬件接口的功能可以包括:语音通话功能、在屏幕上显示图像的功能、声音播放功能、指纹识别功能、定位功能、数据传输功能、捕捉电子设备周围场景的功能等中的一个或多个。

在本申请实施例中,第三应用通过第三指示信息指示需要调用的硬件接口的类型或功能,该电子设备可以根据其自身参数(如版本号、电子设备类型等信息)确认该第三应用实际应当调用的真实硬件接口参数。因此,第三应用无需预先获知执行该第三应用的电子设备所具有的真实硬件接口。并且,该第三应用在指示需要调用的硬件接口的类型或功能的情况下,该第三应用可以在多个电子设备上被执行。所以本申请实施例提供的方法可以降低应用开发人员的负担。

结合第二方面,在第二方面的某些实现方式中,所述方法还包括:读取第四应用的代码中的第四指示信息,所述第四指示信息用于指示第四硬件接口集合的相关信息;在所述电子设备不具有所述第四硬件接口集合中的任一硬件接口的情况下,调用预设的目标接口。

预设的目标接口,可以是虚拟接口或是物理接口。

在本申请实施例中,由于电子设备可以调用目标接口,因此不会得到电子设备无法调用硬件接口的调用反馈结果,也就不会导致第四应用运行失败(如第四应用运行崩溃或无限次的循环错误)。

结合第二方面,在第二方面的某些实现方式中,所述方法还包括:读取第四应用的代码中的第四指示信息,所述第四指示信息用于指示第四硬件接口集合的相关信息;在所述电子设备不具有所述第四硬件接口集合中的任一硬件接口的情况下,,呈现告警信息。

可选的,所述呈现告警信息,包括呈现与第二硬件接口集合的类型或功能匹配的告警信息。

在本申请实施例中,由于第四指示信息指示第四硬件接口集合,因此电子设备可以获知该第四应用需要调用的硬件接口的类型或功能,而该告警信息与该硬件接口的类型或功能对应,从而可以为使用该第四应用的用户提供更加准确的硬件接口报错信息。

结合第二方面,在第二方面的某些实现方式中,所述方法还包括:所述第三指示信息还包括指示所述第三应用需要调用的接口的版本号的信息。

在本申请实施例中,由于不同的硬件接口的版本号可能不同,在硬件接口的版本号较多时,根据硬件接口的版本号确定硬件接口,可以提高调用硬件接口的效率。

第三方面,提供一种电子设备,包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行以下过程:读取第一应用的代码中的第一指示信息,所述第一指示信息用于指示第一硬件接口集合的相关信息,所述第一硬件接口集合包括多个电子设备的硬件接口,所述第一硬件接口集合中的任意两个硬件接口的类型相同,或者,所述第一硬件接口集合中的任意两个硬件接口的部分或全部功能相同;根据所述第一指示信息,从所述第一硬件接口集合中确定电子设备所具有的至少一个第一硬件接口;调用所述至少一个第一硬件接口。

结合第三方面,在第三方面的某些实现方式中,第一指示信息包括指示第二硬件接口的信息,且所述电子设备不具有所述第二硬件接口,所述处理器,还用于在根据所述第一指示信息,从所述第一硬件接口集合中确定所述电子设备所具有的至少一个第一硬件接口之前,应用于根据所述第一指示信息,将所述第二硬件接口所属于的硬件接口集合确定为所述第一硬件接口集合。

结合第三方面,在第三方面的某些实现方式中,所述第一指示信息包括指示所述第一应用需要调用的硬件接口的第一功能的信息,所述处理器,还用于在根据所述第一指示信息,从所述第一硬件接口集合中确定所述电子设备所具有的至少一个第一硬件接口之前,应用于根据所述第一指示信息,将与所述第一功能匹配的硬件接口集合确定为所述第一硬件接口集合。

结合第三方面,在第三方面的某些实现方式中,第一指示信息包括指示所述第一应用需要调用的硬件接口的第一类型的信息,所述处理器,还用于在根据所述第一指示信息,从所述第一硬件接口集合中确定所述电子设备所具有的至少一个第一硬件接口之前,应用于根据所述第一指示信息,将与所述第一类型匹配的硬件接口集合确定为所述第一硬件接口集合。

结合第三方面,在第三方面的某些实现方式中,所述处理器,还用于读取第二应用的代码中的第二指示信息,所述第二指示信息用于指示第二硬件接口集合的相关信息;所述处理器,还用于在所述电子设备不具有所述第二硬件接口集合中的任一硬件接口的情况下,应用于调用预设的目标接口。

结合第三方面,在第三方面的某些实现方式中,所述处理器,还用于读取第二应用的代码中的第二指示信息,所述第二指示信息用于指示第二硬件接口集合的相关信息;所述处理器,还用于在所述电子设备不具有所述第二硬件接口集合中的任一硬件接口的情况下,应用于呈现告警信息。

结合第三方面,在第三方面的某些实现方式中,所述处理器具体用于,根据所述电子设备的类型以及所述第一指示信息,从所述第一硬件接口集合中确定所述至少一个第一硬件接口。

结合第三方面,在第三方面的某些实现方式中,所述第一指示信息还包括指示所述第一应用需要调用的接口的版本号的信息。

第四方面,提供了一种电子设备,包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行以下过程:读取第三应用的代码中的第三指示信息,所述第三指示信息用于指示所述第三应用需要调用的硬件接口的功能或类型;根据电子设备的类型以及所述第三指示信息,从多个硬件接口中确定所述电子设备所具有的至少一个第三硬件接口,所述多个硬件接口包括多个电子设备所具有的硬件接口;调用所述至少一个第三硬件接口。

结合第四方面,在第四方面的某些实现方式中,所述处理器,还用于读取第四应用的代码中的第四指示信息,所述第四指示信息用于指示第四硬件接口集合的相关信息;所述处理器,还用于在所述电子设备不具有所述第四硬件接口集合中的任一硬件接口的情况下,应用于调用预设的目标接口。

结合第四方面,在第四方面的某些实现方式中,所述第三指示信息还包括指示所述第三应用需要调用的接口的版本号的信息。

第五方面,提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行第一方面至第二方面中的任意一种实现方式中的方法。

第六方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面至第二方面中的任意一种实现方式中的方法。

第七方面,提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行上述第一方面至第二方面中的任意一种实现方式中的方法。

可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行第一方面至第二方面中的任意一种实现方式中的方法。

附图说明

图1是本申请实施例提供的一种电子设备的硬件结构示意图。

图2是本申请实施例提供的一种电子设备的软件结构示意图。

图3是本申请实施例提供的一种调用硬件接口的方法的示意性流程图。

图4是本申请实施例提供的一种调用硬件接口的方法的示意性流程图。

图5是本申请实施例提供的一种硬件接口集合的示意性框图。

图6是本申请实施例提供的一种硬件接口集合的示意性框图。

图7是本申请实施例提供的一种调用硬件接口的方法的示意性流程图。

图8是本申请实施例提供的一种调用硬件接口的方法的示意性流程图。

图9是本申请实施例提供的一种硬件接口集合的示意性框图。

图10是本申请实施例提供的一种电子设备的软件结构示意图。

图11是本申请实施例提供的一种硬件接口层的软件结构示意图。

图12是本申请实施例提供的电子设备的示意性框图。

具体实施方式

下面将结合附图,对本申请中的技术方案进行描述。

以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本申请以下各实施例中,“至少一个”、“一个或多个”是指一个、两个或两个以上。术语“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系;例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a、b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。

在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。

以下介绍了本申请实施例提供的电子设备、用于这样的电子设备的用户界面、和用于使用这样的电子设备的实施例。在一些实施例中,电子设备可以是还包含其它功能诸如个人数字助理和/或音乐播放器功能的便携式电子设备,诸如手机、平板电脑、具备无线通讯功能的可穿戴电子设备(如智能手表)、视频播放器等。便携式电子设备的示例性实施例包括但不限于搭载或者其它操作系统的便携式电子设备。上述便携式电子设备也可以是其它便携式电子设备,诸如膝上型计算机(laptop)等。还应当理解的是,在其他一些实施例中,上述电子设备也可以不是便携式电子设备,而是台式计算机、电视、笔记本电脑。

示例性的,图1示出了电子设备100的结构示意图。电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universalserialbus,usb)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriberidentificationmodule,sim)卡接口195等。

可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。

处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(applicationprocessor,ap),调制解调处理器,图形处理器(graphicsprocessingunit,gpu),图像信号处理器(imagesignalprocessor,isp),控制器,视频编解码器,数字信号处理器(digitalsignalprocessor,dsp),基带处理器,和/或神经网络处理器(neural-networkprocessingunit,npu)等。其中,不同的处理单元可以是独立的部件,也可以集成在一个或多个处理器中。在一些实施例中,电子设备101也可以包括一个或多个处理器110。其中,控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。在其他一些实施例中,处理器110中还可以设置存储器,用于存储指令和数据。示例性地,处理器110中的存储器可以为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。这样就避免了重复存取,减少了处理器110的等待时间,因而提高了电子设备101处理数据或执行指令的效率。

在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路间(inter-integratedcircuit,i2c)接口,集成电路间音频(inter-integratedcircuitsound,i2s)接口,脉冲编码调制(pulsecodemodulation,pcm)接口,通用异步收发传输器(universalasynchronousreceiver/transmitter,uart)接口,移动产业处理器接口(mobileindustryprocessorinterface,mipi),通用输入输出(general-purposeinput/output,gpio)接口,sim卡接口,和/或usb接口等。其中,usb接口130是符合usb标准规范的接口,具体可以是miniusb接口,microusb接口,usbtypec接口等。usb接口130可以用于连接充电器为电子设备101充电,也可以用于电子设备101与外围设备之间传输数据。该usb接口130也可以用于连接耳机,通过耳机播放音频。

可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。

充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过usb接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。

电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。

电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。

天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。

移动通信模块150可以提供应用在电子设备100上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(lownoiseamplifier,lna)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。

无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocalareanetworks,wlan)(如无线保真(wirelessfidelity,wi-fi)网络),蓝牙(bluetooth,bt),全球导航卫星系统(globalnavigationsatellitesystem,gnss),调频(frequencymodulation,fm),近距离无线通信技术(nearfieldcommunication,nfc),红外技术(infrared,ir)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。

电子设备100通过gpu,显示屏194,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏194和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。

显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquidcrystaldisplay,lcd),有机发光二极管(organiclight-emittingdiode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganiclightemittingdiode的,amoled),柔性发光二极管(flexlight-emittingdiode,fled),miniled,microled,micro-oled,量子点发光二极管(quantumdotlightemittingdiodes,qled)等。在一些实施例中,电子设备100可以包括1个或多个显示屏194。

电子设备100的显示屏194可以是一种柔性屏,目前,柔性屏以其独特的特性和巨大的潜力而备受关注。柔性屏相对于传统屏幕而言,具有柔韧性强和可弯曲的特点,可以给用户提供基于可弯折特性的新交互方式,可以满足用户对于电子设备的更多需求。对于配置有可折叠显示屏的电子设备而言,电子设备上的可折叠显示屏可以随时在折叠形态下的小屏和展开形态下大屏之间切换。因此,用户在配置有可折叠显示屏的电子设备上使用分屏功能,也越来越频繁。

电子设备100可以通过isp,摄像头193,视频编解码器,gpu,显示屏194以及应用处理器等实现拍摄功能。

isp用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给isp处理,转化为肉眼可见的图像。isp还可以对图像的噪点,亮度,肤色进行算法优化。isp还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,isp可以设置在摄像头193中。

摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(chargecoupleddevice,ccd)或互补金属氧化物半导体(complementarymetal-oxide-semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给isp转换成数字图像信号。isp将数字图像信号输出到dsp加工处理。dsp将数字图像信号转换成标准的rgb,yuv等格式的图像信号。在一些实施例中,电子设备100可以包括1个或多个摄像头193。

数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。

视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(movingpictureexpertsgroup,mpeg)1,mpeg2,mpeg3,mpeg4等。

npu为神经网络(neural-network,nn)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过npu可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。

外部存储器接口120可以用于连接外部存储卡,例如microsd卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。

内部存储器121可以用于存储一个或多个计算机程序,该一个或多个计算机程序包括指令。处理器110可以通过运行存储在内部存储器121的上述指令,从而使得电子设备101执行本申请一些实施例中所提供的灭屏显示的方法,以及各种应用以及数据处理等。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统;该存储程序区还可以存储一个或多个应用(比如图库、联系人等)等。存储数据区可存储电子设备101使用过程中所创建的数据(比如照片,联系人等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如一个或多个磁盘存储部件,闪存部件,通用闪存存储器(universalflashstorage,ufs)等。在一些实施例中,处理器110可以通过运行存储在内部存储器121的指令,和/或存储在设置于处理器110中的存储器的指令,来使得电子设备101执行本申请实施例中所提供的灭屏显示的方法,以及其他应用及数据处理。电子设备100可以通过音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,以及应用处理器等实现音频功能。例如音乐播放,录音等。

传感器模块180可以包括压力传感器180a,陀螺仪传感器180b,气压传感器180c,磁传感器180d,加速度传感器180e,距离传感器180f,接近光传感器180g,指纹传感器180h,温度传感器180j,触摸传感器180k,环境光传感器180l,骨传导传感器180m等。

其中,压力传感器180a用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180a可以设置于显示屏194。压力传感器180a的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180a,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,电子设备100根据压力传感器180a检测所述触摸操作强度。电子设备100也可以根据压力传感器180a的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。

陀螺仪传感器180b可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180b确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180b可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180b检测电子设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备100的抖动,实现防抖。陀螺仪传感器180b还可以用于导航,体感游戏场景。

加速度传感器180e可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。

环境光传感器180l用于感知环境光亮度。电子设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180l也可用于拍照时自动调节白平衡。环境光传感器180l还可以与接近光传感器180g配合,检测电子设备100是否在口袋里,以防误触。

指纹传感器180h用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。

温度传感器180j用于检测温度。在一些实施例中,电子设备100利用温度传感器180j检测的温度,执行温度处理策略。例如,当温度传感器180j上报的温度超过阈值,电子设备100执行降低位于温度传感器180j附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,电子设备100对电池142加热,以避免低温导致电子设备100异常关机。在其他一些实施例中,当温度低于又一阈值时,电子设备100对电池142的输出电压执行升压,以避免低温导致的异常关机。

触摸传感器180k,也称“触控面板”。触摸传感器180k可以设置于显示屏194,由触摸传感器180k与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180k用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180k也可以设置于电子设备100的表面,与显示屏194所处的位置不同。

按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。

图2是本申请实施例的电子设备100的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将android系统分为四层,从上至下分别为应用层,应用框架层,安卓运行时(androidruntime)和系统库。如图2所示,软件架构中的各层可以调用硬件层,硬件层可以包括图1中的多个硬件。

应用层可以包括一系列应用包。如图2所示,应用包可以包括音乐播放、视频播放、阅读应用、应用市场、图库、日历、通话、地图、导航等应用。

应用框架层为应用层的应用提供应用编程接口(applicationprogramminginterface,api)和编程框架。应用框架层包括一些预先定义的函数。如图2所示,应用框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。资源管理器为应用提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。通知管理器使应用可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。

androidruntime包括核心库和虚拟机。androidruntime负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用层和应用框架层运行在虚拟机中。虚拟机将应用层和应用框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。

系统库可以包括多个功能模块。例如:表面管理器(surfacemanager),媒体库(medialibraries),三维图形处理库(例如:opengles),2d图形引擎(例如:sgl)等。表面管理器用于对显示子系统进行管理,并且为多个应用提供了2d和3d图层的融合。媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:mpeg4,h.264,mp3,aac,amr,jpg,png等。三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。2d图形引擎是2d绘图的绘图引擎。

硬件层可以包括多个硬件,例如图1中的显示屏194、摄像头193、音频模块170、传感器模块,其中传感器模块可以包括例如图1中的陀螺仪传感器180b、指纹传感器180h等。应用层、应用框架层、安卓运行时(androidruntime)和系统库均可以通过调用硬件接口来调用硬件层中的硬件。例如,应用层通过调用显示接口调用显示屏194。

在系统层与硬件层之间还可以包括硬件接口层,硬件接口层包括用于驱动硬件的多个接口。例如驱动显示屏的接口、驱动摄像头的接口、驱动音频模块的接口、驱动陀螺仪传感器的接口、驱动指纹传感器的接口等。

当电子设备内部的处理器或芯片读取应用程序层中的应用的代码时,可以通过调用硬件接口,从而驱动硬件层中的硬件,并执行相应的操作。

在一个示例中,可以通过调用移动通信接口从而驱动用于移动通信的天线,并可以通过该用于移动通信的天线传输上下行通信数据。例如,处理器或芯片在运行通话应用时,可以读取该通话应用中的代码,从而可以调用移动通信接口,通过驱动用于移动通信的天线,实现语音通话功能。

在一个示例中,可以通过调用屏幕显示接口从而驱动显示屏,并可以在显示屏上显示图像。例如,处理器或芯片在运行视频播放应用时,可以读取该视频播放应用中的代码,从而可以调用屏幕显示接口,并在显示屏上播放视频。

在一个示例中,可以通过调用扬声器接口从而驱动扬声器,并可以通过扬声器播放声音;或者,可以通过调用耳机接口,从而驱动(外部连接的)耳机,并可以通过该耳机播放声音。例如,处理器或芯片在运行音频播放应用时,可以读取该音频播放应用中的代码,从而可以调用扬声器接口,并通过扬声器播放音频文件,或者可以调用耳机接口,并通过(外部连接的)耳机播放音频文件。

在一个示例中,可以通过调用指纹识别接口从而驱动指纹识别模块,并可以通过指纹识别模块识别指纹。例如,处理器或芯片在运行安全应用时,可以读取该安全应用中的代码,从而可以调用指纹识别接口,并在指纹识别模块反馈的指纹与预设指纹信息匹配时,认为当前电子设备的操作是安全的。

在一个示例中,可以通过调用位置定位接口从而驱动全球定位系统(globalpositioningsystem,gps)天线,并可以通过该gps天线确定电子设备的当前位置。例如,处理器或芯片在运行地图导航应用时,可以读取该地图导航应用中的代码,从而可以调用定位接口,并通过gps天线反馈的定位信息规划行车路径。

在一个示例中,可以通过调用无线通信接口从而驱动蓝牙天线,并可以通过该蓝牙天线从其他电子设备接收数据,或向其他电子设备发送数据。例如,处理器或芯片在运行文件传输应用时,可以读取该文件传输应用中的代码,从而可以调用无线通信接口,并通过蓝牙天线向邻近的电子设备发送文件,或者接收邻近的电子设备发送的文件。

在一个示例中,可以通过调用拍摄接口从而驱动摄像头,并可以通过摄像头捕捉图像或拍摄视频。例如,处理器或芯片在运行拍摄应用时,可以读取该拍摄应用中的代码,从而可以调用前置拍摄接口,并通过前置摄像头拍摄人像。

图3所示为针对两种不同类型设备的开发软件的架构示意图。图3中的设备的类型例如可以包括手机、平板电脑、具备无线通讯功能的可穿戴电子设备(如智能手表)、视频播放器台式计算机、电视、笔记本电脑等。例如,图3中的设备一可以是手机,设备二可以是电视。

设备一的硬件接口一可以调用硬件一。设备二的硬件接口二可以调用硬件二。但由于各种原因(例如不同设备的硬件通常是来自不同的硬件生产厂商,或者不同电子设备的针对硬件接口的设计方案不同),硬件接口一与硬件接口二不同,因此不能使用同样的程序既实现硬件接口一的调用,又实现硬件接口二的调用。例如,手机的显示屏和电视的屏幕均可以用于播放视频、显示图片,然而手机的显示屏和电视的屏幕可以由不同的屏幕生产厂商生产,因此手机显示屏的接口与电视屏幕的接口不同,即不能使用同样的程序既实现手机显示屏的接口的调用,又实现电视屏幕的接口的调用。

系统软件通常是设备生产厂商在电子设备出厂前就安装并加载在电子设备上的程序。由于设备一的硬件接口一与设备二的硬件接口二不同,因此设备一的系统软件与设备二的系统软件不同。

设备厂商为了便利应用开发商,通常将软件开发工具包(softwaredevelopmentkit,sdk)开放给应用开发商,便于应用开发商针对设备类型开发应用软件。其中,sdk就包含了快捷调用硬件接口的代码。由于设备一的硬件接口一与设备二的硬件接口二不同,因此设备一的sdk与设备二的sdk不同。

假设某个应用开发商希望开发一套应用,例如视频播放软件、地图导航软件、通话软件、系统应用等。为了可以在设备一和设备二(如图3)上均可以实现该套应用的功能,需要针对设备一和设备二,分别开发相同类型的两个不同的应用。例如,用于手机的视频播放软件1,和用于电视的视频播放软件2。其中,该相同类型的两个不同的应用可以指,该两个应用可以包括用于设备一的应用一和用于设备二的应用二,应用一与应用二的功能相同或者主要功能相同;但在实现该相同功能或相同的主要功能时,应用一与应用二所使用的代码、调用的接口和/或函数等不同,因此应用一通常不能应用在设备二上,应用二通常不能应用在设备一上,应用一与应用二是两个不同的应用。

应用开发商通常希望有多数用户可以使用该应用开发商所开发的应用,因此应用开发商必须兼顾市面上的主流设备,针对多种类型的设备分别设计应用包。本申请提供一种方法,目的在于提升应用开发的便捷性。

图4为本申请实施例提供的一种调用硬件接口的方法的示意性流程图。

401,读取第一应用的代码中的第一指示信息,所述第一指示信息用于指示第一硬件接口集合的相关信息,所述第一硬件接口集合包括多个电子设备的硬件接口,所述第一硬件接口集合中的任意两个硬件接口的类型相同,或者,所述第一硬件接口集合中的任意两个硬件接口的部分或全部功能相同。

在本申请中,第一应用例如可以是通话应用、视频播放应用、音频播放应用、安全应用、地图导航应用、文件传输应用、拍摄应用等。第一应用还可以包括音乐播放、视频播放、阅读应用、应用市场、图库、日历、通话、地图、导航等。本申请对第一应用的具体类型不作限定。

第一硬件接口集合包括多个电子设备的硬件接口,该多个电子设备的类型例如可以包括手机、平板电脑、智能手表、视频播放器、膝上型计算机(laptop)、台式计算机、电视、笔记本电脑中的至少两个。

应理解,第一应用调用硬件接口时可以通过代码驱动硬件,因此,第一硬件接口集合可以通过代码的形式存储在处理器或存储器中。硬件接口可以通过代码实现硬件调用,因此,可以使用代码来定义硬件接口。例如,在安卓系统中,可以使用硬件接口定义语言(hardwareinterfacedefinitionlanguage,hidl)定义硬件接口。又如,可以使用hidl语言调用java格式的代码,实现硬件接口的调用。

电子设备可以包括用于识别设备类型的软件模块或硬结模块。例如,电子设备可以电子设备的版本号、型号等,从而调用该电子设备的硬件。

通常情况下,不同类型的电子设备所具有的硬件接口通常不同,如手机所具有的硬件接口与手表所具有的硬件接口不同,手表所具有的硬件接口与电视所具有的硬件接口不同,手机所具有的硬件接口与电视所具有的硬件接口不同。

相同类型的不同电子设备所具有的硬件接口可以相同,也可以不同。例如,相同版本号的两个手机所具有的硬件接口可以相同,版本号的两个手机所具有的硬件接口可以不同。

电子设备可以识别芯片的类型,从而调用包括该芯片的硬件,或者确定包括该芯片的硬件的硬件接口。又如,电子设备可以识别硬件的版本号或型号,从而确定是否调用该硬件,或者确定该硬件的硬件接口。

在一个示例中,第一硬件接口集合中的任意两个硬件接口的类型相同。例如,第一硬件接口集合中的所有硬件接口均为移动通信接口。又如,第一硬件接口集合中的所有硬件接口均为屏幕显示接口。又如,第一硬件接口集合中的所有硬件接口均为扬声器接口。又如,第一硬件接口集合中的所有硬件接口均为耳机接口。又如,第一硬件接口集合中的所有硬件接口均为指纹识别接口。又如,第一硬件接口集合中的所有硬件接口均为定位接口。又如,第一硬件接口集合中的所有硬件接口均为无线通信接口。又如,第一硬件接口集合中的所有硬件接口均为拍摄接口。

在第一硬件接口集合中的任意两个硬件接口的类型相同的情况下,第一硬件接口集合的类型与第一硬件接口集合中的任一硬件接口的类型相同。例如,第一硬件接口集合中的所有硬件接口均为移动通信接口,第一硬件接口集合的类型可以是移动通信接口。

第一硬件接口集合中的任意两个硬件接口的部分功能相同。例如,第一硬件接口集合中的所有硬件接口均可以用于语音通话,而由于移动通信标准不同,该第一硬件接口集合中的第一部分硬件接口可以在全球移动通信(globalsystemformobilecommunications,gsm)系统中工作,该第一硬件接口集合中的第二部分硬件接口既可以在全球移动通信(globalsystemformobilecommunications,gsm)系统中工作,也可以在码分多址(codedivisionmultipleaccess,cdma)系统中工作。又如,第一硬件接口集合中的所有硬件接口均可以用于蓝牙文件传输,而由于无线通信标准不同,该第一硬件接口集合中的第一部分硬件接口可以用于驱动蓝牙2.0,该第一硬件接口集合中的第二部分硬件接口可以用于驱动蓝牙4.0。又如,第一硬件接口集合中的所有硬件接口均可以用于播放音频,而用于播放音频的接口包括用于驱动扬声器的扬声器接口,和用于驱动耳机的耳机接口,因此第一硬件接口集合中的第一部分硬件接口可以用于驱动扬声器,第二部分硬件接口可以用于驱动耳机。又如,第一硬件接口集合中的所有硬件接口均可以用于视频输入,而高清多媒体接口(highdefinitionmultimediainterface,hdmi)可以用于音频输入与视频输入,而视频图形阵列(videographicsarray,vga)接口仅用于视频输入,因此第一硬件接口集合中的第一部分硬件接口可以是仅用于视频输入的接口,第二部分硬件接口可以是既用于音频输入,又用于视频输入的接口。又如,第一硬件接口集合中的所有硬件接口均可以用于拍摄图像或视频,而摄像头又分为前置摄像头和后置摄像头,因此第一硬件接口集合中的第一部分硬件接口可以用于驱动前置摄像头,第二部分硬件接口可以用于驱动后置摄像头。

在第一硬件接口集合中的任意两个硬件接口的部分功能相同的情况下,第一硬件接口集合的功能包括第一硬件接口集合中的任一硬件接口的功能。例如,第一硬件接口集合中的所有硬件接口均可以用于语音通话,第一硬件接口集合的功能包括语音通话。

第一硬件接口集合中的任意两个硬件接口的全部功能相同。例如,第一硬件接口集合中的所有硬件接口均可以用于语音通话,且均可以既可以在全球移动通信(globalsystemformobilecommunications,gsm)系统中工作,又可以在码分多址(codedivisionmultipleaccess,cdma)系统中工作,且第一硬件接口集合中的任一硬件接口所实现的全部功能,也能够被第一硬件接口集合中的其他硬件接口实现。又如,第一硬件接口集合中的所有硬件接口都可以用于驱动蓝牙4.0。又如,第一硬件接口集合中的所有硬件接口均可以用于播放音频,且均用于驱动耳机。又如,第一硬件接口集合中的所有硬件接口均可以用于视频输入,且均可以用于音频输入。又如,第一硬件接口集合中的所有硬件接口均可以用于拍摄图像或视频,且均用于驱动前置摄像头。

在第一硬件接口集合中的任意两个硬件接口的全部功能相同的情况下,第一硬件接口集合的功能与第一硬件接口集合中的任一硬件接口的功能相同。例如,第一硬件接口集合中的所有硬件接口均可以用于语音通话,第一硬件接口集合的功能为语音通话。

通常,任意两个硬件接口的类型相同,该任意两个硬件接口所能够实现的功能通常是相同或者是近似的。

第一硬件接口集合可以包括某一类电子设备的多个硬件接口。例如,电子设备包括前置摄像头和后置摄像头,该第一硬件接口集合可以包括用于驱动前置摄像的硬件接口1,又包括用于驱动后置摄像头的硬件接口2。又如,电子设备包括多个多媒体传输接口,分别用于支持不同的多媒体传输标准(如hdmi、vga)。

图5为第一硬件接口集合中的硬件接口的示意图。第一硬件接口集合包括硬件接口1、硬件接口2、硬件接口3、硬件接口4。其中,硬件接口1、硬件接口2为电子设备501所具有的硬件接口。硬件接口3为电子设备502所具有的硬件接口。硬件接口3、硬件接口4为电子设备503所具有的硬件接口。

可以看出,不同的电子设备的硬件接口可以相同。例如,版本号为版本号1的手机1使用硬件1,版本号为版本号2的手机2使用硬件2,硬件1与硬件2来自同一硬件厂商,且硬件1与硬件2为同一型号的硬件,因此手机1和手机2可以具有相同的硬件接口。

根据上文的描述,第一硬件接口集合可以包括类型相同的多个硬件接口,且包括多个电子设备的硬件接口。以图5为例,硬件接口1、硬件接口2、硬件接口3、硬件接口4可以均为拍摄接口,电子设备501可以是手机,电子设备502可以是手表,电子设备503可以是平板电脑。其中,电子设备501所具有的硬件接口1可以是用于调用前置摄像头的拍摄接口,电子设备501所具有的硬件接口2可以是用于调用后置摄像头的拍摄接口。电子设备503所具有的硬件接口3可以是用于调用前置摄像头的拍摄接口,电子设备503所具有的硬件接口4可以是用于调用后置摄像头的拍摄接口。电子设备502所具有的硬件接口3与电子设备503所具有的硬件接口3相同。类似地,根据上文的描述,第一硬件接口集合可以包括部分或全部功能相同的多个硬件接口,且包括多个电子设备的硬件接口。

可选的,第一指示信息包括指示第二硬件接口的信息,且所述电子设备不具有所述第二硬件接口,在所述根据所述第一指示信息,从所述第一硬件接口集合中确定电子设备所具有的至少一个第一硬件接口之前,所述方法还包括:根据所述第一指示信息,将所述第二硬件接口所属于的硬件接口集合确定为所述第一硬件接口集合。

电子设备可以存储第一硬件接口集合的相关信息,该相关信息包括第一硬件接口集合的标识以及该第一硬件接口集合中的多个硬件接口的信息(如每个硬件接口的标识、调用参数等),该多个硬件接口包括该第二硬件接口。例如,可以保存图5所示的第一硬件接口集合的标识,和硬件接口1的标识、硬件接口2的标识、硬件接口3的标识、硬件接口4的标识,以及第一硬件接口集合分别与硬件接口1、硬件接口2、硬件接口3、硬件接口4之间的对应关系。在电子设备501读取第一应用的代码中的第一指示信息,且该第一指示信息指示图5中的硬件接口3时,由于电子设备501不具有硬件接口3,电子设备501无法调用硬件接口3,而电子设备501可以根据第一指示信息以及第一硬件接口集合的相关信息,确定硬件接口3与第一硬件接口集合之间存在对应关系,从而确定该第一硬件接口集合。

图6所示为多个硬件接口集合的示意图。电子设备可以存储有多个硬件接口集合的相关信息,该多个硬件接口集合包括图6所示的硬件接口集合601、硬件接口集合602。

在一个示例中,硬件接口集合601的类型为类型1,硬件接口集合602的类型为类型2。

第一指示信息包括指示所述第一应用需要调用的硬件接口的第一类型的信息,在所述根据所述第一指示信息,从所述第一硬件接口集合中确定电子设备所具有的至少一个第一硬件接口之前,所述方法还包括:根据所述第一指示信息,将与所述第一类型匹配的硬件接口集合确定为所述第一硬件接口集合。

所述第一硬件接口集合与第一类型匹配,一种可能的情况是,所述第一硬件接口集合的类型为该第一类型。上文已经详细描述了硬件接口集合的类型,在此就不再赘述。

另一种可能的情况是,所述第一硬件接口集合的功能为与该第一类型所实现的功能相同或相似。

例如,第一指示信息指示的类型为移动通信接口,第一硬件接口集合的功能包括语音通话功能,移动通信接口也能够实现该语音通话功能,因此所述第一硬件接口集合与第一类型匹配。

又如,第一指示信息指示的类型为屏幕显示接口,第一硬件接口集合的功能包括在屏幕上显示图像的功能,屏幕显示接口也能够实现该在屏幕上显示图像的功能,因此所述第一硬件接口集合与第一类型匹配。

又如,第一指示信息指示的类型为扬声器接口,第一硬件接口集合的功能包括声音播放功能,扬声器接口也能够实现该声音播放功能,因此所述第一硬件接口集合与第一类型匹配。

又如,第一指示信息指示的类型为耳机接口,第一硬件接口集合的功能包括声音播放功能,耳机接口也能够实现该声音播放功能,因此所述第一硬件接口集合与第一类型匹配。

又如,第一指示信息指示的类型为指纹识别接口,第一硬件接口集合的功能包括指纹识别功能,指纹识别接口也能够实现该指纹识别功能,因此所述第一硬件接口集合与第一类型匹配。

又如,第一指示信息指示的类型为定位接口,第一硬件接口集合的功能包括定位功能,定位接口也能够实现该定位功能,因此所述第一硬件接口集合与第一类型匹配。

又如,第一指示信息指示的类型为无线通信接口,第一硬件接口集合的功能包括数据传输功能,无线通信接口也能够实现该数据传输功能,因此所述第一硬件接口集合与第一类型匹配。

又如,第一指示信息指示的类型为拍摄接口,第一硬件接口集合的功能包括捕捉电子设备周围场景,拍摄接口也能够实现该捕捉电子设备周围场景的功能,因此所述第一硬件接口集合与第一类型匹配。

因此,在第一应用通过第一指示信息指示调用第一类型的硬件接口的情况下,电子设备可以根据该第一类型确定与该第一类型匹配的该第一硬件接口集合。

在一个示例中,硬件接口集合601的功能包括功能1,硬件接口集合602的功能包括功能2。

可选的,所述第一指示信息包括指示所述第一应用需要调用的硬件接口的第一功能的信息,在所述根据所述第一指示信息,从所述第一硬件接口集合中确定电子设备所具有的至少一个第一硬件接口之前,所述方法还包括:根据所述第一指示信息,将与所述第一功能匹配的硬件接口集合确定为所述第一硬件接口集合。

所述第一硬件接口集合与第一功能匹配,一种可能的情况是,所述第一硬件接口集合的功能包括该第一类型。上文已经详细描述了多种硬件接口集合的功能,在此就不再赘述。

另一种可能的情况是,所述第一硬件接口集合的功能与该第一类型所实现的功能相同或相似。

例如,第一指示信息指示的功能为语音通话功能,第一硬件接口集合的类型为移动通信接口,且移动通信接口能够实现该语音通话功能,因此所述第一硬件接口集合与第一类型匹配。

又如,第一指示信息指示的功能为在屏幕上显示图像的功能,第一硬件接口集合的类型为屏幕显示接口,且屏幕显示接口能够实现该在屏幕上显示图像的功能,因此所述第一硬件接口集合与第一类型匹配。

又如,第一指示信息指示的功能为声音播放功能,第一硬件接口集合的类型为扬声器接口或耳机接口,且扬声器接口或耳机接口能够实现该声音播放功能,因此所述第一硬件接口集合与第一类型匹配。

又如,第一指示信息指示的功能为指纹识别功能,第一硬件接口集合的类型为指纹识别接口,且指纹识别接口能够实现该指纹识别功能,因此所述第一硬件接口集合与第一类型匹配。

又如,第一指示信息指示的功能为定位功能,第一硬件接口集合的类型为定位接口,且定位接口能够实现该定位功能,因此所述第一硬件接口集合与第一类型匹配。

又如,第一指示信息指示的功能为数据传输功能,第一硬件接口集合的类型为无线通信接口,且无线通信接口能够实现该数据传输功能,因此所述第一硬件接口集合与第一类型匹配。

又如,第一指示信息指示的功能为捕捉电子设备周围场景的功能,第一硬件接口集合的类型为拍摄接口,且拍摄接口能够实现该捕捉电子设备周围场景的功能,因此所述第一硬件接口集合与第一类型匹配。

因此,在第一应用通过第一指示信息指示调用第一功能的硬件接口的情况下,电子设备可以根据该第一功能确定与该第一功能匹配的该第一硬件接口集合。

402,根据所述第一指示信息,从所述第一硬件接口集合中确定电子设备所具有的至少一个第一硬件接口。

在确定了第一硬件接口集合之后,电子设备可以在该第一硬件接口集合中选择该电子设备所具有的一个或多个硬件接口,即电子设备可以选择该电子设备能够正确调用的一个或多个硬件接口。

以图5所示的第一硬件接口集合为例,由于硬件接口3、硬件接口4均不是电子设备501具有的硬件接口,而硬件接口1、硬件接口2是电子设备501具有的硬件接口,因此电子设备501可以从该第一硬件接口集合中确定硬件接口1、硬件接口2,将硬件接口1、硬件接口2均作为第一硬件接口。

在一个示例中,电子设备可以根据第一硬件接口集合中的硬件接口的信息,对第一硬件接口集合中的硬件接口逐一尝试,在调用结果为成功时,即可确定该至少一个第一硬件接口。

以图5所示的第一硬件接口集合为例,电子设备501可以从该第一硬件接口集合中依次尝试硬件接口1、硬件接口2、硬件接口3、硬件接口4是否能够成功调用,由于硬件接口3、硬件接口4均不是电子设备501具有的硬件接口,电子设备501无法正确调用,而硬件接口1、硬件接口2是电子设备501具有的硬件接口,因此电子设备501可以正确调用硬件接口1、硬件接口2,从而可以将硬件接口1、硬件接口2均确定为第一硬件接口。

在一个示例中,电子设备可以根据电子设备的类型,从第一硬件接口集合中确定电子设备所具有的至少一个第一硬件接口。

可选的,所述根据所述第一指示信息,从所述第一硬件接口集合中确定电子设备所具有的至少一个第一硬件接口,包括:根据所述电子设备的类型以及所述第一指示信息,从所述第一硬件接口集合中确定所述至少一个第一硬件接口。

以图5所示的第一硬件接口集合为例,第一硬件接口集合包括硬件接口1、硬件接口2、硬件接口3、硬件接口4。其中,硬件接口1、硬件接口2为电子设备501所具有的硬件接口。硬件接口3为电子设备502所具有的硬件接口。硬件接口3、硬件接口4为电子设备503所具有的硬件接口。电子设备501可以根据其自身的设备类型,将硬件接口1、硬件接口2均确定为第一硬件接口。

可选的,所述第一指示信息还包括指示所述第一应用需要调用的接口的版本号的信息。

以无线通信接口为例,蓝牙2.0版本的蓝牙天线所对应的接口与蓝牙4.0版本的蓝牙天线所对应的接口不同,在第一指示信息指示蓝牙4.0版本的情况下,电子设备可以忽略蓝牙2.0所对应的接口。例如,图5中的硬件接口1为蓝牙2.0版本的蓝牙接口,图5中的硬件接口2为蓝牙4.0版本的蓝牙接口,第一指示信息指示蓝牙4.0版本,电子设备可以根据第一指示信息中的版本号,将硬件接口2确定为第一硬件接口。除无线通信接口可以具有版本号外,多媒体传输接口(版本号可以为hdmi、vga等)、耳机接口(版本号可以为2.5mm、3.5mm、usb-c等)、移动通信接口(版本号可以为gsm、cdma等)等也可以具有版本号。

403,调用所述至少一个第一硬件接口。

调用第一硬件接口,可以指通过第一硬件接口驱动第一硬件接口对应的硬件。

在一个示例中,电子设备读取通话应用的代码中的第一指示信息,该第一指示信息用于指示类型为移动通信接口或功能为语言通话的第一硬件接口集合。电子设备可以从该第一硬件接口集合中确定该电子设备所具有的至少一个第一硬件接口,该至少一个第一根据接口的类型均为移动通信接口,或者该至少一个第一硬件接口的功能均包括语音通话。从而,电子设备调用该至少一个第一硬件接口,通过驱动用于移动通信的天线,实现语音通话功能。

在一个示例中,电子设备读取视频播放应用的代码中的第一指示信息,该第一指示信息用于指示类型为屏幕显示接口的第一硬件接口集合,或者功能为在屏幕上显示图像的第一硬件接口集合。电子设备可以从该第一硬件接口集合中确定该电子设备所具有的至少一个第一硬件接口,该至少一个第一根据接口的类型均为屏幕显示接口,或者该至少一个第一硬件接口的功能均包括在屏幕上显示图像,从而电子设备调用该至少一个第一硬件接口,并在显示屏上播放视频。

在一个示例中,电子设备读取音频播放应用的代码中的第一指示信息,该第一指示信息用于指示类型为扬声器接口的第一硬件接口集合,或者功能为播放声音的第一硬件接口集合。电子设备可以从该第一硬件接口集合中确定该电子设备所具有的至少一个第一硬件接口,该至少一个第一根据接口的类型均为扬声器接口,或者该至少一个第一硬件接口的功能均包括播放声音,从而电子设备调用该至少一个第一硬件接口,并通过扬声器播放音频文件。

在一个示例中,电子设备读取音频播放应用的代码中的第一指示信息,该第一指示信息用于指示类型为耳机接口的第一硬件接口集合,或者功能为播放声音的第一硬件接口集合。电子设备可以从该第一硬件接口集合中确定该电子设备所具有的至少一个第一硬件接口,该至少一个第一根据接口的类型均为耳机接口,或者该至少一个第一硬件接口的功能均包括播放声音,从而电子设备调用该至少一个第一硬件接口,并通过耳机播放音频文件。

在一个示例中,电子设备读取安全应用的代码中的第一指示信息,该第一指示信息用于指示类型为指纹识别接口的第一硬件接口集合,或者功能为指纹识别的第一硬件接口集合。电子设备可以从该第一硬件接口集合中确定该电子设备所具有的至少一个第一硬件接口,该至少一个第一根据接口的类型均为指纹识别接口,或者该至少一个第一硬件接口的功能均包括指纹识别,从而电子设备调用该至少一个第一硬件接口,并在指纹识别模块反馈的指纹与预设指纹信息匹配时,认为当前电子设备的操作是安全的。

在一个示例中,电子设备读取地图导航应用的代码中的第一指示信息,该第一指示信息用于指示类型为定位接口的第一硬件接口集合,或者功能为定位的第一硬件接口集合。电子设备可以从该第一硬件接口集合中确定该电子设备所具有的至少一个第一硬件接口,该至少一个第一根据接口的类型均为定位接口,或者该至少一个第一硬件接口的功能均包括定位,从而电子设备调用该至少一个第一硬件接口,并通过gps天线反馈的定位信息规划行车路径。

在一个示例中,电子设备读取文件传输应用的代码中的第一指示信息,该第一指示信息用于指示类型为无线通信接口的第一硬件接口集合,或者功能为数据传输的第一硬件接口集合。电子设备可以从该第一硬件接口集合中确定该电子设备所具有的至少一个第一硬件接口,该至少一个第一根据接口的类型均为无线通信接口,或者该至少一个第一硬件接口的功能均包括数据传输,从而电子设备调用该至少一个第一硬件接口,并通过蓝牙天线向邻近的电子设备发送文件,或者接收邻近的电子设备发送的文件。

在一个示例中,电子设备读取拍摄应用的代码中的第一指示信息,该第一指示信息用于指示类型为拍摄接口的第一硬件接口集合,或者功能为捕捉电子设备周围场景的第一硬件接口集合。电子设备可以从该第一硬件接口集合中确定该电子设备所具有的至少一个第一硬件接口,该至少一个第一根据接口的类型均为拍摄接口,或者该至少一个第一硬件接口的功能均包括捕捉电子设备周围场景,从而电子设备调用该至少一个第一硬件接口,并调用前置拍摄接口,并通过前置摄像头拍摄人像。

可选的,还可以根据电子设备的硬件类型,确定硬件调用模式。

例如,手机显示屏的尺寸为5寸,可以根据该硬件类型,选择硬件调用模式1;手表屏幕尺寸为40mm,与手机显示屏尺寸不同,可以选择用于小屏的硬件调用模式2;电视的屏幕尺寸为50寸,与手机显示屏的尺寸不同,也与手表屏幕的尺寸不同,可以选择用于超大屏的硬件调用模式3。

又如,手机显示屏的尺寸包括4.8寸、5寸、5.1寸,因此,不同手机可以选择与不同尺寸屏幕适配的不同硬件调用模式。

在本申请实施例中,第一应用通过第一指示信息指示第一硬件接口集合,该电子设备可以根据其自身参数(如版本号、电子设备类型等信息)确认该第一应用实际应当调用的真实硬件接口参数。因此,第一应用无需预先获知执行该第一应用的电子设备所具有的真实硬件接口。并且,该第一应用在指示第一硬件接口集合的情况下,该第一应用可以在多个电子设备上被执行。所以本申请实施例提供的方法可以降低应用开发人员的负担。

图7为本申请实施例提供的一种调用硬件接口的方法的示意性流程图。

701,读取第二应用的代码中的第二指示信息,所述第二指示信息用于指示第二硬件接口集合的相关信息,所述第二硬件接口集合包括多个电子设备的硬件接口,所述第二硬件接口集合中的任意两个硬件接口的类型相同,或者,所述第二硬件接口集合中的任意两个硬件接口的部分或全部功能相同。

在本申请中,第二应用例如可以是通话应用、视频播放应用、音频播放应用、安全应用、地图导航应用、文件传输应用、拍摄应用等。第二应用还可以包括音乐播放、视频播放、阅读应用、应用市场、图库、日历、通话、地图、导航等。本申请对第二应用的具体类型不作限定。

第二硬件接口集合包括多个电子设备的硬件接口,该多个电子设备的类型例如可以包括手机、平板电脑、智能手表、视频播放器、膝上型计算机(laptop)、台式计算机、电视、笔记本电脑中的至少两个。

通常情况下,不同类型的电子设备所具有的硬件接口通常不同,如手机所具有的硬件接口与手表所具有的硬件接口不同,手表所具有的硬件接口与电视所具有的硬件接口不同,手机所具有的硬件接口与电视所具有的硬件接口不同。

相同类型的不同电子设备所具有的硬件接口可以相同,也可以不同。例如,相同版本号的两个手机所具有的硬件接口可以相同,版本号的两个手机所具有的硬件接口可以不同。

步骤701的具体实现方式可以参照图4所示实施例中的步骤401,在此就不必赘述。

702,在所述电子设备不具有所述第二硬件接口集合中的任一硬件接口的情况下,调用预设的目标接口,或者呈现告警信息。

如图6所示,第二硬件接口集合中包括硬件接口5、硬件接口6、硬件接口7,其中硬件接口5、硬件接口6、硬件接口7均不是电子设备所具有的硬件接口。

第二硬件接口集合的类型为第二类型,在第二应用指示调用属于该第二类型的接口的情况下,电子设备不具有所述第二硬件接口集合中的任一硬件接口,因此电子设备不具有属于该第二类型的接口,或者不具有与该第二类型匹配的接口。

或者,第二硬件接口集合的功能为第二功能,在第二应用指示调用具有该第二功能的接口的情况下,电子设备不具有所述第二硬件接口集合中的任一硬件接口,因此电子设备不具有能够实现该第二功能的接口,或者不具有与该第二功能匹配的接口。

预设的目标接口,可以是虚拟接口或是物理接口。

例如,电子设备为手表,第二指示信息指示调用usb接口,而手表不具有usb接口。在此情况下,该电子设备可以调用用于充电的耳机接口,该耳机接口即为目标接口。由于电子设备可以调用目标接口,因此不会得到电子设备无法调用usb接口的调用反馈结果,也就不会因为该电子设备没有usb接口而导致第二应用运行失败(如第二应用运行崩溃或无限次的循环错误)。

又如,电子设备为电视,第二指示信息指示调用移动通信接口,而电视不具有移动通信接口。在此情况下,该电子设备可以调用一个预设的虚拟接口。由于电子设备可以调用目标接口,因此不会得到电子设备无法调用移动通信接口的调用反馈结果,也就不会因为该电子设备没有移动通信接口而导致第二应用运行失败(如第二应用运行崩溃或无限次的循环错误)。

告警信息例如可以是在屏幕上显示“×”等符号。

可选的,呈现告警信息,可以呈现与第二硬件接口集合的类型或功能匹配的告警信息。

例如,第二硬件接口集合的类型为移动通信接口,呈现的告警信息可以是“本机不具备语音通话功能”。

又如,第二硬件接口集合的类型为指纹识别接口,呈现的告警信息可以是“无法获取指纹信息”。

又如,第二硬件接口集合的类型为定位接口,呈现的告警信息可以是“无法获取当前位置信息,是否手动输入当前位置信息”。

又如,第二硬件接口集合的类型为蓝牙接口,呈现的告警信息可以是“无可连接的蓝牙设备”。

又如,第二硬件接口集合的类型为前置摄像头接口,呈现的告警信息可以是“调用前置摄像头出现错误,是否调用后置摄像头”。

图8为本申请实施例提供的一种调用硬件接口的方法的示意性流程图。

801,读取第三应用的代码中的第三指示信息,所述第三指示信息用于指示所述第三应用需要调用的硬件接口的功能或类型。

在本申请中,第三应用例如可以是通话应用、视频播放应用、音频播放应用、安全应用、地图导航应用、文件传输应用、拍摄应用等。第三应用还可以包括音乐播放、视频播放、阅读应用、应用市场、图库、日历、通话、地图、导航等。本申请对第三应用的具体类型不作限定。

第三硬件接口集合包括多个电子设备的硬件接口,该多个电子设备的类型例如可以包括手机、平板电脑、智能手表、视频播放器、膝上型计算机(laptop)、台式计算机、电视、笔记本电脑中的至少两个。

硬件接口可以通过代码实现硬件调用,因此,可以使用代码来定义硬件接口。例如,在安卓系统中,可以使用硬件接口定义语言(hardwareinterfacedefinitionlanguage,hidl)定义硬件接口。又如,可以使用hidl语言调用java格式的代码,实现硬件接口的调用。通常情况下,不同类型的电子设备所具有的硬件接口通常不同,如手机所具有的硬件接口与手表所具有的硬件接口不同,手表所具有的硬件接口与电视所具有的硬件接口不同,手机所具有的硬件接口与电视所具有的硬件接口不同。

相同类型的不同电子设备所具有的硬件接口可以相同,也可以不同。例如,相同版本号的两个手机所具有的硬件接口可以相同,版本号的两个手机所具有的硬件接口可以不同。

硬件接口的功能例如可以是语音通话功能、在屏幕上显示图像的功能、声音播放功能、指纹识别功能、定位功能、文件传输功能、捕捉电子设备周围场景的功能等。

硬件接口的类型例如可以是移动通信接口、屏幕显示接口、扬声器接口、耳机接口、指纹识别接口、定位接口、无线通信接口、拍摄接口。

802,根据电子设备的类型以及所述第三指示信息,从多个硬件接口中确定所述电子设备所具有的至少一个第三硬件接口,所述多个硬件接口包括多个电子设备所具有的硬件接口。

为描述清楚,第三指示信息所指示的第三应用需要调用的硬件接口的功能为第三功能,第三指示信息所指示的第三应用需要调用的硬件接口的类型为第三类型。也就是说,根据第三指示信息指示的第三类型,确定该电子设备可以成功调用的至少一个第三硬件接口,该第三硬件接口的类型或功能与该第三指示信息所指示的第三类型匹配。或者,根据第三指示信息指示的第三功能,确定该电子设备可以成功调用的至少一个第三硬件接口,该第三硬件接口的类型或功能与该第三指示信息所指示的第三功能匹配。

电子设备可以存储有该多个硬件接口的相关信息,该相关信息包括该多个硬件接口中每个硬件接口的功能或类型。该相关信息还包括调用该每个硬件接口所需的各类参数。该相关信息还包括该每个硬件接口所属的电子设备的信息。可选的,该相关信息还可以包括每个硬件接口的标识。因此,当电子设备读取第三指示信息后,可以根据该电子设备自身的类型、参数、型号等,从多个硬件接口中选择符合要求的至少一个第三硬件接口。

在第三指示信息指示硬件接口的功能时,电子设备可以根据多个硬件接口的相关信息,从多个硬件接口中找到至少一个第三硬件接口,该至少一个第三硬件接口与该第三指示信息所指示的第三功能相匹配。其中,所述至少一个第三硬件接口与该第三指示信息所指示的第三功能相匹配,可以指该至少一个第三硬件接口的功能均与该第三功能相同,还可以指该至少一个第三硬件接口的类型与该第三功能相匹配。

在一个示例中,第三指示信息指示的硬件接口的功能为语音通话功能,电子设备可以根据多个硬件接口的相关信息,从多个硬件接口中找到该电子设备所具有的、能够实现语言通话功能的硬件接口,例如可以从多个硬件接口中找到该电子设备所具有的移动通信接口。

在一个示例中,第三指示信息指示的硬件接口的功能为在屏幕上显示图像的功能,电子设备可以根据多个硬件接口的相关信息,从多个硬件接口中找到该电子设备所具有的、能够实现在屏幕上显示图像的功能的硬件接口,例如可以从多个硬件接口中找到该电子设备所具有的屏幕显示接口。

在一个示例中,第三指示信息指示的硬件接口的功能为声音播放功能,电子设备可以根据多个硬件接口的相关信息,从多个硬件接口中找到该电子设备所具有的、能够实现声音播放功能的硬件接口,例如可以从多个硬件接口中找到该电子设备所具有的扬声器接口和耳机接口。

在一个示例中,第三指示信息指示的硬件接口的功能为定位功能,电子设备可以根据多个硬件接口的相关信息,从多个硬件接口中找到该电子设备所具有的、能够实现定位功能的硬件接口,例如可以从多个硬件接口中找到该电子设备所具有的定位接口。

在一个示例中,第三指示信息指示的硬件接口的功能为无线通信功能,电子设备可以根据多个硬件接口的相关信息,从多个硬件接口中找到该电子设备所具有的、能够实现无线通信功能的硬件接口,例如可以从多个硬件接口中找到该电子设备所具有的蓝牙接口。

在一个示例中,第三指示信息指示的硬件接口的功能为拍摄功能,电子设备可以根据多个硬件接口的相关信息,从多个硬件接口中找到该电子设备所具有的、能够实现拍摄功能的硬件接口,例如可以从多个硬件接口中找到该电子设备所具有的前置摄像头接口、后置摄像头接口。

第三指示信息指示硬件接口的类型时,电子设备可以根据多个硬件接口的相关信息,从多个硬件接口中找到至少一个第三硬件接口,该至少一个第三硬件接口与该第三指示信息所指示第三类型相匹配。其中,所述至少一个第三硬件接口与该第三指示信息所指示的第三类型相匹配,可以指该至少一个第三硬件接口的类型均与该第三类型相同,还可以指该至少一个第三硬件接口所能够实现的功能与该第三类型相匹配。

在一个示例中,第三指示信息指示移动通信接口,电子设备可以根据多个硬件接口的相关信息,从多个硬件接口中找到该电子设备所具有的移动通信接口,或者,从多个硬件接口中找到该电子设备所具有的、能够实现语言通话功能的硬件接口。

在一个示例中,第三指示信息指示屏幕显示接口,电子设备可以根据多个硬件接口的相关信息,从多个硬件接口中找到该电子设备所具有的屏幕显示接口,或者,从多个硬件接口中找到该电子设备所具有的、能够实现在屏幕上显示图像的功能的硬件接口。

在一个示例中,第三指示信息指示扬声器接口,电子设备可以根据多个硬件接口的相关信息,从多个硬件接口中找到该电子设备所具有的扬声器接口,或者,从多个硬件接口中找到该电子设备所具有的、能够实现声音播放功能的硬件接口。

在一个示例中,第三指示信息指示耳机接口,电子设备可以根据多个硬件接口的相关信息,从多个硬件接口中找到该电子设备所具有的耳机接口,或者,从多个硬件接口中找到该电子设备所具有的、能够实现声音播放功能的硬件接口。

在一个示例中,第三指示信息指示定位接口,电子设备可以根据多个硬件接口的相关信息,从多个硬件接口中找到该电子设备所具有的定位接口,或者,从多个硬件接口中找到该电子设备所具有的、能够实现定位功能的硬件接口。

在一个示例中,第三指示信息指示蓝牙接口,电子设备可以根据多个硬件接口的相关信息,从多个硬件接口中找到该电子设备所具有的蓝牙接口,或者,从多个硬件接口中找到该电子设备所具有的、能够实现无线通信功能的硬件接口。

在一个示例中,第三指示信息指示前置摄像头接口,电子设备可以根据多个硬件接口的相关信息,从多个硬件接口中找到该电子设备所具有的前置摄像头接口,或者,从多个硬件接口中找到该电子设备所具有的、能够实现拍摄功能的硬件接口。

可选的,根据电子设备的类型以及所述第三指示信息,从多个硬件接口中确定所述电子设备所具有的至少一个第三硬件接口,包括:根据电子设备的类型,确定与所述电子设备的类型匹配的第三硬件接口集合,所述多个硬件接口包括所述第三硬件接口集合中的硬件接口;根据所述第三指示信息,从所述第三硬件接口集合中确定至少一个第三硬件接口。

第三硬件接口集合与电子设备的类型匹配,可以指第三硬件接口集合包括该电子设备所具有的部分或全部硬件接口,且不包括该电子设备不具有的硬件接口。第三硬件接口集合不包括该电子设备不具有的硬件接口,例如可以是第三硬件接口集合包括其他类型的电子设备所具有的硬件接口。例如,第三硬件接口与手机匹配,那么第三硬件接口集合中的硬件接口均为手机的硬件接口,第三硬件接口集合不会包含不是该手机的硬件接口,例如不会包含手表的硬件接口,也不会包含电视的硬件接口。

如图9所示,硬件接口集合901中的硬件接口1、硬件接口2、硬件接口3、硬件接口4均为电子设备1所具有的硬件接口,硬件接口集合902中的硬件接口5、硬件接口6、硬件接口7均为电子设备2所具有的硬件接口。

在一个示例中,电子设备为手表,电子设备可以根据该电子设备的类型,从多个硬件接口集合中确定第三硬件接口集合,该第三硬件接口集合中的硬件接口均为该电子设备所具有的硬件接口;第三指示信息指示的硬件接口的功能为语音通话功能,电子设备可以根据第三指示信息,从第三硬件接口集合中确定能够实现语言通话功能的硬件接口,或者从第三硬件接口集合中确定移动通信接口。

在一个示例中,电子设备为手表,电子设备可以根据该电子设备的类型,从多个硬件接口集合中确定第三硬件接口集合,该第三硬件接口集合中的硬件接口均为该电子设备所具有的硬件接口;第三指示信息指示的硬件接口的功能为在屏幕上显示图像的功能;电子设备可以根据第三指示信息,从第三硬件接口集合中确定能够实现在屏幕上显示图像的功能的硬件接口,或者从第三硬件接口集合中确定屏幕显示接口。

在一个示例中,电子设备为手表,电子设备可以根据该电子设备的类型,从多个硬件接口集合中确定第三硬件接口集合,该第三硬件接口集合中的硬件接口均为该电子设备所具有的硬件接口;第三指示信息指示的硬件接口的功能为声音播放功能;电子设备可以根据第三指示信息,从第三硬件接口集合中确定能够实现声音播放功能的硬件接口,或者从第三硬件接口集合中确定扬声器接口和耳机接口。

在一个示例中,电子设备为手表,电子设备可以根据该电子设备的类型,从多个硬件接口集合中确定第三硬件接口集合,该第三硬件接口集合中的硬件接口均为该电子设备所具有的硬件接口;第三指示信息指示的硬件接口的功能为定位功能;电子设备可以根据第三指示信息,从第三硬件接口集合中确定能够实现定位功能的硬件接口,或者从第三硬件接口集合中确定定位接口。

在一个示例中,电子设备为手表,电子设备可以根据该电子设备的类型,从多个硬件接口集合中确定第三硬件接口集合,该第三硬件接口集合中的硬件接口均为该电子设备所具有的硬件接口;第三指示信息指示的硬件接口的功能为无线通信功能;电子设备可以根据第三指示信息,从第三硬件接口集合中确定能够实现无线通信功能的硬件接口,或者从第三硬件接口集合中确定蓝牙接口。

在一个示例中,电子设备为手表,电子设备可以根据该电子设备的类型,从多个硬件接口集合中确定第三硬件接口集合,该第三硬件接口集合中的硬件接口均为该电子设备所具有的硬件接口;第三指示信息指示的硬件接口的功能为拍摄功能;电子设备可以根据第三指示信息,从第三硬件接口集合中确定能够实现拍摄功能的硬件接口,或者从第三硬件接口集合中确定前置摄像头接口、后置摄像头接口。

在一个示例中,电子设备为手表,电子设备可以根据该电子设备的类型,从多个硬件接口集合中确定第三硬件接口集合,该第三硬件接口集合中的硬件接口均为该电子设备所具有的硬件接口;第三指示信息指示移动通信接口,电子设备可以根据第三指示信息,从第三硬件接口集合中确定移动通信接口,或者从第三硬件接口集合中确定能够实现语言通话功能的硬件接口。

在一个示例中,电子设备为手表,电子设备可以根据该电子设备的类型,从多个硬件接口集合中确定第三硬件接口集合,该第三硬件接口集合中的硬件接口均为该电子设备所具有的硬件接口;第三指示信息指示屏幕显示接口;电子设备可以根据第三指示信息,从第三硬件接口集合中确定屏幕显示接口,或者从第三硬件接口集合中确定能够实现在屏幕上显示图像的功能的硬件接口。

在一个示例中,电子设备为手表,电子设备可以根据该电子设备的类型,从多个硬件接口集合中确定第三硬件接口集合,该第三硬件接口集合中的硬件接口均为该电子设备所具有的硬件接口;第三指示信息指示扬声器接口;电子设备可以根据第三指示信息,从第三硬件接口集合中确定扬声器接口,或者从第三硬件接口集合中确定能够实现声音播放功能的硬件接口。

在一个示例中,电子设备为手表,电子设备可以根据该电子设备的类型,从多个硬件接口集合中确定第三硬件接口集合,该第三硬件接口集合中的硬件接口均为该电子设备所具有的硬件接口;第三指示信息指示耳机接口;电子设备可以根据第三指示信息,从第三硬件接口集合中确定耳机接口,或者从第三硬件接口集合中确定能够实现声音播放功能的硬件接口。

在一个示例中,电子设备为手表,电子设备可以根据该电子设备的类型,从多个硬件接口集合中确定第三硬件接口集合,该第三硬件接口集合中的硬件接口均为该电子设备所具有的硬件接口;第三指示信息指示定位接口;电子设备可以根据第三指示信息,从第三硬件接口集合中确定定位接口,或者从第三硬件接口集合中确定能够实现定位功能的硬件接口。

在一个示例中,电子设备为手表,电子设备可以根据该电子设备的类型,从多个硬件接口集合中确定第三硬件接口集合,该第三硬件接口集合中的硬件接口均为该电子设备所具有的硬件接口;第三指示信息指示蓝牙;电子设备可以根据第三指示信息,从第三硬件接口集合中确定蓝牙接口,或者从第三硬件接口集合中确定能够实现无线通信功能的硬件接口。

在一个示例中,电子设备为手表,电子设备可以根据该电子设备的类型,从多个硬件接口集合中确定第三硬件接口集合,该第三硬件接口集合中的硬件接口均为该电子设备所具有的硬件接口;第三指示信息指示前置摄像头接口;电子设备可以根据第三指示信息,从第三硬件接口集合中确定前置摄像头接口,或者从第三硬件接口集合中确定能够实现拍摄功能的硬件接口。

803,调用所述至少一个第三硬件接口。

步骤803的具体实现方式可以参照图4所示实施例中的步骤403,在此就不必赘述。

可选的,所述方法还包括:读取第四应用的代码中的第四指示信息,所述第四应用需要调用的硬件接口的第四功能;在所述电子设备不具有与所述第四功能相匹配的硬件接口的情况下,调用预设的目标接口,或者呈现告警信息。

可选的,所述方法还包括:读取第四应用的代码中的第四指示信息,所述第四应用需要调用的硬件接口的第四类型;在所述电子设备不具有与所述第四类型相匹配的硬件接口的情况下,调用预设的目标接口,或者呈现告警信息。

上文已经详细描述了硬件接口的类型与硬件接口的类型或功能匹配的示例,以及硬件接口的功能与硬件接口的类型或功能匹配的示例,在此就不再赘述。

预设的目标接口,可以是虚拟接口或是物理接口。

例如,电子设备为手表,第二指示信息指示调用usb接口,而手表不具有usb接口。在此情况下,该电子设备可以调用用于充电的耳机接口,该耳机接口即为目标接口。由于电子设备可以调用目标接口,因此不会得到电子设备无法调用usb接口的调用反馈结果,也就不会因为该电子设备没有usb接口而导致第二应用运行失败(如第二应用运行崩溃或无限次的循环错误)。

又如,电子设备为电视,第二指示信息指示调用移动通信接口,而电视不具有移动通信接口。在此情况下,该电子设备可以调用一个预设的虚拟接口。由于电子设备可以调用目标接口,因此不会得到电子设备无法调用移动通信接口的调用反馈结果,也就不会因为该电子设备没有移动通信接口而导致第二应用运行失败(如第二应用运行崩溃或无限次的循环错误)。

告警信息例如可以是在屏幕上显示“×”等符号。

呈现告警信息,可以根据第二指示信息指示的第二硬件接口集合的类型或功能,确定呈现的告警信息。

例如,第二硬件接口集合的类型为移动通信接口,呈现的告警信息可以是“本机不具备语音通话功能”。

又如,第二硬件接口集合的类型为指纹识别接口,呈现的告警信息可以是“无法获取指纹信息”。

又如,第二硬件接口集合的类型为定位接口,呈现的告警信息可以是“无法获取当前位置信息,是否手动输入当前位置信息”。

又如,第二硬件接口集合的类型为蓝牙接口,呈现的告警信息可以是“无可连接的蓝牙设备”。

又如,第二硬件接口集合的类型为前置摄像头接口,呈现的告警信息可以是“调用前置摄像头出现错误,是否调用后置摄像头”。

可选的,所述第三指示信息还包括指示所述第三应用需要调用的接口的版本号的信息。

图10是本申请实施例的电子设备100的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将android系统分为四层,从上至下分别为应用层,应用框架层,安卓运行时(androidruntime)和系统库。如图9所示,软件架构中的各层可以通过硬件接口层调用硬件层,硬件层可以包括图1中的多个硬件。其中,应用层,应用框架层,安卓运行时(androidruntime),系统库和硬件层可以参照图2所示的示例,在此不再赘述。

在系统层与硬件层之间还可以包括硬件接口层,该硬件接口层包括多个电子设备的硬件接口,每个硬件接口可以驱动一个电子设备的硬件。例如包括用于驱动显示屏的手机接口、用于驱动显示屏的手表接口、用于驱动显示屏的电视接口、用于驱动摄像头的手机接口等。

当电子设备内部的处理器或芯片读取应用程序层、应用框架层、安卓运行时、系统库的代码时,可以通过硬件接口层,找到该电子设备能够调用的硬件接口,从而驱动硬件层中的硬件,并执行相应的操作。例如,硬件接口层中包括手机能够调用的硬件、手表能够调用的硬件和电视能够调用的硬件,手机可以在硬件接口层中找到手机能够调用的硬件接口,从而驱动硬件层中的硬件,并执行相应的操作。

图11所示为硬件接口层的内部结构框图。硬件接口层可以包括硬件接口代理层、硬件接口适配层、硬件接口访问控制层。

硬件接口代理层可以包括权限控制,用于确认硬件接口访问请求是否安全,还可以用于确认访问对象是否具有访问硬件接口的权限。硬件接口代理层可以实现安全、合理地访问硬件接口层。

硬件接口适配层包括多个硬件接口。硬件接口可以通过代码实现硬件调用,因此,可以使用代码来定义硬件接口。例如,在安卓系统中,可以使用硬件接口定义语言(hardwareinterfacedefinitionlanguage,hidl)定义硬件接口。又如,可以使用hidl语言调用java格式的代码,实现硬件接口的调用。

该多个硬件接口的类型互不相同。或者,硬件接口适配层包括该多个硬件接口,该多个硬件接口所能够实现的功能互不相同。图11所示为硬件接口适配层包括多个不同类型的硬件接口的示例。如图11所示,硬件接口适配层包括类型1的硬件接口以及类型2的硬件接口。硬件接口适配层中的多个硬件接口为虚拟接口。硬件接口适配层中的多个硬件接口,可以用于表示上文中第一硬件接口集合、第二硬件接口集合、第三硬件接口集合、第四硬件接口集合中的至少一个。具体调用硬件接口适配层的方法可以参照图4、图7、图8所示的实施例。具体地,具体调用硬件接口适配层的方法可以参照图4所示实施例的步骤401、图7所示实施例的步骤701、图8所示的实施例的步骤801。

硬件接口访问控制层用于根据硬件接口适配层中硬件接口的调用情况,确定电子设备能够调用的硬件接口,或者执行预设的操作。电子设备可以包括用于识别设备类型的软件模块或硬结模块。例如,电子设备可以电子设备的版本号、型号等,从而调用该电子设备的硬件,或者确定该电子设备的硬件接口。电子设备可以包括用于识别硬件类型的软件模块或硬结模块。例如,电子设备可以识别芯片的类型,从而调用包括该芯片的硬件,或者确定包括该芯片的硬件的硬件接口。又如,电子设备可以识别硬件的版本号或型号,从而确定是否调用该硬件,或者确定该硬件的硬件接口。

硬件接口适配层中的每个硬件接口均与至少两个电子设备的硬件接口有对应关系。如图11所示,类型1的硬件接口与设备1的硬件接口1、设备2的硬件接口2、设备3的硬件接口3有对应关系。类型2的硬件接口与设备1的硬件接口4、设备2的硬件接口5有对应关系。当有应用程序通过指示信息指示调用类型1的硬件接口时,设备1可以根据该指示信息调用该硬件接口1。而当有应用程序通过指示信息指示调用类型2的硬件接口时,设备3可以调用预设的目标接口,或者呈现告警信息。硬件接口访问控制层中的多个硬件接口,可以用于表示上文中硬件接口集合中的多个硬件接口。具体调用硬件接口适配层的方法可以参照图4、图7、图8所示的实施例。具体地,具体调用硬件接口适配层的方法可以参照图4所示实施例的步骤402-403、图7所示实施例的步骤702、图8所示的实施例的步骤802-803。

硬件接口访问控制层可以驱动硬件层中的硬件,从而根据应用程序中的代码执行相应的操作。

图12是本申请实施例提供的电子设备的硬件结构示意图。图12所示的电子设备1200(该电子设备1200具体可以是一种计算机设备)包括存储器1201、处理器1202、通信接口1203以及总线1204。其中,存储器1201、处理器1202、通信接口1203通过总线1204实现彼此之间的通信连接。

存储器1201可以是只读存储器(readonlymemory,rom),静态存储设备,动态存储设备或者随机存取存储器(randomaccessmemory,ram)。存储器1201可以存储程序,当存储器1201中存储的程序被处理器1202执行时,处理器1202用于执行本申请实施例中图4、7或8所示的处理图像的方法的各个步骤。

处理器1202可以采用通用的中央处理器(centralprocessingunit,cpu),微处理器,应用专用集成电路(applicationspecificintegratedcircuit,asic),图形处理器(graphicsprocessingunit,gpu)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例中图4、7或8所示的处理图像的方法。

处理器1202还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请实施例中图4、7或8所示的处理图像的方法的各个步骤可以通过处理器1202中的硬件的集成逻辑电路或者软件形式的指令完成。

上述处理器1202还可以是通用处理器、数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1201,处理器1202读取存储器1201中的信息,结合其硬件完成本申请实施例的电子设备中包括的单元所需执行的功能,或者执行本申请实施例中图4、7或8所示的处理图像的方法。

通信接口1203使用例如但不限于收发器一类的收发装置,来实现电子设备1200与其他设备或通信网络之间的通信。例如,可以通过通信接口1203获取待构建的神经网络的信息以及构建神经网络过程中需要的训练数据(如图4、7或8所示实施例中的待处理图像)。

总线1204可包括在电子设备1200各个部件(例如,存储器1201、处理器1202、通信接口1203)之间传送信息的通路。

应理解,电子设备中的获取模块可以相当于电子设备1200中的通信接口1203;电子设备中的处理模块可以相当于处理器1202。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1