一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

应用模块启动方法和电子设备与流程

2022-03-14 01:32:49 来源:中国专利 TAG:

应用模块启动方法和电子设备
1.本技术要求于2020年09月10日提交中国专利局、申请号为202010948973.3、申请名称为“应用安装方法和设备”的中国专利申请的优先权,其全部内容通过引用结合在本技术中。
技术领域
2.本技术涉及电子技术领域,尤其涉及一种应用模块启动方法和电子设备。


背景技术:

3.一个应用程序通常包含多个功能实现。在电子设备安装一个应用程序后,用户可能只用到该应用程序的部分功能实现,而剩余的大部分功能实现用户并不会用到,容易造成电子设备的存储空间的浪费,且应用程序的安装时长也会变长,降低了用户的使用体验。


技术实现要素:

4.本技术提供一种应用模块启动方法和电子设备,可以通过电子设备中的系统服务启动一个应用程序中的未安装的应用模块,使得电子设备无需安装该应用程序中的全部应用模块,节省了电子设备的存储空间,丰富了该应用程序的功能实现,还使得电子设备可安装更多的应用程序,为用户提供了种类繁多的应用程序,有利于提高了用户的使用体验。
5.第一方面,本技术提供一种应用模块启动方法,该方法应用于第一设备,第一设备包括系统模块。
6.该方法包括:系统模块接收第一消息,第一消息与第一应用模块关联,第一应用模块为第一应用程序中的一个软件模块。响应于接收第一消息,系统模块确定第一设备是否安装第一应用模块。响应于确定第一设备未安装第一应用模块时,系统模块向第一服务器发送第二消息,第二消息用于下载第一应用模块。系统模块从第一服务器接收第三消息,第三消息为第一服务器响应于接收第二消息得到的与第一应用模块关联的消息。响应于接收第三消息,系统模块在第一设备中下载、安装并启动第一应用模块。
7.其中,系统模块具体实现内容可参见本技术提及的系统服务的描述内容,应用模块的具体实现内容可参见本技术提及的元能力的描述内容,第一服务器可参见本技术提及的hag服务器的描述内容,此处不做赘述。
8.通过第一方面的方法,在第一设备需要启动一个应用程序中的未安装的应用模块时,第一设备中的系统模块可查询第一设备中是否安装有该应用模块。在确定第一设备中未安装该应用模块时,第一设备中的系统模块可通过与第一服务器进行通信,使得第一设备中的系统模块基于从第一服务器发送的消息,可在第一设备中下载、安装并启动第一应用模块。从而,实现了该应用模块的按需下载,使得第一设备在首次安装该应用程序时,可选择该应用程序中的部分的应用模块,无需安装该应用程序中的全部的应用模块,节省了第一设备安装该应用程序的存储空间,且丰富了该应用程序的功能实现,为用户提供了该应用程序的更多功能,还使得第一设备可安装更多种类的应用程序,有利于丰富用户使用
更多种类的应用程序。
9.在一种可能的设计中,该方法具体包括:系统模块从第一服务器接收第三消息,第三消息中携带有第一应用模块的下载地址。响应于接收第三消息,系统模块从第二服务器中下载第一应用模块。系统模块将第一应用模块安装在第一设备中,并启动第一应用模块。
10.其中,第一应用模块的下载地址的具体实现内容可参见本技术提及的元能力的cdn下载地址的描述内容,第二服务器的具体实现内容可参见本技术提及的cdn服务器的描述内容,此处不做赘述。
11.由此,第一设备中的系统模块可从第一服务器中获取第一应用模块的下载地址。第一设备中的系统模块基于第一应用模块的下载地址,从第二服务器下载第一应用模块。第一设备中的系统模块便可在第一设备中安装第一应用模块,且在安装结束后可启动第一应用模块。从而,由第一服务器存储应用模块的下载地址,由第二服务器存储应用模块本身,使得第一设备中的系统模块分别与第一服务器和第二服务器分开进行交互,有利于第一设备中的系统模块顺利启动未安装的应用模块。
12.另外,除了上述下载第一应用模块的实现方式之外,第一服务器也可事先存储有第一应用模块,使得第一设备中的系统模块可从第一服务器直接下载第一应用模块。
13.并且,在第一设备中的系统模块启动第一设备中的未安装的应用模块时,开发者仅需调配系统模块接收第一消息对应的接口,便可完成未安装的应用模块的启动,从而,减少了开发者调配应用与系统服务之间的接口数量,降低了开发者的编程成本,且也无需开发者将谷歌核心库(google play core)集成在应用程序中,减少了开发者的配置成本,有利于开发更多元能力丰富用户的使用。
14.在一种可能的设计中,第一设备还包括:第二应用模块,第二应用模块为第二应用程序中的一个软件模块。该方法具体包括:响应于接收用户的第一操作,第二应用模块向系统模块发送第一消息。
15.在一种可能的设计中,第一应用程序与第二应用程序相同。由此,第一设备中,一个应用程序中的已安装的应用模块可触发系统模块启动该应用程序中的未安装的应用模块,使得第一设备中的系统模块通过第一服务器下载、安装并启动该应用程序中的未安装的应用模块。从而,借助同一应用程序中的不同的应用模块之间的相互配合,能够完成未安装的应用模块的功能实现,实现了该应用模块的按需下载,还有利于用户在使用一个应用程序时能够体验多种功能,提高了用户的使用体验。
16.在一种可能的设计中,第一应用程序与第二应用程序不同。由此,第一设备中,一个应用程序中的已安装的应用模块可触发系统模块启动另一个应用程序中的未安装的应用模块,使得第一设备中的系统模块通过第一服务器下载、安装并启动另一应用程序中的未安装的应用模块。从而,借助不同的应用程序中的应用模块之间的相互配合,能够完成未安装的应用模块的功能实现,实现了该应用模块的按需下载,还有利于用户在使用一个应用程序时能够体验另一个应用程序的功能,提高了用户的使用体验。
17.在一种可能的设计中,第一设备与第二设备通信连接。该方法具体包括:系统模块从第二设备接收第一消息,第一消息是第二设备响应于接收用户的第二操作发送的,第一消息中还携带有第一设备的设备标识。
18.由此,第二设备可触发第一设备中的系统模块启动一个应用程序中的未安装的应
用模块,使得用户对该应用模块的下载过程无感知,且该应用模块无需在该应用模块所属的应用程序首次安装时在下载,实现了该应用模块的按需下载。
19.在一种可能的设计中,该方法具体包括:系统模块中的分布式调度服务dms从第二设备中的分布式调度服务dms接收第一消息。
20.在一种可能的设计中,在系统模块包括:分布式调度服务dms和包管理服务bms时,该方法具体包括:分布式调度服务dms接收第一消息,第一消息中携带有第一应用程序的标识以及第一应用模块的模块标识。响应于接收第一消息,分布式调度服务dms向包管理服务bms发送第四消息,第四消息中携带有第一应用程序的标识以及第一应用模块的模块标识。响应于接收第四消息,包管理服务bms确定第一设备是否安装第一应用模块。响应于确定第一设备未安装第一应用模块时,包管理服务bms向第一服务器发送第二消息,第二消息中携带有第一设备的设备标识、第一应用程序的标识以及第一应用模块的模块标识。包管理服务bms从第一服务器接收第三消息,第三消息中携带有第一应用模块的下载地址、第一应用程序的标识以及第一应用模块的模块标识。响应于接收第三消息,包管理服务bms基于第一应用模块的下载地址,从第二服务器中下载第一应用模块,并将第一应用模块安装在第一设备中。包管理服务bms向分布式调度服务dms发送第五消息,第五消息用于向分布式调度服务dms通知第一应用模块已安装在第一设备中。响应于接收第五消息,分布式调度服务dms启动第一应用模块。
21.其中,应用程序的标识的具体实现内容可参见本技术提及的应用的包名的描述内容,第一应用模块的模块标识的具体实现内容可参见本技术提及元能力的元能力名的描述内容,此处不做赘述。
22.由此,第一设备中的系统模块可通过应用程序的标识以及应用模块的模块标识,显式启动应用模块,使得未安装的应用模块自动安装,且用户对应用模块的下载过程无感知,该应用模块无需在应用程序首次安装时下载且可实现按需下载。
23.在一种可能的设计中,在系统模块包括:分布式调度服务dms和包管理服务bms时,方法具体包括:分布式调度服务dms接收第一消息,第一消息中携带有第一应用程序的标识以及第一应用模块所属类型的标识。响应于接收第一消息,分布式调度服务dms向包管理服务bms发送第四消息,第四消息中携带有第一应用程序的标识以及第一应用模块所属类型的标识。响应于接收第四消息,包管理服务bms确定第一设备是否安装第一应用模块。响应于确定第一设备未安装第一应用模块时,包管理服务bms向分布式调度服务dms发送第二消息,第二消息中携带有第一设备的设备标识、第一应用程序的标识以及第一应用模块所属类型的标识。包管理服务bms从第一服务器接收第三消息,第三消息中携带有第一应用模块的下载地址、第一应用程序的标识以及第一应用模块所属类型的标识。响应于接收第三消息,包管理服务bms基于第一应用模块的下载地址,从第二服务器中下载第一应用模块,并将第一应用模块安装在第一设备中。包管理服务bms向分布式调度服务dms发送第五消息,第五消息用于向分布式调度服务dms通知第一应用模块已安装在第一设备中。响应于接收第五消息,分布式调度服务dms启动第一应用模块。
24.其中,应用程序的标识的具体实现内容可参见本技术提及的应用的包名的描述内容,第一应用模块所属类型的标识的具体实现内容可参见本技术提及元能力的预定义action的描述内容,此处不做赘述。
25.由此,第一设备中的系统模块可通过应用程序的标识以及应用模块所属类型的标识,半隐式启动应用模块,充分考虑到三方应用厂商通常不会将应用模块的标识提供给其他厂商,即无需依赖应用模块的标识,还使得未安装的应用模块自动安装,且用户对应用模块的下载过程无感知,该应用模块无需在应用程序首次安装时下载且可实现按需下载。
26.在一种可能的设计中,在系统模块包括:分布式调度服务dms和包管理服务bms时,方法具体包括:分布式调度服务dms接收第一消息,第一消息中携带有第一应用模块所属类型的标识。响应于接收第一消息,分布式调度服务dms向包管理服务bms发送第四消息,第四消息中携带有第一应用模块所属类型的标识。响应于接收第四消息,包管理服务bms确定第一设备是否安装第一应用模块。响应于确定第一设备未安装第一应用模块时,包管理服务bms向第一服务器发送第二消息,第二消息中携带有第一设备的设备标识以及第一应用模块所属类型的标识。包管理服务bms从第一服务器接收第三消息,第三消息中携带有第一集合,第一集合的每个子集中携带有一个应用程序的标识、包含在应用程序中的软件模块的模块标识以及软件模块的下载地址,且每个子集中对应的软件模块与第一应用模块属于同一个类型。响应于接收第三消息,包管理服务bms基于第一集合中选择的一个软件模块的下载地址从第二服务器中下载选择的一个软件模块,并将选择的一个软件模块安装在第一设备中。包管理服务bms向分布式调度服务dms发送第五消息,第五消息用于向分布式调度服务dms通知第一应用模块已安装在第一设备中。响应于接收第五消息,分布式调度服务dms启动选择的一个软件模块。
27.其中,第一应用模块所属类型的标识的具体实现内容可参见本技术提及预定义action的描述内容,此处不做赘述。
28.由此,第一设备中的系统模块可通过应用模块所属类型的标识,隐式启动应用模块,充分考虑到三方应用厂商通常不会将应用模块的标识提供给其他厂商,即无需依赖应用模块的标识,还使得未安装的应用模块自动安装,且用户对应用模块的下载过程无感知,该应用模块无需在应用程序首次安装时下载且可实现按需下载。
29.在一种可能的设计中,该方法还包括:响应于接收第三消息,包管理服务bms向分布式调度服务dms发送第六消息,第六消息中携带有第一集合。
30.响应于接收第六消息,分布式调度服务dms基于预设规则从第一集合中确定选择的一个软件模块。或者,响应于接收第六消息,分布式调度服务dms显示第一窗口,第一窗口中包括与第一集合中的软件模块对应的控件;响应于接收用户在第一窗口中对选择的一个软件模块对应的控件上的第三操作,分布式调度服务dms确定选择的一个软件模块。
31.分布式调度服务dms向包管理服务bms发送第七消息,第七消息中携带有选择的一个软件模块所属的应用程序的标识以及选择的一个软件模块的模块标识。响应于接收第七消息,包管理服务bms基于选择的一个软件模块所属的应用程序的标识以及选择的一个软件模块的模块标识,从第一集合中确定选择的一个软件模块的下载地址。
32.由此,由于应用模块所属类型的标识可对应多个软件模块。因此,系统模块中的分布式调度服务dms可按照预设规则或者用户的选择,从多个软件模块中确定出第一设备需求启动的软件模块。
33.在一种可能的设计中,该方法还包括:响应于确定第一设备已安装第一应用模块时,系统模块启动第一应用模块。由此,充分考虑到第一设备是否安装应用模块的各种情
况,确保了方案的完整性。
34.在一种可能的设计中,第一设备与第三设备通信连接。该方法还包括:系统模块向第三设备发送第八消息,第八消息用于请求第三设备启动第三应用模块,第三应用模块为第三应用程序中的一个软件模块,第三应用模块未安装在第三设备中;第八消息中携带有第三设备的设备标识、第三应用程序的标识以及第三应用模块的模块标识,或者第八消息中携带有第三设备的设备标识、第三应用程序的标识以及第三应用模块所属类型的标识,或者第八消息中携带有第三设备的设备标识以及第三应用模块所属类型的标识。
35.由此,第一设备可触发第三设备中的系统模块来启动第三设备中的未安装的应用模块,使得第一设备不仅能够启动自身中未安装的应用模块,还可控制其他设备启动第三设备中未安装的应用模块,增加了第一设备的实现功能。
36.在一种可能的设计中,该方法具体包括:系统模块中的分布式调度服务dms向第三设备中的分布式调度服务dms发送第八消息。
37.第二方面,本技术提供一种应用模块启动方法,该方法应用于第一设备,第一设备包括:第四应用模块和系统模块,第四应用模块为第四应用程序中的一个软件模块,第一设备与第四设备通信连接。
38.该方法包括:响应于接收用户的第四操作,第四应用模块向系统模块发送第九消息,第九消息与第五应用模块关联,第五应用模块为第五应用程序中的一个软件模块,第四应用程序与第五应用程序不同。响应于接收第九消息,系统模块确定第一设备和第四设备是否安装第五应用模块。响应于确定第一设备和第四设备均未安装第五应用模块时,系统模块向第一服务器发送第十消息,第十消息用于下载第五应用模块。系统模块从第一服务器接收第十一消息,第十一消息为第一服务器响应于接收第十消息得到的与第五应用模块关联的消息。响应于接收第十一消息,系统模块实现第一设备和/或第四设备中下载、安装并启动第五应用模块。
39.其中,系统模块具体实现内容可参见本技术提及的系统服务的描述内容,应用模块的具体实现内容可参见本技术提及的元能力的描述内容,第一服务器可参见本技术提及的hag服务器的描述内容,此处不做赘述。并且,第一设备与第四设备通信连接可理解为第一设备与第四设备在同一个分布式网络中。
40.通过第二方面的方法,第一设备中的已安装的应用模块可触发第一设备中的系统模块启动同一个分布式网络中选择的设备中的未安装的第五应用模块,第一设备中的系统模块可查询同一个分布式网络中的全部的设备中是否安装有第五应用模块。在确定同一个分布式网络中的全部的设备中未安装第五应用模块时,第一设备中的系统模块可通过与第一服务器进行通信,使得第一设备中的系统模块基于从第一服务器发送的消息,可在同一个分布式网络中选择的设备中下载、安装并启动第五应用模块。从而,借助同一个分布式网络中的各个设备之间的联动,实现了该应用模块的按需下载,使得同一个分布式网络中的设备在首次安装该应用程序时,可选择该应用程序中的部分的应用模块,无需安装该应用程序中的全部的应用模块,节省了同一个分布式网络中的设备安装该应用程序的存储空间,且丰富了该应用程序的功能实现,为用户提供了该应用程序的更多功能,还使得同一个分布式网络中的设备可安装更多种类的应用程序,有利于丰富用户使用更多种类的应用程序。
41.在一种可能的设计中,该方法具体包括:系统模块从第一服务器接收第十一消息,第十一消息中携带有第五应用模块的下载地址和适用于第五应用模块的下载地址的设备类型。响应于接收第十一消息,系统模块确定适用于第五应用模块的下载地址的设备类型是否包括第一设备和第四设备。
42.响应于确定适用于第五应用模块的下载地址的设备类型包括第一设备时,系统模块基于第五应用模块的下载地址,从第二服务器下载第五应用模块,将第五应用模块安装在第一设备中,并在第一设备中启动第五应用模块。
43.或者,响应于确定适用于第五应用模块的下载地址的设备类型包括第四设备时,系统模块向第四设备发送第十二消息,第十二消息用于请求第四设备启动第五应用模块,第十二消息中携带有第五应用模块的下载地址。
44.或者,响应于确定适用于第五应用模块的下载地址的设备类型包括第一设备和第四设备时,系统模块显示第二窗口,第二窗口中包括第一设备对应的控件和第四设备对应的控件;响应于接收用户在第二窗口中对第一设备对应的控件上的第五操作,系统模块基于第五应用模块的下载地址,从第二服务器下载第五应用模块,将第五应用模块安装在第一设备中,并在第一设备中启动第五应用模块;和/或,响应于接收用户在第二窗口中对第四设备对应的控件上的第五操作,系统模块向第四设备发送第十二消息,第十二消息用于请求第四设备启动第五应用模块,第十二消息中携带有第五应用模块的下载地址。
45.其中,第五应用模块的下载地址的具体实现内容可参见本技术提及的元能力的cdn下载地址的描述内容,第二服务器的具体实现内容可参见本技术提及的cdn服务器的描述内容,适用于第五应用模块的下载地址的设备类型可参见本技术提及的适用于元能力的下载地址的设备类型的描述内容,此处不做赘述。
46.由此,第一设备中的系统模块可从第一服务器中获取第五应用模块的下载地址。第一设备中的系统模块基于第五应用模块的下载地址,从第二服务器下载第五应用模块。且第一设备中的系统模块基于适用于第五应用模块的下载地址的设备类型,从第一设备和第四设备中确定需要启动第五应用模块的设备。从而,第一设备中的系统模块便可实现第一设备和/或第四设备启动第五应用模块的过程。可见,由第一服务器存储应用模块的下载地址,由第二服务器存储应用模块本身,使得第一设备中的系统模块分别与第一服务器和第二服务器分开进行交互,有利于第一设备中的系统模块顺利启动未安装的应用模块。
47.另外,除了上述下载第五应用模块的实现方式之外,第一服务器也可事先存储有第五应用模块,使得第一设备中的系统模块可从第一服务器直接下载第五应用模块。
48.在一种可能的设计中,在系统模块包括:分布式调度服务dms和包管理服务bms时,该方法具体包括:响应于接收第四操作,第四应用模块向分布式调度服务dms发送第九消息,第九消息中携带有第五应用程序的标识以及第五应用模块的模块标识。响应于接收第九消息,分布式调度服务dms向包管理服务bms发送第十三消息,第十三消息中携带有第五应用程序的标识以及第五应用模块的模块标识。响应于接收第十三消息,包管理服务bms确定第一设备和第四设备是否安装第五应用模块。响应于确定第一设备和第四设备均未安装第五应用模块时,包管理服务bms向第一服务器发送第十消息,第十消息中携带有第五应用程序的标识以及第五应用模块的模块标识。包管理服务bms从第一服务器接收第十一消息,第十一消息中携带有第五应用模块的下载地址、适用于第五应用模块的下载地址的设备类
型、第五应用程序的标识以及第五应用模块的模块标识。响应于接收第十一消息,包管理服务bms向分布式调度服务dms发送第十四消息,第十四消息中携带有第五应用模块的下载地址、适用于第五应用模块的下载地址的设备类型、第五应用程序的标识以及第五应用模块的模块标识。响应于接收第十四消息,分布式调度服务dms确定适用于第五应用模块的设备类型是否包括第一设备和第四设备。
49.响应于确定适用于第五应用模块的下载地址的设备类型包括第一设备时,分布式调度服务dms向包管理服务bms发送第十五消息,第十五消息用于请求下载第五应用模块;响应于接收第十五消息,包管理服务bms基于第五应用模块的下载地址,从第二服务器中下载第五应用模块,将第五应用模块安装在第一设备中,并向分布式调度服务dms发送第十六消息;响应于接收第十六消息,分布式调度服务dms在第一设备中启动第五应用模块。
50.或者,响应于确定适用于第五应用模块的下载地址的设备类型包括第四设备时,分布式调度服务dms向第四设备中的分布式调度服务dms发送第十二消息,第十二消息用于请求第四设备启动第五应用模块,第十二消息中携带有第五应用模块的下载地址、第四设备的设备标识、第五应用程序的标识以及第五应用模块的模块标识。
51.或者,响应于确定适用于第五应用模块的下载地址的下载地址的设备类型包括第一设备和第四设备时,分布式调度服务dms显示第二窗口,第二窗口中包括第一设备对应的控件和第四设备对应的控件;响应于接收用户在第二窗口中对第一设备对应的控件上的第五操作,分布式调度服务dms向包管理服务bms发送第十五消息,第十五消息用于请求下载第五应用模块;响应于接收第十五消息,包管理服务bms基于第五应用模块的下载地址,从第二服务器中下载第五应用模块,将第五应用模块安装在第一设备中,并向分布式调度服务dms发送第十六消息;响应于接收第十六消息,分布式调度服务dms在第一设备中启动第五应用模块;和/或,响应于接收用户在第二窗口中对第四设备对应的控件上的第五操作,分布式调度服务dms向第四设备中的分布式调度服务dms发送第十二消息,第十二消息用于请求第四设备启动第五应用模块,第十二消息中携带有第五应用模块的下载地址、第四设备的设备标识、第五应用程序的标识以及第五应用模块的模块标识。
52.其中,应用程序的标识的具体实现内容可参见本技术提及的应用的包名的描述内容,第五应用模块的模块标识的具体实现内容可参见本技术提及元能力的元能力名的描述内容,此处不做赘述。
53.由此,第一设备中的系统模块可通过应用程序的标识以及应用模块的模块标识,实现同一个分布式网络中的第一设备和/或第四设备显式启动应用模块,使得未安装的应用模块自动安装,且用户对应用模块的下载过程无感知,该应用模块无需在应用程序首次安装时下载且可实现按需下载。
54.在一种可能的设计中,在系统模块包括:分布式调度服务dms和包管理服务bms时,该方法具体包括:响应于接收第四操作,第四应用模块向分布式调度服务dms发送第九消息,第九消息中携带有第五应用程序的标识以及第五应用模块所属类型的标识。响应于接收第九消息,分布式调度服务dms向包管理服务bms发送第十三消息,第十三消息中携带有第五应用程序的标识以及第五应用模块所属类型的标识。响应于接收第十三消息,包管理服务bms确定第一设备和第四设备是否安装第五应用模块。响应于确定第一设备和第四设备均未安装第五应用模块时,包管理服务bms向第一服务器发送第十消息,第十消息中携带
有第五应用程序的标识以及第五应用模块所属类型的标识。包管理服务bms从第一服务器接收第十一消息,第十一消息中携带有第五应用模块的下载地址、适用于第五应用模块的下载地址的设备类型、第五应用程序的标识以及第五应用模块所属类型的标识。响应于接收第十一消息,包管理服务bms向分布式调度服务dms发送第十四消息,第十四消息中携带有第五应用模块的下载地址、适用于第五应用模块的下载地址的设备类型、第五应用程序的标识以及第五应用模块所属类型的标识。响应于接收第十四消息,分布式调度服务dms确定适用于第五应用模块的下载地址的设备类型是否包括第一设备和第四设备。
55.响应于确定适用于第五应用模块的下载地址的设备类型包括第一设备时,分布式调度服务dms向包管理服务bms发送第十五消息,第十五消息用于请求下载第五应用模块;响应于接收第十五消息,包管理服务bms基于第五应用模块的下载地址,从第二服务器中下载第五应用模块,将第五应用模块安装在第一设备中,并向分布式调度服务dms发送第十六消息;响应于接收第十六消息,分布式调度服务dms在第一设备中启动第五应用模块。
56.或者,响应于确定适用于第五应用模块的下载地址的设备类型包括第四设备时,分布式调度服务dms向第四设备中的分布式调度服务dms发送第十二消息,第十二消息用于请求第四设备启动第五应用模块,第十二消息中携带有第五应用模块的下载地址、第四设备的设备标识、第五应用程序的标识以及第五应用模块所属类型的标识。
57.或者,响应于确定适用于第五应用模块的下载地址的设备类型包括第一设备和第四设备时,分布式调度服务dms显示第二窗口,第二窗口中包括第一设备对应的控件和第四设备对应的控件;响应于接收用户在第二窗口中对第一设备对应的控件上的第五操作,分布式调度服务dms向包管理服务bms发送第十五消息,第十五消息用于请求下载第五应用模块;响应于接收第十五消息,包管理服务bms基于第五应用模块的下载地址,从第二服务器中下载第五应用模块,将第五应用模块安装在第一设备中,并向分布式调度服务dms发送第十六消息;响应于接收第十六消息,分布式调度服务dms在第一设备中启动第五应用模块;和/或,响应于接收用户在第二窗口中对第四设备对应的控件上的第五操作,分布式调度服务dms向第四设备中的分布式调度服务dms发送第十二消息,第十二消息用于请求第四设备启动第五应用模块,第十二消息中携带有第五应用模块的下载地址、第四设备的设备标识、第五应用程序的标识以及第五应用模块所属类型的标识。
58.其中,应用程序的标识的具体实现内容可参见本技术提及的应用的包名的描述内容,第五应用模块所属类型的标识的具体实现内容可参见本技术提及元能力的预定义action的描述内容,此处不做赘述。
59.由此,第一设备中的系统模块可通过应用程序的标识以及应用模块所属类型的标识,实现同一个分布式网络中的第一设备和/或第四设备半隐式启动应用模块,充分考虑到三方应用厂商通常不会将应用模块的标识提供给其他厂商,即无需依赖应用模块的标识,还使得未安装的应用模块自动安装,且用户对应用模块的下载过程无感知,该应用模块无需在应用程序首次安装时下载且可实现按需下载。
60.在一种可能的设计中,在系统模块包括:分布式调度服务dms和包管理服务bms时,该方法具体包括:响应于接收第四操作,第四应用模块向分布式调度服务dms发送第九消息,第九消息中携带有第五应用模块所属类型的标识。响应于接收第九消息,分布式调度服务dms向包管理服务bms发送第十三消息,第十三消息中携带有第五应用模块所属类型的标
识。响应于接收第十三消息,包管理服务bms确定第一设备和第四设备是否安装第五应用模块。响应于确定第一设备和第四设备均未安装第五应用模块时,包管理服务bms向第一服务器发送第十消息,第十消息中携带有第五应用模块所属类型的标识。包管理服务bms从第一服务器接收第十一消息,第十一消息中携带有第二集合,第二集合的每个子集中携带有一个应用程序的标识,包含在应用程序中的软件模块的模块标识以及适用于软件模块的下载地址的设备类型,且每个子集中对应的软件模块与第五应用模块同属于一个类型。响应于接收第十一消息,包管理服务bms向分布式调度服务dms发送第十四消息,第十四消息中携带有第二集合。响应于接收第十四消息,分布式调度服务dms确定第二集合中适用于第五应用模块的下载地址的设备类型是否包括第一设备和第四设备。
61.响应于确定第二集合中适用于第五应用模块的下载地址的设备类型包括第一设备时,分布式调度服务dms向包管理服务bms发送第十五消息,第十五消息用于请求下载第五应用模块;响应于接收第十五消息,包管理服务bms基于第五应用模块的下载地址,从第二服务器中下载第五应用模块,将第五应用模块安装在第一设备中,并向分布式调度服务dms发送第十六消息;响应于接收第十六消息,分布式调度服务dms在第一设备中启动第五应用模块。
62.或者,响应于确定第二集合中适用于第五应用模块的下载地址的设备类型包括第四设备时,分布式调度服务dms向第四设备中的分布式调度服务dms发送第十二消息,第十二消息用于请求第四设备启动第五应用模块,第十二消息中携带有第五应用模块的下载地址、第四设备的设备标识、第五应用程序的标识以及第五应用模块所属类型的标识。
63.或者,响应于确定第二集合中适用于第五应用模块的下载地址的设备类型包括第一设备和第四设备时,分布式调度服务dms显示第二窗口,第二窗口中包括第一设备对应的控件和第四设备对应的控件;响应于接收用户在第二窗口中对第一设备对应的控件上的第五操作,分布式调度服务dms向包管理服务bms发送第十五消息,第十五消息用于请求下载第五应用模块;响应于接收第十五消息,包管理服务bms基于第五应用模块的下载地址,从第二服务器中下载第五应用模块,将第五应用模块安装在第一设备中,并向分布式调度服务dms发送第十六消息;响应于接收第十六消息,分布式调度服务dms在第一设备中启动第五应用模块;和/或,响应于接收用户在第二窗口中对第四设备对应的控件上的第五操作,分布式调度服务dms向第四设备中的分布式调度服务dms发送第十二消息,第十二消息用于请求第四设备启动第五应用模块,第十二消息中携带有第五应用模块的下载地址、第四设备的设备标识、第五应用程序的标识以及第五应用模块所属类型的标识。
64.其中,第五应用模块所属类型的标识的具体实现内容可参见本技术提及预定义action的描述内容,此处不做赘述。
65.由此,第一设备中的系统模块可通过应用模块所属类型的标识,实现同一个分布式网络中的第一设备和/或第四设备隐式启动应用模块,充分考虑到三方应用厂商通常不会将应用模块的标识提供给其他厂商,即无需依赖应用模块的标识,还使得未安装的应用模块自动安装,且用户对应用模块的下载过程无感知,该应用模块无需在应用程序首次安装时下载且可实现按需下载。
66.在一种可能的设计中,该方法还包括:响应于确定第一设备已安装第五应用模块,且第四设备未安装第五应用模块时,系统模块在第一设备中启动第五应用模块。
67.或者,响应于确定第一设备未安装第五应用模块,且第四设备已安装第五应用模块时,系统模块向第四设备发送第十七消息,第十七消息用于请求第四设备启动第五应用模块。
68.或者,响应于确定第一设备和第四设备均已安装第五应用模块时,系统模块显示第三窗口,第三窗口中包括第一设备对应的控件和第四设备对应的控件;响应于接收用户在第三窗口中对第一设备对应的控件上的第六操作,系统模块基于第五应用模块的下载地址,从第二服务器下载第五应用模块,将第五应用模块安装在第一设备中,并在第一设备中启动第五应用模块;和/或,响应于接收用户在第三窗口中对第四设备对应的控件上的第六操作,系统模块向第四设备发送第十七消息,第十七消息用于请求第四设备启动第五应用模块。
69.由此,充分考虑到第一设备和第四设备是否安装第五应用模块的各种情况,确保了方案的完整性。
70.第三方面,本技术提供一种电子设备,包括:存储器和处理器;存储器用于存储程序指令;处理器用于调用存储器中的程序指令使得电子设备执行第一方面及第一方面任一种可能的设计中的应用模块启动方法;或者,处理器用于调用存储器中的程序指令使得电子设备执行第二方面及第二方面任一种可能的设计中的应用模块启动方法。
71.第四方面,本技术提供一种芯片系统,芯片系统应用于包括存储器、显示屏和传感器的电子设备;芯片系统包括:处理器;当处理器执行存储器中存储的计算机指令时,电子设备执行第一方面及第一方面任一种可能的设计中的应用模块启动方法;或者,电子设备执行第二方面及第二方面任一种可能的设计中的应用模块启动方法。
72.第五方面,本技术提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器使得电子设备执行时实现第一方面及第一方面任一种可能的设计中的应用模块启动方法;或者,计算机程序被处理器使得电子设备执行时实现第二方面及第二方面任一种可能的设计中的应用模块启动方法。
73.第六方面,本技术提供一种计算机程序产品,包括:执行指令,执行指令存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取执行指令,至少一个处理器执行执行指令使得电子设备实现第一方面及第一方面任一种可能的设计中的应用模块启动方法;或者,至少一个处理器执行执行指令使得电子设备实现第二方面及第二方面任一种可能的设计中的应用模块启动方法。
附图说明
74.图1为本技术一实施例提供的一种电子设备的结构示意图;
75.图2为本技术一实施例提供的一种电子设备的软件结构框图;
76.图3a-图3c为本技术一实施例提供的人机交互界面示意图;
77.图4a为本技术一实施例提供的一种场景示意图;
78.图4b-图4c为本技术一实施例提供的人机交互界面示意图;
79.图5为本技术一实施例提供的一个应用程序的各个阶段的示意图;
80.图6为本技术一实施例提供的一种应用模块启动方法的流程示意图;
81.图7a-图7c为本技术一实施例提供的一种应用模块启动方法的流程示意图;
82.图8a-图8i为本技术一实施例提供的人机交互界面示意图;
83.图9为本技术一实施例提供的一个应用程序的各个阶段的示意图;
84.图10a-图10c为本技术一实施例提供的一种应用模块启动方法的流程示意图;
85.图11a-图11e为本技术一实施例提供的人机交互界面示意图;
86.图12为本技术一实施例提供的一个应用程序的各个阶段的示意图;
87.图13a-图13c为本技术一实施例提供的一种应用模块启动方法的流程示意图;
88.图14为本技术一实施例提供的一种应用模块启动方法的流程示意图;
89.图15为本技术一实施例提供的一种应用模块启动方法的流程示意图。
具体实施方式
90.本技术中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,单独a,单独b或单独c中的至少一项(个),可以表示:单独a,单独b,单独c,组合a和b,组合a和c,组合b和c,或组合a、b和c,其中a,b,c可以是单个,也可以是多个。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
91.本技术中,电子设备可以是手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,ar)/虚拟现实(virtual reality,vr)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本、个人数字助理(personaldigital assistant,pda)、智能电视、智慧屏、高清电视、4k电视、智能音箱、智能投影仪等,本技术对电子设备的具体类型不作任何限制。
92.下面以电子设备为手机为例,结合图1,介绍本技术涉及的电子设备。
93.图1为本技术一实施例提供的一种电子设备的结构示意图。如图1所示,电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,usb)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,sim)卡接口195等。其中传感器模块180可以包括压力传感器180a,陀螺仪传感器180b,气压传感器180c,磁传感器180d,加速度传感器180e,距离传感器180f,接近光传感器180g,指纹传感器180h,温度传感器180j,触摸传感器180k,环境光传感器180l,骨传导传感器180m等。
94.可以理解的是,本技术示意的结构并不构成对电子设备100的具体限定。在另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
95.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,存储器,视频编解码
器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
96.其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
97.处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
98.在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,i2c)接口,集成电路内置音频(inter-integrated circuit sound,i2s)接口,脉冲编码调制(pulse code modulation,pcm)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,uart)接口,移动产业处理器接口(mobile industry processor interface,mipi),通用输入输出(general-purpose input/output,gpio)接口,用户标识模块(subscriber identity module,sim)接口,和/或通用串行总线(universal serial bus,usb)接口等。
99.i2c接口是一种双向同步串行总线,包括一根串行数据线(serial data line,sda)和一根串行时钟线(derail clock line,scl)。在一些实施例中,处理器110可以包含多组i2c总线。处理器110可以通过不同的i2c总线接口分别耦合触摸传感器180k,充电器,闪光灯,摄像头193等。例如:处理器110可以通过i2c接口耦合触摸传感器180k,使处理器110与触摸传感器180k通过i2c总线接口通信,实现电子设备100的触摸功能。
100.i2s接口可以用于音频通信。在一些实施例中,处理器110可以包含多组i2s总线。处理器110可以通过i2s总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过i2s接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
101.pcm接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过pcm总线接口耦合。在一些实施例中,音频模块170也可以通过pcm接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述i2s接口和所述pcm接口都可以用于音频通信。
102.uart接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,uart接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过uart接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过uart接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
103.mipi接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。mipi接口包括摄像头串行接口(camera serial interface,csi),显示屏串行接口(display serial interface,dsi)等。在一些实施例中,处理器110和摄像头193通过csi接口通信,实现电子设备100的拍摄功能。处理器110和显示屏194通过dsi接口通信,实现电子设备100的显示功能。
104.gpio接口可以通过软件配置。gpio接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,gpio接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。gpio接口还可以被配置为i2c接口,i2s接口,uart接口,mipi接口等。
105.usb接口130是符合usb标准规范的接口,具体可以是mini usb接口,micro usb接口,usb type c接口等。usb接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如ar设备等。
106.可以理解的是,本技术示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
107.充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过usb接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
108.电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
109.电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
110.天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
111.移动通信模块150可以提供应用在电子设备100上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,lna)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
112.调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170a,受话器170b等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是
独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
113.无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wireless local 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转为电磁波辐射出去。
114.在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,gsm),通用分组无线服务(general packet radio service,gprs),码分多址接入(code division multiple access,cdma),宽带码分多址(wideband code division multiple access,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),北斗卫星导航系统(beidou navigation satellite system,bds),准天顶卫星系统(quasi-zenith satellite system,qzss)和/或星基增强系统(satellite based augmentation systems,sbas)。
115.电子设备100通过gpu,显示屏194,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏194和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
116.显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,lcd),有机发光二极管(organic light-emitting diode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,amoled),柔性发光二极管(flex light-emitting diode,fled),miniled,microled,micro-oled,量子点发光二极管(quantum dot light emitting diodes,qled)等。在一些实施例中,电子设备100可以包括1个或n个显示屏194,n为大于1的正整数。
117.电子设备100可以通过isp,摄像头193,视频编解码器,gpu,显示屏194以及应用处理器等实现拍摄功能。
118.isp用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给isp处理,转化为肉眼可见的图像。isp还可以对图像的噪点,亮度,肤色进行算法优化。isp还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,isp可以设置在摄像头193中。
119.摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导
体(complementary metal-oxide-semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给isp转换成数字图像信号。isp将数字图像信号输出到dsp加工处理。dsp将数字图像信号转换成标准的rgb,yuv等格式的图像信号。在一些实施例中,电子设备100可以包括1个或n个摄像头193,n为大于1的正整数。
120.数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
121.视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,mpeg)1,mpeg2,mpeg3,mpeg4等。
122.npu为神经网络(neural-network,nn)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过npu可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
123.外部存储器接口120可以用于连接外部存储卡,例如micro sd卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
124.内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。
125.电子设备100可以通过音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,以及应用处理器等实现音频功能。例如音乐播放,录音等。
126.音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
127.扬声器170a,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170a收听音乐,或收听免提通话。
128.受话器170b,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170b靠近人耳接听语音。
129.麦克风170c,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170c发声,将声音信号输入到麦克风170c。电子设备100可以设置至少一个麦克风170c。在另一些实施例中,电子设备100可以设置两个麦克风170c,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170c,实现采集声音信号,降噪,还可以识别声音
来源,实现定向录音功能等。
130.耳机接口170d用于连接有线耳机。耳机接口170d可以是usb接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,omtp)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the usa,ctia)标准接口。
131.压力传感器180a用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180a可以设置于显示屏194。压力传感器180a的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180a,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,电子设备100根据压力传感器180a检测所述触摸操作强度。电子设备100也可以根据压力传感器180a的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
132.陀螺仪传感器180b可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180b确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180b可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180b检测电子设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备100的抖动,实现防抖。陀螺仪传感器180b还可以用于导航,体感游戏场景。
133.气压传感器180c用于测量气压。在一些实施例中,电子设备100通过气压传感器180c测得的气压值计算海拔高度,辅助定位和导航。
134.磁传感器180d包括霍尔传感器。电子设备100可以利用磁传感器180d检测翻盖皮套的开合。在一些实施例中,当电子设备100是翻盖机时,电子设备100可以根据磁传感器180d检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
135.加速度传感器180e可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
136.距离传感器180f,用于测量距离。电子设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,电子设备100可以利用距离传感器180f测距以实现快速对焦。
137.接近光传感器180g可以包括例如发光二极管(led)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备100通过发光二极管向外发射红外光。电子设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定电子设备100附近有物体。当检测到不充分的反射光时,电子设备100可以确定电子设备100附近没有物体。电子设备100可以利用接近光传感器180g检测用户手持电子设备100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180g也可用于皮套模式,口袋模式自动解锁与锁屏。
138.环境光传感器180l用于感知环境光亮度。电子设备100可以根据感知的环境光亮
度自适应调节显示屏194亮度。环境光传感器180l也可用于拍照时自动调节白平衡。环境光传感器180l还可以与接近光传感器180g配合,检测电子设备100是否在口袋里,以防误触。
139.指纹传感器180h用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
140.温度传感器180j用于检测温度。在一些实施例中,电子设备100利用温度传感器180j检测的温度,执行温度处理策略。例如,当温度传感器180j上报的温度超过阈值,电子设备100执行降低位于温度传感器180j附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,电子设备100对电池142加热,以避免低温导致电子设备100异常关机。在其他一些实施例中,当温度低于又一阈值时,电子设备100对电池142的输出电压执行升压,以避免低温导致的异常关机。
141.触摸传感器180k,也称“触控面板”。触摸传感器180k可以设置于显示屏194,由触摸传感器180k与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180k用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180k也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
142.骨传导传感器180m可以获取振动信号。在一些实施例中,骨传导传感器180m可以获取人体声部振动骨块的振动信号。骨传导传感器180m也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器180m也可以设置于耳机中,结合成骨传导耳机。音频模块170可以基于所述骨传导传感器180m获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。应用处理器可以基于所述骨传导传感器180m获取的血压跳动信号解析心率信息,实现心率检测功能。
143.按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
144.马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
145.指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
146.sim卡接口195用于连接sim卡。sim卡可以通过插入sim卡接口195,或从sim卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或n个sim卡接口,n为大于1的正整数。sim卡接口195可以支持nano sim卡,micro sim卡,sim卡等。同一个sim卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。sim卡接口195也可以兼容不同类型的sim卡。sim卡接口195也可以兼容外部存储卡。电子设备100通过sim卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备100采用esim,即:嵌入式sim卡。esim卡可以嵌在电子设备100中,不能和电子设备100分离。
147.电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架
构,或云架构。本技术以分层架构的android系统为例,示例性说明电子设备100的软件结构。其中,本技术对电子设备的操作系统的类型不做限定。例如,android系统、linux系统、windows系统、ios系统、鸿蒙操作系统(harmony operating system,鸿蒙os)等。
148.图2为本技术一实施例提供的一种电子设备的软件结构框图。如图2所示,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将android系统分为四层,从上至下分别为应用程序层(app),应用程序框架层(app framework),安卓运行时(android runtime)和系统库(libraries),以及内核层(kernel)。
149.应用程序层可以包括一系列应用程序包。
150.如图2所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,wlan,蓝牙,音乐,视频,游戏,聊天,购物,出行,即时通信(如短信息),智能家居,设备控制等应用程序(application,app)。
151.其中,智能家居应用可用于对具有联网功能的家居设备进行控制或管理。例如,家居设备可以包括电灯、电视和空调。又如,家居设备还可以包括防盗门锁、音箱、扫地机器人、插座、体脂秤、台灯、空气净化器、电冰箱、洗衣机、热水器、微波炉、电饭锅、窗帘、风扇、电视、机顶盒、门窗等。
152.另外,应用程序包还可以包括:主屏幕(即桌面),负一屏,控制中心,通知中心等应用程序。
153.其中,负一屏,又可称为
“‑
1屏”,是指在电子设备的主屏幕向右滑动屏幕,直至滑动至最左侧分屏的用户界面(user interface,ui)。例如,负一屏可以用于放置一些快捷服务功能和通知消息,比如全局搜索、应用程序某个页面的快捷入口(付款码、微信等)、即时信息及提醒(快递信息、支出信息、通勤路况、打车出行信息、日程信息等)及关注动态(足球看台、篮球看台、股票信息等)等。控制中心为电子设备的上滑消息通知栏,即当用户在电子设备的底部开始进行向上滑动的操作时电子设备所显示出的用户界面。通知中心为电子设备的下拉消息通知栏,即当用户在电子设备的顶部开始进行向下操作时电子设备所显示出的用户界面。
154.应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。
155.如图2所示,应用程序框架层可以包括窗口管理器,活动管理器,窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
156.窗口管理器(window manager)用于管理窗口程序,如管理窗口状态、属性、视图(view)增加、删除、更新、窗口顺序、消息收集和处理等。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。并且,窗口管理器为外界访问窗口的入口。
157.内容提供器用于存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
158.视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
159.电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,
挂断等)。
160.资源管理器(resource manager)为应用程序提供各种资源,比如本地化字符串,图标,图片,用户界面的布局文件(layout xml),视频文件,字体,颜色,用户界面组件(user interface module,ui组件)的身份证标识号(identity document,id)等。并且,资源管理器用于统一管理前述资源。
161.通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
162.安卓运行时包括核心库和虚拟机。安卓运行时负责android系统的调度和管理。
163.核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是android系统的核心库。
164.应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
165.系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如:opengles),2d图形引擎(例如:sgl)等。
166.表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2d和3d图层的融合。
167.媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:mpeg4,h.264,mp3,aac,amr,jpg,png等。
168.三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
169.2d图形引擎是2d绘图的绘图引擎。
170.内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
171.下面结合利用智能音箱播放声音的场景,示例性说明电子设备100的软件和硬件的工作流程。
172.当触摸传感器180k接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标,触摸操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别该输入事件所对应的控件。以该触摸操作是触摸单击操作,该单击操作所对应的控件为智能音箱图标的控件为例,智能音箱应用调用应用框架层的接口,启动智能音箱应用,进而通过调用内核层启动音频驱动,通过扬声器170a将音频电信号转换成声音信号。
173.可以理解的是,本技术示意的结构并不构成对电子设备100的具体限定。在另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
174.基于前述描述,本技术以下实施例将以具有图1和图2所示结构的电子设备为例,结合附图和应用场景,对本技术提供的应用模块启动方法进行详细阐述。
175.结合图3a-图3c,介绍电子设备启动一个应用程序中未安装的元能力的具体实现过程。为了便于说明,图3a-图3c中,以电子设备为手机,手机中安装有应用a,应用a为xx出行应用为例进行示意。
176.其中,在电子设备首次安装xx出行应用时安装有元能力a1且未安装有元能力a2。元能力a1和元能力a2均为软件代码,元能力a1用于提供打车对应的页面且触发启动应用a的元能力a1,元能力a2用于提供拼车对应的页面。
177.其中,元能力(简称ability)为电子设备能够独立运行应用程序的最小单元组件。一个应用程序可包括一个或者多个元能力。不同的应用程序可包括相同功能的元能力,也可包括不同功能的元能力。
178.请参阅图3a-图3c,图3a-图3c为本技术一实施例提供的人机交互界面示意图。
179.手机可显示如图3a示例性所示的用户界面11。其中,用户界面11可以为桌面的主界面(home screen),用户界面11可以包括但不限于:状态栏,导航栏,日历指示符,天气指示符,以及多个应用程序图标等。应用程序图标还可以包括:xx出行应用的图标301,也可以包括:如华为视频应用的图标、音乐应用的图标、手机管家应用的图标、设置应用的图标、xx地图应用的图标、智慧生活应用的图标、运动健康应用的图标、通话应用的图标、短信应用的图标、浏览器应用的图标、相机应用的图标等。
180.由于元能力a1在手机首次安装xx出行应用后已安装在手机中,因此,手机在检测到用户指示的启动xx出行应用的操作(如在图3a所示的用户界面11中点击xx出行应用的图标301)后,启动元能力a1,便可显示图3b示例性所示的用户界面12,用户界面12用于显示打车对应的页面。其中,用户界面12中可以包括:控件302和控件303,控件302用于进入到打车对应的页面,控件303用于进入到拼车对应的页面。
181.又由于元能力a2在手机首次安装xx出行应用后未安装在手机中,且在响应于用户的操作后通过元能力a1可下载并安装在手机中,因此,在手机检测到用户在图3b所示的用户界面12中执行如点击控件303的操作后,元能力a1触发手机中的系统服务,手机中的系统服务向hag服务器获取xx出行应用的元能力a2的cdn下载地址。且手机中的系统服务基于xx出行应用的元能力a2的cdn下载地址可从cdn服务器下载xx出行应用的元能力a2。进而,手机中的系统服务可在手机中安装xx出行应用的元能力a2,从而手机中的系统服务启动元能力a2,便可显示图3c示例性所示的用户界面13,用户界面13用于显示拼车对应的页面。
182.综上,手机通过一个应用程序中已安装的元能力触发手机中的系统服务,可查询、下载并安装该应用程序中未安装的元能力,以便启动未安装的元能力,从而手机在首次安装该应用程序时,可选择该应用程序中部分的元能力,无需安装该应用程序中全部的元能力,节省了手机的存储空间,且丰富了该应用程序的功能实现,为用户提供该应用程序的更多功能。
183.结合图4a-图4c,介绍电子设备启动一个应用程序中未安装的元能力的具体实现过程。为了便于说明,图4a-图4c中,以电子设备为手机,手机中安装有应用a的元能力a1,手机中未安装应用b的元能力b1,且应用a的元能力a1可触发启动应用b的元能力b1。应用a的元能力a1为华为hilink服务(service)软件模块,应用b为xx电器厂商的智能家居应用,元能力b1为电饭煲的元能力为例进行示意。
184.其中,华为hilink服务软件模块没有ui,且华为hilink服务软件模块用于触发启
动应用b的元能力b1,元能力b1为软件代码,元能力b1用于提供调节电饭煲的工作模式、加热温度、加热时长等参数的页面。
185.请参阅图4a,图4a为本技术一实施例提供的一种场景示意图,图4b-图4c为本技术一实施例提供的人机交互界面示意图。
186.手机可显示如图4b示例性所示的用户界面21。其中,用户界面21可以为桌面的主界面(home screen),用户界面21可以包括但不限于:状态栏,导航栏,日历指示符,天气指示符,以及多个应用程序图标等。应用程序图标可以包括:xx电器厂商的智能家居应用401,应用程序图标还可以包括:如华为视频应用的图标、音乐应用的图标、手机管家应用的图标、设置应用的图标、xx地图应用的图标、xx出行应用的图标、智慧生活应用的图标、运动健康应用的图标、通话应用的图标、短信应用的图标、浏览器应用的图标、相机应用的图标等。
187.假设用户想要在手机上调节电饭煲的如工作模式、加热温度、加热时长等参数,且手机未安装xx电器厂商的智能家居应用的电饭煲的元能力b1,则如图4a所示,手机碰一碰电饭煲。手机在检测到用户执行如将手机与电饭煲碰一碰的操作后,华为hilink服务软件模块触发手机中的系统服务。手机中的系统服务确定xx电器厂商的智能家居应用的电饭煲的元能力b1是否安装。在手机中的系统服务确定xx电器厂商的智能家居应用的电饭煲的元能力b1未安装时,手机中的系统服务通过hag服务器获取xx电器厂商的智能家居应用的电饭煲的元能力b1的cdn下载地址。手机中的系统服务基于电饭煲的元能力b1的cdn下载地址可从cdn服务器中下载电饭煲的元能力b1。进而,手机中的系统服务可在手机中安装电饭煲的元能力b1,从而手机中的系统服务启动电饭煲的元能力b1,便可从显示图4b示例性所示的用户界面21变为显示图4c示例性所示的用户界面22,用户界面22用于显示电饭煲的元能力b1对应的页面,即调节电饭煲的工作模式、加热温度、加热时长等参数的页面。从而,方便用户能够通过电饭煲的元能力b1对应的页面灵活且快速调节电饭煲的参数。
188.综上,手机通过一个应用程序中已安装的元能力触发手机中的系统服务,可查询、下载并安装另一个应用程序中未安装的元能力,以便启动另一个应用程序中未安装的元能力,从而启动未安装的元能力,使得不同的应用程序的元能力之间能够配合,完成元能力对应的功能实现,从而降低了手机的存储量,节省了手机的存储空间。
189.基于图3a-图3c以及图4a-图4c实施例的描述,电子设备不仅支持同一应用程序中已安装的元能力触发电子设备中的系统服务启动未安装的元能力,也支持一个应用中安装的元能力触发电子设备中的系统服务启动另外一个应用中的未安装元能力,从而,电子设备无需安装一个应用程序中全部的元能力,也可基于用户需求利用已安装的元能力快速且及时下载未安装的元能力,降低了电子设备的存储量,节省了电子设备的存储空间,丰富了电子设备安装应用程序的种类,有利于电子设备向用户提供更多的功能实现。
190.请参阅图5,图5为本技术一实施例提供的一个应用程序的各个阶段的示意图。
191.如图5所示,在一个应用程序的生命周期过程中,可包括四个阶段——开发调试阶段、发布上架阶段、云端部署分发阶段以及端侧下载安装阶段。
192.在开发调试阶段中,开发者开发一个应用,可将该应用生成元子化包(harmony os ability package,hap包),并将一个或者多个hap包打包成应用包(app pack,缩写为.app)。
193.其中,一个应用包中的多个hap包可划分为一组或者多组hap包。每组hap包可对应
一个或者多个设备类型的设备,且每组hap包中的各个hap包所对应的编程语言相同,不同组hap包所对应的编程语言可相同或不同。
194.在一些实施例中,每组hap包的类型通常可以包括两种。
195.第一种类型的hap包为包含应用的入口ability的部署包(即图5所示的主模块,缩写为entry.hap),通常只有一个,由代码、三方库、资源以及配置文件组成。其中,代码可以是一个或者多个ability,以及依赖的公共代码(common codes)。三方库可采用so库,与公共代码(common codes)的不同在于,so库能够独立编译且无源代码。并且,第一种类型的hap包可支持免安装,通常会随着应用首次安装而自动安装。另外,应用的入口ability通常为该应用的首页面/主页面对应的ability。
196.第二种类型的hap包为应用的其它代码或资源的部署包(即图5所示的动态特性模块1和动态特性模块2,缩写为feature.hap),可以有多个,由代码、三方库、资源以及配置文件组成。其中,代码可以是一个或多个ability,以及依赖的公共代码(common codes),也可以只包含三方库,也可以不包含任何代码而只包含资源,本技术对此不做限定。资源可以是该组hap包中代码所依赖的资源,也可以其他hap包所使用的资源,也可以前述两种资源,本技术对此不做限定。并且,包含ability的第二种类型的hap包可支持免安装,通常会随着应用首次安装而自动安装,不包含ability的第二种类型的hap包需要通过电子设备的应用程序接口(application programming interface,api)下载并安装,通常不会随着应用首次安装而自动安装。另外,应用的其它代码或资源为除了该应用的入口ability之外的代码或资源,如该应用除了主页面之外的其他页面对应的ability。
197.需要说明的是,hap包的类型不限于上述两种类型。
198.在开发调试阶段中,开发者对一个应用包(app pack,缩写为.app)进行签名,得到已签名的应用包(app pack)50(即应用包(app pack)50中的主模块、动态特性模块1和动态特性模块2均已签名)。
199.在发布上架阶段中,开发者将应用包(app pack)50上传到云端服务器40,如华为市场服务器等。
200.在云端部署分发阶段中,云端服务器40可对应用包(app pack)50执行如签名验证审核、应用包拆分、hap重签名、存储、提取ability等操作。
201.在一些实施例中,存储操作的具体实现过程为:云端服务器40可将应用包(app pack)50划分为多个hap包,并对多个hap包进行存储,如部署到内容分发网络(content delivery network,cdn)服务器30中。
202.在一些实施例中,提取ability操作的具体实现过程为:云端服务器40可提取划分后的多个hap包的ability,并建立划分后的多个hap包的ability索引列表,便可将划分后的多个hap包的ability索引列表存储到如华为元子化智慧平台(huawei ability gallery,hag)服务器20中。
203.ability索引列表中包括每个hap包的ability的元能力名,或者每个hap包的ability的元能力名和预定义action。
204.其中,元能力名指的是元能力的唯一标识,如采用数字、字母或者字符等表示形式。
205.其中,预定义action为hag服务器20定义的事件。每个预定义action标识一个特定
的功能。在一个元能力注册预定义action后,该元能力支持该预定义action对应的特定的功能。并且,对于注册了同一个预定义action的元能力1和元能力2,那么元能力1和元能力2支持相同的功能,即该预定义action对应的特定的功能。注册了不同预定义action的元能力1和元能力2,那么元能力1和元能力2支持的功能不同。元能力1所在的应用和元能力2所在的应用可相同或者不同。
206.另外,电子设备中的系统服务可通过预定义action启动注册了该预定义action的元能力。hag服务器可根据预定义action匹配到注册了该action的元能力。
207.在端侧下载安装阶段中,基于图2实施例中的android系统的电子设备的软件结构框图,设备a 11的分层架构从上至下分别为应用程序层(app),应用程序框架层(app framework),安卓运行时(android runtime,图5中未进行示意)和系统库(libraries),以及内核层(kernel)。
208.其中,设备a 11为一个电子设备。
209.应用程序层包括应用a,或者应用a和应用b,设备a 11通过应用a的一个元能力触发设备a 11中的系统服务可启动应用b的一个元能力。
210.应用框架层包括分布式调度服务(distributed schedule manager service,dms)和包管理服务(bundle manager service,bms)。dms和bms均为电子设备中的系统服务。
211.dms用于启动一个元能力。例如,dms在基于元能力的元能力名和元能力所在应用的包名获知电子设备已安装应用的元能力后可启动该元能力(简称为显式启动)。又如,dms在基于元能力的预定义action和元能力所在应用的包名获知电子设备已安装应用的元能力后可启动该元能力(简称为半隐式启动)。又如,dms在基于预定义action获知电子设备已安装预定义action对应的元能力后可启动预定义action对应的元能力(简称为隐式启动)。
212.bms用于确定一个元能力是否安装在设备a 11中,并在一个元能力未安装时从hag服务器20中获取该元能力的cdn下载地址,以便基于该元能力的cdn下载地址从cdn服务器30中获取该元能力。系统库包括分布式应用组件数据库。
213.bms还用于在安装一个元能力时可将该元能力解析后的配置文件存储在分布式应用组件数据库中。解析后的配置文件(config.json)可以包括:该元能力对应的应用包名和该元能力的元能力名,或者,该元能力对应的应用包名及该元能力的预定义action,或者,该元能力对应的应用包名、该元能力的元能力名及该元能力的预定义action。即一个元能力对应的应用的包名、元能力名以及预定义action均可在元能力的配置文件中进行注册。另外,解析后的配置文件(config.json)还可以包括:该元能力支持的设备类型、该元能力对应的hap包的名称、该元能力对应的hap包的类型、该元能力是否主动安装等信息。
214.下面,结合场景一和场景二,介绍电子设备启动一个应用程序中未安装的元能力的具体实现过程。
215.场景一
216.场景一描述的是:一个电子设备通过同一应用程序中已安装的元能力触发该电子设备中的系统服务启动该应用程序中未安装的元能力的具体实现过程。
217.结合图5,假设设备a 11已安装有应用a的元能力a1,且通过元能力a1触发设备a 11中的系统服务可启动应用a未安装的元能力a2,那么基于用户意愿,应用a的元能力a1可
向dms请求启动应用a的元能力a2。dms可向bms请求查询元能力a2是否安装在设备a 11。
218.在bms确定元能力a2已安装在设备a 11中时,bms可向dms通知元能力a2已安装。dms便可启动元能力a2。
219.在bms确定元能力a2未安装在设备a 11中时,bms可从hag服务器20中,获取元能力a2的cdn下载地址。bms基于元能力a2的cdn下载地址,可从cdn服务器30中下载元能力a2,使得bms在设备a 11中安装元能力a2。bms可向dms通知元能力a2已安装。dms便可启动元能力a2。
220.其中,图3a-图3c示例性的内容可对上述过程进行解释说明。
221.综上,设备a 11通过应用a中已安装的元能力a1触发电子设备中的系统服务可启动应用a中未安装的元能力a2。
222.基于前述描述,结合图6,对图3a-图3c实施例中的设备a 11通过应用a中已安装的元能力a1触发设备a 11中的系统服务启动应用a中未安装的元能力a2的实现过程进行具体阐述。其中,设备a 11可参见图3a-图3c实施例中的手机的描述,应用a可参见图3a-图3c实施例中的xx出行应用的描述,元能力a1可参见图3a-图3c实施例中的元能力a1的描述,元能力a2可参见图3a-图3c实施例中的元能力a2的描述。
223.请参阅图6,图6为本技术一实施例提供的一种应用模块启动方法的流程示意图。
224.如图6所示,本技术的应用模块启动方法的具体实现过程可以包括如下步骤:
225.s101、应用a的元能力a1响应于用户的操作1,向dms发送应用a的包名和元能力a2的元能力名。
226.其中,操作1可以包括但不限于点击、双击、长按、触碰等类型的操作。例如,操作1可为用户在图3b所示的用户界面12中执行的如点击控件303的操作。
227.并且,操作1与应用a的元能力a2关联。也就是说,元能力a1基于操作1可获知设备a 11需要启动应用a的元能力a2。由于应用a预先存储有与操作1关联的元能力a2的元能力名,且元能力a1和元能力a2均为应用a的元能力,因此,元能力a1可获知应用a的包名和元能力a2的元能力名。从而,元能力a1可向dms请求启动应用a的元能力a2,该请求中携带有应用a的包名和元能力a2的元能力名。
228.其中,应用a的包名可唯一标识应用a,元能力a2的元能力名可唯一标识元能力a2。应用a的包名和元能力a2的元能力名可采用如字母、字符、数字等至少一种方式进行表示。此处的应用a的包名可对应于步骤s1201中的第一应用程序的标识,元能力a2的元能力名可对应于步骤s1201中的第一应用模块的模块标识。
229.另外,元能力a1可将应用a的包名和元能力a2的元能力名携带在一消息中发送给dms,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1101、步骤s1201中的第一消息。
230.s102、dms向bms发送应用a的包名和元能力a2的元能力名。从而,dms可向bms请求查询应用a的元能力a2是否已安装。
231.其中,dms可将应用a的包名和元能力a2的元能力名携带在一消息中发送给bms,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1202中的第四消息。
232.s103、bms基于应用a的包名和元能力a2的元能力名,判断应用a的元能力a2是否安装在设备a 11中。
233.由于bms在安装一个元能力时可将该元能力解析后的配置文件存储在分布式应用组件数据库中,因此,bms可查询分布式应用组件数据库中是否存在应用a的元能力a2的配置文件,从而确定应用a的元能力a2是否安装在设备a 11中。
234.在分布式应用组件数据库中不存在应用a的元能力a2的配置文件时,bms可确定应用a的元能力a2未安装在设备a 11中,从而bms可执行步骤s104-s110;在分布式应用组件数据库中存在应用a的元能力a2的配置文件时,bms可确定应用a的元能力a2安装在设备a 11中,从而bms可执行步骤s109-s110。
235.s104、bms向hag服务器20发送设备a 11的id、应用a的包名和元能力a2的元能力名。从而,bms可通过设备a 11中的系统属性获取设备a 11的id,并向hag服务器20请求为设备a 11下载应用a的元能力a2。
236.其中,bms可将设备a 11的id、应用a的包名和元能力a2的元能力名携带在一消息中,并从设备a 11与hag服务器20的通信通道发送给hag服务器20,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1103、步骤s1204中的第二消息。
237.并且,设备a 11的id用于唯一指示设备a 11,表示设备a 11需要从hag服务器20中获取元能力a2的cdn下载地址。另外,本技术对设备a 11的id的具体实现方式不做限定。例如,设备a 11的设备类型或者设备a 11的固定资产编号。
238.s105、hag服务器20基于应用a的包名和元能力a2的元能力名,获取匹配到的应用a的元能力a2的cdn下载地址。
239.由于hag服务器20预先存储有多个hap包以及每个hap包对应的元能力的cdn下载地址,且hag服务器20可获取每个hap包的应用包名和元能力名,因此,hag服务器20基于应用a的包名和元能力a2的元能力名,可以匹配到应用a的元能力a2对应的cdn下载地址。
240.其中,cdn下载地址可采用如链接或者地址字符串等方式进行表示。另外,hag服务器20匹配到元能力a2对应的cdn下载地址对应的元能力a2通常为最新版本。
241.s106、hag服务器20向bms发送应用a的包名、元能力a2的元能力名及元能力a2的cdn下载地址。其中,hag服务器20从设备a 11与hag服务器20的通信通道,可将应用a的包名、元能力a2的元能力名及元能力a2的cdn下载地址携带在一消息中发送给设备a 11中的bms,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1104、步骤s1205中的第三消息。此处的元能力a2的cdn下载地址可对应于步骤s1205中的第一应用模块的下载地址。
242.s107、bms基于应用a的包名、元能力a2的元能力名及元能力a2的cdn下载地址,从cdn服务器30中下载应用a的元能力a2。此处的cdn服务器30对应于步骤s1206中的第二服务器。
243.s108、bms安装应用a的元能力a2。
244.s109、bms向dms通知应用a的元能力a2已安装。此处的该通知可对应于步骤s1207中的第五消息。
245.s110、dms启动应用a的元能力a2(即显式启动),对应于步骤s1208的描述内容。
246.综上,基于图6实施例的描述,设备a 11可通过应用a的元能力a1触发设备a 11中的系统服务,基于应用a的包名和元能力a2的元能力名,启动设备a 11中应用a的元能力a2。
247.场景二
248.场景二描述的是:一个电子设备通过一个应用程序中安装的元能力触发该电子设备中的系统服务启动另一个应用程序中未安装的元能力的具体实现过程。其中,本技术对电子设备是否安装另一个应用程序不做限定。
249.结合图5,假设设备a 11已安装应用a的元能力a1,且通过元能力a1触发设备a 11中的系统服务可启动应用b的元能力b1,那么基于用户意愿,应用a的元能力a1可向dms请求启动应用b的元能力b1。dms可向bms请求查询应用b的元能力b1是否安装在设备a 11。
250.在bms确定元能力b1已安装在设备a 11中时,bms可向dms通知元能力b1已安装。dms便可启动元能力b1。其中,应用程序层还包括应用b。
251.在bms确定元能力b1未安装在设备a 11中时,bms可从hag服务器20中,获取元能力b1的cdn下载地址。bms基于元能力b1的cdn下载地址,可从cdn服务器30中下载元能力b1,使得bms在设备a 11中安装元能力b1,还使得应用程序层还包括应用b。bms可向dms通知元能力b1已安装。dms便可启动元能力b1。
252.其中,图4a-图4c示例性的内容可对上述过程进行解释说明。
253.综上,设备a 11通过应用a中已安装的元能力a1触发设备a 11中的系统服务可启动应用b中未安装的元能力b1。
254.基于前述描述,结合图7a-图7c,对图4a-图4c实施例中的设备a 11通过应用a中已安装的元能力a1触发设备a 11中的系统服务启动应用b中未安装的元能力b1的实现过程进行具体阐述。其中,设备a 11可参见图4a-图4c实施例中的手机的描述,应用a可参见图4a-图4c实施例中的华为hilink服务(service)软件模块的描述,应用b可参见图4a-图4c实施例中的xx厂商的智能家居应用的描述,元能力a1可参见图4a-图4c实施例中的元能力a1的描述,元能力b1可参见图4a-图4c实施例中电饭煲的元能力b1的描述。
255.请参阅图7a-图7c,图7a-图7c为本技术一实施例提供的一种应用模块启动方法的流程示意图。
256.如图7a所示,本技术的应用模块启动方法的具体实现过程可以包括如下步骤:
257.s201、应用a的元能力a1响应于用户的操作2,向dms发送应用b的包名和元能力b1的元能力名。
258.其中,操作2可以包括但不限于点击、双击、长按、触碰等类型的操作。例如,操作2可为用户在图4b实施例中的用户执行的将手机与电饭煲碰一碰的操作。
259.并且,操作2与应用b的元能力b1关联。也就是说,元能力a1基于操作2可获知设备a 11需要启动应用b的元能力b1。由于应用a预先存储有与操作2关联的应用b的包名以及应用b的元能力b1的元能力名,因此,元能力a1可获知应用b的包名和元能力b1的元能力名。从而,元能力a1可向dms请求启动应用b的元能力b1。
260.其中,应用b的包名可唯一标识应用b,应用b的包名和元能力b1的元能力名可唯一标识应用b的元能力b1。应用b的包名和元能力b1的元能力名可采用如字母、字符、数字等至少一种方式进行表示。此处的应用b的包名可对应于步骤s1201中的第一应用程序的标识,元能力b1的元能力名可对应于步骤s1201中的第一应用模块的模块标识。
261.另外,元能力a1可将应用b的包名和元能力b1的元能力名携带在一消息中发送给dms,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1101、步骤s1201中的第一消息。
262.s202、dms向bms发送应用b的包名和元能力b1的元能力名。从而,dms可向bms请求查询应用b的元能力b1是否已安装。
263.其中,dms可将应用b的包名和元能力b1的元能力名携带在一消息中发送给bms,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1202中的第四消息。
264.s203、bms基于应用b的包名和元能力b1的元能力名,判断应用b的元能力b1是否安装在设备a 11中。
265.由于bms在安装一个元能力时可将该元能力解析后的配置文件存储在分布式应用组件数据库中,因此,bms可查询分布式应用组件数据库中是否存在应用b的元能力b1的配置文件,从而确定应用b的元能力b1是否安装在设备a 11中。
266.在分布式应用组件数据库中不存在应用b的元能力b1的配置文件时,bms可确定应用b的元能力b1未安装在设备a 11中,从而bms可执行步骤s204-s210;在分布式应用组件数据库中存在应用b的元能力b1的配置文件时,bms可确定应用b的元能力b1安装在设备a 11中,从而bms可执行步骤s209-s210。
267.s204、bms向hag服务器20发送设备a 11的id、应用b的包名和元能力b1的元能力名。从而,bms可通过设备a 11中的系统属性获取设备a 11的id,并向hag服务器20请求为设备a 11下载应用b的元能力b1。
268.其中,bms可将设备a 11的id、应用b的包名和元能力b1的元能力名携带在一消息中,并从设备a 11与hag服务器20的通信通道发送给hag服务器20,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1103、步骤s1204中的第二消息。并且,设备a 11的id的具体实现内容可参见步骤s104的描述,此处不做赘述。
269.s205、hag服务器20基于应用b的包名和元能力b1的元能力名,获取匹配到的应用b的元能力b1的cdn下载地址。
270.由于hag服务器20预先存储有多个hap包以及每个hap包对应的元能力的cdn下载地址,且hag服务器20可获取每个hap包的应用包名和元能力名,因此,hag服务器20基于应用b的包名和元能力b1的元能力名,可以匹配到应用b的元能力b1对应的cdn下载地址。
271.其中,cdn下载地址可采用如链接或者地址字符串等方式进行表示。另外,hag服务器20匹配到元能力b1对应的cdn下载地址对应的元能力b1通常为最新版本。
272.s206、hag服务器20向bms发送应用b的包名、元能力b1的元能力名及元能力b1的cdn下载地址。
273.其中,hag服务器20从设备a 11与hag服务器20的通信通道,可将应用b的包名、元能力b1的元能力名及元能力b1的cdn下载地址携带在一消息中发送给设备a 11中的bms,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1104、步骤s1205中的第三消息。此处的元能力b1的cdn下载地址可对应于步骤s1205中的第一应用模块的下载地址。
274.s207、bms基于应用b的包名、元能力b1的元能力名及元能力b1的cdn下载地址,从cdn服务器30中下载应用b的元能力b1。此处的cdn服务器30对应于步骤s1206中的第二服务器。
275.s208、bms安装应用b的元能力b1。
276.s209、bms向dms通知应用b的元能力b1已安装。此处的该通知可对应于步骤s1207
中的第五消息。
277.s210、dms启动应用b的元能力b1(即显式启动),对应于步骤s1208的描述内容。
278.综上,基于图7a实施例的描述,设备a 11可通过应用a的元能力a1触发设备a 11中的系统服务,基于应用b的包名和元能力b1的元能力名,启动设备a 11中应用b的元能力b1。
279.如图7b所示,本技术的应用模块启动方法的具体实现过程可以包括如下步骤:
280.s301、应用a的元能力a1响应于用户的操作2,向dms发送应用b的包名和元能力b1的预定义action1。
281.其中,操作2可以包括但不限于点击、双击、长按、触碰等类型的操作。例如,操作2可为用户在图4b实施例中的用户执行的将手机与电饭煲碰一碰的操作。
282.并且,操作2与应用b的元能力b1关联。也就是说,元能力a1基于操作2可获知设备a 11需要启动应用b的元能力b1。由于应用a预先存储有与操作2关联的应用b的包名以及应用b的元能力b1的预定义action1,因此,元能力a1可获知应用b的包名和元能力b1的预定义action1。从而,元能力a1可向dms请求启动应用b的元能力b1。
283.其中,应用b的包名可唯一标识应用b,应用b的包名和元能力b1的预定义action1可唯一标识应用b的元能力b1。应用b的包名和元能力b1的预定义action1可采用如字母、字符、数字等至少一种方式进行表示。此处的应用b的包名可对应于步骤s1301中的第一应用程序的标识,元能力b1的预定义action1可对应于步骤s1301中的第一应用模块所属类型的标识。
284.另外,元能力a1可将应用b的包名和元能力b1的预定义action1携带在一消息中发送给dms,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1101、步骤s1301中的第一消息。
285.s302、dms向bms发送应用b的包名和元能力b1的预定义action1。从而,dms可向bms请求查询应用b的元能力b1是否已安装。
286.其中,dms可将应用b的包名和元能力b1的预定义action1携带在一消息中发送给bms,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1302中的第四消息。
287.s303、bms基于应用b的包名和元能力b1的预定义action1,判断应用b的元能力b1是否安装在设备a 11中。
288.由于bms在安装一个元能力时可将该元能力解析后的配置文件存储在分布式应用组件数据库中,因此,bms可查询分布式应用组件数据库中是否存在应用b的元能力b1的配置文件,从而确定应用b的元能力b1是否安装在设备a 11中。
289.在分布式应用组件数据库中不存在应用b的元能力b1的配置文件时,bms可确定应用b的元能力b1未安装在设备a 11中,从而bms可执行步骤s304-s310;在分布式应用组件数据库中存在应用b的元能力b1的配置文件时,bms可确定应用b的元能力b1安装在设备a 11中,从而bms可执行步骤s309-s310。
290.s304、bms向hag服务器20发送设备a 11的id、应用b的包名和元能力b1的预定义action1。从而,bms可通过设备a 11中的系统属性获取设备a 11的id,并向hag服务器20请求为设备a 11下载应用b的元能力b1。
291.其中,bms可将设备a 11的id、应用b的包名和元能力b1的预定义action1携带在一
消息中,并从设备a 11与hag服务器20的通信通道发送给hag服务器20,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1103、步骤s1304中的第二消息。并且,设备a 11的id的具体实现内容可参见步骤s104的描述,此处不做赘述。
292.s305、hag服务器20基于应用b的包名和元能力b1的预定义action1,获取匹配到的应用b的元能力b1的cdn下载地址。
293.由于hag服务器20预先存储有多个hap包以及每个hap包对应的元能力的cdn下载地址,且hag服务器20可获取每个hap包的应用包名、元能力名和预定义action,因此,hag服务器20基于应用b的包名和元能力b1的预定义action1,可以匹配到应用b的元能力b1对应的cdn下载地址。
294.其中,cdn下载地址可采用如链接或者地址字符串等方式进行表示。另外,hag服务器20匹配到元能力b1对应的cdn下载地址对应的元能力b1通常为最新版本。
295.s306、hag服务器20向bms发送应用b的包名、元能力b1的预定义action1(此参数可替换元能力b1的元能力名)及元能力b1的cdn下载地址。
296.其中,hag服务器20从设备a 11与hag服务器20的通信通道,可将应用b的包名、元能力b1的预定义action1及元能力b1的cdn下载地址携带在一消息中发送给设备a 11中的bms,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1104、步骤s1305中的第三消息。此处的元能力b1的cdn下载地址可对应于步骤s1305中的第一应用模块的下载地址。
297.s307、bms基于应用b的包名、元能力b1的预定义action1及元能力b1的cdn下载地址,从cdn服务器30中下载应用b的元能力b1。此处的cdn服务器30对应于步骤s1306中的第二服务器。
298.s308、bms安装应用b的元能力b1。
299.s309、bms向dms通知应用b的元能力b1已安装。此处的该通知可对应于步骤s1307中的第五消息。
300.s310、dms启动应用b的元能力b1(即半隐式启动),对应于步骤s1308的描述内容。
301.综上,基于图7b实施例的描述,设备a 11可通过应用a的元能力a1触发设备a 11中的系统服务,基于应用b的包名和元能力b1的预定义action1,启动设备a 11中应用b的元能力b1,充分考虑到三方应用厂商通常不会将元能力b1的元能力名提供给其他厂商,即无需依赖元能力b1的元能力名。
302.如图7c所示,本技术的应用模块启动方法的具体实现过程可以包括如下步骤:
303.s401、应用a的元能力a1响应于用户的操作2,向dms发送预定义action1。
304.其中,操作2可以包括但不限于点击、双击、长按、触碰等类型的操作。例如,操作2可为用户在图4b实施例中的用户执行的将手机与电饭煲碰一碰的操作。
305.并且,操作2与预定义action1对应的元能力关联。也就是说,元能力a1基于操作2可获知设备a 11需要启动预定义action1对应的元能力。由于应用a预先存储有与操作2关联的元能力的预定义action1,因此,元能力a1可获知预定义action1对应的元能力。从而,元能力a1可向dms请求启动预定义action1对应的元能力。
306.其中,预定义action1可标识功能相同的元能力。预定义action1可采用如字母、字符、数字等至少一种方式进行表示。并且,预定义action1对应的元能力可以为一个或者多
个,本技术对此不做限定。此处的预定义action1可对应于步骤s1401中的第一应用模块所属类型的标识。
307.另外,元能力a1可将预定义action1携带在一消息中发送给dms,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1101、步骤s1401中的第一消息。
308.s402、dms向bms发送预定义action1。从而,dms可向bms请求查询预定义action1对应的元能力是否已安装。
309.其中,dms可将预定义action1携带在一消息中发送给bms,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1402中的第四消息。
310.s403、bms基于预定义action1,判断预定义action1对应的元能力是否安装在设备a 11中。
311.由于bms在安装一个元能力时可将该元能力解析后的配置文件存储在分布式应用组件数据库中,因此,bms可查询分布式应用组件数据库中是否存在预定义action1对应的元能力的配置文件,从而确定预定义action1对应的元能力是否安装在设备a 11中。
312.在分布式应用组件数据库中不存在预定义action1对应的元能力的配置文件时,bms可确定预定义action1对应的元能力未安装在设备a 11中,从而bms可执行步骤s404-s414;在分布式应用组件数据库中存在预定义action1对应的元能力的配置文件时,bms可确定预定义action1对应的元能力安装在设备a 11中,从而bms可执行步骤s413-s414。
313.s404、bms向hag服务器20发送设备a 11的id和预定义action1。从而,bms可通过设备a 11中的系统属性获取设备a 11的id,并向hag服务器20请求为设备a 11下载预定义action1对应的元能力。
314.其中,bms可将设备a 11的id和预定义action1携带在一消息中,并从设备a 11与hag服务器20的通信通道发送给hag服务器20,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1103、步骤s1404中的第二消息。并且,设备a 11的id的具体实现内容可参见步骤s104的描述,此处不做赘述。
315.s405、hag服务器20基于预定义action1,获取匹配到的元能力集合1,元能力集合1中的每个子集携带有一个应用的应用名、该应用的元能力的元能力名(此参数可替换为该应用的元能力的预定义action)及该元能力的cdn下载地址。
316.由于hag服务器20预先存储有多个hap包以及每个hap包对应的元能力的cdn下载地址,且hag服务器20可获取每个hap包的应用包名、元能力名和预定义action,因此,hag服务器20可以匹配到与预定义action1标识的功能相同的元能力,从而hag服务器20基于匹配到的元能力对应的应用的包名、匹配到的元能力的元能力名和匹配到的元能力对应的cdn下载地址,得到元能力集合1。
317.其中,cdn下载地址可采用如链接或者地址字符串等方式进行表示。另外,hag服务器20匹配到元能力b1对应的cdn下载地址对应的元能力b1通常为最新版本。元能力集合1中可以包括一个或者多个子集。
318.s406、hag服务器20向bms发送元能力集合1。
319.其中,hag服务器20从设备a 11与hag服务器20的通信通道,可将元能力集合1携带在一消息中发送给设备a 11中的bms,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1104、步骤s1405中的第三消息。此处的元能力集合1可对应于步骤
s1405中的第一集合。
320.s407、bms向dms发送元能力集合1。
321.其中,bms可将元能力集合1携带在一消息中发送给dms,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1501中的第六消息。此处的元能力集合1可对应于步骤s1501中的第一集合。
322.s408、dms基于元能力集合1,判断匹配到的元能力的数量是否大于1。
323.由于匹配到的元能力的数量与元能力集合1的子集的数量相等,因此,dms可判断元能力集合1的子集的数量是否大于1,来确定匹配到的元能力的数量是否大于1。
324.在确定元能力集合1的子集的数量大于1时,dms可确定匹配到的元能力的数量大于1,从而dms可执行步骤s409-s411,以便基于用户意愿确定选择的应用的元能力,提升了用户的参与度和使用体验。在元能力集合1的子集的数量等于1时,dms可确定匹配到的元能力的数量等于1,从而dms可执行步骤s410-s411,以便将匹配到的元能力作为选择的应用的元能力,有利于提升dms的处理速度。
325.s409、dms显示窗口1,并响应于在窗口1上用户的操作,确定选择的应用的元能力。
326.其中,本技术对窗口1的大小、位置、颜色等布局参数均不做限定。此处的操作对应于步骤s15022中的第三操作,窗口1对应于步骤步骤s15022中的第一窗口,选择的应用的元能力对应于步骤s15022中的选择的一个软件模块。另外,dms也可从匹配到的元能力中选择一个元能力作为选择的应用的元能力,且不显示窗口1,对应于步骤s15021的描述内容。dms可基于匹配到的元能力预先设置的优先级或者元能力的存储空间等方式进行选择,本技术对此不做限定。
327.s410、dms向bms发送选择的应用的包名和选择的应用的元能力的元能力名。
328.其中,dms可将选择的应用的包名和选择的应用的元能力的元能力名携带在一消息中发送给bms,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1503中的第七消息。另外,除了选择的应用的包名和选择的应用的元能力的元能力名之外,该消息中还包括携带有元能力的cdn下载地址。
329.其中,选择的应用的元能力包括应用b的元能力b1,选择的设备可以包括设备a 11。为了便于便于说明,此处提及的选择的应用的元能力为应用b的元能力b1。
330.需要说明的是,步骤s407-s410为可选的步骤。也就是说,在匹配到的元能力的数量等于1时,bms可将匹配到的元能力作为选择的应用的元能力。在匹配到的元能力的数量大于1时,bms可从匹配到的元能力中选择一个元能力作为选择的应用的元能力。其中,bms可基于匹配到的元能力预先设置的优先级或者元能力的存储空间等方式进行选择,本技术对此不做限定。
331.s411、bms基于选择的应用的元能力的cdn下载地址,从cdn服务器30中下载选择的应用的元能力。此处的cdn服务器30对应于步骤s1406中的第二服务器。
332.s412、bms安装选择的应用的元能力。
333.此处的步骤s411和步骤s412对应于步骤s1406。
334.s413、bms向dms通知预定义action1对应的元能力已安装。此处的该通知可对应于步骤s1407中的第五消息。
335.s414、dms启动预定义action1对应的元能力(即隐式启动),对应于步骤s1408的描
述内容。
336.综上,基于图7c实施例的描述,设备a 11可通过应用a的元能力a1触发设备a 11中的系统服务,基于预定义action1,启动设备a 11中应用b的元能力b1,充分考虑到三方应用厂商通常不会将元能力b1的元能力名提供给其他厂商,即无需依赖元能力b1的元能力名。
337.需要说明的是,基于图7a-图7c实施例的描述,设备a中应用a与dms之间只需存在一个接口(对应于startability),即应用a与设备a的软件系统之间只需存在一个系统api即可,便可实现设备a通过应用a的元能力a1触发设备a中的系统服务启动设备a中应用b的元能力b1的过程。
338.从而,一个电子设备通过应用的包名以及应用的元能力的元能力名,或者,应用的包名以及应用的元能力的预定义action,或者,预定义action,可从hag服务器查询到元能力的cdn下载地址,并基于元能力的cdn下载地址从cdn服务器上下载该元能力,使得未安装的元能力自动安装,且用户对该元能力的下载过程无感知,该元能力无需在应用首次安装时下载且可基于用户需求实现按需下载。
339.然而,如果一个应用需要启动该应用中的一个动态特性模块,且该应用需要从谷歌(google)应用商店中下载该动态特性模块,则该应用需要执行如下步骤:
340.1、该应用调用系统查询接口,查询该动态特性模块是否安装;
341.2、在确定该动态特性模块已安装时,该应用调用系统启动接口,启动该动态特性模块。
342.3、在确定该动态特性模块未安装时,该应用基于该动态特性模块的模块名,调用集成在该应用中的谷歌核心库(google play core)的下载和安装接口,实现该动态特性模块的下载和安装。该应用调用系统启动接口,启动该动态特性模块。
343.可见,在该动态特性模块已安装时,该应用需要与系统服务之间至少存在两个接口,才可使得该应用启动该动态特性模块。在该动态特性模块未安装时,该应用需要与系统服务之间至少存在三个接口,且该应用中需要预先集成谷歌核心库(google play core),才可使得该应用启动该动态特性模块。
344.本技术中,如果一个应用启动该应用中的一个元能力,则该应用需要执行如下步骤:
345.1、无论该元能力是否安装,该应用调用系统服务的一个接口,发送该元能力所在应用的包名以及该元能力的元能力名,或者,该元能力所在应用的包名以及元能力的预定义action,或者,预定义action即可,便可由系统服务来完成该元能力的启动过程。
346.可见,无论该元能力是否安装,该应用需要与系统服务之间存在一个接口,便可使得该应用启动该元能力。
347.综上,从启动该应用中的一个动态特性模块到启动该应用中的一个元能力而言,减少了开发者调配应用与系统服务之间的接口数量,降低了开发者的编程成本,且也无需开发者将谷歌核心库(google play core)集成在应用中,减少了开发者的配置成本,有利于开发更多元能力丰富用户的使用。
348.结合图8a-图8i,介绍启动同一个分布式网络中的至少一个电子设备的元能力的具体实现过程。为了便于说明,图8a-图8i中,以同一个分布式网络中的电子设备包括:手机、平板电脑、电视和手表,手机中安装有应用a的元能力a1,应用a为负一屏应用,应用a的
元能力a1为软件代码,元能力a1用于提供负一屏应用的页面且触发启动应用c的元能力c1,且手机、平板电脑、电视和手表均具有安装应用c的元能力c1的能力,应用c为xx地图应用,应用c的元能力c1为软件代码,元能力c1用于提供xx地图应用的主页面为例进行示意。其中,本技术实施例对手机、平板电脑、电视和手表是否安装应用c的元能力c1不做限定。
349.请参阅图8a-图8i,图8a-图8i为本技术一实施例提供的人机交互界面示意图。
350.手机可显示如图8a示例性所示的用户界面31,用户界面31用于显示负一屏应用的页面(即启动元能力a1)。其中,用户界面31中包括:搜索框801,搜索框801用于搜索手机中的应用程序、元能力、文件、视频、照片等资源内容。
351.手机在检测到用户指示的搜索xx地图应用的操作(如在图8a所示的用户界面31中的搜索框801输入文字“xx地图”)后,可显示图8b示例性所示的用户界面32,用户界面32用于显示xx地图应用的搜索页面。
352.其中,用户界面32中包括:搜索框802和窗口803。搜索框802用于显示搜索内容为文字“xx地图”。窗口803用于显示文字“xx地图”的搜索结果,搜索结果可表示手机搜索到同一个分布式网络中的手机、平板电脑、电视和手表安装有xx地图应用的主页面(即应用c的元能力c1)。需要说明的是,搜索结果也可表示手机搜索到同一个分布式网络中的手机、平板电脑、电视和手表中具有提供xx地图应用的主页面(即应用c的元能力c1)的能力。
353.需要说明的是,若与手机属于同一个分布式网络中的一个电子设备不具有提供xx地图应用的主页面(即应用c的元能力c1)的能力,则窗口803可不显示该电子设备的文字和图标,或者,窗口803可置灰显示该电子设备的文字和图标,使得用户获知该电子设备无法启动xx地图应用的主页面(即应用c的元能力c1)。
354.在一些实施例中,手机在检测到用户指示的在窗口803上如点击平板电脑的操作后,可在用户界面31上显示图8c示例性所示的窗口804,窗口804用于表示用户指示打开平板电脑中的xx地图应用。
355.进而,在平板电脑未安装xx地图应用的主页面时,平板电脑可下载并安装xx地图应用,从而平板电脑启动xx地图应用。在平板电脑已安装xx地图应用的主页面时,平板电脑启动xx地图应用。
356.在xx地图应用启动后,平板电脑可在用户界面31上显示图8d示例性所示的用户界面33,用户界面33用于显示xx地图应用的主页面(即启动元能力c1)。其中,用户界面33可包括搜索框805,搜索框805用于搜索酒店、住所、学校、医院等一个位置。
357.平板电脑在检测到用户指示的搜索位置“xx中心”的操作(如在图8d所示的用户界面33中的搜索框805输入文字“xx中心”)后,可显示图8e示例性所示的用户界面34,用户界面34用于显示xx中心的搜索页面。
358.在另一些实施例中,手机在检测到用户指示的在窗口803上如点击手机的操作后,可从在用户界面31上显示图8f示例性所示的窗口806,窗口806用于表示用户指示打开手机中的xx地图应用。
359.进而,在手机未安装xx地图应用的主页面时,手机可下载并安装xx地图应用(如图3a所示的用户界面11中的xx地图应用的图标或者图4b所示的用户界面21中的xx地图应用的图标),从而手机启动xx地图应用。在手机已安装xx地图应用的主页面时,手机启动xx地图应用。
360.在xx地图应用启动后,手机可显示图8g示例性所示的用户界面35,用户界面35用于显示xx地图应用的主页面(即启动元能力c1)。其中,用户界面35可包括搜索框807,搜索框807用于搜索酒店、住所、学校、医院等一个位置。
361.手机在检测到用户指示的搜索位置“xx中心”的操作(如在图8g所示的用户界面35中的搜索框807输入文字“xx中心”)后,可显示图8h示例性所示的用户界面36,用户界面36用于显示xx中心的搜索页面。
362.需要说明的是,除了在图8b所示的窗口803中选择一个电子设备之外,用户还可在图8b所示的窗口803中选择多个电子设备,使得多个电子设备皆可打开xx地图应用的主页面,切实满足用户的实际需求。
363.例如,手机在检测到用户指示的在窗口803上如点击手机和平板电脑的操作后,可在用户界面31上显示图8i示例性所示的窗口808,窗口808用于表示用户指示打开手机和平板电脑中的xx地图应用。
364.另外,用户还可在图8c所示的窗口804或者图8f所示的窗口806中切换电子设备,使得切换后的电子设备能够打开xx地图应用的主页面(即启动元能力c1),有利于提升用户的使用体验。
365.综上,在同一个分布式网络中的手机、平板电脑、电视和手表均具备安装有同一个元能力的能力时,手机通过另一个元能力触发手机中的系统服务,可控制手机、平板电脑、电视和手表中的至少一个电子设备启动该同一个元能力,有利于满足用户的实际需求,提升用户的使用体验。
366.其中,在手机、平板电脑、电视和手表中的至少一个电子已安装该同一个元能力时,手机可控制该至少一个电子设备直接启动该同一个元能力。在手机、平板电脑、电视和手表中的至少一个电子未安装该同一个元能力时,手机可控制该至少一个电子设备先下载、安装该同一个元能力,再启动该同一个元能力。
367.基于图8a-图8i实施例的描述,针对能够安装在同一个分布式网络中的各个电子设备的一个相同的元能力,一个电子设备通过该电子设备中另一个元能力触发该电子设备中的系统服务,可基于用户意愿或者实际情况,从同一个分布式网络中的各个电子设备中灵活选择一个或者多个电子设备,并控制选择的电子设备启动该相同的元能力,使得用户能够利用一个电子设备控制其他电子设备完成该相同的元能力对应的功能实现,有利于满足用户的实际需求,提升了用户的使用感。其中,本技术对同一个分布式网络中的各个电子设备是否安装另一个元能力不做限定。
368.请参阅图9,图9为本技术一实施例提供的一个应用程序的各个阶段的示意图。
369.如图9所示,在一个应用程序的生命周期过程中,可包括四个阶段——开发调试阶段、发布上架阶段、云端部署分发阶段以及端侧下载安装阶段。
370.其中,各个阶段的具体实现过程可参见图5实施例的描述,应用c可参见图5实施例中应用b的描述,此处不做赘述。另外,在端侧下载安装阶段中,图9中还包括设备b 12。其中,设备b 12的分层架构具体可参见图5实施例中设备a 11的分层架构的描述。并且,同一个分布式网络中的各个电子设备包括设备a 11与设备b 12,设备b 12中的分布式应用组件数据库可存储有设备b 12已安装的元能力的配置文件。
371.需要说明的是,本技术提及的设备a 11和设备b 12可相互互换位置。
372.结合图9,假设设备a 11已安装应用a的元能力a1,设备a 11中的应用a的元能力a1可向设备a 11中的dms请求启动应用c的元能力c1。设备a 11中的dms可向设备a 11中的bms请求查询应用c的元能力c1是否安装在设备a 11和设备b 12中。
373.设备a 11中的bms可判断设备a 11和设备b 12是否安装有应用c的元能力c1。
374.1、在设备a 11和设备b 12中存在有已安装有应用c的元能力c1的设备时,设备a 11中的bms可向设备a 11中的dms通知已安装应用c的元能力c1的设备。
375.1.1、如果已安装应用c的元能力c1的设备为设备a 11时,那么设备a 11中的dms便可启动设备a 11中的元能力c1。
376.需要说明的是,除了上述方式之外,在设备a 11中的dms可以在启动设备a 11中的元能力c1之前,设备a 11中的dms还可以先显示一个窗口,该窗口用于向用户请求是否启动设备a 11中的元能力c1,例如显示设备a 11的标识。从而,在设备a 11中的dms通过用户在该窗口上的操作确定启动设备a 11中的元能力c1时,设备a 11中的dms便可启动设备a11中的元能力c1。由此,通过与用户之间的交互来提高用户的参与感。
377.综上,设备a 11通过应用a的元能力a1触发设备a 11中的系统服务可启动应用c的元能力c1。
378.1.2、如果已安装应用c的元能力c1的设备为设备b 12时,那么设备a 11中的dms显示一个窗口,该窗口用于向用户通知并请求是否启动设备b 12中的元能力c1,例如显示设备b 12的标识。从而,在设备a 11中的dms通过用户在该窗口上的操作确定启动设备b 12中的元能力c1时,设备a 11中的dms便可向设备b 12中的dms通知启动应用c的元能力c1。设备b 12中的dms可向设备b 12中的bms请求查询应用c的元能力c1是否安装在设备b 12中。
379.当设备b 12中的bms确定元能力c1安装在设备b 12中时,设备b 12中的bms可向设备b 12中的dms通知元能力c1已安装在设备b 12中。设备b 12中的dms便可启动设备b12中的元能力c1。其中,设备b 12中的应用程序层还包括应用c。
380.当设备b 12中的bms确定元能力c1未安装在设备b 12中时,设备b 12中的bms可向设备b 12中的dms通知元能力c1未安装在设备b 12中。设备b 12中的dms向设备a 11中的dms通知元能力c1未安装在设备b 12中。设备b 12中的dms可屏蔽用户的操作,或者,可显示一个窗口通知用户无法启动应用c的元能力c1。需要说明的是,前述内容为可选的操作。
381.综上,设备a 11可通过应用a的元能力a1触发设备a 11中的系统服务启动设备b 12中的应用c的元能力c1。
382.1.3、如果已安装应用c的元能力c1的设备包括设备a 11和和设备b 12,那么设备a 11中的dms可按照预设策略从设备a 11和设备b 12中选择一个或者多个设备,或者,设备a 11中的dms可显示一个窗口通知用户,例如显示设备a 11的标识和设备b 12的标识,以便设备a 11中的dms通过用户在该窗口上的操作,来确定用户从设备a 11和设备b 12中选择的一个或者多个设备。
383.若选择的设备包括:设备a 11,则设备a 11中的dms已确认设备a 11安装有应用c的元能力c1,故,设备a 11中的dms可以启动应用c的元能力c1。
384.综上,设备a 11通过应用a的元能力a1触发设备a 11中的系统服务可启动应用c的元能力c1。
385.若选择的设备包括:设备b 12,则设备a 11中的dms向设备b 12中的dms通知启动
应用c的元能力c1。设备b 12中的dms可向设备b 12中的bms请求查询应用c的元能力c1是否安装在设备b 12中,具体实现过程可参见“已安装应用c的元能力c1的设备为设备b 12”中的描述内容,此处不做赘述。
386.综上,设备a 11可通过应用a的元能力a1触发设备a 11中的系统服务启动设备b 12中的应用c的元能力c1。
387.若选择的设备包括:设备a 11和设备b 12,那么设备a 11中的dms的具体实现过程可参见选择的设备分别包括设备a 11和设备b 12的描述,此处不做赘述。
388.综上,设备a 11通过应用a的元能力a1触发设备a 11中的系统服务可启动设备a 11和设备b 12中的应用c的元能力c1。
389.2、在设备a 11和设备b 12均未安装有应用c的元能力c1时,设备a 11中的bms可从hag服务器20中,获取应用c的元能力c1的cdn下载地址以及适用于元能力c1的cdn下载地址的设备类型。
390.其中,此处提及的元能力c1的cdn下载地址的数量可以为一个或者多个,元能力c1的cdn下载地址可以为适用于设备a 11和/或设备b 12的,也可以不适用于设备a 11和设备b 12的。且本技术对元能力c1的cdn下载地址的具体表示方式不做限定。
391.另外,元能力c1的cdn下载地址的数量可以为一个或者多个,多个cdn下载地址可对应于不同版本的元能力c1或者不同设备的元能力c1,且本技术对元能力c1的cdn下载地址的具体表示方式不做限定。
392.设备a 11中的bms可向设备a 11中的dms发送cdn下载地址和适用于元能力c1的cdn下载地址的设备类型。设备a 11中的dms判断适用于元能力c1的cdn下载地址的设备类型是否包括设备a 11的设备类型和设备b 12的设备类型。
393.2.1、若适用于元能力c1的cdn下载地址的设备类型包括设备a 11,则设备a 11中的dms向设备a 11中的bms请求下载应用c的元能力c1。设备a 11中的bms基于元能力c1的cdn下载地址,从cdn服务器30中下载元能力c1,并在设备a 11中安装元能力c1。设备a 11中的bms向设备a 11中的dms通知元能力c1已安装(使得设备a 11中的应用程序层还包括应用c)。设备a 11中的dms便可启动元能力c1。
394.综上,设备a 11通过应用a的元能力a1触发设备a 11中的系统服务可启动设备a 11中的应用c的元能力c1。
395.2.2、若适用于元能力c1的cdn下载地址的设备类型包括设备b 12,则设备a 11中的dms向设备b 12中的dms请求启动应用c的元能力c1,该请求中可以包括适用于设备b 12的应用c的元能力c1的cdn下载地址。设备b 12中的dms可向设备b 12中的bms请求下载应用c的元能力c1。设备b 12中的bms基于适用于设备b 12的元能力c1的cdn下载地址,可从cdn服务器30中下载元能力c1,并在设备b 12中安装元能力c1(使得设备b 12中的应用程序层还包括应用c)。设备b 12中的bms可向设备b 12中的dms通知元能力c1已安装。设备b 12中的dms便可启动元能力c1。
396.综上,设备a 11通过应用a的元能力a1触发设备a 11中的系统服务可启动设备b 12中的应用c的元能力c1。
397.2.3、若适用于元能力c1的cdn下载地址的设备类型包括设备a 11和设备b 12,则设备a 11的具体执行过程可基于前述“2.1”和“2.2”中的描述内容执行相应的操作,此处不
做赘述。
398.另外,设备a 11中的dms还可显示一个窗口,以便设备a 11中的dms通过用户在该窗口上的操作,来确定用户从设备a 11和设备b 12中选择的一个或者多个设备。其中,设备a 11的具体执行过程可基于前述“1.3”中的描述内容执行相应的操作,此处不做赘述。
399.综上,设备a 11通过应用a的元能力a1触发设备a 11中的系统服务可启动设备a 11和设备b 12中的应用c的元能力c1。
400.其中,图8a-图8i示例性的内容可对上述过程进行解释说明。
401.需要说明的是,除了上述过程之外,设备a 11中的bms还可确定同一个分布式网络的设备a 11和设备b 12是否具有安装应用c的元能力c1的能力。设备a 11中的bms再将确定结果通知给设备a 11中的dms。设备a 11中的dms基于预设策略从设备a 11和设备b 12中选择一个或者多个设备,或者,设备a 11中的dms可显示一个窗口通知用户,以便设备a11中的dms通过用户在该窗口上的操作,来确定用户从设备a 11和设备b 12中选择的一个或者多个设备。设备a 11中的dms向设备a 11中的bms请求查询选择的设备是否安装有应用c的元能力c1。设备a 11中的bms判断选择的设备是否安装有应用c的元能力c1,具体实现过程可参见前述内容,此处不做赘述。从而,设备a 11中的dms基于选择的设备,实现选择的设备启动应用c的元能力c1的过程。
402.基于前述描述,结合图10a-图10c,对图8a-图8i实施例中的同一个分布式网络的设备a 11和设备b 12,设备a 11通过应用a的元能力a1触发设备a 11中的系统服务启动设备b 12中应用c的元能力c1的实现过程进行具体阐述。其中,设备a 11可参见图8a-图8i实施例中的手机的描述,设备b 12可参见图8a-图8i实施例中的平板电脑的描述,应用a可参见图8a-图8i实施例中的负一屏应用的描述,应用c可参见图8a-图8i实施例中的xx地图应用的描述,元能力a1可参见图8a-图8i实施例中的元能力a1的描述,元能力c1可参见图8a-图8i实施例中的元能力c1的描述。
403.请参阅图10a-图10c,图10a-图10c为本技术一实施例提供的一种应用模块启动方法的流程示意图。
404.如图10a所示,本技术的应用模块启动方法的具体实现过程可以包括如下步骤:
405.s501、设备a 11中的应用a的元能力a1响应于用户的操作3,向设备a 11中的dms发送应用c的包名和元能力c1的元能力名。
406.其中,操作3可以包括但不限于点击、双击、长按、触碰等类型的操作。例如,操作3可为用户在图8a实施例中的用户指示的搜索xx地图应用的操作(如在图8a所示的用户界面31中的搜索框801输入文字“xx地图”)。此处的操作3对应于步骤s1601、步骤s1801中的第四操作。
407.并且,操作3与应用c的元能力c1关联。也就是说,元能力a1基于操作3可获知需要启动应用c的元能力c1。由于应用a预先存储有与操作3关联的应用c的包名以及应用c的元能力c1的元能力名,因此,元能力a1可获知应用c的包名和元能力c1的元能力名。从而,元能力a1可向设备a 11中的dms请求启动应用c的元能力c1。
408.其中,应用c的包名可唯一标识应用c,应用c的包名和元能力c1的元能力名可唯一标识元能力c1。应用c的包名和元能力c1的元能力名可采用如字母、字符、数字等至少一种方式进行表示。另外,元能力a1可将应用c的包名和元能力c1的元能力名携带在一消息中发
送给设备a 11中的dms,本技术对该消息的具体实现方式不做限定。此处的消息对应于步骤s1601、步骤s1801中的第九消息。此处的应用a对应于步骤s1601、步骤s1801中的第四应用程序,元能力a1对应于步骤s1601、步骤s1801中的第四应用模块,应用c对应步骤s1601、步骤s1801中第五应用程序,元能力c1对应于步骤s1601、步骤s1801中的第五应用模块,应用c的包名对应步骤s1801中的第五应用程序的标识,元能力c1的元能力名对应步骤s1801中的第五应用模块的模块标识。
409.s502、设备a 11中的dms向设备a 11中的bms发送应用c的包名和元能力c1的元能力名。从而,设备a 11中的dms可向设备a 11中的bms请求查询应用c的元能力c1是否已安装。
410.其中,设备a 11中的dms可将应用c的包名和元能力c1的元能力名携带在一消息中发送给设备a 11中的bms,本技术对该消息的具体实现方式不做限定。此处的消息对应于步骤s1802中的第十三消息。
411.s503、设备a 11中的bms基于应用c的包名和元能力c1的元能力名,判断同一个分布式网络(如组网)的设备a 11和设备b 12中的每个电子设备是否安装有应用c的元能力c1。
412.由于bms在安装一个元能力时可将该元能力解析后的配置文件存储在分布式应用组件数据库中,且设备a 11和设备b 12属于同一个分布式网络,因此,设备a 11中的bms可查询设备a 11中的分布式应用组件数据库中是否存在设备a 11中的应用c的元能力c1以及设备b 12中的分布式应用组件数据库中是否存在设备b 12中的应用c的元能力c1,从而确定应用c的元能力c1是否安装在设备a 11和设备b 12中。若设备a 11中的bms确定设备a 11和设备b 12均未安装应用c的元能力c1,则设备a 11中的bms执行步骤s504-步骤s507;若设备a 11中的bms确定设备a 11和设备b 12中的至少一个设备安装应用c的元能力c1,则设备a 11中的bms执行步骤s508。
413.在设备a 11中的分布式应用组件数据库中不存在应用c的元能力c1且设备b 12中的分布式应用组件数据库中不存在设备b 12中的应用c的元能力c1时,设备a 11中的bms可确定应用c的元能力c1未安装在设备a 11和设备b12中,从而设备a 11中的bms可执行步骤s504-步骤s507。
414.在设备a 11中的分布式应用组件数据库中存在设备a 11中的应用c的元能力c1,或者设备b 12中的分布式应用组件数据库中存在设备b 12中的应用c的元能力c1,或者设备a 11中的分布式应用组件数据库中存在设备a 11中的应用c的元能力c1以及设备b 12中的分布式应用组件数据库中存在设备b 12中的应用c的元能力c1时,设备a 11中的bms可确定应用c的元能力c1安装在设备a 11和设备b 12中的至少一个电子设备中,从而设备a 11中的bms可执行步骤s508。
415.s504、设备a 11中的bms向hag服务器20发送应用c的包名和元能力c1的元能力名。从而,设备a 11中的bms可向hag服务器20请求下载应用c的元能力c1。
416.其中,设备a 11中的bms可将应用c的包名和元能力c1的元能力名携带在一消息中,并从设备a 11与hag服务器20的通道发送给hag服务器20,本技术对该消息的具体实现方式不做限定。此处的消息对应于步骤s1603、步骤s1804中的第十消息。此处的hag服务器20对应于步骤s1603、步骤s1804中的第一服务器。
417.s505、hag服务器20基于应用c的包名和元能力c1的元能力名,获取匹配到的应用c的元能力c1的cdn下载地址以及适用于元能力c1的cdn下载地址的设备类型。
418.由于hag服务器20预先存储有多个hap包以及每个hap包对应的元能力的cdn下载地址,且hag服务器20可获取每个hap包的应用包名、元能力名以及元能力c1的cdn下载地址,因此,hag服务器20基于应用c的包名和元能力c1的元能力名,可以匹配到应用c的元能力c1的cdn下载地址以及适用于元能力c1的cdn下载地址的设备类型。
419.其中,cdn下载地址可采用如链接或者地址字符串等方式进行表示。应用c的元能力c1的cdn下载地址的数量可以为一个或者多个。每个适用于元能力c1的cdn下载地址的设备类型可采用如字母、字符、数字等至少一种方式进行表示,例如,设备的编号或型号或者组网号等。
420.其中,适用于元能力c1的cdn下载地址的设备类型可以包括设备a 11和/或设备b 12,也可以不包括设备a 11和设备b 12。另外,hag服务器20匹配到元能力c1对应的cdn下载地址对应的元能力c1通常为最新版本。
421.s506、hag服务器20向设备a 11中的bms发送应用c的包名、元能力c1的元能力名(此参数可替换为该应用的元能力的预定义action)、元能力c1的cdn下载地址及适用于元能力c1的cdn下载地址的设备类型。
422.其中,hag服务器20从设备a 11与hag服务器20的通道,可将应用c的包名、元能力c1的元能力名、元能力c1的cdn下载地址及适用于元能力c1的cdn下载地址的设备类型携带在一消息中发送给设备a 11中的bms,本技术对该消息的具体实现方式不做限定。此处的消息对应于步骤s1604、步骤s1701、步骤s1805中的第十一消息。
423.s507、设备a 11中的bms向设备a 11中的dms发送应用c的包名、元能力c1的元能力名、元能力c1的cdn下载地址及及适用于元能力c1的cdn下载地址的设备类型。
424.其中,设备a 11中的bms可将应用c的包名、元能力c1的元能力名、元能力c1的cdn下载地址及适用于元能力c1的cdn下载地址的设备类型携带在一消息中发送给设备a11中的dms,本技术对该消息的具体实现方式不做限定。此处的消息对应于步骤s1806中的第十四消息。
425.需要说明的是,步骤s507执行结束完执行步骤s509。
426.s508、设备a 11中的bms向设备a 11中的dms通知应用c的元能力c1已安装及安装元能力c1的设备类型。此处的通知对应于步骤s1806中的第十四消息。
427.例如,设备a 11中的bms向设备a 11中的dms通知设备a 11已安装应用c的元能力c1,以及设备a 11的设备类型。
428.又如,设备a 11中的bms向设备a 11中的dms通知设备b 12已安装应用c的元能力c1,以及设备b 12的设备类型。
429.又如,设备a 11中的bms向设备a 11中的dms通知设备a 11和设备b 12均已安装应用c的元能力c1,以及设备a 11的设备类型和设备b 12的设备类型。
430.其中,安装元能力c1的设备类型可采用如字母、字符、数字等至少一种方式进行表示,例如,设备的编号或型号等。
431.需要说明的是,步骤s508执行结束完执行步骤s509。
432.s509、设备a 11中的dms基于步骤s507或者步骤s508发送的设备类型,确定在同一
分布式网络中支持启动元能力c1的设备。
433.针对步骤s507而言,设备a 11中的dms可将既出现在适用于元能力c1的cdn下载地址的设备类型中,又出现在与设备a 11当前处于同一分布式网络的设备类型中的设备确定为在同一分布式网络中支持启动元能力c1的设备。
434.针对步骤s508而言,设备a 11中的dms可将既出现在安装元能力c1的设备类型中,又出现在与设备a 11当前处于同一分布式网络的设备类型中的设备确定为在同一分布式网络中支持启动元能力c1的设备。
435.其中,与设备a 11当前处于同一分布式网络的设备类型可以理解为不同的电子设备之间可通过蓝牙、wi-fi、zigbee、账号分享等通信方式进行通信。例如,通过华为账号,在同一wi-fi网络环境进行分布式网络的设备a 11和设备b 12。
436.s510、设备a 11中的dms将在同一分布式网络中支持启动元能力c1的设备的标签名显示在窗口2中,并响应于在窗口2上用户的操作,确定选择的设备。
437.其中,本技术对窗口2的大小、位置、颜色等布局参数均不做限定。此处的窗口2对应于步骤s17033中的第二窗口。另外,设备a 11中的dms也可从同一分布式组网中支持启动元能力c1的设备中选择一个设备作为选择的设备,且不显示窗口2。设备a 11中的dms可基于同一分布式网络中支持启动元能力c1的设备预先设置的优先级、设备的存储空间或者设备的通信速率等参数进行选择,本技术对此不做限定。
438.需要说明的是,在选择的设备仅包括设备b 12时,本技术可执行步骤s511-s517。在选择的设备仅包括设备a 11时,本技术可执行步骤s518-s523。在选择的设备包括设备a 11和设备b 12时,本技术可分别执行步骤s511-s517和步骤s518-s523。
439.其中,选择的操作可由步骤s510中的用户实现,也可由设备a 11中的dms实现,也可由步骤s510中的用户以及设备a 11中的dms共同实现,本技术对此不做限定。
440.s511、设备a 11中的dms基于步骤s507发送的设备类型,在选择的设备包括设备b 12时,向设备b 12中的dms发送应用c的包名、元能力c1的元能力名、元能力c1的cdn下载地址和设备b 12的id。或者,设备a 11中的dms基于步骤s508发送的设备类型,在选择的设备包括设备b 12时,向设备b 12中的dms发送应用c的包名、元能力c1的元能力名和设备b 12的id。
441.其中,设备a 11中的dms可将应用c的包名、元能力c1的元能力名、元能力c1的cdn下载地址和设备b 12的id携带在一消息中发送给设备b 12中的dms,或者设备a 11中的dms可将应用c的包名、元能力c1的元能力名和设备b 12的id携带在一消息中发送给设备b 12中的dms,本技术对该消息的具体实现方式不做限定。此处的消息对应于步骤s17032、步骤s17033、步骤s18082、步骤s18083中的第十二消息。
442.另外,设备b 12的id可以为同一个分布式网络中设备b 12的组网标识。
443.s512、设备b 12中的dms向设备b 12中的bms发送应用c的包名、元能力c1的元能力名和元能力c1的cdn下载地址,或者,向设备b 12中的bms发送应用c的包名和元能力c1的元能力名。
444.设备b 12中的dms基于设备b 12的id,可判断出设备a 11发送的应用c的包名、元能力c1的元能力名和元能力c1的cdn下载地址是否发送给设备b 12。从而,设备b 12中的dms可确定需求启动应用c的元能力c1,便可执行步骤s512。
445.其中,设备b 12中的dms可将应用c的包名、元能力c1的元能力名和元能力c1的cdn下载地址携带在一消息中发送给设备b 12中的bms,或者设备b 12中的dms可将应用c的包名和元能力c1的元能力名携带在一消息中发送给设备b 12中的bms,本技术对该消息的具体实现方式不做限定。
446.s513、设备b 12中的bms基于应用c的包名和元能力c1的元能力名,判断应用c的元能力c1是否安装在设备b 12中。
447.由于bms在安装一个元能力时可将该元能力解析后的配置文件存储在分布式应用组件数据库中,因此,设备b 12中的bms可查询设备b 12中的分布式应用组件数据库中是否存在应用c的元能力c1,从而确定应用c的元能力c1是否安装在设备b 12中。
448.在设备b 12中的分布式应用组件数据库中不存在应用c的元能力c1时,设备b 12中的bms可确定应用c的元能力c1未安装在设备b 12中,从而设备b 12中的bms可基于接收到的设备b 12中的bms,或者基于从hag服务器20获取到的元能力c1的cdn下载地址,再执行步骤s514-s517;在设备b 12中的分布式应用组件数据库中存在应用c的元能力c1时,设备b 12中的bms可确定应用c的元能力c1安装在设备b 12中,从而设备b 12中的bms可执行步骤s516-s517。
449.需要说明的是,除了上述判断应用c的元能力c1是否安装在设备b 12中的方式之外,设备b 12中的bms也可以在接收到设备b 12中的dms发送的元能力c1的cdn下载地址时,可确定应用c的元能力c1未安装在设备b 12中。从而,设备b 12中的bms基于接收到的设备b 12中的bms,执行步骤s514-s517。
450.s514、设备b 12中的bms基于应用c的包名、元能力c1的元能力名及元能力c1的cdn下载地址,从cdn服务器30中下载应用c的元能力c1。
451.s515、设备b 12中的bms安装应用c的元能力c1。
452.s516、设备b 12中的bms向设备b 12中的dms通知应用c的元能力c1已安装。
453.s517、设备b 12中的dms启动应用c的元能力c1(即显式启动)。
454.综上,基于前述描述,设备a 11可通过应用a的元能力a1触发设备a 11中的系统服务,基于应用c的包名和元能力c1的元能力名,启动设备b 12中应用c的元能力c1。
455.s518、设备a 11中的dms在选择的设备包括设备a 11时,基于应用c的包名和元能力c1的元能力名,判断应用c的元能力c1是否安装在设备a 11中。
456.由于bms在安装一个元能力时可将该元能力解析后的配置文件存储在分布式应用组件数据库中,因此,设备a 11中的dms可通过设备a 11中的bms可查询设备a 11中的分布式应用组件数据库中是否存在应用c的元能力c1,从而确定应用c的元能力c1是否安装在设备a 11中。
457.在设备a 11中的分布式应用组件数据库中不存在应用c的元能力c1时,设备a 11中的dms可确定应用c的元能力c1未安装在设备a 11中,从而设备a 11中的dms可执行步骤s519-s523;在设备a 11中的分布式应用组件数据库中存在应用c的元能力c1时,设备a 11中的dms可确定应用c的元能力c1安装在设备a 11中,从而设备a 11中的dms可执行步骤s523。
458.s519、设备a 11中的dms向设备a 11中的bms请求下载应用c的元能力c1。此处的请求对应于步骤s18081、步骤s18083中的第十五消息。
459.s520、设备a 11中的bms基于应用c的包名、元能力c1的元能力名及元能力c1的cdn下载地址,从cdn服务器30中下载应用c的元能力c1。此处的cdn服务器30对应于步骤s1731中的第二服务器。
460.s521、设备a 11中的bms安装应用c的元能力c1。
461.s522、设备a 11中的bms向设备a 11中的dms通知应用c的元能力c1已安装。此处的请求对应于步骤s18081、步骤s18083中的第十六消息。
462.s523、设备a 11中的dms启动应用c的元能力c1(即显式启动)。
463.综上,基于前述描述,设备a 11可通过应用a的元能力a1触发设备a 11中的系统服务,基于应用c的包名和元能力c1的元能力名,启动设备a 11中应用c的元能力c1。
464.如图10b所示,本技术的应用模块启动方法的具体实现过程可以包括如下步骤:
465.s601、设备a 11中的应用a的元能力a1响应于用户的操作3,向设备a 11中的dms发送应用c的包名和元能力c1的预定义action2。
466.其中,操作3可以包括但不限于点击、双击、长按、触碰等类型的操作。例如,操作3可为用户在图8a实施例中的用户指示的搜索xx地图应用的操作(如在图8a所示的用户界面31中的搜索框801输入文字“xx地图”)。此处的操作3对应于步骤s1601、步骤s1901中的第四操作。
467.并且,操作3与应用c的元能力c1关联。也就是说,元能力a1基于操作3可获知需要启动应用c的元能力c1。由于应用a预先存储有与操作3关联的应用c的包名以及应用c的元能力c1的预定义action2,因此,元能力a1可获知应用c的包名和元能力c1的预定义action2。从而,元能力a1可向设备a 11中的dms请求启动应用c的元能力c1。
468.其中,应用c的包名可唯一标识应用c,元能力c1的预定义action2可唯一标识元能力c1。应用c的包名和元能力c1的预定义action2可采用如字母、字符、数字等至少一种方式进行表示。另外,元能力a1可将应用c的包名和元能力c1的预定义action2携带在一消息中发送给设备a 11中的dms,本技术对该消息的具体实现方式不做限定。此处的消息对应于步骤s1601、步骤s1901中的第九消息。此处的应用a对应于步骤s1601、步骤s1901中的第四应用程序,元能力a1对应于步骤s1601、步骤s1901中的第四应用模块,应用c对应步骤s1601、步骤s1901中第五应用程序,元能力c1对应于步骤s1601、步骤s1901中的第五应用模块,应用c的包名对应步骤s1901中的第五应用程序的标识,元能力c1的预定义action2对应步骤s1901中的第五应用模块所属类型的标识。
469.s602、设备a 11中的dms向设备a 11中的bms发送应用c的包名和元能力c1的预定义action2。从而,设备a 11中的dms可向设备a 11中的bms请求查询应用c的元能力c1是否已安装。
470.其中,设备a 11中的dms可将应用c的包名和元能力c1的预定义action2携带在一消息中发送给设备a 11中的bms,本技术对该消息的具体实现方式不做限定。此处的消息对应于步骤s1902中的第十三消息。
471.s603、设备a 11中的bms基于应用c的包名和元能力c1的预定义action2,判断同一分布式网络的设备a 11和设备b 12中的每个电子设备是否安装有应用c的元能力c1。
472.由于bms在安装一个元能力时可将该元能力解析后的配置文件存储在分布式应用组件数据库中,且设备a 11和设备b 12属于同一个分布式网络,因此,设备a 11中的bms可
查询设备a 11中的分布式应用组件数据库中是否存在设备a 11中的应用c的元能力c1以及设备b 12中的分布式应用组件数据库中是否存在设备b 12中的应用c的元能力c1,从而确定应用c的元能力c1是否安装在设备a 11和设备b 12中。
473.若设备a 11中的bms确定设备a 11和设备b 12均未安装应用c的元能力c1,则设备a11中的bms执行步骤s604-步骤s607。若设备a 11中的bms确定设备a 11和设备b 12中的至少一个设备安装应用c的元能力c1时,则设备a 11中的bms执行步骤s608。
474.其中,设备a 11中的bms的判断策略的具体实现过程可参见步骤s503的描述,此处不做赘述。
475.s604、设备a 11中的bms向hag服务器20发送应用c的包名和元能力c1的预定义action2。从而,设备a 11中的bms可向hag服务器20请求下载应用c的元能力c1。
476.其中,设备a 11中的bms可将应用c的包名和元能力c1的预定义action2携带在一消息中,并从设备a 11与hag服务器20的通道发送给hag服务器20,本技术对该消息的具体实现方式不做限定。此处的消息对应于步骤s1603、步骤s1904中的第十消息。此处的hag服务器20对应于步骤s1603、步骤s1904中的第一服务器。
477.s605、hag服务器20基于应用c的包名和元能力c1的预定义action2,获取匹配到的应用c的元能力c1的cdn下载地址以及适用于元能力c1的cdn下载地址的设备类型。
478.由于hag服务器20预先存储有多个hap包以及每个hap包对应的元能力的cdn下载地址,且hag服务器20可获取每个hap包的应用包名、元能力名、预定义action以及适用于设备的设备类型,因此,hag服务器20基于应用c的包名和元能力c1的预定义action2,可以匹配到应用c的元能力c1的cdn下载地址以及适用于元能力c1的cdn下载地址的设备类型。
479.其中,cdn下载地址的具体实现方式可参见步骤s505中的描述,此处不做赘述。
480.s606、hag服务器20向设备a 11中的bms发送应用c的包名、元能力c1的预定义action2、元能力c1的cdn下载地址及适用于元能力c1的cdn下载地址的设备类型。
481.其中,hag服务器20从设备a 11与hag服务器20的通道,可将应用c的包名、元能力c1的预定义action2、元能力c1的cdn下载地址及适用于元能力c1的cdn下载地址的设备类型携带在一消息中发送给设备a 11中的bms,本技术对该消息的具体实现方式不做限定。此处的消息对应于步骤s1604、步骤s1701、步骤s1905中的第十一消息。
482.s607、设备a 11中的bms向设备a 11中的dms发送应用c的包名、元能力c1的预定义action2、元能力c1的cdn下载地址及适用于元能力c1的cdn下载地址的设备类型。
483.其中,设备a 11中的bms可将应用c的包名、元能力c1的预定义action2、元能力c1的cdn下载地址及适用于元能力c1的cdn下载地址的设备类型携带在一消息中发送给设备a 11中的dms,本技术对该消息的具体实现方式不做限定。此处的消息对应于步骤s1906中的第十四消息。
484.需要说明的是,步骤s607执行结束完执行步骤s609。
485.s608、设备a 11中的bms向设备a 11中的dms通知应用c的元能力c1已安装及安装元能力c1的设备类型。
486.其中,步骤s608的具体实现过程可参见步骤s508的描述内容,此处不做赘述。此处的通知对应于步骤s1906中的第十四消息。
487.需要说明的是,步骤s608执行结束完执行步骤s609。
488.s609、设备a 11中的dms基于步骤s607或者步骤s608发送的设备类型,确定在同一分布式网络中支持启动元能力c1的设备。
489.针对步骤s607而言,设备a 11中的dms可将既出现在适用于元能力c1的cdn下载地址的设备类型中,又出现在与设备a 11当前处于同一分布式网络的设备类型中的设备确定为在同一分布式网络中支持启动元能力c1的设备。
490.针对步骤s608而言,设备a 11中的dms可将既出现在安装元能力c1的设备类型中,又出现在与设备a 11当前处于同一分布式网络的设备类型中的设备确定为在同一分布式网络中支持启动元能力c1的设备。
491.其中,与设备a 11当前处于同一分布式网络的设备类型可以理解为不同的电子设备之间可通过蓝牙、wi-fi、zigbee、账号分享等通信方式进行通信。例如,通过华为账号,在同一wi-fi网络环境进行分布式组网的设备a 11和设备b 12。
492.s610、设备a 11中的dms将在同一分布式网络中支持启动元能力c1的设备的标签名显示在窗口3中,并响应于在窗口3上用户的操作,确定选择的设备。
493.其中,本技术对窗口3的大小、位置、颜色等布局参数均不做限定。此处的窗口3对应于步骤s17033中的第二窗口。另外,设备a 11中的dms也可从同一分布式网络中支持启动元能力c1的设备中选择一个设备作为选择的设备,且不显示窗口3。设备a 11中的dms可基于同一分布式网络中支持启动元能力c1的设备预先设置的优先级、设备的存储空间或者设备的通信速率等参数进行选择,本技术对此不做限定。
494.需要说明的是,在选择的设备仅包括设备b 12时,本技术可执行步骤s611-s617。在选择的设备仅包括设备a 11时,本技术可执行步骤s618-s623。在选择的设备包括设备a 11和设备b 12时,本技术可分别执行步骤s611-s617和步骤s618-s623。
495.其中,选择的操作可由步骤s610中的用户实现,也可由设备a 11中的dms实现,也可由步骤s610中的用户以及设备a 11中的dms共同实现,本技术对此不做限定。
496.s611、设备a 11中的dms基于步骤s607发送的设备类型,在选择的设备包括设备b 12时,向设备b 12中的dms发送应用c的包名、元能力c1的预定义action2、元能力c1的cdn下载地址和设备b 12的id。或者,设备a 11中的dms基于步骤s608发送的设备类型,在选择的设备包括设备b 12时,向设备b 12中的dms发送应用c的包名、元能力c1的预定义action2和设备b 12的id。
497.其中,设备a 11中的dms可将应用c的包名、元能力c1的预定义action2、元能力c1的cdn下载地址和设备b 12的id携带在一消息中发送给设备b 12中的dms,或者设备a 11中的dms可将应用c的包名、元能力c1的预定义action2和设备b 12的id携带在一消息中发送给设备b 12中的dms,本技术对该消息的具体实现方式不做限定。此处的消息对应于步骤s17032、步骤s17033、步骤s19082、步骤s19083中的第十二消息。
498.另外,设备b 12的id可以为同一个分布式网络中设备b 12的组网标识。
499.s612、设备b 12中的dms向设备b 12中的bms发送应用c的包名、元能力c1的预定义action2和元能力c1的cdn下载地址,或者,向设备b 12中的bms发送应用c的包名和元能力c1的预定义action2。
500.设备b 12中的dms基于设备b 12的id,可判断出设备a 11发送的应用c的包名、元能力c1的预定义action2和元能力c1的cdn下载地址是否发送给设备b 12。从而,设备b 12
中的dms可确定需求启动应用c的元能力c1,便可执行步骤s612。
501.其中,设备b 12中的dms可将应用c的包名、元能力c1的预定义action2和元能力c1的cdn下载地址携带在一消息中发送给设备b 12中的bms,或者设备b 12中的dms可将应用c的包名和元能力c1的预定义action2携带在一消息中发送给设备b 12中的bms,本技术对该消息的具体实现方式不做限定。
502.s613、设备b 12中的bms基于应用c的包名和元能力c1的预定义action2,判断应用c的元能力c1是否安装在设备b 12中。
503.由于bms在安装一个元能力时可将该元能力解析后的配置文件存储在分布式应用组件数据库中,因此,设备b 12中的bms可查询设备b 12中的分布式应用组件数据库中是否存在应用c的元能力c1,从而确定应用c的元能力c1是否安装在设备b 12中。
504.在设备b 12中的分布式应用组件数据库中不存在应用c的元能力c1时,设备b 12中的bms可确定应用c的元能力c1未安装在设备b 12中,从而设备b 12中的bms可基于接收到的设备b 12中的bms,或者基于从hag服务器20获取到的元能力c1的cdn下载地址,执行步骤s614-s617;在设备b 12中的分布式应用组件数据库中存在应用c的元能力c1时,设备b 12中的bms可确定应用c的元能力c1安装在设备b 12中,从而设备b 12中的bms可执行步骤s616-s617。
505.需要说明的是,除了上述判断应用c的元能力c1是否安装在设备b 12中的方式之外,设备b 12中的bms也可以在接收到设备b 12中的dms发送的元能力c1的cdn下载地址时,可确定应用c的元能力c1未安装在设备b 12中。从而,设备b 12中的bms基于接收到的设备b 12中的bms,执行步骤s614-s617。
506.s614、设备b 12中的bms基于应用c的包名、元能力c1的预定义action2及元能力c1的cdn下载地址,从cdn服务器30中下载应用c的元能力c1。
507.s615、设备b 12中的bms安装应用c的元能力c1。
508.s616、设备b 12中的bms向设备b 12中的dms通知应用c的元能力c1已安装。
509.s617、设备b 12中的dms启动应用c的元能力c1(即半隐式启动)。
510.综上,基于前述描述,设备a 11可通过应用a的元能力a1触发设备a 11中的系统服务,基于应用c的包名和元能力c1的预定义action2,启动设备b 12中应用c的元能力c1,充分考虑到三方应用厂商通常不会将元能力c1的元能力名提供给其他厂商,即无需依赖元能力c1的元能力名。
511.s618、设备a 11中的dms在选择的设备包括设备a 11时,基于应用c的包名和元能力c1的预定义action2,判断应用c的元能力c1是否安装在设备a 11中。
512.由于bms在安装一个元能力时可将该元能力解析后的配置文件存储在分布式应用组件数据库中,因此,设备a 11中的dms可通过设备a 11中的bms可查询设备a 11中的分布式应用组件数据库中是否存在应用c的元能力c1,从而确定应用c的元能力c1是否安装在设备a 11中。
513.在设备a 11中的分布式应用组件数据库中不存在应用c的元能力c1时,设备a 11中的dms可确定应用c的元能力c1未安装在设备a 11中,从而设备a 11中的dms可执行步骤s619-s623;在设备a 11中的分布式应用组件数据库中存在应用c的元能力c1时,设备a 11中的dms可确定应用c的元能力c1安装在设备a 11中,从而设备a 11中的dms可执行步骤
s623。
514.s619、设备a 11中的dms向设备a 11中的bms请求下载应用c的元能力c1。此处的请求对应于步骤s19081、步骤s19083中的第十五消息。
515.s620、设备a 11中的bms基于应用c的包名、元能力c1的预定义action2及元能力c1的cdn下载地址,从cdn服务器30中下载应用c的元能力c1。此处的cdn服务器30对应于步骤s1731中的第二服务器。
516.s621、设备a 11中的bms安装应用c的元能力c1。
517.s622、设备a 11中的bms向设备a 11中的dms通知应用c的元能力c1已安装。此处的请求对应于步骤s19081、步骤s19083中的第十六消息。
518.s623、设备a 11中的dms启动应用c的元能力c1(即半隐式启动)。
519.综上,基于前述描述,设备a 11可通过应用a的元能力a1触发设备a 11中的系统服务,基于应用c的包名和元能力c1的预定义action2,启动设备a 11中应用c的元能力c1,充分考虑到三方应用厂商通常不会将元能力c1的元能力名提供给其他厂商,即无需依赖元能力c1的元能力名。
520.如图10c所示,本技术的应用模块启动方法的具体实现过程可以包括如下步骤:
521.s701、设备a 11中的应用a的元能力a1响应于用户的操作3,向设备a 11中的dms发送预定义action2。
522.其中,操作3可以包括但不限于点击、双击、长按、触碰等类型的操作。例如,操作3可为用户在图8a实施例中的用户指示的搜索xx地图应用的操作(如在图8a所示的用户界面31中的搜索框801输入文字“xx地图”)。此处的操作3对应于步骤s1601、步骤s2001中的第四操作。
523.并且,操作3与预定义action2对应的元能力关联。也就是说,元能力a1基于操作3可获知需要启动预定义action2对应的元能力。由于应用a预先存储有与操作3关联的元能力c1的预定义action2,因此,元能力a1可获知预定义action2对应的元能力。从而,元能力a1可向设备a 11中的dms请求启动预定义action2对应的元能力。
524.其中,预定义action2可标识功能相同的元能力。预定义action2可采用如字母、字符、数字等至少一种方式进行表示。另外,元能力a1可将预定义action2携带在一消息中发送给设备a 11中的dms,本技术对该消息的具体实现方式不做限定。此处的消息对应于步骤s1601、步骤s2001中的第九消息。此处的应用a对应于步骤s1601、步骤s2001中的第四应用程序,元能力a1对应于步骤s1601、步骤s2001中的第四应用模块,应用c对应步骤s1601、步骤s2001中第五应用程序,元能力c1对应于步骤s1601、步骤s2001中的第五应用模块,预定义action2对应步骤s2001中的第五应用模块所属类型的标识。
525.s702、设备a 11中的dms向设备a 11中的bms发送预定义action2。从而,设备a 11中的dms可向设备a 11中的bms请求查询预定义action2对应的元能力是否已安装。
526.其中,设备a 11中的dms可将预定义action2携带在一消息中发送给设备a 11中的bms,本技术对该消息的具体实现方式不做限定。此处的消息对应于步骤s2002中的第十三消息。
527.s703、设备a 11中的bms基于预定义action2,判断同一分布式网络的设备a 11和设备b 12中的每个电子设备是否安装有预定义action2对应的元能力。
528.由于bms在安装一个元能力时可将该元能力解析后的配置文件存储在分布式应用组件数据库中,且设备a 11和设备b 12属于同一个分布式网络,因此,设备a 11中的bms可查询设备a 11中的分布式应用组件数据库中是否存在设备a 11中的预定义action2对应的元能力以及设备b 12中的分布式应用组件数据库中是否存在设备b 12中的预定义action2对应的元能力,从而确定预定义action2对应的元能力是否安装在设备a 11和设备b 12中。
529.若设备a 11中的bms确定设备a 11和设备b 12均未安装应用c的元能力c1,则设备a11中的bms执行步骤s704-步骤s707。若设备a 11中的bms确定设备a 11和设备b 12中的至少一个设备安装应用c的元能力c1,则设备a 11中的bms执行步骤s708。
530.其中,设备a 11中的bms的判断策略的具体实现过程可参见步骤s503的描述,此处不做赘述。
531.s704、设备a 11中的bms向hag服务器20发送预定义action2。从而,设备a 11中的bms可向hag服务器20请求为设备a 11和/或设备b 12下载预定义action2对应的元能力。
532.其中,设备a 11中的bms可将预定义action2携带在一消息中,并从设备a 11与hag服务器20的通道发送给hag服务器20,本技术对该消息的具体实现方式不做限定。此处的消息对应于步骤s1603、步骤s2004中的第十消息。此处的hag服务器20对应于步骤s1603、步骤s2004中的第一服务器。
533.s705、hag服务器20基于预定义action2,获取匹配到的元能力集合2,元能力集合2中的每个子集携带有一个应用的应用名、该应用的元能力的元能力名(此参数可替换为该应用的元能力的预定义action)、该元能力的cdn下载地址及适用于元能力的cdn下载地址的设备类型。
534.由于hag服务器20预先存储有多个hap包以及每个hap包对应的元能力的cdn下载地址,且hag服务器20可获取每个hap包的应用包名、元能力名、预定义action以及适用于元能力的cdn下载地址的设备类型,且hag服务器20还预先存储有元能力所支持的设备类型(即可安装各个元能力的设备类型),因此,hag服务器20基于匹配到与预定义action2标识的功能相同的元能力对应的cdn下载地址,以及匹配到的适用于元能力的cdn下载地址的设备类型。此处的元能力集合2对应于步骤s2005中的第二集合。
535.从而,hag服务器20基于匹配到的元能力对应的应用的包名、匹配到的元能力的元能力名、匹配到的元能力的cdn下载地址和匹配到的适用于元能力的设备类型,得到元能力集合2。
536.其中,cdn下载地址的具体实现方式可参见步骤s505中的描述,此处不做赘述。元能力集合2中可以包括一个或者多个子集。
537.s706、hag服务器20向设备a 11中的bms发送元能力集合2。
538.其中,hag服务器20从设备a 11与hag服务器20的通道,可将元能力集合2携带在一消息中发送给设备a 11中的bms,本技术对该消息的具体实现方式不做限定。此处的消息对应于步骤s1604、步骤s1701、步骤s2005中的第十一消息。此处的元能力集合2对应于步骤s2005中的第二集合。
539.s707、设备a 11中的bms向设备a 11中的dms发送元能力集合2。
540.其中,设备a 11中的bms可将元能力集合2携带在一消息中发送给设备a 11中的dms,本技术对该消息的具体实现方式不做限定。此处的消息对应于步骤s2006中的第十四
消息。此处的元能力集合2对应于步骤s2006中的第二集合。
541.需要说明的是,步骤s707执行结束完执行步骤s709。
542.s708、设备a 11中的bms向设备a 11中的dms通知预定义action2对应的元能力已安装及安装预定义action2对应的元能力的设备类型。此处的通知对应于步骤s2006中的第十四消息。
543.例如,设备a 11中的bms向设备a 11中的dms通知设备a 11已安装预定义action2对应的元能力,以及设备a 11的设备类型。
544.又如,设备a 11中的bms向设备a 11中的dms通知设备b 12已安装预定义action2对应的元能力,以及设备b 12的设备类型。
545.又如,设备a 11中的bms向设备a 11中的dms通知设备a 11和设备b 12均已安装预定义action2对应的元能力,以及设备a 11的设备类型和设备b 12的设备类型。
546.其中,安装预定义action2对应的元能力的设备类型可采用如字母、字符、数字等至少一种方式进行表示,例如,设备的编号或型号等。
547.需要说明的是,步骤s708执行结束完执行步骤s709。
548.s709、设备a 11中的dms基于步骤s707或步骤s708发送的元能力的设备类型,确定在同一分布式网络中支持启动预定义action2对应的元能力的设备。
549.针对步骤s707而言,设备a 11中的dms可将既出现在适用于预定义action2对应的元能力的cdn下载地址的设备类型中,又出现在与设备a 1当前处于同一分布式网络的设备类型中的设备确定为在同一分布式网络中支持启动预定义action2对应的元能力的设备。
550.针对步骤s708而言,设备a 11中的dms可将既出现在安装预定义action2对应的元能力的cdn下载地址的设备类型中,又出现在与设备a 1当前处于同一组网的设备类型中的设备确定为在同一分布式网络中支持启动预定义action2对应的元能力的设备。
551.其中,与设备a 11当前处于同一分布式网络的设备类型可以理解为不同的电子设备之间可通过蓝牙、wi-fi、zigbee、账号分享等通信方式进行通信。例如,通过华为账号,在同一wi-fi网络环境进行分布式组网的设备a 11和设备b 12。
552.s710、设备a 11中的dms将在同一分布式网络中支持启动预定义action2对应的元能力的设备的标签名显示在窗口4中,并响应于在窗口4上用户的操作,确定选择的应用的元能力和选择的设备。
553.其中,本技术对窗口4的大小、位置、颜色等布局参数均不做限定。此处的窗口4对应于步骤s17033中的第二窗口。另外,设备a 11中的dms也可从同一分布式网络中支持启动预定义action2对应的元能力的设备中选择一个设备作为选择的设备,且不显示窗口4。设备a 11中的dms可基于同一分布式网络中支持启动预定义action2对应的元能力的设备预先设置的优先级、设备的存储空间或者设备的通信速率等参数进行选择,本技术对此不做限定。
554.其中,选择的应用的元能力包括应用c的元能力c1,选择的设备可以包括设备a 11和设备b 12。为了便于便于说明,此处提及的选择的应用的元能力为应用c的元能力c1。
555.需要说明的是,在选择的设备仅包括设备b 12时,本技术可执行步骤s711-s717。在选择的设备仅包括设备a 11时,本技术可执行步骤s718-s723。在选择的设备包括设备a 11和设备b 12时,本技术可分别执行步骤s711-s717和步骤s718-s723。
556.其中,选择的操作可由步骤s710中的用户实现,也可由设备a 11中的dms实现,也可由步骤s710中的用户以及设备a 11中的dms共同实现,本技术对此不做限定。
557.s711、设备a 11中的dms基于步骤s707发送的设备类型,在选择的设备包括设备b 12时,向设备b 12中的dms发送选择的应用的包名、选择的元能力的预定义action2、选择的元能力的cdn下载地址和设备b 12的id。或者,设备a 11中的dms基于步骤s708发送的设备类型,在选择的设备包括设备b 12时,向设备b 12中的dms发送选择的应用的包名、选择的元能力的预定义action2和设备b 12的id。
558.其中,设备a 11中的dms可将选择的应用的包名、选择的元能力的预定义action2(此参数可替换为该应用的元能力的元能力名)、选择的元能力的cdn下载地址和设备b 12的id携带在一消息中发送给设备b 12中的dms,或者设备a 11中的dms可将选择的应用的包名、选择的元能力的预定义action2(此参数可替换为该应用的元能力的元能力名)和设备b 12的id携带在一消息中发送给设备b 12中的dms,本技术对该消息的具体实现方式不做限定。此处的消息对应于步骤s17032、步骤s17033、步骤s20082、步骤s20083中的第十二消息。
559.另外,设备b 12的id可以为同一个分布式网络中设备b 12的组网标识。
560.s712、设备b 12中的dms向设备b 12中的bms发送选择的应用的包名、选择的元能力的预定义action2和选择的元能力的cdn下载地址,或者,向设备b 12中的bms发送选择的应用的包名和选择的元能力的预定义action2。
561.设备b 12中的dms基于设备b 12的id,可判断出设备a 11发送的选择的应用的包名、选择的元能力的预定义action2和选择的元能力的cdn下载地址是否发送给设备b 12。从而,设备b 12中的dms可确定需求启动选择的应用的元能力,便可执行步骤s712。
562.其中,设备b 12中的dms可将选择的应用的包名、选择的元能力的预定义action2和选择的元能力的cdn下载地址携带在一消息中发送给设备b 12中的bms,或者设备b 12中的dms可将选择的应用的包名和选择的元能力的预定义action2携带在一消息中发送给设备b 12中的bms,本技术对该消息的具体实现方式不做限定。
563.s713、设备b 12中的bms基于选择的应用的包名和选择的元能力的预定义action2,判断选择的应用的元能力是否安装在设备b 12中。
564.由于bms在安装一个元能力时可将该元能力解析后的配置文件存储在分布式应用组件数据库中,因此,设备b 12中的bms可查询设备b 12中的分布式应用组件数据库中是否存在选择的应用的元能力,从而确定选择的应用的元能力是否安装在设备b 12中。
565.在设备b 12中的分布式应用组件数据库中不存在选择的应用的元能力时,设备b 12中的bms可确定选择的应用的元能力未安装在设备b 12中,从而设备b 12中的bms可基于接收到的设备b 12中的bms,或者基于从hag服务器20获取到的元能力c1的cdn下载地址,再执行步骤s714-s717;在设备b 12中的分布式应用组件数据库中存在选择的应用的元能力时,设备b 12中的bms可确定选择的应用的元能力安装在设备b 12中,从而设备b 12中的bms可执行步骤s716-s717。
566.需要说明的是,除了上述判断应用c的元能力c1是否安装在设备b 12中的方式之外,设备b 12中的bms也可以在接收到设备b 12中的dms发送的选择的元能力的cdn下载地址时,可确定选择的元能力未安装在设备b 12中。从而,设备b 12中的bms基于接收到的设备b 12中的bms,执行步骤s714-s717。
567.s714、设备b 12中的bms基于选择的应用的包名、选择的元能力的预定义action2和选择的元能力的cdn下载地址,从cdn服务器30中下载选择的应用的元能力。
568.s715、设备b 12中的bms安装选择的应用的元能力。
569.s716、设备b 12中的bms向设备b 12中的dms通知选择的应用的元能力已安装。
570.s717、设备b 12中的dms启动选择的应用的元能力(即隐式启动)。
571.综上,基于前述描述,设备a 11可通过应用a的元能力a1触发设备a 11中的系统服务,基于预定义action2,启动设备b 12中预定义action2对应的应用的元能力,充分考虑到三方应用厂商通常不会将元能力c1的元能力名提供给其他厂商,即无需依赖元能力c1的元能力名。
572.s718、设备a 11中的dms在选择的设备包括设备a 11时,基于选择的应用的包名和选择的元能力的预定义action2,判断选择的应用的元能力是否安装在设备a 11中。
573.由于bms在安装一个元能力时可将该元能力解析后的配置文件存储在分布式应用组件数据库中,因此,设备a 11中的dms可通过设备a 11中的bms可查询设备a 11中的分布式应用组件数据库中是否存在选择的应用的元能力,从而确定选择的应用的元能力是否安装在设备a 11中。
574.在设备a 11中的分布式应用组件数据库中不存在选择的应用的元能力时,设备a 11中的dms可确定选择的应用的元能力未安装在设备a 11中,从而设备a 11中的dms可执行步骤s719-s723;在设备a 11中的分布式应用组件数据库中存在选择的应用的元能力时,设备a 11中的dms可确定选择的应用的元能力安装在设备a 11中,从而设备a 11中的dms可执行步骤s723。
575.s719、设备a 11中的dms向设备a 11中的bms请求下载选择的应用的元能力。此处的请求对应于步骤s20081、步骤s20083中的第十五消息。
576.s720、设备a 11中的bms基于选择的应用的包名、选择的元能力的预定义action2及选择的元能力的cdn下载地址,从cdn服务器30中下载选择的应用的元能力。此处的cdn服务器30对应于步骤s1731中的第二服务器。
577.s721、设备a 11中的bms安装选择的应用的元能力。
578.s722、设备a 11中的bms向设备a 11中的dms通知选择的应用的元能力已安装。此处的请求对应于步骤s20081、步骤s20083中的第十六消息。
579.s723、设备a 11中的dms启动选择的应用的元能力(即隐式启动)。
580.综上,基于前述描述,设备a 11可通过应用a的元能力a1触发设备a 11中的系统服务,基于预定义action2,启动设备a 11中预定义action2对应的应用的元能力,充分考虑到三方应用厂商通常不会将元能力c1的元能力名提供给其他厂商,即无需依赖元能力c1的元能力名。
581.从而,针对同一个分布式网络中的电子设备1和电子设备2,电子设备1通过应用的包名以及应用的元能力的元能力名,或者,应用的包名以及应用的元能力的预定义action,或者,预定义action,可从hag服务器查询到元能力的cdn下载地址,并可控制电子设备1和电子设备2中的至少一个电子设备基于元能力的cdn下载地址从cdn服务器上下载该元能力,使得未安装的元能力自动安装,且用户对该元能力的下载过程无感知,该元能力无需在应用首次安装时下载且可基于用户需求实现按需下载。
582.结合图11a-图11e,介绍电子设备1启动电子设备2中的一个元能力的具体实现过程。为了便于说明,图11a-图11e中,以电子设备1为手机,电子设备2为手表,手机中下载有应用a,应用a为运动健康应用,手机和手表均具有安装应用d的元能力d1的能力为例进行示意。其中,电子设备1和电子设备2通信连接,应用a的元能力a1为软件代码,元能力a1用于触发启动应用d的元能力d1。应用d的元能力d1为软件代码,应用d为心率应用,元能力d1用于提供心率应用的主页面。另外,本技术对手表是否安装有应用d的元能力d1的能力不做限定。
583.请参阅图11a-图11e,图11a-图11e为本技术一实施例提供的人机交互界面示意图。
584.手机可显示如图11a示例性所示的用户界面41,用户界面41用于显示桌面的主界面(home screen),用户界面41可以包括但不限于:状态栏,导航栏,日历指示符,天气指示符,以及多个应用程序图标等。应用程序图标还可以包括:运动健康应用的图标1101,也可以包括:如华为视频应用的图标、音乐应用的图标、手机管家应用的图标、设置应用的图标、xx地图应用的图标、xx出行应用的图标、智慧生活应用的图标、通话应用的图标、短信应用的图标、浏览器应用的图标、相机应用的图标等。
585.手机在检测到用户指示的打开运动健康应用的操作(如在图11a所示的用户界面41中执行点击运动健康应用的图标1101的操作)后,可显示图11b示例性所示的用户界面42,用户界面42用于显示运动健康应用的主页面。
586.其中,用户界面42中包括:控件1102和控件1103。控件1102用于进入到运动健康应用的主页面。控件1103用于进入到如存储有运动记录、身体数据、步数排行榜、运动周报、共享步数等参数的一个页面。
587.手机在检测到用户指示的查看心率情况的操作(如在用户界面42上如点击控件1103的操作)后,可显示图11c示例性所示的用户界面43,用户界面43用于显示如存储有运动记录、身体数据、步数排行榜、运动周报、共享步数等参数的一个页面。其中,用户界面43中包括控件1104,控件1104用于进入到如存储有步数、距离、消耗、睡眠状态、心率、压力、血氧饱和度等身体数据的一个页面。
588.手机在检测到用户指示的在用户界面43上如点击控件1104的操作后,可显示图11d示例性所示的用户界面44,用户界面44用于显示如存储有步数、距离、消耗、睡眠状态、心率、压力、血氧饱和度等身体数据的一个页面。其中,用户界面44中包括控件1105,控件1105用于进入到手表中心率应用对应的主页面。
589.手机在检测到用户指示的在用户界面44上如点击控件1105中手表的图标的操作后,可控制手表启动心率应用的主页面,如手表可显示图11e示例性所示的用户界面45(即启动元能力d1),用户界面45用于显示用户当天的心率情况。
590.综上,在手机和手表可通信连接时,手机可启动手表中的一个元能力,有利于满足用户的实际需求,提升用户的使用体验。
591.基于图11a-图11e实施例的描述,针对可通信连接的电子设备1和电子设备2,电子设备1可基于用户意愿或者实际情况,控制电子设备2下载并安装一个元能力,从而启动该元能力,使得用户能够利用一个电子设备控制其他电子设备完成该元能力对应的功能实现,有利于满足用户的实际需求,提升了用户的使用感。其中,本技术对电子设备2是否安装
该元能力不做限定。另外,电子设备1和电子设备2可预先通信连接,也可以通过用户手动通信连接,本技术实施例对此不做限定。
592.请参阅图12,图12为本技术一实施例提供的一个应用程序的各个阶段的示意图。
593.如图12所示,在一个应用程序的生命周期过程中,可包括四个阶段——开发调试阶段、发布上架阶段、云端部署分发阶段以及端侧下载安装阶段。
594.其中,各个阶段的具体实现过程可参见图5实施例的描述,应用d可参见图5实施例中应用b的描述,此处不做赘述。另外,在端侧下载安装阶段中,图12中还包括设备b 12。其中,设备b 12的分层架构具体可参见图5实施例中设备a 11的分层架构的描述。
595.结合图1,假设设备a 11已安装应用a的元能力a1,设备a 11中的应用a的元能力a1可调用设备a 11中的dms,向设备b 12中的dms请求启动设备b 12中的应用d的元能力d1。设备b 12中的dms向设备b 12中的bms请求查询应用d的元能力d1是否安装在设备b 12中。
596.在设备b 12中的bms确定元能力d1已安装在设备b 12中时,设备b 12中的bms可向设备b 12中的dms通知元能力d1已安装。设备b 12中的dms便可启动元能力d1。其中,应用程序层还包括应用d。
597.在设备b 12中的bms确定元能力d1未安装在设备b 12中时,设备b 12中的bms可从hag服务器20中,获取元能力d1的cdn下载地址。设备b 12中的bms基于元能力d1的cdn下载地址,可从cdn服务器30中下载元能力d1,使得设备b 12中的bms在设备b 12中安装元能力d1,还使得应用程序层还包括应用d。设备b 12中的bms可向设备b12中的dms通知元能力d1已安装。设备b 12中的dms便可启动元能力d1。
598.其中,图11a-图11e示例性的内容可对上述过程进行解释说明。
599.综上,设备a 11通过应用a的元能力a1触发设备a 11中的系统服务可启动与设备a 11可通信连接的设备b 12中的应用d的元能力d1。
600.基于前述描述,结合图13a-图13c,对图11a-图11e实施例中的设备a 11通过应用a的元能力a1触发设备a 11中的系统服务启动设备b 12中的应用d的元能力d1的实现过程进行具体阐述。其中,设备a 11可参见图11a-图11e实施例中的手机的描述,设备b 12可参见图11a-图11e实施例中的手表的描述,应用a可参见图11a-图11e实施例中的运动健康应用的描述,应用d可参见图11a-图11e实施例中的心率应用的描述,元能力a1可参见图11a-图11e实施例中的元能力a1的描述,元能力d1可参见图11a-图11e实施例中的元能力d1的描述。
601.请参阅图13a-图13c,图13a-图13c为本技术一实施例提供的一种应用模块启动方法的流程示意图。
602.如图13a所示,本技术的应用模块启动方法的具体实现过程可以包括如下步骤:
603.s801、设备a 11中的dms响应于用户的操作4,向设备b 12中的dms发送设备b 12的id、应用d的包名和元能力d1的元能力名。
604.其中,操作4可以包括但不限于点击、双击、长按、触碰等类型的操作。例如,操作4可为用户在图11d实施例中的用户执行的点击控件1105的操作。
605.并且,操作4与应用d的元能力d1关联。也就是说,应用a的元能力a1基于操作4可获知设备a 11需要启动设备b 12中应用d的元能力d1。由于应用a预先存储有与操作4关联的应用d的包名以及应用d的元能力d1的元能力名,因此,元能力a1可获知应用d的包名和元能
力d1的元能力名。从而,应用a的元能力a1可调用设备a 11中的dms向设备b 12中的dms发送设备b 12的id、应用d的包名和元能力d1的元能力名,即请求设备b 12启动应用d的元能力d1。
606.其中,应用d的包名可唯一标识应用d,元能力d1的元能力名可唯一标识元能力d1。应用d的包名和元能力d1的元能力名可采用如字母、字符、数字等至少一种方式进行表示。此处的应用d的包名可对应于步骤s1201中的第一应用程序的标识,元能力d1的元能力名可对应于步骤s1201中的第一应用模块的模块标识。
607.另外,设备a 11中的dms可将设备b 12的id、应用d的包名和元能力d1的元能力名携带在一消息中发送给设备b 12中的dms,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1101、步骤s1201中的第一消息。
608.s802、设备b 12中的dms向设备b 12中的bms发送应用d的包名和元能力d1的元能力名。
609.设备b 12中的dms基于设备b 12的id,可判断出设备a 11发送的应用d的包名和元能力d1的元能力名是否发送给设备b 12。从而,设备b 12中的dms可确定需求启动应用d的元能力d1,便可执行步骤s802,即设备b 12中的dms可向设备b 12中的bms请求查询应用d的元能力d1是否已安装。
610.其中,设备b 12中的dms可将应用d的包名和元能力d1的元能力名携带在一消息中发送给设备b 12中的bms,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1202中的第四消息。
611.s803、设备b 12中的bms基于应用d的包名和元能力d1的元能力名,判断应用d的元能力d1是否安装在设备b 12中。
612.由于设备b 12中的bms在安装一个元能力时可将该元能力解析后的配置文件存储在设备b 12中的分布式应用组件数据库中,因此,设备b 12中的bms可查询设备b 12中的分布式应用组件数据库中是否存在应用d的元能力d1,从而确定应用d的元能力d1是否安装在设备b 12中。
613.在设备b 12中的分布式应用组件数据库中不存在应用d的元能力d1时,设备b 12中的bms可确定应用d的元能力d1未安装在设备b 12中,从而设备b 12中的bms可执行步骤s804-s810;在设备b 12中的分布式应用组件数据库中存在应用d的元能力d1时,设备b 12中的bms可确定应用d的元能力d1安装在设备b 12中,从而设备b 12中的bms可执行步骤s809-s810。
614.s804、设备b 12中的bms向hag服务器20发送设备b 12的id、应用d的包名和元能力d1的元能力名。从而,设备b 12中的bms可通过设备b 12中的系统属性获取设备b 12的id,并向hag服务器20请求为设备b 12下载应用d的元能力d1。
615.其中,设备b 12中的bms可将设备b 12的id、应用d的包名和元能力d1的元能力名携带在一消息中,并从设备b 12与hag服务器20的通信通道,发送给hag服务器20,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1103、步骤s1204中的第二消息。
616.并且,设备b 12的id用于唯一指示设备b 12,表示是设备b 12需要从hag服务器20中获取元能力a2的cdn下载地址。另外,本技术对设备b 12的id的具体实现方式不做限定。
例如,设备b 12的设备类型或者设备b 12的固定资产编号。
617.s805、hag服务器20基于应用b的包名和元能力b1的元能力名,获取匹配到的应用b的元能力b1的cdn下载地址。
618.由于hag服务器20预先存储有多个hap包以及每个hap包对应的元能力的cdn下载地址,且hag服务器20可获取每个hap包的应用包名和元能力名,因此,hag服务器20基于应用d的包名和元能力d1的元能力名,可以匹配到应用d的元能力d1对应的cdn下载地址。
619.其中,cdn下载地址可采用如链接或者地址字符串等方式进行表示。另外,hag服务器20匹配到元能力d1对应的cdn下载地址对应的元能力d1通常为最新版本。
620.s806、hag服务器20向设备b 12中的bms发送应用d的包名、元能力d1的元能力名及元能力d1的cdn下载地址。
621.其中,hag服务器20从设备b 12与hag服务器20的通信通道,可将应用d的包名、元能力d1的元能力名及元能力d1的cdn下载地址携带在一消息中发送给设备b 12中的bms,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1104、步骤s1205中的第三消息。此处的元能力d1的cdn下载地址可对应于步骤s1205中的第一应用模块的下载地址。
622.s807、设备b 12中的bms基于应用d的包名、元能力d1的元能力名及元能力d1的cdn下载地址,从cdn服务器30中下载应用d的元能力d1。此处的cdn服务器30对应于步骤s1206中的第二服务器。
623.s808、设备b 12中的bms安装应用d的元能力d1。
624.s809、设备b 12中的bms向设备b 12中的dms通知应用d的元能力d1已安装。此处的该通知可对应于步骤s1207中的第五消息。
625.s810、设备b 12中的dms启动应用d的元能力d1(即显式启动),对应于步骤s1208的描述内容。
626.综上,基于图13a实施例的描述,设备a 11可通过应用a的元能力a1触发设备a 11中的系统服务,基于应用d的包名和元能力d1的元能力名,启动设备b 12中的应用d的元能力d1。
627.如图13b所示,本技术的应用模块启动方法的具体实现过程可以包括如下步骤:
628.s901、设备a 11中的dms响应于用户的操作4,向设备b 12中的dms发送设备b 12的id、应用d的包名和元能力d1的预定义action3。
629.其中,操作4可以包括但不限于点击、双击、长按、触碰等类型的操作。例如,操作4可为用户在图11d实施例中的用户执行的点击控件1105的操作。
630.并且,操作4与应用d的元能力d1关联。也就是说,应用a的元能力a1基于操作4可获知设备a 11需要启动设备b 12中应用d的元能力d1。由于应用a预先存储有与操作4关联的应用d的包名以及应用d的元能力d1的预定义action3,因此,元能力a1可获知应用d的包名和元能力d1的预定义action3。从而,应用a的元能力a1可调用设备a 11中的dms向设备b 12中的dms发送设备b 12的id、应用d的包名和元能力d1的预定义action3,即请求设备b 12启动应用d的元能力d1。
631.其中,应用d的包名可唯一标识应用d,应用d的包名和元能力d1的预定义action3可唯一标识元能力d1。应用d的包名和元能力d1的应用d的包名可采用如字母、字符、数字等
至少一种方式进行表示。此处的应用d的包名可对应于步骤s1301中的第一应用程序的标识,元能力d1的预定义action3可对应于步骤s1301中的第一应用模块的模块标识。
632.另外,设备a 11中的dms可将设备b 12的id、应用d的包名和元能力d1的应用d的包名携带在一消息中发送给设备b 12中的dms,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1101、步骤s1301中的第一消息。
633.s902、设备b 12中的dms向设备b 12中的bms发送应用d的包名和元能力d1的预定义action3。
634.设备b 12中的dms基于设备b 12的id,可判断出设备a 11发送的应用d的包名和元能力d1的预定义action3是否发送给设备b 12。从而,设备b 12中的dms可确定需求启动应用d的元能力d1,便可执行步骤s902,即设备b 12中的dms可向设备b 12中的bms请求查询应用d的元能力d1是否已安装。
635.其中,设备b 12中的dms可将应用d的包名和元能力d1的预定义action3携带在一消息中发送给设备b 12中的bms,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1302中的第四消息。
636.s903、设备b 12中的bms基于应用d的包名和元能力d1的预定义action3,判断应用d的元能力d1是否安装在设备b 12中。
637.由于bms在安装一个元能力时可将该元能力解析后的配置文件存储在分布式应用组件数据库中,因此,设备b 12中的bms可查询设备b 12中的分布式应用组件数据库中是否存在应用d的元能力d1,从而确定应用d的元能力d1是否安装在设备b 12中。
638.在设备b 12中的分布式应用组件数据库中不存在应用d的元能力d1时,设备b 12中的bms可确定应用d的元能力d1未安装在设备b 12中,从而设备b 12中的bms可执行步骤s904-s910;在设备b 12中的分布式应用组件数据库中存在应用d的元能力d1时,设备b 12中的bms可确定应用d的元能力d1安装在设备b 12中,从而设备b 12中的bms可执行步骤s909-s910。
639.s904、设备b 12中的bms向hag服务器20发送设备b 12的id、应用d的包名和元能力d1的预定义action3。从而,设备b 12中的bms可通过设备b 12中的系统属性获取设备b 12的id,并向hag服务器20请求为设备b 12下载应用d的元能力d1。
640.其中,设备b 12中的bms可将设备b 12的id、应用d的包名和元能力d1的预定义action3携带在一消息中,并从设备b 12与hag服务器20的通信通道发送给hag服务器20,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1103、步骤s1304中的第二消息。并且,设备b 12的id的具体实现内容可参见步骤s804的描述,此处不做赘述。
641.s905、hag服务器20基于应用d的包名和元能力d1的预定义action3,获取匹配到的应用d的元能力d1的cdn下载地址。
642.由于hag服务器20预先存储有多个hap包以及每个hap包对应的元能力的cdn下载地址,且hag服务器20可获取每个hap包的应用包名、元能力名和预定义action,因此,hag服务器20基于应用d的包名和元能力d1的预定义action3,可以匹配到应用d的元能力d1对应的cdn下载地址。
643.其中,cdn下载地址可采用如链接或者地址字符串等方式进行表示。另外,hag服务器20匹配到元能力d1对应的cdn下载地址对应的元能力d1通常为最新版本。
644.s906、hag服务器20向设备b 12中的bms发送应用d的包名、元能力d1的预定义action3(此参数可替换为元能力d1的元能力名)及元能力d1的cdn下载地址。
645.其中,hag服务器20从设备b 12与hag服务器20的通信通道,可将应用d的包名、元能力d1的预定义action3及元能力d1的cdn下载地址携带在一消息中发送给设备b 12中的bms,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1104、步骤s1305中的第三消息。此处的元能力d1的cdn下载地址可对应于步骤s1305中的第一应用模块的下载地址。
646.s907、设备b 12中的bms基于应用d的包名、元能力d1的预定义action3及元能力d1的cdn下载地址,从cdn服务器30中下载应用d的元能力d1。此处的cdn服务器30对应于步骤s1306中的第二服务器。
647.s908、设备b 12中的bms安装应用d的元能力d1。
648.s909、设备b 12中的bms向设备b 12中的dms通知应用d的元能力d1已安装。此处的该通知可对应于步骤s1307中的第五消息。
649.s910、设备b 12中的dms启动应用d的元能力d1(即半隐式启动),对应于步骤s1308的描述内容。
650.综上,基于图13b实施例的描述,设备a 11可通过应用a的元能力a1触发设备a 11中的系统服务,基于应用d的包名和元能力d1的预定义action3,启动设备b 12中的应用d的元能力d1,充分考虑到三方应用厂商通常不会将元能力d1的元能力名提供给其他厂商,即无需依赖元能力d1的元能力名。
651.如图13c所示,本技术的应用模块启动方法的具体实现过程可以包括如下步骤:
652.s1001、设备a 11中的dms响应于用户的操作4,向设备b 12中的dms发送设备b 12的id和预定义action3。
653.其中,操作4可以包括但不限于点击、双击、长按、触碰等类型的操作。例如,操作4可为用户在图11d实施例中的用户执行的点击控件1105的操作。
654.并且,操作4与预定义action3对应的元能力关联。也就是说,应用a的元能力a1基于操作4可获知设备a 11需要启动设备b 12中预定义action3对应的元能力。由于应用a预先存储有与操作2关联的元能力的预定义action3,因此,元能力a1可获知预定义action1对应的元能力。从而,应用a的元能力a1可调用设备a 11中的dms向设备b 12中的dms发送设备b 12的id和预定义action3,即请求设备b 12启动预定义action3对应的元能力。
655.其中,预定义action3可标识功能相同的元能力。预定义action3可采用如字母、字符、数字等至少一种方式进行表示。此处的预定义action3可对应于步骤s1401中的第一应用模块所属类型的标识。
656.另外,设备a 11中的dms可将设备b 12的id和预定义action3携带在一消息中发送给设备b 12中的dms,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1101、步骤s1401中的第一消息。
657.s1002、设备b 12中的dms向设备b 12中的bms发送预定义action1。
658.其中,dms可将预定义action1携带在一消息中发送给bms,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1402中的第四消息。
659.设备b 12中的dms基于设备b 12的id,可判断出设备a 11发送的预定义action3是
否发送给设备b 12。从而,设备b 12中的dms可确定需求启动预定义action3对应的元能力,便可执行步骤s1002,即设备b 12中的dms可向设备b 12中的bms请求查询预定义action3对应的元能力是否已安装。
660.其中,设备b 12中的dms可将预定义action3携带在一消息中发送给设备b 12中的bms,本技术对该消息的具体实现方式不做限定。
661.s1003、设备b 12中的bms基于预定义action3,判断预定义action3对应的元能力是否安装在设备b 12中。
662.由于bms在安装一个元能力时可将该元能力解析后的配置文件存储在分布式应用组件数据库中,因此,设备b 12中的bms可查询设备b 12中的分布式应用组件数据库中是否存在预定义action3对应的元能力,从而确定预定义action3对应的元能力是否安装在设备b 12中。
663.在设备b 12中的分布式应用组件数据库中不存在预定义action3对应的元能力时,设备b 12中的bms可确定预定义action3对应的元能力未安装在设备b 12中,从而设备b 12中的bms可执行步骤s1004-s1014;在设备b 12中的分布式应用组件数据库中存在预定义action3对应的元能力时,设备b 12中的bms可确定预定义action3对应的元能力安装在设备b 12中,从而设备b 12中的bms可执行步骤s1013-s1014。
664.s1004、设备b 12中的bms向hag服务器20发送设备b 12的id和预定义action3。从而,设备b 12中的bms可通过设备b 12中的系统属性获取设备b 12的id,并向hag服务器20请求为设备b 12下载预定义action3对应的元能力。
665.其中,设备b 12中的bms可将设备b 12的id和预定义action3携带在一消息中,并从设备b 12与hag服务器20的通信通道,发送给hag服务器20,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1103、步骤s1404中的第二消息。并且,设备b 12的id的具体实现内容可参见步骤s804的描述,此处不做赘述。
666.s1005、hag服务器20基于预定义action3,获取匹配到的元能力集合3,元能力集合3中的每个子集携带有一个应用的应用名、该应用的元能力的元能力名(此参数可替换为该应用的元能力的预定义action)及该元能力的cdn下载地址。
667.由于hag服务器20预先存储有多个hap包以及每个hap包对应的元能力的cdn下载地址,且hag服务器20可获取每个hap包的应用包名、元能力名和预定义action,因此,hag服务器20可以匹配到与预定义action3标识的功能相同的元能力对应的cdn下载地址,从而hag服务器20基于匹配到的元能力对应的应用的包名、匹配到的元能力的元能力名和匹配到的元能力的cdn下载地址,得到元能力集合3。
668.其中,cdn下载地址可采用如链接或者地址字符串等方式进行表示。另外,hag服务器20匹配到的元能力的cdn下载地址对应的元能力通常为最新版本。元能力集合3中可以包括一个或者多个子集。
669.s1006、hag服务器20向设备b 12中的bms发送元能力集合3。
670.其中,hag服务器20从设备b 12与hag服务器20的通信通道,可将元能力集合3携带在一消息中发送给设备b 12中的bms,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1104、步骤s1405中的第三消息。此处的元能力集合3可对应于步骤s1405中的第一集合。
671.s1007、设备b 12中的bms向设备b 12中的dms发送元能力集合3。
672.其中,设备b 12中的bms可将元能力集合3携带在一消息中发送给设备b 12中的dms,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1501中的第六消息。此处的元能力集合3可对应于步骤s1501中的第一集合。
673.s1008、设备b 12中的dms基于元能力集合3,判断匹配到的元能力的数量是否大于1。
674.由于匹配到的元能力的数量与元能力集合3的子集的数量相等,因此,设备b 12中的dms可判断元能力集合3的子集的数量是否大于1,来确定匹配到的元能力的数量是否大于1。
675.在确定元能力集合3的子集的数量大于1时,设备b 12中的dms可确定匹配到的元能力的数量大于1,从而设备b 12中的dms可执行步骤s1009-s1011,以便基于用户意愿确定选择的应用的元能力,提升了用户的参与度和使用体验。在元能力集合3的子集的数量等于1时,设备b 12中的dms可确定匹配到的元能力的数量等于1,从而设备b 12中的dms可执行步骤s1010-s1011,以便将匹配到的元能力作为选择的应用的元能力,有利于提升设备b12中的dms的处理速度。
676.s1009、设备b 12中的dms显示窗口5,并响应于在窗口5上用户的操作,确定选择的应用的元能力。
677.其中,本技术对窗口5的大小、位置、颜色等布局参数均不做限定。此处的操作对应于步骤s15022中的第三操作,窗口5对应于步骤步骤s15022中的第一窗口,选择的应用的元能力对应于步骤s15022中的选择的一个软件模块。另外,设备b 12中的dms也可从匹配到的元能力中选择一个元能力作为选择的应用的元能力,且不显示窗口5,对应于步骤s15021的描述内容。设备b 12中的dms可基于匹配到的元能力预先设置的优先级或者元能力的存储空间等方式进行选择,本技术对此不做限定。
678.s1010、设备b 12中的dms向设备b 12中的bms发送选择的应用的包名和选择的应用的元能力的元能力名。
679.其中,设备b 12中的dms可将选择的应用的包名和选择的应用的元能力的元能力名携带在一消息中发送给设备b 12中的bms,本技术对该消息的具体实现方式不做限定。此处的该消息可对应于步骤s1503中的第七消息。
680.其中,选择的应用的元能力包括应用b的元能力b1,选择的设备可以包括设备a 11和设备b 12。为了便于便于说明,此处提及的选择的应用的元能力为应用d的元能力d1。
681.需要说明的是,步骤s1007-s1010为可选的步骤。也就是说,在匹配到的元能力的数量等于1时,设备b 12中的bms可将匹配到的元能力作为选择的应用的元能力。在匹配到的元能力的数量大于1时,设备b 12中的bms可从匹配到的元能力中选择一个元能力作为选择的应用的元能力。其中,设备b 12中的bms可基于匹配到的元能力预先设置的优先级或者元能力的存储空间等方式进行选择,本技术对此不做限定。
682.s1011、设备b 12中的bms基于选择的应用的元能力的cdn下载地址,从cdn服务器30中下载选择的应用的元能力。此处的cdn服务器30对应于步骤s1406中的第二服务器。
683.s1012、设备b 12中的bms安装选择的应用的元能力。
684.此处的步骤s411和步骤s412对应于步骤s1406。
685.s1013、设备b 12中的bms向设备b 12中的dms通知预定义action3对应的元能力已安装。此处的该通知可对应于步骤s1407中的第五消息。
686.s1014、设备b 12中的dms启动预定义action3对应的元能力(即隐式启动),对应于步骤s1408的描述内容。
687.综上,基于图13c实施例的描述,设备a 11可通过应用a的元能力a1触发设备a 11中的系统服务,基于预定义action3,启动设备b 12中的应用d的元能力d1,充分考虑到三方应用厂商通常不会将元能力d1的元能力名提供给其他厂商,即无需依赖元能力d1的元能力名。
688.从而,电子设备1通过应用的包名以及应用的元能力的元能力名,或者,应用的包名以及应用的元能力的预定义action,或者,预定义action,可从hag服务器查询到元能力的cdn下载地址,并通过设备的id,可控制电子设备2中的至少一个电子设备基于元能力的cdn下载地址从cdn服务器上下载该元能力,使得未安装的元能力自动安装,且用户对该元能力的下载过程无感知,该元能力无需在应用首次安装时下载且可基于用户需求实现按需下载。
689.基于前述的一些实施例,下面介绍本技术提供的应用模块启动方法。
690.示例性地,本技术提供一种应用模块启动方法。请参阅图14,图14为本技术一实施例提供的一种应用模块启动方法的流程示意图。
691.本技术的应用模块启动方法的执行主体为第一设备,第一设备包括:系统模块。其中,第一设备可以为图3a-图3c、图4a-图4c、图5、图6、图7a-图7c、图11a-图11e、图12、图13a-图13c提及的设备a 11或设备b 12,系统模块的具体实现方式可参见图3a-图3c、图4a-图4c、图5、图6、图7a-图7c、图11a-图11e、图12、图13a-图13c提及的系统服务的描述内容,第一服务器的具体实现方式可参见图3a-图3c、图4a-图4c、图5、图6、图7a-图7c、图11a-图11e、图12、图13a-图13c提及的hag服务器的描述内容,此处不做赘述。
692.如图14所示,本技术的应用模块启动方法可以包括:
693.s1101、系统模块接收第一消息,第一消息与第一应用模块关联,第一应用模块为第一应用程序中的一个软件模块。
694.s1102、响应于接收第一消息,系统模块确定第一设备是否安装第一应用模块。
695.s1103、响应于确定第一设备未安装第一应用模块时,系统模块向第一服务器发送第二消息,第二消息用于下载第一应用模块。
696.s1104、系统模块从第一服务器接收第三消息,第三消息为第一服务器响应于接收第二消息得到的与第一应用模块关联的消息。
697.s1105、响应于接收第三消息,系统模块在第一设备中下载、安装并启动第一应用模块。
698.在一些实施例中,第一设备还包括:第二应用模块,第二应用模块为第二应用程序中的一个软件模块。s1101中方法具体包括:响应于接收用户的第一操作,第二应用模块向系统模块发送第一消息。其中,第一应用程序与第二应用程序相同。
699.对应的,第一设备的具体实现方式可参见图6中设备a 11的描述内容,系统模块的具体实现方式可参见图6中设备a 11的系统服务的描述内容,第一操作可参见图6中步骤s101的操作1的描述内容,第一消息的具体实现方式可参见图6中步骤s101的描述内容,第
一应用模块的具体实现方式可参见图6中元能力a2的描述内容,第二应用模块的具体实现方式可参见图6中元能力a1的描述内容,第一应用程序的具体实现方式可参见图6中应用a的描述内容,步骤s1102的具体实现方式可参见图6中步骤s103的描述内容,第二消息的具体实现方式可参见图6中步骤s104的描述内容,第三消息的具体实现方式可参见图6中步骤s106的描述内容,步骤s1105的具体实现方式可参见图6中步骤s107-步骤s110的描述内容,此处不做赘述。
700.在另一些实施例中,第一设备还包括:第二应用模块,第二应用模块为第二应用程序中的一个软件模块。s1101中方法具体包括:响应于接收用户的第一操作,第二应用模块向系统模块发送第一消息。其中,第一应用程序与第二应用程序不同。
701.对应的,第一设备的具体实现方式可参见图7a中设备a 11的描述内容,系统模块的具体实现方式可参见图7a中设备a 11的系统服务的描述内容,第一操作可参见图6中步骤s101的操作2的描述内容,第一消息的具体实现方式可参见图7a中步骤s201的描述内容,第一应用模块的具体实现方式可参见图7a中元能力b1的描述内容,第一应用程序的具体实现方式可参见图7a中应用b的描述内容,第二应用程序的具体实现方式可参见图7a中应用a的描述内容,第二应用模块可参见图7a中元能力a1的描述内容,步骤s1102的具体实现方式可参见图7a中步骤s203的描述内容,第二消息的具体实现方式可参见图7a中步骤s204的描述内容,第三消息的具体实现方式可参见图7a中步骤s206的描述内容,步骤s1105的具体实现方式可参见图7a中步骤s207-步骤s210的描述内容,此处不做赘述。
702.或者,对应的,第一设备的具体实现方式可参见图7b中设备a 11的描述内容,系统模块的具体实现方式可参见图7b中设备a 11的系统服务的描述内容,第一操作可参见图6中步骤s101的操作2的描述内容,第一消息的具体实现方式可参见图7b中步骤s301的描述内容,第一应用模块的具体实现方式可参见图7b中元能力b1的描述内容,第一应用程序的具体实现方式可参见图7b中应用b的描述内容,第二应用程序的具体实现方式可参见图7b中应用a的描述内容,第二应用模块可参见图7b中元能力a1的描述内容,步骤s1102的具体实现方式可参见图7b中步骤s303的描述内容,第二消息的具体实现方式可参见图7b中步骤s304的描述内容,第三消息的具体实现方式可参见图7b中步骤s306的描述内容,步骤s1105的具体实现方式可参见图7b中步骤s307-步骤s310的描述内容,此处不做赘述。
703.或者,对应的,第一设备的具体实现方式可参见图7c中设备a 11的描述内容,系统模块的具体实现方式可参见图7c中设备a 11的系统服务的描述内容,第一操作可参见图6中步骤s101的操作2的描述内容,第一消息的具体实现方式可参见图7c中步骤s401的描述内容,第一应用模块的具体实现方式可参见图7c中元能力b1的描述内容,第一应用程序的具体实现方式可参见图7c中应用b的描述内容,第二应用程序的具体实现方式可参见图7c中应用a的描述内容,第二应用模块可参见图7c中元能力a1的描述内容,步骤s1102的具体实现方式可参见图7c中步骤s403的描述内容,第二消息的具体实现方式可参见图7c中步骤s404的描述内容,第三消息的具体实现方式可参见图7c中步骤s406的描述内容,步骤s1105的具体实现方式可参见图7c中步骤s407-步骤s414的描述内容,此处不做赘述。
704.在另一些实施例中,第一设备与第二设备通信连接。s1101中方法具体包括:系统模块从第二设备接收第一消息,第一消息是第二设备响应于接收用户的第二操作发送的,第一消息中还携带有第一设备的设备标识。
705.对应的,第一设备的具体实现方式可参见图13a中设备b 12的描述内容,第二设备的具体实现方式可参见图13a中设备a 11的描述内容,系统模块的具体实现方式可参见图13a中设备b 12的系统服务的描述内容,第一操作可参见图13a中步骤s801的操作4的描述内容,第一消息的具体实现方式可参见图13a中步骤s801的描述内容,第一应用模块的具体实现方式可参见图13a中元能力d1的描述内容,第一应用程序的具体实现方式可参见图13a中应用d的描述内容,步骤s1102的具体实现方式可参见图13a中步骤s803的描述内容,第二消息的具体实现方式可参见图13a中步骤s804的描述内容,第三消息的具体实现方式可参见图13a中步骤s806的描述内容,步骤s1105的具体实现方式可参见图13a中步骤s807-步骤s810的描述内容,此处不做赘述。
706.或者,对应的,第一设备的具体实现方式可参见图13b中设备b 12的描述内容,第二设备的具体实现方式可参见图13b中设备a 11的描述内容,系统模块的具体实现方式可参见图13b中设备b 12的系统服务的描述内容,第一操作可参见图13b中步骤s901的操作4的描述内容,第一消息的具体实现方式可参见图13b中步骤s901的描述内容,第一应用模块的具体实现方式可参见图13b中元能力d1的描述内容,第一应用程序的具体实现方式可参见图13b中应用d的描述内容,步骤s1102的具体实现方式可参见图13b中步骤s903的描述内容,第二消息的具体实现方式可参见图13b中步骤s904的描述内容,第三消息的具体实现方式可参见图13b中步骤s906的描述内容,步骤s1105的具体实现方式可参见图13b中步骤s907-步骤s910的描述内容,此处不做赘述。
707.或者,对应的,第一设备的具体实现方式可参见图13c中设备b 12的描述内容,第二设备的具体实现方式可参见图13c中设备a 11的描述内容,系统模块的具体实现方式可参见图13c中设备b 12的系统服务的描述内容,第一操作可参见图13c中步骤s1001的操作4的描述内容,第一消息的具体实现方式可参见图13c中步骤s1001的描述内容,第一应用模块的具体实现方式可参见图13c中元能力d1的描述内容,第一应用程序的具体实现方式可参见图13c中应用d的描述内容,步骤s1102的具体实现方式可参见图13c中步骤s1003的描述内容,第二消息的具体实现方式可参见图13c中步骤s1004的描述内容,第三消息的具体实现方式可参见图13c中步骤s1006的描述内容,步骤s1105的具体实现方式可参见图13c中步骤s1007-步骤s1014的描述内容,此处不做赘述。
708.其中,系统模块中的分布式调度服务dms从第二设备中的分布式调度服务dms接收第一消息,具体实现过程可参见图13a中步骤s901的描述内容,或者图13b中步骤s901的描述内容,或者图13c中步骤s1001的描述内容,此处不做赘述。
709.在一些实施例中,该方法具体包括:系统模块从第一服务器接收第三消息,第三消息中携带有第一应用模块的下载地址;响应于接收第三消息,系统模块从第二服务器中下载第一应用模块,将第一应用模块安装在第一设备中,并启动第一应用模块。
710.其中,第二服务器的具体实现方式可参见cdn服务器的描述内容,上述实现的具体过程可参见图6中步骤s106-步骤s108的描述内容,或者图7a中步骤s206-步骤s208的描述内容,或者图7b中步骤s306-步骤s308的描述内容,或者图7c中步骤s406-步骤s412的描述内容,或者图13a中步骤s806-步骤s808的描述内容,或者图13b中步骤s906-步骤s908的描述内容,或者图13c中步骤s1006-步骤s1012的描述内容,此处不做赘述。
711.在一些实施例中,在系统模块包括:分布式调度服务dms和包管理服务bms时,本申
请的应用模块启动方法可以包括:步骤s1201-步骤s1208。
712.步骤s1201、分布式调度服务dms接收第一消息,第一消息中携带有第一应用程序的标识以及第一应用模块的模块标识。
713.其中,步骤s1201的具体实现方式可参见图6中步骤s101的描述内容,或者图7a中步骤s201的描述内容,或者图13a中步骤s801的描述内容,第一应用程序的标识可参见图6中应用a的包名的描述内容,或者图7a中应用b的包名的描述内容,第一应用模块的模块标识可参见图6中元能力a2的元能力名的描述内容,或者图7a中元能力b1的元能力名的描述内容,此处不做赘述。
714.步骤s1202、响应于接收第一消息,分布式调度服务dms向包管理服务bms发送第四消息,第四消息中携带有第一应用程序的标识以及第一应用模块的模块标识。
715.其中,步骤s1202的具体实现方式可参见图6中步骤s102的描述内容,或者图7a中步骤s202的描述内容,或者图13a中步骤s802的描述内容,此处不做赘述。
716.步骤s1203、响应于接收第四消息,包管理服务bms确定第一设备是否安装第一应用模块。
717.其中,步骤s1203的具体实现方式可参见图6中步骤s103的描述内容,或者图7a中步骤s203的描述内容,或者图13a中步骤s803的描述内容,此处不做赘述。
718.步骤s1204、响应于确定第一设备未安装第一应用模块时,包管理服务bms向第一服务器发送第二消息,第二消息中携带有第一设备的设备标识、第一应用程序的标识以及第一应用模块的模块标识。
719.其中,步骤s1204的具体实现方式可参见图6中步骤s104的描述内容,或者图7a中步骤s204的描述内容,或者图13a中步骤s804的描述内容,此处不做赘述。
720.步骤s1205、包管理服务bms从第一服务器接收第三消息,第三消息中携带有第一应用模块的下载地址、第一应用程序的标识以及第一应用模块的模块标识。
721.其中,第三消息的具体确定方式可参见图6中步骤s105的描述内容,或者图7a中步骤s205的描述内容,或者图13a中步骤s805的描述内容。步骤s1205的具体实现方式可参见图6中步骤s106的描述内容,或者图7a中步骤s206的描述内容,或者图13a中步骤s806的描述内容,此处不做赘述。
722.步骤s1206、响应于接收第三消息,包管理服务bms基于第一应用模块的下载地址,从第二服务器中下载第一应用模块,并将第一应用模块安装在第一设备中。
723.其中,步骤s1206的具体实现方式可参见图6中步骤s107-步骤s108的描述内容,或者图7a中步骤s207-步骤s208的描述内容,或者图13a中步骤s807-步骤s808的描述内容,此处不做赘述。
724.步骤s1207、包管理服务bms向分布式调度服务dms发送第五消息。
725.其中,第五消息用于向分布式调度服务dms通知第一应用模块已安装在第一设备中。并且,步骤s1207的具体实现方式可参见图6中步骤s109的描述内容,或者图7a中步骤s209的描述内容,或者图13a中步骤s809的描述内容,此处不做赘述。
726.步骤s1208、响应于接收第五消息,分布式调度服务dms启动第一应用模块。
727.其中,步骤s1208的具体实现方式可参见图6中步骤s110的描述内容,或者图7a中步骤s210的描述内容,或者图13a中步骤s810的描述内容,此处不做赘述。
728.在一些实施例中,在系统模块包括:分布式调度服务dms和包管理服务bms时,本技术的应用模块启动方法可以包括:步骤s1301-步骤s1308。
729.步骤s1301、分布式调度服务dms接收第一消息,第一消息中携带有第一应用程序的标识以及第一应用模块所属类型的标识。
730.其中,步骤s1301的具体实现方式可参见图7b中步骤s301的描述内容,或者图13b中步骤s901的描述内容,此处不做赘述。
731.步骤s1302、响应于接收第一消息,分布式调度服务dms向包管理服务bms发送第四消息,第四消息中携带有第一应用程序的标识以及第一应用模块所属类型的标识。
732.其中,步骤s1302的具体实现方式可参见图7b中步骤s302的描述内容,或者图13b中步骤s902的描述内容,此处不做赘述。
733.步骤s1303、响应于接收第四消息,包管理服务bms确定第一设备是否安装第一应用模块。
734.其中,步骤s1303的具体实现方式可参见图7b中步骤s303的描述内容,或者图13b中步骤s903的描述内容,此处不做赘述。
735.步骤s1304、响应于确定第一设备未安装第一应用模块时,包管理服务bms向分布式调度服务dms发送第二消息,第二消息中携带有第一设备的设备标识、第一应用程序的标识以及第一应用模块所属类型的标识。
736.其中,步骤s1304的具体实现方式可参见图7b中步骤s304的描述内容,或者图13b中步骤s904的描述内容,此处不做赘述。
737.步骤s1305、包管理服务bms从第一服务器接收第三消息,第三消息中携带有第一应用模块的下载地址、第一应用程序的标识以及第一应用模块所属类型的标识。
738.其中,第三消息的具体确定方式可参见图7b中步骤s305的描述内容,或者图13b中步骤s903的描述内容,步骤s1305的具体实现方式可参见图7b中步骤s306的描述内容,或者图13b中步骤s906的描述内容,此处不做赘述。
739.步骤s1306、响应于接收第三消息,包管理服务bms基于第一应用模块的下载地址,从第二服务器中下载第一应用模块,并将第一应用模块安装在第一设备中。
740.其中,步骤s1306的具体实现方式可参见图7b中步骤步骤s307-步骤s308的描述内容,或者图13b中步骤s907-步骤a908的描述内容,此处不做赘述。
741.步骤s1307、包管理服务bms向分布式调度服务dms发送第五消息。
742.其中,步骤s1307的具体实现方式可参见图7b中步骤s309的描述内容,或者图13b中步骤s909的描述内容,此处不做赘述。
743.步骤s1308、响应于接收第五消息,分布式调度服务dms启动第一应用模块。
744.其中,步骤s1308的具体实现方式可参见图7b中步骤s310的描述内容,或者图13b中步骤s910的描述内容,此处不做赘述。
745.在一些实施例中,在系统模块包括:分布式调度服务dms和包管理服务bms时,本技术的应用模块启动方法可以包括:步骤s1401-步骤s1408。
746.步骤s1401、分布式调度服务dms接收第一消息,第一消息中携带有第一应用模块所属类型的标识。
747.其中,步骤s1401的具体实现方式可参见图7c中步骤s401的描述内容,或者图13c
中步骤s1001的描述内容,此处不做赘述。
748.步骤s1402、响应于接收第一消息,分布式调度服务dms向包管理服务bms发送第四消息,第四消息中携带有第一应用模块所属类型的标识。
749.其中,步骤s1402的具体实现方式可参见图7c中步骤s402的描述内容,或者图13c中步骤s1002的描述内容,此处不做赘述。
750.步骤s1403、响应于接收第四消息,包管理服务bms确定第一设备是否安装第一应用模块。
751.其中,步骤s1403的具体实现方式可参见图7c中步骤s403的描述内容,或者图13c中步骤s1003的描述内容,此处不做赘述。
752.步骤s1404、响应于确定第一设备未安装第一应用模块时,包管理服务bms向第一服务器发送第二消息,第二消息中携带有第一设备的设备标识以及第一应用模块所属类型的标识。
753.其中,步骤s1404的具体实现方式可参见图7c中步骤s404的描述内容,或者图13c中步骤s1004的描述内容,此处不做赘述。
754.步骤s1405、包管理服务bms从第一服务器接收第三消息,第三消息中携带有第一集合,第一集合的每个子集中携带有一个应用程序的标识、包含在应用程序中的软件模块的模块标识以及软件模块的下载地址,且每个子集中对应的软件模块与第一应用模块属于同一个类型。
755.其中,第三消息的具体确定方式可参见图7c中步骤s405的描述内容,或者图13c中步骤s1005的描述内容。步骤s1405的具体实现方式可参见图7c中步骤s406的描述内容,或者图13c中步骤s1006的描述内容,此处不做赘述。
756.步骤s1406、响应于接收第三消息,包管理服务bms基于第一集合中选择的一个软件模块的下载地址从第二服务器中下载选择的一个软件模块,并将选择的一个软件模块安装在第一设备中。
757.其中,步骤s1406的具体实现方式可参见图7c中步骤s411-步骤s412的描述内容,或者图13c中步骤s1011-步骤s1012的描述内容,此处不做赘述。
758.步骤s1407、包管理服务bms向分布式调度服务dms发送第五消息。
759.其中,步骤s1407的具体实现方式可参见图7c中步骤s413的描述内容,或者图13c中步骤s1013的描述内容,此处不做赘述。
760.步骤s1408、响应于接收第五消息,分布式调度服务dms启动选择的一个软件模块。
761.其中,步骤s1408的具体实现方式可参见图7c中步骤s414的描述内容,或者图13c中步骤s1014的描述内容,此处不做赘述。
762.在一些实施例中,本技术的应用模块启动方法具体可以包括:步骤s1501-步骤s1504。
763.步骤s1501、响应于接收第三消息,包管理服务bms向分布式调度服务dms发送第六消息,第六消息中携带有第一集合。
764.其中,第一集合的具体实现方式可参见图7c中元能力集合1的描述内容,或者图13c中元能力集合3的描述内容,步骤s1501的具体实现方式可参见图7c中步骤s407的描述内容,或者图13c中步骤s1007的描述内容,此处不做赘述。
765.步骤s15021、响应于接收第六消息,分布式调度服务dms基于预设规则从第一集合中确定选择的一个软件模块。
766.步骤s15022、响应于接收第六消息,分布式调度服务dms显示第一窗口,第一窗口中包括与第一集合中的软件模块对应的控件;响应于接收用户在第一窗口中对选择的一个软件模块对应的控件上的第三操作,分布式调度服务dms确定选择的一个软件模块。
767.其中,第三操作可以包括但不限于点击、双击、长按、触碰等类型的操作。预设规则可以参见图7c中步骤s409中“元能力预先设置的优先级或者元能力的存储空间等方式”进行设置,本技术对此不做限定。第一窗口的具体实现方式可参见图7c中窗口1的描述内容,或者图13c中窗口5的描述内容,步骤s15022的具体实现方式可参见图7c中步骤s409的描述内容,或者图13c中步骤s1009的描述内容,此处不做赘述。
768.步骤s1503、分布式调度服务dms向包管理服务bms发送第七消息,第七消息中携带有选择的一个软件模块所属的应用程序的标识以及选择的一个软件模块的模块标识。
769.其中,步骤s1503的具体实现方式可参见图7c中步骤s410的描述内容,或者图13c中步骤s1010的描述内容,此处不做赘述。
770.步骤s1504、响应于接收第七消息,包管理服务bms基于选择的一个软件模块所属的应用程序的标识以及选择的一个软件模块的模块标识,从第一集合中确定选择的一个软件模块的下载地址。
771.在一些实施例中,该方法还包括:响应于确定第一设备已安装第一应用模块时,系统模块启动第一应用模块。
772.其中,上述过程的具体实现方式可参见图6中步骤s109的描述内容,或者图7a中步骤s209的描述内容,或者图7b中步骤s309的描述内容,或者图7c中步骤s413的描述内容,或者图13a中步骤s809的描述内容,或者图13b中步骤s909的描述内容,或者图13c中步骤s1013的描述内容,此处不做赘述。
773.在一些实施例中,第一设备与第三设备通信连接。该方法还包括:系统模块向第三设备发送第八消息,第八消息用于请求第三设备启动第三应用模块,第三应用模块为第三应用程序中的一个软件模块,第三应用模块未安装在第三设备中;第八消息中携带有第三设备的设备标识、第三应用程序的标识以及第三应用模块的模块标识,或者第八消息中携带有第三设备的设备标识、第三应用程序的标识以及第三应用模块所属类型的标识,或者第八消息中携带有第三设备的设备标识以及第三应用模块所属类型的标识。
774.其中,第一设备的具体实现方式可参见图13a-图13c中的设备a 11的描述内容,第三设备的具体实现方式可参见图13a-图13c中的设备b 12的描述内容,第八消息的具体实现方式可参见图13a中步骤s801、图13b中步骤s901、图13c中步骤s1011的描述内容,上述过程的具体实现方式可参见图13a-图13c的描述内容,此处不做赘述。
775.在一些实施例中,该方法具体包括:系统模块中的分布式调度服务dms向第三设备中的分布式调度服务dms发送第八消息。
776.示例性地,本技术提供一种应用模块启动方法。请参阅图15,图15为本技术一实施例提供的一种应用模块启动方法的流程示意图。
777.本技术的应用模块启动方法的执行主体为第一设备,第一设备包括:第四应用模块和系统模块,第四应用模块为第四应用程序中的一个软件模块。第一设备与第四设备通
信连接。其中,第一设备可以为图8a-图8i、图9、图10a-图10c提及的设备a 11,第四设备可以为图8a-图8i、图9、图10a-图10c提及的设备b 12,系统模块可参见图8a-图8i、图9、图10a-图10c提及的系统服务的描述内容,第四应用程序的具体实现方式可参见图8a-图8i、图9、图10a-图10c提及的应用a的描述内容,第四应用模块的具体实现方式可参见图8a-图8i、图9、图10a-图10c提及的元能力a1的描述内容,第一服务器的具体实现方式可参见图8a-图8i、图9、图10a-图10c提及的hag服务器的描述内容,此处不做赘述。
778.如图15所示,本技术的应用模块启动方法可以包括:
779.s1601、响应于接收用户的第四操作,第四应用模块向系统模块发送第九消息,第九消息与第五应用模块关联,第五应用模块为第五应用程序中的一个软件模块,第四应用程序与第五应用程序不同。
780.其中,第四操作可参见图10a-图10c中的操作3的描述内容,第五应用模块可参见图10a-图10c中的元能力c1的描述内容,第五应用程序可参见图10a-图10c中的应用c的描述内容,第九消息可参见图10a中步骤s501的描述内容,或者图10b中步骤s602的描述内容,或者图10c中步骤s702的描述内容,此处不做赘述。
781.s1602、响应于接收第九消息,系统模块确定第一设备和第四设备是否安装第五应用模块。
782.其中,上述过程的具体实现方式可参见图10a中步骤s503的描述内容,或者图10b中步骤s603的描述内容,或者图10c中步骤s703的描述内容,此处不做赘述。
783.s1603、响应于确定第一设备和第四设备均未安装第五应用模块时,系统模块向第一服务器发送第十消息,第十消息用于下载第五应用模块。
784.其中,上述过程的具体实现方式可参见图10a中步骤s504的描述内容,或者图10b中步骤s604的描述内容,或者图10c中步骤s704的描述内容,此处不做赘述。
785.s1604、系统模块从第一服务器接收第十一消息,第十一消息为第一服务器响应于接收第十消息得到的与第五应用模块关联的消息。
786.其中,上述过程的具体实现方式可参见图10a中步骤s506的描述内容,或者图10b中步骤s606的描述内容,或者图10c中步骤s706的描述内容,此处不做赘述。
787.s1605、响应于接收第十一消息,系统模块实现第一设备和/或第四设备中下载、安装并启动第五应用模块。
788.其中,上述过程的具体实现方式可参见图10a中步骤s507、步骤s509-步骤s523,或者图10b中步骤s607的描述内容、步骤s609-步骤s623的描述内容,或者图10c中步骤s707、步骤s709-步骤s723的描述内容,此处不做赘述。
789.在一些实施例中,本技术的应用模块启动方法具体可以包括:步骤s1701-步骤s17033。
790.步骤s1701、系统模块从第一服务器接收第十一消息,第十一消息中携带有第五应用模块的下载地址和适用于第五应用模块的下载地址的设备类型;
791.其中,步骤s1701的具体实现方式可参见图10a中步骤s506的描述内容,或者图10b中步骤s606的描述内容,或者图10c中步骤s706的描述内容,此处不做赘述。
792.步骤s1702、响应于接收第十一消息,系统模块确定适用于第五应用模块的下载地址的设备类型是否包括第一设备和第四设备;
793.其中,步骤s1702的具体实现方式可参见图10a中步骤s507、步骤s509-步骤s510的描述内容,或者图10b中步骤s607、步骤s609-步骤s610的描述内容,或者图10c中步骤s707、步骤s709-步骤s710的描述内容,此处不做赘述。
794.步骤s17031、响应于确定适用于第五应用模块的下载地址的设备类型包括第一设备时,系统模块基于第五应用模块的下载地址,从第二服务器下载第五应用模块,将第五应用模块安装在第一设备中,并在第一设备中启动第五应用模块。
795.其中,步骤s17031的具体实现方式可参见图10a中步骤s518-步骤s523的描述内容,或者图10b中步骤s618-步骤s623的描述内容,或者图10c中步骤s718-步骤s723的描述内容,此处不做赘述。
796.步骤s17032、响应于确定适用于第五应用模块的下载地址的设备类型包括第四设备时,系统模块向第四设备发送第十二消息,第十二消息用于请求第四设备启动第五应用模块,第十二消息中携带有第五应用模块的下载地址;
797.其中,步骤s17032的具体实现方式可参见图10a中步骤s511的描述内容,或者图10b中步骤s611的描述内容,或者图10c中步骤s711的描述内容,此处不做赘述。
798.步骤s17033、响应于确定适用于第五应用模块的下载地址的设备类型包括第一设备和第四设备时,系统模块显示第二窗口,第二窗口中包括第一设备对应的控件和第四设备对应的控件;响应于接收用户在第二窗口中对第一设备对应的控件上的第五操作,系统模块基于第五应用模块的下载地址,从第二服务器下载第五应用模块,将第五应用模块安装在第一设备中,并在第一设备中启动第五应用模块;和/或,响应于接收用户在第二窗口中对第四设备对应的控件上的第五操作,系统模块向第四设备发送第十二消息,第十二消息用于请求第四设备启动第五应用模块,第十二消息中携带有第五应用模块的下载地址。
799.其中,第二窗口的具体实现方式可参见图10a中窗口2的描述内容,或者第二窗口的具体实现方式可参见图10b中窗口3的描述内容,或者第二窗口的具体实现方式可参见图10c中窗口4的描述内容,第五操作可以包括但不限于点击、双击、长按、触碰等类型的操作。步骤s17033的具体实现方式可参见图10a中步骤s520-步骤s523、步骤s511的描述内容,或者图10b中步骤s620-步骤s623、步骤s611的描述内容,或者图10c中步骤s720-步骤s723、步骤s711的描述内容,此处不做赘述。
800.在一些实施例中,在系统模块包括:分布式调度服务dms和包管理服务bms时,本技术的应用模块启动方法可以包括:步骤s1801-步骤s18083。
801.步骤s1801、响应于接收第四操作,第四应用模块向分布式调度服务dms发送第九消息,第九消息中携带有第五应用程序的标识以及第五应用模块的模块标识。
802.其中,第五应用程序的标识的具体实现方式可参见图10a中应用c的包名的描述内容,第五应用模块的模块标识的具体实现方式可参见图10a中元能力c1的元能力名的描述内容,第四操作的具体实现方式可参见图10a中步骤s501的操作3的描述内容,步骤s1801的具体实现方式可参见图10a中步骤s501的描述内容,此处不做赘述。
803.步骤s1802、响应于接收第九消息,分布式调度服务dms向包管理服务bms发送第十三消息,第十三消息中携带有第五应用程序的标识以及第五应用模块的模块标识。其中,步骤s1802的具体实现方式可参见图10a中步骤s502的描述内容,此处不做赘述。
804.步骤s1803、响应于接收第十三消息,包管理服务bms确定第一设备和第四设备是
否安装第五应用模块。其中,步骤s1803的具体实现方式可参见图10a中步骤s503的描述内容,此处不做赘述。
805.步骤s1804、响应于确定第一设备和第四设备均未安装第五应用模块时,包管理服务bms向第一服务器发送第十消息,第十消息中携带有第五应用程序的标识以及第五应用模块的模块标识。其中,步骤s1804的具体实现方式可参见图10a中步骤s504的描述内容,此处不做赘述。
806.步骤s1805、包管理服务bms从第一服务器接收第十一消息,第十一消息中携带有第五应用模块的下载地址、适用于第五应用模块的下载地址的设备类型、第五应用程序的标识以及第五应用模块的模块标识。
807.其中,第十一消息的具体确定方式可参见图10a中步骤s505的描述内容,步骤s1805的具体实现方式可参见图10a中步骤s506的描述内容,此处不做赘述。
808.步骤s1806、响应于接收第十一消息,包管理服务bms向分布式调度服务dms发送第十四消息,第十四消息中携带有第五应用模块的下载地址、适用于第五应用模块的下载地址的设备类型、第五应用程序的标识以及第五应用模块的模块标识。
809.其中,步骤s1806的具体实现方式可参见图10a中步骤s507或步骤s508的描述内容,此处不做赘述。
810.步骤s1807、响应于接收第十四消息,分布式调度服务dms确定适用于第五应用模块的下载地址的设备类型是否包括第一设备和第四设备。其中,步骤s1807的具体实现方式可参见图10a中步骤s509-步骤s510的描述内容,此处不做赘述。
811.步骤s18081、响应于确定适用于第五应用模块的下载地址的设备类型包括第一设备时,分布式调度服务dms向包管理服务bms发送第十五消息,第十五消息用于请求下载第五应用模块;响应于接收第十五消息,包管理服务bms基于第五应用模块的下载地址,从第二服务器中下载第五应用模块,将第五应用模块安装在第一设备中,并向分布式调度服务dms发送第十六消息;响应于接收第十六消息,分布式调度服务dms在第一设备中启动第五应用模块。
812.其中,步骤s18081的具体实现方式可参见图10a中步骤s518-步骤s523的描述内容,此处不做赘述。
813.步骤s18082、响应于确定适用于第五应用模块的下载地址的设备类型包括第四设备时,分布式调度服务dms向第四设备中的分布式调度服务dms发送第十二消息,第十二消息用于请求第四设备启动第五应用模块,第十二消息中携带有第五应用模块的下载地址、第四设备的设备标识、第五应用程序的标识以及第五应用模块的模块标识。
814.其中,步骤s18082的具体实现方式可参见图10a中步骤s511的描述内容,此处不做赘述。
815.步骤s18083、响应于确定适用于第五应用模块的下载地址的设备类型包括第一设备和第四设备时,分布式调度服务dms显示第二窗口,第二窗口中包括第一设备对应的控件和第四设备对应的控件;响应于接收用户在第二窗口中对第一设备对应的控件上的第五操作,分布式调度服务dms向包管理服务bms发送第十五消息,第十五消息用于请求下载第五应用模块;响应于接收第十五消息,包管理服务bms基于第五应用模块的下载地址,从第二服务器中下载第五应用模块,将第五应用模块安装在第一设备中,并向分布式调度服务dms
发送第十六消息;响应于接收第十六消息,分布式调度服务dms在第一设备中启动第五应用模块;和/或,响应于接收用户在第二窗口中对第四设备对应的控件上的第五操作,分布式调度服务dms向第四设备中的分布式调度服务dms发送第十二消息,第十二消息用于请求第四设备启动第五应用模块,第十二消息中携带有第五应用模块的下载地址、第四设备的设备标识、第五应用程序的标识以及第五应用模块的模块标识。
816.其中,步骤s18083的具体实现方式可参见图10a中步骤s518-步骤s523、步骤s511的描述内容,此处不做赘述。
817.在一些实施例中,在系统模块包括:分布式调度服务dms和包管理服务bms时,本技术的应用模块启动方法可以包括:步骤s1901-步骤s19083。
818.步骤s1901、响应于接收第四操作,第四应用模块向分布式调度服务dms发送第九消息,第九消息中携带有第五应用程序的标识以及第五应用模块所属类型的标识。
819.其中,第五应用程序的标识的具体实现方式可参见图10b中应用c的包名的描述内容,第五应用模块所属类型的标识的具体实现方式可参见图10b中元能力c1的预定义action2的描述内容,第四操作的具体实现方式可参见图10b中步骤s601的操作3的描述内容,步骤s1901的具体实现方式可参见图10b中步骤s601的描述内容,此处不做赘述。
820.步骤s1902、响应于接收第九消息,分布式调度服务dms向包管理服务bms发送第十三消息,第十三消息中携带有第五应用程序的标识以及第五应用模块所属类型的标识。其中,步骤s1902的具体实现方式可参见图10b中步骤s602的描述内容,此处不做赘述。
821.步骤s1903、响应于接收第十三消息,包管理服务bms确定第一设备和第四设备是否安装第五应用模块。其中,步骤s1903的具体实现方式可参见图10b中步骤s603的描述内容,此处不做赘述。
822.步骤s1904、响应于确定第一设备和第四设备均未安装第五应用模块时,包管理服务bms向第一服务器发送第十消息,第十消息中携带有第五应用程序的标识以及第五应用模块所属类型的标识。其中,步骤s1904的具体实现方式可参见图10b中步骤s604的描述内容,此处不做赘述。
823.步骤s1905、包管理服务bms从第一服务器接收第十一消息,第十一消息中携带有第五应用模块的下载地址、适用于第五应用模块的下载地址的设备类型、第五应用程序的标识以及第五应用模块所属类型的标识。
824.其中,第十一消息的具体确定方式可参见图10b中步骤s605的描述内容,步骤s1905的具体实现方式可参见图10b中步骤s606的描述内容,此处不做赘述。
825.步骤s1906、响应于接收第十一消息,包管理服务bms向分布式调度服务dms发送第十四消息,第十四消息中携带有第五应用模块的下载地址、适用于第五应用模块的下载地址的设备类型、第五应用程序的标识以及第五应用模块所属类型的标识。
826.其中,步骤s1906的具体实现方式可参见图10b中步骤s607或步骤s608的描述内容,此处不做赘述。
827.步骤s1907、响应于接收第十四消息,分布式调度服务dms确定适用于第五应用模块的下载地址的设备类型是否包括第一设备和第四设备。
828.其中,步骤s1907的具体实现方式可参见图10b中步骤s609-步骤s610的描述内容,此处不做赘述。
829.步骤s19081、响应于确定适用于第五应用模块的下载地址的设备类型包括第一设备时,分布式调度服务dms向包管理服务bms发送第十五消息,第十五消息用于请求下载第五应用模块;响应于接收第十五消息,包管理服务bms基于第五应用模块的下载地址,从第二服务器中下载第五应用模块,将第五应用模块安装在第一设备中,并向分布式调度服务dms发送第十六消息;响应于接收第十六消息,分布式调度服务dms在第一设备中启动第五应用模块。
830.其中,步骤s19081的具体实现方式可参见图10b中步骤s618-步骤s623的描述内容,此处不做赘述。
831.步骤s19082、响应于确定适用于第五应用模块的下载地址的设备类型包括第四设备时,分布式调度服务dms向第四设备中的分布式调度服务dms发送第十二消息,第十二消息用于请求第四设备启动第五应用模块,第十二消息中携带有第五应用模块的下载地址、第四设备的设备标识、第五应用程序的标识以及第五应用模块所属类型的标识。
832.其中,步骤s19082的具体实现方式可参见图10b中步骤s611的描述内容,此处不做赘述。
833.步骤s19083、响应于确定适用于第五应用模块的下载地址的设备类型包括第一设备和第四设备时,分布式调度服务dms显示第二窗口,第二窗口中包括第一设备对应的控件和第四设备对应的控件;响应于接收用户在第二窗口中对第一设备对应的控件上的第五操作,分布式调度服务dms向包管理服务bms发送第十五消息,第十五消息用于请求下载第五应用模块;响应于接收第十五消息,包管理服务bms基于第五应用模块的下载地址,从第二服务器中下载第五应用模块,将第五应用模块安装在第一设备中,并向分布式调度服务dms发送第十六消息;响应于接收第十六消息,分布式调度服务dms在第一设备中启动第五应用模块;和/或,响应于接收用户在第二窗口中对第四设备对应的控件上的第五操作,分布式调度服务dms向第四设备中的分布式调度服务dms发送第十二消息,第十二消息用于请求第四设备启动第五应用模块,第十二消息中携带有第五应用模块的下载地址、第四设备的设备标识、第五应用程序的标识以及第五应用模块所属类型的标识。
834.其中,步骤s19083的具体实现方式可参见图10b中步骤s618-步骤s623、步骤s611的描述内容,此处不做赘述。
835.在一些实施例中,在系统模块包括:分布式调度服务dms和包管理服务bms时,本技术的应用模块启动方法可以包括:步骤s2001-步骤s20083。
836.步骤s2001、响应于接收第四操作,第四应用模块向分布式调度服务dms发送第九消息,第九消息中携带有第五应用模块所属类型的标识。
837.其中,第五应用模块所属类型的标识的具体实现方式可参见图10c中的预定义action2的描述内容,第四操作的具体实现方式可参见图10c中步骤s601的操作3的描述内容,步骤s2001的具体实现方式可参见图10c中步骤s701的描述内容,此处不做赘述。
838.步骤s2002、响应于接收第九消息,分布式调度服务dms向包管理服务bms发送第十三消息,第十三消息中携带有第五应用模块所属类型的标识。其中,步骤s2002的具体实现方式可参见图10c中步骤s702的描述内容,此处不做赘述。
839.步骤s2003、响应于接收第十三消息,包管理服务bms确定第一设备和第四设备是否安装第五应用模块。其中,步骤s2003的具体实现方式可参见图10c中步骤s703的描述内
容,此处不做赘述。
840.步骤s2004、响应于确定第一设备和第四设备均未安装第五应用模块时,包管理服务bms向第一服务器发送第十消息,第十消息中携带有第五应用模块所属类型的标识。其中,步骤s2004的具体实现方式可参见图10c中步骤s704的描述内容,此处不做赘述。
841.步骤s2005、包管理服务bms从第一服务器接收第十一消息,第十一消息中携带有第二集合,第二集合的每个子集中携带有一个应用程序的标识,包含在应用程序中的软件模块的模块标识以及适用于软件模块的下载地址的设备类型,且每个子集中对应的软件模块与第五应用模块同属于一个类型。
842.其中,第十一消息的具体确定方式可参见图10c中步骤s705的描述内容,步骤s2005的具体实现方式可参见图10c中步骤s706的描述内容,此处不做赘述。
843.步骤s2006、响应于接收第十一消息,包管理服务bms向分布式调度服务dms发送第十四消息,第十四消息中携带有第二集合。其中,步骤s2006的具体实现方式可参见图10c中步骤s707或步骤s708的描述内容,此处不做赘述。
844.步骤s2007、响应于接收第十四消息,分布式调度服务dms确定第二集合中适用于第五应用模块的下载地址的设备类型是否包括第一设备和第四设备。其中,步骤s2007的具体实现方式可参见图10c中步骤s709-步骤s710的描述内容,此处不做赘述。
845.步骤s20081、响应于确定第二集合中适用于第五应用模块的下载地址的设备类型包括第一设备时,分布式调度服务dms向包管理服务bms发送第十五消息,第十五消息用于请求下载第五应用模块;响应于接收第十五消息,包管理服务bms基于第五应用模块的下载地址,从第二服务器中下载第五应用模块,将第五应用模块安装在第一设备中,并向分布式调度服务dms发送第十六消息;响应于接收第十六消息,分布式调度服务dms在第一设备中启动第五应用模块。
846.其中,步骤s20081的具体实现方式可参见图10c中步骤s718-步骤s723的描述内容,此处不做赘述。
847.步骤s20082、响应于确定第二集合中适用于第五应用模块的下载地址的设备类型包括第四设备时,分布式调度服务dms向第四设备中的分布式调度服务dms发送第十二消息,第十二消息用于请求第四设备启动第五应用模块,第十二消息中携带有第五应用模块的下载地址、第四设备的设备标识、第五应用程序的标识以及第五应用模块所属类型的标识。
848.其中,步骤s20082的具体实现方式可参见图10c中步骤s711的描述内容,此处不做赘述。
849.步骤s20083、响应于确定第二集合中适用于第五应用模块的下载地址的设备类型包括第一设备和第四设备时,分布式调度服务dms显示第二窗口,第二窗口中包括第一设备对应的控件和第四设备对应的控件;响应于接收用户在第二窗口中对第一设备对应的控件上的第五操作,分布式调度服务dms向包管理服务bms发送第十五消息,第十五消息用于请求下载第五应用模块;响应于接收第十五消息,包管理服务bms基于第五应用模块的下载地址,从第二服务器中下载第五应用模块,将第五应用模块安装在第一设备中,并向分布式调度服务dms发送第十六消息;响应于接收第十六消息,分布式调度服务dms在第一设备中启动第五应用模块;和/或,响应于接收用户在第二窗口中对第四设备对应的控件上的第五操
作,分布式调度服务dms向第四设备中的分布式调度服务dms发送第十二消息,第十二消息用于请求第四设备启动第五应用模块,第十二消息中携带有第五应用模块的下载地址、第四设备的设备标识、第五应用程序的标识以及第五应用模块所属类型的标识。
850.其中,步骤s20083的具体实现方式可参见图10c中步骤s718-步骤s723、步骤s711的描述内容,此处不做赘述。
851.在一些实施例中,该方法还包括:响应于确定第一设备已安装第五应用模块,且第四设备未安装第五应用模块时,系统模块在第一设备中启动第五应用模块。
852.其中,上述过程的具体实现方式可参见图10a中步骤s508-步骤s509、步骤s518、步骤s523的描述内容,或者图10b中步骤s608-步骤s609、步骤s618、步骤s623的描述内容,或者图10c中步骤s708-步骤s709、步骤s718、步骤s723的描述内容,此处不做赘述。
853.在一些实施例中,该方法还包括:响应于确定第一设备未安装第五应用模块,且第四设备已安装第五应用模块时,系统模块向第四设备发送第十七消息,第十七消息用于请求第四设备启动第五应用模块;
854.其中,上述过程的具体实现方式可参见图10a中步骤s508-步骤s509、步骤s511的描述内容,或者图10b中步骤s608-步骤s609、步骤s611的描述内容,或者图10c中步骤s708-步骤s709、步骤s711的描述内容,此处不做赘述。
855.在一些实施例中,该方法还包括:响应于确定第一设备和第四设备均已安装第五应用模块时,系统模块显示第三窗口,第三窗口中包括第一设备对应的控件和第四设备对应的控件;响应于接收用户在第三窗口中对第一设备对应的控件上的第六操作,系统模块基于第五应用模块的下载地址,从第二服务器下载第五应用模块,将第五应用模块安装在第一设备中,并在第一设备中启动第五应用模块;和/或,响应于接收用户在第三窗口中对第四设备对应的控件上的第六操作,系统模块向第四设备发送第十七消息,第十七消息用于请求第四设备启动第五应用模块。
856.其中,第六操作可以包括但不限于点击、双击、长按、触碰等类型的操作。第三窗口的具体实现方式可参见窗口2的描述内容,上述过程的具体实现方式可参见图10a中步骤s508-步骤s510、步骤s518、步骤s523、步骤s511的描述内容,或者图10b中步骤s608-步骤s610、步骤s618、步骤s623、步骤s611的描述内容,或者图10c中步骤s708-步骤s710、步骤s718、步骤s723、步骤s711的描述内容,此处不做赘述。
857.示例性地,本技术提供一种电子设备,包括:存储器和处理器;存储器用于存储程序指令;处理器用于调用存储器中的程序指令,使得电子设备执行前文实施例的应用模块启动方法。
858.示例性地,本技术提供一种芯片系统,芯片系统应用于包括存储器、显示屏和传感器的电子设备;芯片系统包括:处理器;当处理器执行前文实施例的应用模块启动方法。
859.示例性地,本技术提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器使得电子设备执行时实现前文实施例的应用模块启动方法。
860.示例性地,本技术提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行前文实施例的应用模块启动方法。
861.在上述实施例中,全部或部分功能可以通过软件、硬件、或者软件加硬件的组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产
品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本技术实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如,固态硬盘(solid state disk,ssd))等。
862.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:rom或随机存储记忆体ram、磁碟或者光盘等各种可存储程序代码的介质。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献