CN117950677A - 一种软件分发方法、电子设备及系统 - Google Patents

一种软件分发方法、电子设备及系统 Download PDF

Info

Publication number
CN117950677A
CN117950677A CN202211287246.2A CN202211287246A CN117950677A CN 117950677 A CN117950677 A CN 117950677A CN 202211287246 A CN202211287246 A CN 202211287246A CN 117950677 A CN117950677 A CN 117950677A
Authority
CN
China
Prior art keywords
software
capability
capability set
installation file
electronic device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211287246.2A
Other languages
English (en)
Inventor
黄益贵
朱志峰
乔登龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202211287246.2A priority Critical patent/CN117950677A/zh
Priority to PCT/CN2023/124946 priority patent/WO2024083114A1/zh
Publication of CN117950677A publication Critical patent/CN117950677A/zh
Pending legal-status Critical Current

Links

Abstract

本申请提供了一种软件分发方法、电子设备及系统,该方法包括:向网络设备发送第一消息,第一消息用于请求获取第一软件,第一消息包括用于指示第一设备的能力集的第一信息,第一设备的能力集包括第一设备支持的硬件能力和软件能力;当第一设备的能力集和第一软件对应的能力集匹配时,接收网络设备发送的第一软件的安装文件或第一软件的安装文件的下载方式,第一软件对应的能力集包括能运行第一软件的设备需要支持的硬件能力和软件能力;根据第一软件的安装文件或第一软件的安装文件的下载方式,显示第一软件的第一界面。本申请能够使用人工智能AI技术实现更加灵活和智能的软件分发机制,不依赖于设备类型,扩大了可被分发软件的设备范围。

Description

一种软件分发方法、电子设备及系统
技术领域
本申请涉及计算机技术领域,尤其涉及一种软件分发方法、电子设备及系统。
背景技术
终端上可供用户使用的软件例如应用程序和小程序等,这些软件可以由服务器分发给终端。目前,软件的分发是基于软件支持的设备类型实现的,例如,软件1支持的设备类型包括手机和平板,因此,手机和平板可以被分发软件1,但大屏无法被分发。这样的分发方式局限性很大,例如,不同厂家发布的设备繁多,可能存在软件的开发者无法获取到该软件支持的部分设备的类型字段,导致这部分设备无法被分发该软件的情况,不够灵活和智能。
发明内容
本申请公开了一种软件分发方法、电子设备及系统,能够提供更加灵活和智能的软件分发机制,不依赖于设备类型,扩大了可被分发软件的设备范围。
第一方面,本申请提供了一种软件分发方法,应用于第一设备,该方法包括:向网络设备发送第一消息,所述第一消息用于请求获取第一软件,所述第一消息包括用于指示所述第一设备的能力集的第一信息,所述第一设备的能力集包括所述第一设备支持的硬件能力和软件能力;当所述第一设备的能力集和所述第一软件对应的能力集匹配时,接收所述网络设备发送的所述第一软件的安装文件或所述第一软件的安装文件的下载方式,所述第一软件对应的能力集包括能运行所述第一软件的设备需要支持的硬件能力和软件能力;根据所述第一软件的安装文件或所述第一软件的安装文件的下载方式,显示所述第一软件的第一界面。
在上述方法中,第一设备可以向网络设备请求获取第一软件,当第一设备的能力集和第一软件对应的能力集匹配时,可以被网络设备分发第一软件,该方法是基于设备能力集和软件需要的能力集实现软件分发功能,而不依赖于设备类型,避免某些设备虽然具备能运行第一软件的能力但由于设备类型不为第一软件支持的设备类型,造成这些设备无法被分发第一软件的情况,扩大了可被分发第一软件的设备范围,使软件分发功能的应用场景更加广泛。
在一种可能的实现方式中,所述向网络设备发送第一消息,包括:当确定处于预设场景时,向所述网络设备发送所述第一消息,所述第一软件和所述预设场景相关。
在上述方法中,当确定处于预设场景时,第一设备可以向网络设备请求被分发和预设场景相关的第一软件,也就是说,分发的软件符合当前使用场景/当前用户需求。不同场景下分发的软件可以不同,能够满足不同用户在不同场景下的不同需求,使得软件分发功能更加灵活和智能,提升用户体验。
在一种可能的实现方式中,所述第一设备的能力集和所述第一软件对应的能力集匹配,包括以下至少一种情况:所述第一设备的能力集包括所述第一软件对应的能力集中的能力;所述第一设备的能力集包括所述第一软件对应的能力集中强依赖的能力,所述强依赖的能力为被分发所述第一软件的设备要求具备的能力;所述第一设备的能力集包括所述第一软件对应的能力集中强依赖的能力的父能力。
在一些示例中,第一软件对应的能力集可以包括强依赖的能力和弱依赖的能力,强依赖的能力为被分发第一软件的设备要求具备的能力,弱依赖的能力为被分发第一软件的设备可以不具备的能力。
在一些示例中,能力之间可以存在父子关系,即一个父能力可以对应至少一个子能力。在一些示例中,父能力为强依赖的能力时,对应的子能力均为强依赖的能力,对应的子能力均为强依赖时,父能力为强依赖的能力。
在上述方法中,第一设备的能力集和第一软件对应的能力集匹配的情况多种多样,例如第一设备的能力集包括第一软件对应的能力集中的全部能力可以理解为是对被分发设备的要求较高的情况,第一设备的能力集包括第一软件对应的能力集中强依赖的能力或者强依赖的能力的父能力可以理解为是对被分发设备的要求较低的情况,拓宽软件分发的应用场景。
在一种可能的实现方式中,所述第一软件包括多个版本,不同版本的所述第一软件对应的能力集相同或不相同,所述当所述第一设备的能力集和所述第一软件对应的能力集匹配时,接收所述网络设备发送的所述第一软件的安装文件或所述第一软件的安装文件的下载方式,包括:当所述第一设备的能力集和第一版本的所述第一软件对应的能力集匹配时,接收所述网络设备发送的所述第一版本的第一软件的安装文件或所述第一版本的第一软件的安装文件的下载方式。
在上述方法中,当第一设备的能力集和多个版本中任意一个版本的第一软件对应的能力集匹配时,第一设备可以被分发该版本的第一软件,避免第一设备的能力集和部分版本的第一软件对应的能力集不匹配,导致第一设备无法被分发第一软件的情况,扩大了可被分发第一软件的设备范围。
在一种可能的实现方式中,所述第一软件包括多个版本,不同版本的所述第一软件对应的能力集相同或不相同,所述方法还包括:当所述第一设备的能力集和第二版本的所述第一软件对应的能力集匹配、以及第三版本的所述第一软件对应的能力集匹配时,接收所述网络设备发送的所述第二版本的第一软件的安装文件或所述第二版本的第一软件的安装文件的下载方式,其中,所述第二版本新于所述第三版本。
在上述方法中,当第一设备的能力集和多个版本的第一软件对应的能力集均匹配时,第一设备可以被分发版本更新的第一软件,软件分发的方式更加精细化,也更加符合用户需求,提升用户体验。
在一种可能的实现方式中,所述根据所述第一软件的安装文件或所述第一软件的安装文件的下载方式,显示所述第一软件的第一界面,包括:根据所述第一软件的安装文件,安装所述第一软件;显示所述第一软件的第一界面;或者,根据所述第一软件的安装文件的下载方式,下载所述第一软件的安装文件;根据所述第一软件的安装文件,安装所述第一软件;显示所述第一软件的第一界面。
在一些示例中,所述安装所述第一软件为静默安装,例如不显示提示用户安装的用户界面和安装进度。
在上述方法中,第一设备接收到第一软件的安装文件后可以自动安装第一软件,或者,第一设备接收到第一软件的安装文件的下载地址后,可以自动下载安装文件,再自动安装第一软件,无需用户手动操作,用户使用更加方便。
在一种可能的实现方式中,所述方法还包括:获取第二设备的能力集;向所述网络设备发送第二消息,所述第二消息用于请求向所述第二设备分发第二软件,所述第二消息包括用于指示所述第二设备的能力集的第二信息,所述第二设备用于当所述第二设备的能力集和所述第二软件对应的能力集匹配时,接收所述第二软件的安装文件或所述第二软件的安装文件的下载方式,所述第二软件的安装文件或所述第二软件的安装文件的下载方式用于所述第二设备显示所述第二软件的第二界面。
在上述方法中,第一设备可以向网络设备请求向第二设备分发第二软件,当第二设备的能力集和第二软件对应的能力集匹配时,第二设备可以被分发第二软件,这种软件分发的方式不仅不依赖于设备类型,而且无需被分发软件的第二设备自行向网络设备请求,即使第二设备无法和网络设备通信(例如不具备对应的通信能力、未获取到网络设备的地址信息等),也可以被分发第二软件,进一步扩大了可被分发软件的设备范围,使软件分发功能的应用场景更加广泛。
在一种可能的实现方式中,所述获取第二设备的能力集,包括:向所述第二设备发送第三消息,所述第三消息用于请求获取所述第二设备的能力集;接收所述第二设备发送的所述第二设备的能力集。
在一种可能的实现方式中,所述第一界面包括流转控件;所述获取第二设备的能力集,包括:接收针对所述流转控件的第一操作;获取所述第二设备的能力集。
在上述方法中,第一操作可以触发向第二设备分发第二软件的过程,即软件分发的时机是根据用户操作确定的,更加符合用户需求,提升用户体验。
在一种可能的实现方式中,所述向所述网络设备发送第二消息之后,所述方法还包括:接收所述网络设备发送的第三消息,所述第三消息用于指示向所述第二设备分发所述第二软件;向所述第二设备发送所述第二软件的安装文件或所述第二软件的安装文件的下载方式。
在上述方法中,第一设备可以根据网络设备发送的第三消息,向第二设备分发第二软件(可称为跨设备流转软件),即使网络设备无法和第二设备通信,也可以正常为第二设备分发第二软件,使软件分发功能的应用场景更加广泛。
在一种可能的实现方式中,所述向所述网络设备发送第二消息之后,所述方法还包括:接收所述网络设备发送的第四消息,所述第四消息用于指示不向所述第二设备分发所述第二软件;显示提示信息,所述提示信息指示所述第二设备不具备运行所述第二软件的能力。
在上述方法中,第一设备可以根据网络设备发送的第四消息,提示用户第二设备不具备运行第二软件的能力,让用户可以获取到软件分发失败的原因,更加符合用户需求,提升用户体验。
在一种可能的实现方式中,所述第一软件和所述预设场景相关,包括:所述第一软件和所述预设场景中所处的位置、时间、用户画像、用户操作中的至少一项相关。
例如,预设场景中所处的位置为机场时,和预设场景相关的第一软件为出行订票的原子化服务。
在上述方法中,可以根据预设场景中所处的位置、时间、用户画像、用户操作中的至少一项确定第一软件,例如可以根据用户操作确定第一软件,或者,即使用户未执行用户操作,也可以自动识别用户画像等信息来确定第一软件,可以满足用户在不同预设场景下的软件分发需求,使得软件分发功能更加灵活和智能,提升用户体验。
在一种可能的实现方式中,所述第二设备为所述第一设备通过分布式通信方式发现和/或连接的设备。
第二方面,本申请提供了又一种软件分发方法,应用于第二设备,该方法包括:接收第一设备发送的第一消息;根据所述第一消息向所述第一设备发送所述第二设备的能力集,所述第二设备的能力集包括所述第二设备支持的硬件能力和软件能力,所述第二设备的能力集用于判断是否向所述第二设备分发第一软件;当所述第二设备的能力集和所述第一软件对应的能力集匹配时,接收所述第一设备发送的所述第一软件的安装文件或所述第一软件的安装文件的下载方式,或,接收网络设备发送的所述第一软件的安装文件或所述第一软件的安装文件的下载方式;根据所述第一软件的安装文件或所述第一软件的安装文件的下载方式,显示所述第一软件的界面。
在上述方法中,第二设备可以向第一设备发送第二设备的能力集,用于网络设备判断是否向第二设备分发第一软件,当第二设备的能力集和第一软件对应的能力集匹配时,第二设备可以被分发第一软件,并显示第一软件的界面,这种软件分发的方法不仅不依赖于设备类型,而且无需第二设备自行向网络设备请求,即使第二设备无法和网络设备通信(例如不具备对应的通信能力、未获取到网络设备的地址信息等),也可以被分发第二软件,进一步扩大了可被分发软件的设备范围,使软件分发功能的应用场景更加广泛。
在一种可能的实现方式中,所述根据所述第一软件的安装文件或所述第一软件的安装文件的下载方式,显示所述第一软件的界面,包括:根据所述第一软件的安装文件,安装所述第一软件;显示所述第一软件的界面;或者,根据所述第一软件的安装文件的下载方式,下载所述第一软件的安装文件;根据所述第一软件的安装文件,安装所述第一软件;显示所述第一软件的界面。
在一些示例中,所述安装所述第一软件为静默安装,例如不显示提示用户安装的用户界面和安装进度。
在上述方法中,第二设备接收到第一软件的安装文件后可以自动安装第一软件,或者,第二设备接收到第一软件的安装文件的下载地址后,可以自动下载安装文件,再自动安装第一软件,无需用户手动操作,用户使用更加方便。
第三方面,本申请提供了又一种软件分发方法,应用于网络设备,该方法包括:接收第一设备发送的第一消息,所述第一消息用于请求获取第一软件,所述第一消息包括用于指示所述第一设备的能力集的第一信息,所述第一设备的能力集包括所述第一设备支持的硬件能力和软件能力;根据所述第一消息判断所述第一设备的能力集和所述第一软件对应的能力集是否匹配,所述第一软件对应的能力集包括能运行所述第一软件的设备需要支持的硬件能力和软件能力;当所述第一设备的能力集和所述第一软件对应的能力集匹配时,向所述第一设备发送所述第一软件的安装文件或所述第一软件的安装文件的下载方式,所述第一软件的安装文件或所述第一软件的安装文件的下载方式用于所述第一设备显示所述第一软件的第一界面。
在上述方法中,网络设备可以接收第一设备请求获取第一软件的第一消息,并根据第一消息得到第一设备的能力集,比较第一设备的能力集和第一软件对应的能力集是否匹配,当二者匹配时,向第一设备发送第一软件的安装文件或第一软件的安装文件的下载方式,以分发第一软件,该方法是基于设备能力集和软件需要的能力集实现软件分发功能,而不依赖于设备类型,避免某些设备虽然具备能运行第一软件的能力但由于设备类型不为第一软件支持的设备类型,造成这些设备无法被分发第一软件的情况,扩大了可被分发第一软件的设备范围,使软件分发功能的应用场景更加广泛。
在一种可能的实现方式中,所述方法还包括:接收所述第一设备发送的第二消息,所述第二消息用于请求向所述第二设备分发第二软件,所述第二消息包括用于指示所述第二设备的能力集的第二信息,所述第二设备的能力集包括所述第二设备支持的硬件能力和软件能力;根据所述第二消息判断所述第二设备的能力集和所述第二软件对应的能力集是否匹配,所述第二软件对应的能力集包括能运行所述第二软件的设备需要支持的硬件能力和软件能力;当所述第二设备的能力集和所述第二软件对应的能力集匹配时,向所述第一设备发送第三消息,所述第三消息用于指示所述第一设备向所述第二设备发送所述第二软件的安装文件或所述第二软件的安装文件的下载方式,或,向所述第二设备发送所述第二软件的安装文件或所述第二软件的安装文件的下载方式,所述第二软件的安装文件或所述第二软件的安装文件的下载方式用于所述第二设备显示所述第二软件的第二界面。
在上述方法中,网络设备可以接收第一设备请求向第二设备分发第二软件的第二消息,并根据第二消息得到第二设备的能力集,比较第二设备的能力集和第二软件对应的能力集是否匹配,当二者匹配时,向第一设备发送第三消息,指示第一设备向第二设备分发第二软件(可称为跨设备流转软件),这种软件分发的方法不仅不依赖于设备类型,而且无需被分发软件的第二设备自行向网络设备请求,即使第二设备无法和网络设备通信(例如不具备对应的通信能力、未获取到网络设备的地址信息等),也可以被分发第二软件,进一步扩大了可被分发软件的设备范围,使软件分发功能的应用场景更加广泛。
在一种可能的实现方式中,所述第一设备的能力集和所述第一软件对应的能力集匹配,包括以下至少一种情况:所述第一设备的能力集包括所述第一软件对应的能力集中的能力;所述第一设备的能力集包括所述第一软件对应的能力集中强依赖的能力,所述强依赖的能力为被分发所述第一软件的设备要求具备的能力;所述第一设备的能力集包括所述第一软件对应的能力集中强依赖的能力的父能力。
在一些示例中,第一软件对应的能力集可以包括强依赖的能力和弱依赖的能力,强依赖的能力为被分发第一软件的设备要求具备的能力,弱依赖的能力为被分发第一软件的设备可以不具备的能力。
在一些示例中,能力之间可以存在父子关系,即一个父能力可以对应至少一个子能力。在一些示例中,父能力为强依赖的能力时,对应的子能力均为强依赖的能力,对应的子能力均为强依赖时,父能力为强依赖的能力。
在上述方法中,第一设备的能力集和第一软件对应的能力集匹配的情况多种多样,例如第一设备的能力集包括第一软件对应的能力集中的全部能力可以理解为是对被分发设备的要求较高的情况,第一设备的能力集包括第一软件对应的能力集中强依赖的能力或者强依赖的能力的父能力可以理解为是对被分发设备的要求较低的情况,拓宽软件分发的应用场景。
在一种可能的实现方式中,所述第一软件包括多个版本,不同版本的所述第一软件对应的能力集相同或不相同,所述当所述第一设备的能力集和所述第一软件对应的能力集匹配时,向所述第一设备发送所述第一软件的安装文件或所述第一软件的安装文件的下载方式,包括:当所述第一设备的能力集和第一版本的所述第一软件对应的能力集匹配时,向所述第一设备发送所述第一版本的第一软件的安装文件或所述第一版本的第一软件的安装文件的下载方式。
在上述方法中,当第一设备的能力集和多个版本中任意一个版本的第一软件对应的能力集匹配时,第一设备可以被分发该版本的第一软件,避免第一设备的能力集和部分版本的第一软件对应的能力集不匹配,导致第一设备无法被分发第一软件的情况,扩大了可被分发第一软件的设备范围。
第四方面,本申请提供了一种电子设备,包括收发器、处理器和存储器,上述存储器用于存储计算机程序,上述处理器调用上述计算机程序,用于执行上述第一方面或第二方面任一种可能的实现方式中的软件分发方法。
第五方面,本申请提供了一种电子设备,包括一个或多个处理器和一个或多个存储器。该一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得电子设备执行上述第一方面或第二方面任一项可能的实现方式中的软件分发方法。
第六方面,本申请提供了一种网络设备,包括收发器、处理器和存储器,上述存储器用于存储计算机程序,上述处理器调用上述计算机程序,用于执行上述第三方面任一种可能的实现方式中的软件分发方法。
第七方面,本申请提供了一种计算机存储介质,该计算机存储介质存储有计算机程序,该计算机程序被处理器执行时,实现执行上述任一方面任一项可能的实现方式中的软件分发方法。
第八方面,本申请提供了一种计算机程序产品,当该计算机程序产品在电子设备上运行时,使得该电子设备执行上述第一方面或第二方面任一项可能的实现方式中的软件分发方法。
第九方面,本申请提供一种电子设备,该电子设备包括执行本申请第一方面或第二方面任一种实现方式所介绍的方法或装置。上述电子设备例如为芯片。
附图说明
以下对本申请用到的附图进行介绍。
图1是本申请提供的一种软件分发系统10的架构示意图;
图2是本申请提供的一种电子设备100的硬件结构示意图;
图3是本申请提供的一种电子设备100的软件架构示意图;
图4是本申请提供的一种网络设备300的硬件结构示意图;
图5是本申请提供的一种软件分发方法的流程示意图;
图6是本申请提供的又一种软件分发方法的流程示意图;
图7是本申请提供的又一种软件分发方法的流程示意图;
图8是本申请提供的又一种软件分发方法的流程示意图;
图9-图10是本申请提供的一些用户界面的示意图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本申请中,软件可以但不限于包括应用程序、小程序、原子化服务,可以理解的是,原子化服务可以为无需显式安装,由系统程序框架后台安装后即可使用的服务,例如可以为特性能力(feature ability,FA)。应理解,原子化服务可以由一个或多个鸿蒙能力的部署包(harmonyos ability package,HAP)组成,一个HAP对应一个入口能力(mainAbility),mainAbility是应用所具备能力的抽象。每个ability均可独立运行,可完成一个特定功能。一个或多个功能可完成一个特定的便捷服务。分发软件可以但不限于包括:发送软件的文件,或者,发送软件的文件的下载方式(例如下载地址),其中,软件的文件用于电子设备运行该软件,该文件可以是可执行的文件,例如为安装包。为了方便说明,以下实施例以软件的文件为安装包为例进行说明。
服务器可以向电子设备分发软件,或者,安装有软件的电子设备可以向其他电子设备分发该软件(可简称为跨设备流转软件)。目前,软件的分发是基于软件支持的设备类型实现的,例如,服务器向电子设备分发原子化服务时,服务器可以对比该原子化服务支持的设备类型和该电子设备的类型,若该原子化服务支持的设备类型包括该电子设备的类型,则服务器向该电子设备发送该原子化服务的安装包,该电子设备可以基于该安装包运行该原子化服务。但这样的分发方式局限性很大(例如软件分发范围局限),至少存在以下技术问题:
技术问题一:不同厂家是基于各自的标准界定设备类型,可能会存在不一致,导致设备类型字典复杂冗余,不利于管理和维护,并且,软件的开发者可能无法获取到该软件支持的所有设备的设备类型字段,导致该软件支持的部分设备可能无法被分发该软件。
技术问题二:部分设备类型会精确区分设备能力,例如,带屏幕的音箱设备和不带屏幕的音箱设备被界定为不同的设备类型,会导致设备类型字典复杂冗余,不利于管理和维护,并且,软件的开发者可能无法获取到该软件支持的所有设备的设备类型字段,导致该软件支持的部分设备可能无法被分发该软件。
技术问题三:部分设备类型无法精确区分设备能力,即同一类型的设备可能具有不同的能力,例如,带屏幕的音箱设备和不带屏幕的音箱设备被界定为相同的设备类型,导致某些只需具备屏幕即可运行的软件无法被分发至带屏幕的音箱设备。
本申请提供了一种软件分发方法,应用于软件分发系统,该方法能够基于设备的能力集实现软件的分发,例如,当软件需要的能力集和设备的能力集匹配时,可以为该设备分发该软件,因此,提供了一种不依赖于设备类型、更加灵活和智能的软件分发机制,解决了目前软件分发方式存在的技术问题,扩大了可被分发软件的设备范围,拓宽应用场景,提升用户体验。
其中,设备的能力集是指该设备支持的硬件能力和软件能力的集合,其中,硬件能力例如但不限于包括显示屏、摄像头、扬声器、蓝牙、近距离无线通信技术(near fieldcommunication,NFC)、无线保真(wireless fidelity,Wi-Fi)等,软件能力例如但不限于包括时钟、支付、截屏等。同一类型的设备的能力集可以相同或者不同,不同类型的设备的能力集可以相同或者不同,可以理解为是设备的能力集不依赖于设备的类型。软件需要的能力集是指运行该软件的设备需要支持的硬件能力和软件能力的集合。
能力集可以包括至少一个能力,其中任意一个能力可以通过唯一标识来表征,为了方便说明,以下实施例中用于表征能力的唯一标识为编码,但在具体实现中,标识也可以为其他类型的,本申请对此不作限定。本申请中的能力可以是电子设备的系统提供的能力,也可以不是系统提供的能力,例如其他厂家提供的能力。
本申请中,服务器(例如操作系统(operating system,OS)的管理平台)可以维护能力集字典,能力集字典可以包括多个能力,例如包括大量不同设备的能力,能力集字典中表征能力的方式和能力集类似,可以通过编码和/或字符串表征能力。能力集字典例如但不限于用于生成设备的能力集和/或软件需要的能力集。
下面介绍本申请实施例涉及的一种软件分发系统10。
图1示例性示出了一种软件分发系统10的架构示意图。
如图1所示,软件分发系统10可以包括电子设备100、电子设备200、网络设备300、电子设备400。其中:
电子设备100可以是手机、平板电脑、手持计算机、桌面型计算机、膝上型计算机、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、蜂窝电话、个人数字助理(personal digital assistant,PDA),以及智能电视、投影仪等智能家居设备,智能手环、智能手表、智能眼镜等可穿戴设备,增强现实(augmented reality,AR)、虚拟现实(virtual reality,VR)、混合现实(mixed reality,MR)等扩展现实(extended reality,XR)设备或车载设备,电子设备200的说明和电子设备100的说明一致。本申请实施例对电子设备的具体类型不作特殊限制。
网络设备300可以包括至少一个服务器,在一种可选的实施例中,任意一个服务器可以为硬件服务器,在一种可选的实施例中,任意一个服务器可以为云服务器。在一种可选的实施例中,任意一个服务器可以是Linux服务器、Windows服务器或其他可以提供多设备同时接入的服务器设备。在一种可选的实施例中,网络设备300可以是多地域、多机房、多服务器所组成的服务器集群。
在一种可选的实施例中,电子设备100可以通过有线(例如,通用串行总线(universal serial bus,USB)、双绞线、同轴电缆和光纤等)和/或无线(例如,无线局域网(wireless local area networks,WLAN)、蓝牙和蜂窝通信网络等)的方式和网络设备300进行通信。
在一种可选的实施例中,当满足预设条件时(例如接收到用户操作时),电子设备100可以向网络设备300请求分发软件(例如和接收到的用户操作相关的软件)。网络设备300可以比较电子设备100的能力集和该软件需要的能力集,当二者匹配时,网络设备300可以向电子设备100分发该软件,电子设备100可以运行该软件,例如,电子设备100接收到网络设备300发送的该软件的安装包的下载地址后,基于该下载地址下载该软件的安装包,然后基于该软件的安装包安装和运行该软件。
在一种可选的实施例中,电子设备100可以通过有线和/或无线的方式和电子设备200进行通信,例如,电子设备100和电子设备200通过软总线、蓝牙和/或WLAN等实现分布式通信。在一种可选的实施例中,当满足预设条件时,电子设备100上的软件可以分发给电子设备200,例如,电子设备100接收到针对该软件的界面中的流转控件的用户操作后,向电子设备200分发该软件。在一些示例中,电子设备100可以先获取电子设备200的能力集,然后向网络设备300请求:向电子设备200分发软件。网络设备300可以比较电子设备200的能力集和该软件需要的能力集,当二者匹配时,网络设备300可以通过电子设备100向电子设备200分发该软件,电子设备200可以运行该软件。不限于此,在另一种可选的实施例中,电子设备200可以通过有线和/或无线的方式和网络设备300进行通信,网络设备300可以直接向电子设备200分发软件,而无需通过电子设备100中继,在另一种可选的实施例中,网络设备300确定该软件需要的能力集和电子设备200的能力集匹配时,可以向电子设备100发送通知,电子设备100接收到该通知后可以向电子设备200分发该软件,本申请对此不作限定。
在一种可选的实施例中,电子设备400可以通过有线和/或无线的方式和网络设备300进行通信,其中,电子设备400的示例可参见电子设备100、网络设备300的示例。在一些示例中,电子设备400和软件1相关,例如为该软件的厂家/开发者的设备。在一种可选的实施例中,电子设备400可以向网络设备300发送软件1的安装包,软件1的安装包可以包括软件1需要的能力集,网络设备300可以存储软件1的安装包。不限于此,在另一种可选的实施例中,软件1需要的能力集可以独立于软件1的安装包,电子设备400可以向网络设备300发送软件1的安装包和软件1需要的能力集。在另一种可选的实施例中,网络设备300可以通过其他设备存储软件1的安装包,自行存储软件1需要的能力集和软件1的安装包的下载地址,本申请对此不作限定。
在一种可选的实施例中,软件分发系统10还可以包括网络设备500和电子设备600。网络设备500可以通过有线和/或无线的方式和电子设备600进行通信,其中,网络设备500的说明可以参见网络设备300的说明,不再赘述。电子设备600的示例可参见电子设备100、网络设备300的示例。在一些示例中,网络设备500可以为维护/存储能力集字典的设备。在一些示例中,电子设备600和电子设备700相关,电子设备700例如但不限于为电子设备100或者电子设备200,例如,电子设备600为电子设备700的厂家/开发者的设备。在一种可选的实施例中,电子设备600可以向网络设备500请求获取电子设备700的能力集。电子设备600可以存储网络设备500发送的电子设备700的能力集。
图1所示的电子设备和网络设备的数量和形态仅为示例,在具体实现中,数量可以更多,设备可以为其他形态,本申请对此不作限定。
接下来介绍本申请实施例提供的示例性的电子设备100。
图2示例性示出了一种电子设备100的硬件结构示意图。
应理解的是,图2所示电子设备100仅是一个范例,并且电子设备100可以具有比图2中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图2中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
如图2所示,电子设备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等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一种可选的实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一种可选的实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integratedcircuit sound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
充电管理模块140用于从充电器接收充电输入。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。在一种可能的实现方式中,电子设备100可以通过无线通信功能和网络设备300进行通信,例如接收网络设备300发送的软件的安装包。在一种可能的实现方式中,电子设备100可以通过无线通信功能和电子设备200进行通信,例如向电子设备200发送软件的安装包。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一种可选的实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一种可选的实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一种可选的实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一种可选的实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobilecommunications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code division multiple access,CDMA),宽带码分多址(wideband codedivision multiple access,WCDMA),时分码分多址(time-division code divisionmultiple 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-zenithsatellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一种可选的实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,颜色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一种可选的实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一种可选的实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备100的各种功能应用以及数据处理。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。
耳机接口170D用于连接有线耳机。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一种可选的实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,电子设备100根据压力传感器180A检测所述触摸操作强度。电子设备100也可以根据压力传感器180A的检测信号计算触摸的位置。
陀螺仪传感器180B可以用于确定电子设备100的运动姿态。在一种可选的实施例中,可以通过陀螺仪传感器180B确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。
气压传感器180C用于测量气压。
磁传感器180D包括霍尔传感器。电子设备100可以利用磁传感器180D检测翻盖皮套的开合。
加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。
距离传感器180F,用于测量距离。
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备100通过发光二极管向外发射红外光。电子设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定电子设备100附近有物体。当检测到不充分的反射光时,电子设备100可以确定电子设备100附近没有物体。
环境光传感器180L用于感知环境光亮度。
指纹传感器180H用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器180J用于检测温度。
触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
骨传导传感器180M可以获取振动信号。
按键190包括开机键,音量键等。
马达191可以产生振动提示。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。例如,分层架构的软件系统可以是安卓(Android)系统,也可以是鸿蒙(harmony)操作系统(operating system,OS),或其它软件系统。本申请实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
图3示例性示出一种电子设备100的软件架构示意图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一种可选的实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图3所示,应用程序包可以包括相机,图库,音乐,日历,短信息,通话,导航,蓝牙,浏览器等应用程序。本申请中的应用程序包也可以替换为小程序、原子化服务等其他形式的软件。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图3所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
下面结合原子化服务的启动场景,示例性说明电子设备100软件以及硬件的工作流程。
当麦克风170C接收到用户输入的语音信号,相应的硬件中断被发给内核层。内核层将语音信号加工成原始输入事件(包括语音信号的内容,接收到语音信号的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别该输入事件。以该语音信号的内容为“查一下我的快递”为例,快递应用调用应用框架层的接口,启动快递应用的原子化服务,进而通过调用内核层控制显示驱动,通过显示屏194显示快递应用的原子化服务的用户界面,该用户界面包括根据该语音信号的内容得到的快递信息。
电子设备200的说明和图2和图3所示的电子设备100的说明类似,不再赘述。
接下来介绍本申请实施例提供的示例性的网络设备300。
图4示例性示出了一种网络设备300的硬件结构示意图。
如图4所示,网络设备300可以包括一个或多个处理器301、通信接口302、存储器303,其中处理器301、通信接口302、存储器303可通过总线或者其它方式连接,本申请实施例以通过总线304连接为例。其中:
处理器301可以由一个或者多个通用处理器构成,例如CPU。处理器301可用于运行设备控制方法的相关的程序代码。
通信接口302可以为有线接口(例如以太网接口)或无线接口(例如蜂窝网络接口或使用无线局域网接口),用于与其他节点进行通信。本申请实施例中,通信接口302具体可用于与电子设备100、电子设备200、电子设备400中至少一项进行通信。
存储器303可以包括易失性存储器(volatile memory),例如RAM;存储器也可以包括非易失性存储器(non-vlatile memory),例如ROM、快闪存储器(flash memory)、HDD或固态硬盘SSD。存储器303还可以包括上述种类的存储器的组合。存储器303可用于存储一组程序代码,以便于处理器301调用存储器303中存储的程序代码以实现本申请实施例的在服务器的实现方法。在本申请实施例中,存储器303还可以是存储阵列,等等。
在一种可选的实施例中,网络设备300可以包括多个服务器,例如,网页服务器、后台服务器、下载服务器等,这多个服务器的硬件结构都可参照图4所示的网络设备300的硬件结构。
需要说明的,图4所示的网络设备300是本申请实施例示例的一种实现方式,实际应用中,网络设备300还可以包括更多或更少的部件,这里不作限制。
接下来介绍本申请实施例提供的软件分发方法。
请参见图5,图5是本申请实施例提供的一种软件分发方法的流程示意图。该方法可以应用于图1所示的软件分发系统10。该方法可以包括但不限于如下步骤:
S101:电子设备600向网络设备500发送第一消息。
在一种可选的实施例中,S101是可选的步骤。
在一种可选的实施例中,网络设备500可以维护/存储能力集字典,能力集字典可以包括多个能力,例如包括大量不同设备的能力,其中任意一个能力可以通过编码表征(也可称为一个能力对应一个编码)。
在一种可选的实施例中,任意一个能力对应的编码可以为分段式的(简称为分段式编码),假设表示为x.y.z,其中,y是z的父类(z是y的子类),x是y的父类(y是x的子类),x、y和z包括至少一个非负整数。在一些示例中,电子设备中非系统提供的能力(例如其他厂家提供的能力)和系统提供的能力对应的分段式编码可以不同,可选地,x可以不同。在一些示例中,系统提供的能力对应的分段式编码中x为0,非系统提供的能力对应的分段式编码中x为k,具体示例如下所示:
例如,电子设备的NFC能力可以表征为字符串SystemCapability.Communication.NFC.Core,其中,SystemCapability表征该NFC能力为电子设备的系统提供的能力,Communication表征该NFC能力用于实现通信功能,NFC为该能力的名称,Core表征该能力属于电子设备的核心层,该NFC能力对应的分段式编码可以为0000.0001.0005。
例如,电子设备的系统账号能力可以表征为字符串SystemCapability.Account.OsAccount,其中,SystemCapability表征该系统账号能力为电子设备的系统提供的能力,Account表征该系统账号能力用于实现账号功能,OsAccount表征为该能力的名称,该系统账号能力对应的分段式编码可以为0000.0002.0001。电子设备的应用程序账号能力可以表征为字符串SystemCapability.Account.AppAccount,其中,SystemCapability表征该应用程序账号能力为电子设备的系统提供的能力,Account表征该应用程序账号能力用于实现账号功能,AppAccount表征为该能力的名称,该应用程序账号能力对应的分段式编码可以为0000.0002.0002。电子设备的账号能力可以表征为字符串SystemCapability.Account,其中,SystemCapability表征该账号能力为电子设备的系统提供的能力,Account表征该账号能力用于实现账号功能。其中,系统账号能力和应用程序账号能力均为账号能力的子类,账号能力为系统账号能力和应用程序账号能力的父类。某厂家提供的护眼能力可以表征为字符串PrivateCapability.Light.EyeProtection,其中,PrivateCapability表征该护眼能力为非系统提供的能力,例如某厂家提供的能力,Light表征该护眼能力用于实现照明功能,EyeProtection用于表征该能力的名称,该护眼能力对应的分段式编码可以为k.0001.0011。
在一种可选的实施例中,能力对应的分段式编码可以被压缩,在一些示例中,可以通过将分段式编码中的0省略来压缩分段式编码,例如,NFC能力对应的分段式编码0000.0001.0005可以压缩为1.5,系统账号能力对应的分段式编码0000.0002.0001可以压缩为2.1,某个系统提供能力A对应的分段式编码为0000.0000.0003可以压缩为3,护眼能力对应的分段式编码x.0001.0011可以压缩为x.1.11,具体示例可参见下表1。
表1
能力 编码
NFC能力 1.5
系统账号能力 2.1
应用程序账号能力 2.2
护眼能力 x.1.11
在一种可选的实施例中,电子设备600可以向网络设备500发送第一消息,第一消息可以用于请求在能力集字典中新增第一能力,其中,第一能力为网络设备500接收到第一消息之前能力集字典不包括的能力。在一些示例中,第一能力为电子设备700的能力,例如,电子设备700发布之前,电子设备700的开发者使用电子设备600向网络设备500发送第一消息,其中,电子设备700可以但不限于为电子设备100或者电子设备200。在一些示例中,第一消息中携带第一能力的信息,例如用于表征第一能力的字符串,例如NFC能力对应的字符串SystemCapability.Communication.NFC.Core。
S102:当能力集字典不包括第一能力时,网络设备500在能力集字典中新增第一能力。
在一种可选的实施例中,S102是可选的步骤。
在一种可选的实施例中,网络设备500接收到第一消息后,生成第一能力对应的编码,并在能力集字典中添加第一能力对应的编码。在一些示例中,网络设备500接收到第一消息后,会先判断能力集字典中是否包括第一能力的编码/字符串,当确定能力集字典不包括第一能力的编码/字符串时,将第一能力对应的编码/字符串添加至能力集字典中。
在另一种可选的实施例中,当能力集字典包括第一能力时,网络设备500不在能力集字典中新增第一能力。
S103:电子设备600向网络设备500发送第二消息。
在一种可选的实施例中,第二消息可以用于请求获取电子设备700的能力集。在一些示例中,第二消息中携带电子设备700的能力的信息,例如用于表征电子设备700的能力的字符串。在一些示例中,电子设备600可以响应于用户操作(例如电子设备700的开发者通过电子设备600的开发工具输入的用户操作),获取到电子设备700的能力的信息。在一些示例中,电子设备700的能力包括硬件能力和/或软件能力,硬件能力例如但不限于包括显示屏、摄像头、扬声器、蓝牙、NFC、Wi-Fi等,软件能力例如但不限于包括时钟、支付、截屏等。
S104:网络设备500生成电子设备700的能力集。
在一种可选的实施例中,网络设备500接收到电子设备600发送的第二消息后,生成电子设备700的能力集(例如但不限于为pcid格式的文件),在一些示例中,网络设备500根据第二消息中的电子设备700的能力的信息,生成电子设备700的能力集。在一些示例中,网络设备500从能力集字典中获取到电子设备700的能力对应的编码,并生成包括这些编码的电子设备700的能力集。
S105:网络设备500向电子设备600发送电子设备700的能力集。
S106:电子设备600保存电子设备700的能力集。
在一种可选的实施例中,电子设备700的能力集可以存储在电子设备600中。在另一种可选的实施例中,电子设备700的能力集可以存储在电子设备700的系统中。在图5所示的方法中,能力集字典中的每个能力不依赖于设备类型,并且对应的编码具备唯一性,统一了不同厂家的标准,减少管理和维护的难度。
请参见图6,图6是本申请实施例提供的又一种软件分发方法的流程示意图。该方法可以应用于图1所示的软件分发系统10。该方法可以包括但不限于如下步骤:
S201:电子设备400开发第一软件。
在一种可选的实施例中,S201是可选的步骤。
在一种可选的实施例中,电子设备400安装有开发软件,第一软件的开发者可以通过电子设备400的开发软件开发第一软件。
S202:电子设备400获取至少一个电子设备的能力集。
在一种可选的实施例中,S202是可选的步骤。
在一种可选的实施例中,电子设备400可以接收用户输入的至少一个电子设备的能力集(例如但不限于为pcid格式的文件),例如,第一软件的开发者通过电子设备400的开发工具输入至少一个电子设备的能力集。
不限于上述实施方式,在另一种可选的实施例中,电子设备400可以向网络设备500请求获取至少一个能力,网络设备500的说明可参见图5的S101中网络设备500的说明。
在一种可选的实施例中,步骤S202中的至少一个电子设备的能力集也可以替换为其他设备能力集文件,只要用户可以从该设备能力集文件中选择第一软件需要的能力即可。
S203:电子设备400选择第一软件需要的能力,并设置能力的依赖程度。
在一种可选的实施例中,电子设备400可以从上述至少一个电子设备的能力集中选择出第一软件需要的能力,例如第一软件的开发者通过电子设备400的开发工具输入用户操作,电子设备400根据用户操作选择出第一软件需要的能力。
在一种可选的实施例中,电子设备400可以设置第一软件需要的能力集中的能力的依赖程度,例如根据用户操作设置。在一些示例中,依赖程度可以但不限于包括强依赖和弱依赖,其中,强依赖的能力为被分发第一软件的设备必须具备的能力;弱依赖的能力为被分发第一软件的设备可以不具备的能力。在一些示例中,假设第一软件需要的能力集包括强依赖的NFC能力和弱依赖的账号能力,假设电子设备A的能力集包括NFC能力但不包括账号能力,电子设备B的能力不包括NFC能力但包括账号能力,因此,电子设备A可以被分发第一软件,电子设备B无法被分发第一软件,电子设备A可以通过第一软件提供的匿名访问能力使用该第一软件。
在一种可选的实施例中,第一软件需要的能力集中的能力之间可以存在父子关系,例如,系统账号能力和应用程序账号能力是账号能力的子能力(即子类),账号能力是系统账号能力和应用程序账号能力的父能力(即父类)。在一些示例中,电子设备400可以通过设置子能力的依赖程度,来设置父能力的依赖程度,例如,作为子能力的系统账号能力和应用程序账号能力分别设置为强依赖和弱依赖后,作为父能力的账号能力的依赖程度为强依赖。在一些示例中,电子设备400可以通过设置父能力的依赖程度,来设置子能力的依赖程度,例如,作为父能力的账号能力被设置为强依赖后,作为子能力的系统账号能力和应用程序账号能力的依赖程度均为强依赖。
第一软件需要的能力集中的编码和依赖程度的示例可参见下表2。
表2
能力 编码 能力的依赖程度
NFC能力 1.5 强依赖
系统账号能力 2.1 弱依赖
应用程序账号能力 2.2 弱依赖
S204:电子设备400生成第一软件需要的能力集。
在一种可选的实施例中,电子设备400可以根据选择出的能力生成第一软件需要的能力集(例如但不限于为rpcid格式的文件)。第一软件需要的能力集中的能力的标识方式和图5所述的能力集字典中的能力的标识方式(即通过编码标识)一致。不再赘述。
在一种可选的实施例中,第一软件可以包括多个版本,其中,不同版本的第一软件需要的能力集可以相同,也可以不相同,本申请对此不作限定。
S205:电子设备400生成第一软件的安装包。
在一种可选的实施例中,电子设备400可以接收用户操作,生成第一软件的安装包,例如,第一软件的开发者通过电子设备400的开发工具输入用户操作,电子设备400根据用户操作编译生成第一软件的安装包。在一些示例中,第一软件的安装包可以包括第一软件需要的能力集。
S206:电子设备400向网络设备300发送第一软件的安装包。
在一种可选的实施例中,第一软件的安装包可以包括第一软件需要的能力集,在另一种可选的实施例中,第一软件需要的能力集独立于第一软件的安装包,电子设备400可以向网络设备300发送第一软件需要的能力集。
S207:网络设备300保存第一软件的安装包。
在一种可选的实施例中,网络设备300可以存储第一软件需要的能力集,以用于第一软件的分发。
在一种可选的实施例中,网络设备300接收到第一软件的安装包后,可以存储第一软件的安装包,以用于第一软件的分发。在另一种可选的实施例中,网络设备300可以向其他设备发送第一软件的安装包以使其他设备存储第一软件的安装包,网络设备300可以存储第一软件的安装包的下载方式,例如该其他设备的信息,例如下载地址,以用于第一软件的分发。不限于图6所示的实施方式,在另一种可选的实施例中,电子设备400还可以向其他设备发送第一软件的安装包,以及向网络设备300发送第一软件的安装包的下载方式,本申请对此不作限定。
在图6所示的方法中,第一软件需要的能力集中的能力的标识方式和图5所述的能力集字典中的能力的标识方式一致,统一了能力的标识方式,减少了开发和维护的难度。
请参见图7,图7是本申请实施例提供的又一种软件分发方法的流程示意图。该方法可以应用于图1所示的软件分发系统10。该方法可以包括但不限于如下步骤:
S301:电子设备100确定需要被分发第二软件。
在一种可选的实施例中,当处于触发场景时,电子设备100可以确定电子设备100需要被分发第二软件,第二软件和上述触发场景相关。在一种可选的实施例中,当处于触发场景时,电子设备100的第三软件可以确定电子设备100需要被分发第二软件,其中,电子设备100的第三软件为和第二软件相关的软件,例如,第二软件需在安装有电子设备100的第三软件的环境下运行,例如,电子设备100的为负一屏应用,第二软件为出行订票的原子化服务。接下来示例性示出一些触发场景和相关的第二软件,但不应构成限定。
在一些示例中,电子设备100到达预设位置时,确定处于第一触发场景,例如,预设位置为机场,和第一触发场景相关的第二软件为出行订票的原子化服务。
在一些示例中,电子设备100可以根据用户画像确定是否处于触发场景和相关的第二软件,例如,电子设备100根据用户画像确定用户启动阅读应用后会使用便签的原子化服务,因此,电子设备100接收到用于启动阅读应用的用户操作时,确定处于第二触发场景,和第二触发场景相关的第二软件为便签的原子化服务。
在一些示例中,电子设备100接收到用户操作时,确定处于触发场景,该用户操作可以但不限于包括触摸操作、语音输入、脑电波等。例如,电子设备100接收到用户输入的语音“查一下我的快递”时,确定处于第三触发场景,和第三触发场景相关的第二软件为快递的原子化服务。
在一些示例中,电子设备100可以根据用户设置的定时任务确定是否处于触发场景,例如,用户设置的定时任务为早上八点播放新闻,因此,电子设备100确定当前时刻和八点的时间差值小于或等于预设时长时,确定处于第四触发场景,和第四触发场景相关的第二软件为新闻的原子化服务。
在一些示例中,电子设备100可以根据用户搜索的关键词确定是否处于触发场景,例如,用户在负一屏应用中搜索“美食”时,电子设备100确定处于第五触发场景,和第五触发场景相关的第二软件为附近美食的原子化服务。
S302:电子设备100获取电子设备100的能力集。
在一种可选的实施例中,S302是可选的步骤。
在一种可选的实施例中,电子设备100的第三软件向电子设备100的系统请求获取电子设备100的能力集。在一种可选的实施例中,电子设备100的第三软件可以调用电子设备100的系统提供的接口向电子设备100的系统请求获取电子设备100的能力集,电子设备100的系统向电子设备100的第三软件返回电子设备100的能力集。在一些示例中,电子设备100的系统例如但不限于为OS。在一种可选的实施例中,电子设备100的能力集可以通过第一参数来表征,第一参数可以包括电子设备100的能力集中的能力的编码,例如,电子设备100的能力集包括表1所示的能力时,可以通过第一参数(例如名称为pcidVar)“1.5,2.1,2.2,x.1.11”来表征。
S303:电子设备100向网络设备300发送第三消息。
在一种可选的实施例中,电子设备100可以向网络设备300发送第三消息,第三消息可以用于请求获取第二软件。在一种可选的实施例中,电子设备100的第三软件可以向网络设备300发送第三消息。
在一种可选的实施例中,第三消息中携带电子设备100的能力集,例如,第三消息中携带用于表征电子设备100的能力集的第一参数,在一些示例中,电子设备100可以根据存储的电子设备100的能力集生成第三消息。在一种可选的实施例中,第三消息可以包括第二软件的信息,例如第二软件的名称、第二软件的唯一标识码、第二软件的版本等。
S304:网络设备300根据第三消息确定需要分发的第二软件。
在一种可选的实施例中,网络设备300可以从接收到的第三消息中获取到电子设备100的能力集。在另一种可选的实施例中,网络设备300可以存储有电子设备100的能力集,网络设备300接收到第三消息后,可以读取存储的电子设备100的能力集。
在一种可选的实施例中,网络设备300可以根据接收到的第三消息得到第二软件的信息,并根据第二软件的信息获取第二软件需要的能力集,第二软件的信息例如但不限于包括第二软件的名称、第二软件的唯一标识码、第二软件的版本。在一些示例中,网络设备300可以存储有多个软件需要的能力集,网络设备300可以根据第二软件的信息,从存储的多个软件需要的能力集中找到第二软件需要的能力集。网络设备300获取多个软件需要的能力集的方式示例可参见图6所示的实施例。
S305:网络设备300判断是否满足第一条件。
在一种可选的实施例中,第一条件包括电子设备100的能力集和第二软件需要的能力集匹配。在一种可选的实施例中,当满足第一条件时,网络设备300可以向电子设备100分发第二软件,即执行S307。在一种可选的实施例中,满足第一条件可以但不限于包括以下至少一种情况:
情况1,电子设备100的能力集包含第二软件需要的能力集中的每个能力;
情况2,电子设备100的能力集包含第二软件需要的能力集中强依赖的能力;
情况3,电子设备100的能力集包含第二软件需要的能力集中强依赖的能力的父能力。
其中,强依赖、父能力的说明可参见图6的S203的说明,不再赘述。
在一些示例中,电子设备100的能力集和第二软件需要的能力集匹配可以包括上述情况1和情况2,例如,第二软件需要的能力集中的每个能力的依赖程度均为强依赖的情况。
在一些示例中,电子设备100的能力集和第二软件需要的能力集匹配可以包括上述情况2和情况3,例如,电子设备100的能力集包括能力1和能力2,第二软件需要的能力集包括强依赖的能力1和能力3,其中,能力2是能力3的父能力。
在一种可选的实施例中,当不满足第一条件时,网络设备300可以不向电子设备100分发第二软件。
在一种可选的实施例中,第二软件可以包括多个版本,不同版本的第二软件需要的能力集可以相同,在另一种可选的实施例中,不同版本的第二软件需要的能力集可以不同。
在一种可选的实施例中,第三消息可以包括第二软件的版本(假设为第一版本),网络设备300可以比较电子设备100的能力集和第一版本的第二软件需要的能力集,当二者匹配时,网络设备300可以向电子设备100分发第二软件,否则不分发第二软件。
在另一种可选的实施例中,第三消息不包括第二软件的版本。网络设备300可以比较电子设备100的能力集和多个版本的第二软件需要的能力集,在一些示例中,当仅一个第二版本的第二软件需要的能力集和电子设备100的能力集匹配时,网络设备300可以向电子设备100分发第二版本的第二软件。在另一些示例中,当至少两个版本的第二软件需要的能力集和电子设备100的能力集匹配时,网络设备300可以向电子设备100分发版本较新的第二软件,例如,第三版本的第二软件、第四版本的第二软件均和电子设备100的能力集匹配时,由于第四版本比第三版本新,因此,网络设备300可以向电子设备100分发第四版本的第二软件。在另一些示例中,当上述多个版本的第二软件需要的能力集和电子设备100的能力集均不匹配时,网络设备300可以不向电子设备100分发第二软件。
不限于上述实施方式,在另一种可选的实施例中,第三消息包括第二软件的版本(假设为第一版本),若网络设备300确定电子设备100的能力集和第一版本的第二软件需要的能力集不匹配,但网络设备300确定电子设备100的能力集和第五版本的第二软件需要的能力集匹配时,可以向电子设备100分发第五版本的第二软件,本申请对此不作限定。
在一种可选的实施例中,当电子设备100的能力集和第二软件需要的能力集不匹配时,网络设备300可以向电子设备100发送第四消息,第四消息用于提示用户电子设备100不具备运行第二软件的能力。
S306:网络设备300向电子设备100发送第二软件的安装包。
在一种可选的实施例中,当满足第一条件时,网络设备300可以向电子设备100发送第二软件的安装包,以分发第二软件。在一种可选的实施例中,当满足第一条件时,网络设备300可以向电子设备100的第三软件发送第二软件的安装包,以分发第二软件。
在一种可选的实施例中,网络设备300可以存储第二软件的安装包,网络设备300可以向电子设备100发送第二软件的安装包以分发第二软件。在另一种可选的实施例中,第二软件的安装包由网络设备300以外的其他设备存储,网络设备300可以存储第二软件的安装包的下载方式,例如其他设备的信息,例如下载地址,网络设备300可以向电子设备100发送第二软件的下载方式以分发第二软件。
S307:电子设备100安装第二软件。
在一种可选的实施例中,S307是可选的步骤。
在一种可选的实施例中,电子设备100接收到网络设备300发送的第二软件的安装包后,可以根据该安装包安装第二软件。在一种可选的实施例中,电子设备100的第三软件接收到网络设备300发送的第二软件的安装包后,可以根据该安装包安装第二软件。在一些示例中,安装可以但不限于为静默安装,例如不显示安装进度和图标的安装。
在另一种可选的实施例中,电子设备100接收到网络设备300发送的第二软件的下载方式后,可以根据第二软件的下载方式获取第二软件的安装包,并根据该安装包安装第二软件。
S308:电子设备100显示第二软件的界面。
在一种可选的实施例中,S308是可选的步骤。
在一种可选的实施例中,电子设备100安装第二软件后,显示第二软件的用户界面。在另一种可选的实施例中,电子设备100安装第二软件后,接收用户操作,响应于该用户操作,显示第二软件的用户界面。在一种可选的实施例中,电子设备100的第三软件安装第二软件后,显示第二软件的用户界面。
示例性地,假设家庭场景下存在以下设备:手机1,配置有显示屏的音箱1,未配置显示屏的音箱2,配置有显示屏的门锁1。处于该家庭场景下的用户可以输出语音,假设为“播放视频A”,该家庭场景下的任意一个设备可以接收上述语音,并根据该语音确定处于触发场景6,假设和触发场景6相关的软件为视频的原子化服务,并且该软件需要的能力集包括的强依赖的能力为视频播放能力。由于手机1、音箱1和门锁1的能力集包括视频播放能力和视频播放能力的父能力,因此手机1、音箱1和门锁1可以被分发上述软件,由于音箱2的能力集不包括视频播放能力和视频播放能力的父能力,因此音箱2无法被分发上述软件。
在图7所示的方法中,软件的分发是基于设备的能力集实现的,不依赖于设备类型,解决了基于设备类型分发软件时存在的软件支持的部分设备无法被分发软件等技术问题,扩大了可被分发软件的设备范围,软件分发功能的应用场景更加广泛。用于触发软件分发的场景(即上述触发场景)多种多样,例如用户操作主动触发,或者电子设备自动识别,可以满足不同用户在不同场景下的不同需求,软件分发功能更加灵活和智能。并且,这种方法无需用户手动下载安装软件,即电子设备可以自动安装网络设备分发的软件,用户使用更加方便。
请参见图8,图8是本申请实施例提供的又一种软件分发方法的流程示意图。该方法可以应用于图1所示的软件分发系统10。该方法可以包括但不限于如下步骤:
S401:电子设备100确定需要分发第四软件。
在一种可选的实施例中,电子设备100可以在识别到用户意图分发第四软件时,确定需要分发第四软件。在一种可选的实施例中,电子设备100的第五软件可以在识别到用户意图分发第四软件时,确定需要分发第四软件,其中,电子设备100的第五软件为和第四软件相关的软件,例如,第四软件需在安装有电子设备100的第五软件的环境下运行。
在一些示例中,电子设备100可以根据接收到的用户操作识别到上述用户意图,例如,电子设备100显示第四软件的用户界面时,响应于针对该用户界面中的流转控件的用户操作,确定需要分发第四软件。在另一些示例中,电子设备100可以自动识别上述用户意图,例如,根据用户画像识别上述用户意图。
在一些示例中,电子设备100可以响应于用户操作确定待分发的软件为第四软件,在另一些示例中,电子设备100也可以将预设的软件确定为待分发的软件,例如,电子设备100显示第四软件的用户界面时,将第四软件设置为待分发的软件。
S402:电子设备100确定被分发第四软件的目标设备。
在一种可选的实施例中,电子设备100可以接收用户操作,确定被分发第四软件的目标设备。在一种可选的实施例中,电子设备的第五软件可以接收用户操作,确定被分发第四软件的目标设备。
在一些示例中,电子设备100第五软件可以响应于针对第四软件的用户界面中的流转控件的用户操作,显示多个设备的信息,这多个设备可以为电子设备100通过分布式通信方式(例如软总线)发现和/或连接的设备。电子设备100第五软件接收到针对这多个设备中的电子设备200的信息的用户操作时,可以确定被分发第四软件的目标设备为电子设备200。在一些示例中,电子设备100可以响应于用户操作确定被分发软件的目标设备为电子设备200,在另一些示例中,电子设备100可以将预设的设备确定为被分发软件的目标设备,例如,将最近一次通信的电子设备200设置为被分发软件的目标设备。
S403:电子设备100向电子设备200请求获取电子设备200的能力集。
在一种可选的实施例中,S403是可选的步骤。
在一种可选的实施例中,电子设备200的能力集可以用于电子设备100向网络设备300请求向电子设备200分发第四软件。在一种可选的实施例中,电子设备100的第五软件可以向电子设备200请求获取电子设备200的能力集,其中,电子设备200的能力集可以用于电子设备100的第五软件向网络设备300请求向电子设备200分发第四软件。
S404:电子设备200向电子设备100发送电子设备200的能力集。
在一种可选的实施例中,S404是可选的步骤。
在一种可选的实施例中,电子设备200接收到电子设备100发送的请求后,可以获取电子设备200的能力集,并向电子设备100发送电子设备200的能力集。在一种可选的实施例中,电子设备200接收到电子设备100的第五软件的请求后,可以获取电子设备200的能力集,并向电子设备100的第五软件发送电子设备200的能力集。
在一些示例中,电子设备200的能力集可以通过第二参数表征,具体示例可参见图7的S302中电子设备100的能力集的表征方式的说明。
S405:电子设备100向网络设备300发送第五消息。
在一种可选的实施例中,电子设备100接收到电子设备200的能力集后,可以向网络设备300发送第五消息,第五消息可以用于请求向电子设备200分发第四软件。在一种可选的实施例中,电子设备100的第五软件接收到电子设备200的能力集后,可以向网络设备300发送第五消息。
在一些示例中,第五消息中携带电子设备200的能力集,例如,第五消息中携带用于表征电子设备200的能力集的第二参数。
在一种可选的实施例中,第五消息可以包括第四软件的信息,例如但不限于包括第四软件的名称、第四软件的唯一标识码、第四软件的版本。
S406:网络设备300根据第五消息确定需要分发的第四软件。
在一种可选的实施例中,网络设备300可以从接收到的第五消息中获取得到电子设备200的能力集。在另一种可选的实施例中,网络设备300可以存储有电子设备200的能力集,网络设备300接收到第五消息后,可以读取存储的电子设备200的能力集。
在一种可选的实施例中,网络设备300可以根据接收到的第五消息得到第四软件的信息,并根据第四软件的信息获取第四软件需要的能力集,具体示例可参见图7的S304中网络设备300获取第二软件需要的能力集的说明,不再赘述。
S407:网络设备300判断是否满足第二条件。
在一种可选的实施例中,第二条件包括电子设备200的能力集和第四软件需要的能力集匹配。满足第二条件的示例可参见图7的S305中电子设备100的能力集和第二软件需要的能力集匹配的说明。
S408:网络设备300向电子设备100发送第六消息。
在一种可选的实施例中,S408是可选的步骤。
在一种可选的实施例中,网络设备300可以根据上述是否满足第二条件的结果向电子设备100发送第六消息。在一种可选的实施例中,网络设备300可以根据上述是否满足第二条件的结果向电子设备100的第五软件发送第六消息。可选地,第六消息可以指示是否能向电子设备200分发第四软件。在一些示例中,上述满足第二条件时,第六消息指示能向电子设备200分发第四软件,在另一些示例中,上述不满足第二条件时,第六消息指示不能向电子设备200分发第四软件。
在一种可选的实施例中,网络设备300可以存储第四软件的安装包,第六消息可以包括第四软件的安装包,并且,第六消息可以指示能向电子设备200分发第四软件。在另一种可选的实施例中,第四软件的安装包由网络设备300以外的其他设备存储,网络设备300可以存储第四软件的安装包的下载方式,第六消息可以包括第四软件的安装包的下载方式,并且,第六消息可以指示能向电子设备200分发第四软件。
S409:电子设备100向电子设备200分发第四软件。
在一种可选的实施例中,S409是可选的步骤。
在一种可选的实施例中,电子设备100接收到第六消息后,当第六消息指示能向电子设备200分发第四软件时,电子设备100可以向电子设备200分发第四软件。在一种可选的实施例中,电子设备100的第五软件接收到第六消息后,当第六消息指示能向电子设备200分发第四软件时,电子设备100的第五软件可以向电子设备200分发第四软件。
在一种可选的实施例中,电子设备100可以根据接收到的第六消息得到第四软件的安装包,然后向电子设备200发送第四软件的安装包以分发第四软件。在另一种可选的实施例中,电子设备100可以根据接收到的第六消息得到第四软件的安装包的下载方式,然后向电子设备200发送第四软件的安装包的下载方式以分发第四软件。在另一种可选的实施例中,电子设备100可以向电子设备200发送电子设备100存储的第四软件的安装包或者第四软件的安装包的下载方式,以分发第四软件。
在一种可选的实施例中,电子设备100接收到第六消息后,当第六消息指示不能向电子设备200分发第四软件时,电子设备100可以不向电子设备200分发第四软件,例如,此时电子设备100可以显示提示信息,该提示信息用于提示用户电子设备200不具备运行第四软件的能力。
S410:电子设备200安装第四软件。
在一种可选的实施例中,S410是可选的步骤。
S410与图7的S307类似,具体可参见图7的S307的说明,不再赘述。
S411:电子设备200显示第四软件的界面。
在一种可选的实施例中,S411是可选的步骤。
S411与图7的S308类似,具体可参见图7的S308的说明,不再赘述。
不限于图8所示的实施方式,在另一种可选的实施例中,S403-S404可以替换为:网络设备300向电子设备200请求获取电子设备200的能力集,电子设备200向网络设备300发送电子设备200的能力集。该可选的实施例可以处在S405之后,S406之前,具体说明和S405-S406的说明类似,不再赘述。
不限于图8所示的实施方式,在另一种可选的实施例中,S408-S409可以替换为:网络设备300向电子设备200分发第四软件,具体说明和S409的说明类似,不再赘述。
在图8所示的方法中,跨设备流转软件是基于设备的能力集实现的,不依赖于设备类型,解决了基于设备类型流转软件时存在的软件支持的部分设备无法被流转软件等技术问题,扩大了可被流转软件的设备范围。被流转软件的电子设备200无需用户手动下载安装软件,即电子设备200可以自动安装被流转的软件,用户使用更加方便。
下面介绍本申请实施例涉及的应用场景以及该场景下的用户界面实施例。
图9示例性示出一种软件分发过程的用户界面示意图。
如图9的(A)所示,电子设备100可以显示用户界面1000,例如,用户界面1000为电子设备100的桌面。用户界面1000可以包括控件1010,可以表征电子设备100已开启语音助手的功能。在一种可选的实施方式中,电子设备100可以接收用户操作,例如,该用户操作为语音输入,图9以该语音输入为“查一下我的快递”为例进行说明。电子设备100可以响应于该用户操作,获取和该用户操作相关的软件(图9以快递的原子化服务为例进行说明),例如执行图7的S301-S306,其中,快递的原子化服务为第二软件。电子设备100可以安装获取到的快递的原子化服务,例如执行图7的S307,此时电子设备100可以显示该原子化服务的用户界面,例如执行图7的S308,具体可参见图9的(B)所示的用户界面2000。
如图9的(B)所示,用户界面2000例如为电子设备100的桌面。用户界面2000可以包括窗口2010,窗口2010可以包括语音信息2020、卡片控件2030和流转控件2040。其中,语音信息2020包括的字符为上述语音输入的具体内容,即“查一下我的快递”。卡片控件2030用于显示快递的原子化服务的具体内容,例如和上述语音输入相关的内容,即当前用户的快递信息2030A。流转控件2040可以用于流转原子化服务。在一种可选的实施方式中,电子设备100可以响应于针对流转控件2040的用户操作,例如,该用户操作为触摸操作,该触摸操作例如为点击操作,显示流转内容和流转对象的选择界面,具体可参见图9的(C)所示的用户界面3000。
如图9的(C)所示,用户界面3000可以包括目标内容列表3010、目标设备列表3020。其中,目标内容列表3010可以包括至少一个可被分发的软件(即流转内容)的选项,例如:指示快递的原子化服务的选项3011(包括字符“快递查询服务”)。目标设备列表3020可以包括至少一个可被分发软件的目标设备(即流转对象)的选项,这至少一个可被分发软件的目标设备可以但不限于包括电子设备100通过近场和/或远场通信方式发现和/或连接的设备,例如包括:指示名称为“客厅的智慧屏”的设备的选项3021,以及指示名称为“我的平板”的设备的选项3022。在一种可选的实施方式中,电子设备100可以响应于针对目标内容列表3010中的任意一个选项的用户操作,例如该用户操作为触摸操作,选择该选项指示的软件为流转内容。在一种可选的实施方式中,电子设备100可以响应于针对目标设备列表3020中的任意一个选项的用户操作,例如该用户操作为触摸操作,选择该选项指示的设备为流转对象。
在一种可选的实施方式中,假设上述选择的流转内容为选项3011指示的快递的原子化服务,上述选择的流转对象为选项3022指示的电子设备200,电子设备100确定流转内容和流转对象后,可以执行向电子设备200分发快递的原子化服务的过程,例如执行图8的S401-S409,其中,快递的原子化服务为第四软件。电子设备200可以安装被分发的快递的原子化服务,例如执行图8的S410,此时电子设备200可以显示该原子化服务的用户界面,例如执行图8的S411。在这种情况下,电子设备100和电子设备200的显示界面可以参见下图10。
如图10的(A)所示,电子设备100可以显示用户界面4000,用户界面4000与图9的(C)所示的用户界面3000类似,区别在于,选项3011和选项3022为选中状态。如图10的(B)所示,电子设备200可以显示用户界面5000,用户界面5000例如为电子设备200的桌面,用户界面5000可以包括卡片控件5010和流转控件5020。其中,卡片控件5010与图9的(B)所示的卡片控件2030一致,不再赘述。流转控件5020可以用于流转当前显示的快递的原子化服务。
不限于图10所示的实施方式,在另一种可选的实施方式中,电子设备100向电子设备200分发快递的原子化服务后,电子设备100可以不再显示用户界面3000或用户界面4000,例如返回显示桌面,本申请对此不作限定。
不限于图10所示的实施方式,在另一种可选的实施方式中,电子设备200显示的卡片控件5010可以和图9的(B)所示的卡片控件2030不同,例如,卡片控件5010用于显示快递的原子化服务的首页,本申请对此不作限定。
本申请各实施例提供的方法中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机可以存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DWD)、或者半导体介质(例如,固态硬盘(solid state disk,SSD)等。以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (19)

1.一种软件分发方法,其特征在于,应用于第一设备,所述方法包括:
向网络设备发送第一消息,所述第一消息用于请求获取第一软件,所述第一消息包括用于指示所述第一设备的能力集的第一信息,所述第一设备的能力集包括所述第一设备支持的硬件能力和软件能力;
当所述第一设备的能力集和所述第一软件对应的能力集匹配时,接收所述网络设备发送的所述第一软件的安装文件或所述第一软件的安装文件的下载方式,所述第一软件对应的能力集包括能运行所述第一软件的设备需要支持的硬件能力和软件能力;
根据所述第一软件的安装文件或所述第一软件的安装文件的下载方式,显示所述第一软件的第一界面。
2.如权利要求1所述的方法,其特征在于,所述向网络设备发送第一消息,包括:
当确定处于预设场景时,向所述网络设备发送所述第一消息,所述第一软件和所述预设场景相关。
3.如权利要求1所述的方法,其特征在于,所述第一设备的能力集和所述第一软件对应的能力集匹配,包括以下至少一种情况:
所述第一设备的能力集包括所述第一软件对应的能力集中的能力;
所述第一设备的能力集包括所述第一软件对应的能力集中强依赖的能力,所述强依赖的能力为被分发所述第一软件的设备要求具备的能力;
所述第一设备的能力集包括所述第一软件对应的能力集中强依赖的能力的父能力。
4.如权利要求1-3任一项所述的方法,其特征在于,所述第一软件包括多个版本,不同版本的所述第一软件对应的能力集相同或不相同,所述当所述第一设备的能力集和所述第一软件对应的能力集匹配时,接收所述网络设备发送的所述第一软件的安装文件或所述第一软件的安装文件的下载方式,包括:
当所述第一设备的能力集和第一版本的所述第一软件对应的能力集匹配时,接收所述网络设备发送的所述第一版本的第一软件的安装文件或所述第一版本的第一软件的安装文件的下载方式。
5.如权利要求1-3任一项所述的方法,其特征在于,所述第一软件包括多个版本,不同版本的所述第一软件对应的能力集相同或不相同,所述方法还包括:
当所述第一设备的能力集和第二版本的所述第一软件对应的能力集匹配、以及第三版本的所述第一软件对应的能力集匹配时,接收所述网络设备发送的所述第二版本的第一软件的安装文件或所述第二版本的第一软件的安装文件的下载方式,其中,所述第二版本新于所述第三版本。
6.如权利要求1-5任一项所述的方法,其特征在于,所述根据所述第一软件的安装文件或所述第一软件的安装文件的下载方式,显示所述第一软件的第一界面,包括:
根据所述第一软件的安装文件,安装所述第一软件;显示所述第一软件的第一界面;或者,
根据所述第一软件的安装文件的下载方式,下载所述第一软件的安装文件;根据所述第一软件的安装文件,安装所述第一软件;显示所述第一软件的第一界面。
7.如权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
获取第二设备的能力集;
向所述网络设备发送第二消息,所述第二消息用于请求向所述第二设备分发第二软件,所述第二消息包括用于指示所述第二设备的能力集的第二信息,所述第二设备用于当所述第二设备的能力集和所述第二软件对应的能力集匹配时,接收所述第二软件的安装文件或所述第二软件的安装文件的下载方式,所述第二软件的安装文件或所述第二软件的安装文件的下载方式用于所述第二设备显示所述第二软件的第二界面。
8.如权利要求7所述的方法,其特征在于,所述向所述网络设备发送第二消息之后,所述方法还包括:
接收所述网络设备发送的第三消息,所述第三消息用于指示向所述第二设备分发所述第二软件;
向所述第二设备发送所述第二软件的安装文件或所述第二软件的安装文件的下载方式。
9.如权利要求7所述的方法,其特征在于,所述向所述网络设备发送第二消息之后,所述方法还包括:
接收所述网络设备发送的第四消息,所述第四消息用于指示不向所述第二设备分发所述第二软件;
显示提示信息,所述提示信息指示所述第二设备不具备运行所述第二软件的能力。
10.如权利要求2所述的方法,其特征在于,所述第一软件和所述预设场景相关,包括:
所述第一软件和所述预设场景中所处的位置、时间、用户画像、用户操作中的至少一项相关。
11.一种软件分发方法,其特征在于,应用于第二设备,所述方法包括:
接收第一设备发送的第一消息;
根据所述第一消息向所述第一设备发送所述第二设备的能力集,所述第二设备的能力集包括所述第二设备支持的硬件能力和软件能力,所述第二设备的能力集用于判断是否向所述第二设备分发第一软件;
当所述第二设备的能力集和所述第一软件对应的能力集匹配时,接收所述第一设备发送的所述第一软件的安装文件或所述第一软件的安装文件的下载方式,或,接收网络设备发送的所述第一软件的安装文件或所述第一软件的安装文件的下载方式;
根据所述第一软件的安装文件或所述第一软件的安装文件的下载方式,显示所述第一软件的界面。
12.如权利要求11所述的方法,其特征在于,所述根据所述第一软件的安装文件或所述第一软件的安装文件的下载方式,显示所述第一软件的界面,包括:
根据所述第一软件的安装文件,安装所述第一软件;
显示所述第一软件的界面;或者,
根据所述第一软件的安装文件的下载方式,下载所述第一软件的安装文件;根据所述第一软件的安装文件,安装所述第一软件;显示所述第一软件的界面。
13.一种软件分发方法,其特征在于,应用于网络设备,所述方法包括:
接收第一设备发送的第一消息,所述第一消息用于请求获取第一软件,所述第一消息包括用于指示所述第一设备的能力集的第一信息,所述第一设备的能力集包括所述第一设备支持的硬件能力和软件能力;
根据所述第一消息判断所述第一设备的能力集和所述第一软件对应的能力集是否匹配,所述第一软件对应的能力集包括能运行所述第一软件的设备需要支持的硬件能力和软件能力;
当所述第一设备的能力集和所述第一软件对应的能力集匹配时,向所述第一设备发送所述第一软件的安装文件或所述第一软件的安装文件的下载方式,所述第一软件的安装文件或所述第一软件的安装文件的下载方式用于所述第一设备显示所述第一软件的第一界面。
14.如权利要求13所述的方法,其特征在于,所述方法还包括:
接收所述第一设备发送的第二消息,所述第二消息用于请求向所述第二设备分发第二软件,所述第二消息包括用于指示所述第二设备的能力集的第二信息,所述第二设备的能力集包括所述第二设备支持的硬件能力和软件能力;
根据所述第二消息判断所述第二设备的能力集和所述第二软件对应的能力集是否匹配,所述第二软件对应的能力集包括能运行所述第二软件的设备需要支持的硬件能力和软件能力;
当所述第二设备的能力集和所述第二软件对应的能力集匹配时,向所述第一设备发送第三消息,所述第三消息用于指示所述第一设备向所述第二设备发送所述第二软件的安装文件或所述第二软件的安装文件的下载方式,或,向所述第二设备发送所述第二软件的安装文件或所述第二软件的安装文件的下载方式,所述第二软件的安装文件或所述第二软件的安装文件的下载方式用于所述第二设备显示所述第二软件的第二界面。
15.如权利要求13所述的方法,其特征在于,所述第一设备的能力集和所述第一软件对应的能力集匹配,包括以下至少一种情况:
所述第一设备的能力集包括所述第一软件对应的能力集中的能力;
所述第一设备的能力集包括所述第一软件对应的能力集中强依赖的能力,所述强依赖的能力为被分发所述第一软件的设备要求具备的能力;
所述第一设备的能力集包括所述第一软件对应的能力集中强依赖的能力的父能力。
16.如权利要求13或15所述的方法,其特征在于,所述第一软件包括多个版本,不同版本的所述第一软件对应的能力集相同或不相同,所述当所述第一设备的能力集和所述第一软件对应的能力集匹配时,向所述第一设备发送所述第一软件的安装文件或所述第一软件的安装文件的下载方式,包括:
当所述第一设备的能力集和第一版本的所述第一软件对应的能力集匹配时,向所述第一设备发送所述第一版本的第一软件的安装文件或所述第一版本的第一软件的安装文件的下载方式。
17.一种电子设备,其特征在于,包括收发器、处理器和存储器,所述存储器用于存储计算机程序,所述处理器调用所述计算机程序,用于执行如权利要求1-10任一项或11-12任一项所述的方法。
18.一种网络设备,其特征在于,包括收发器、处理器和存储器,所述存储器用于存储计算机程序,所述处理器调用所述计算机程序,用于执行如权利要求13-16任一项所述的方法。
19.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1-16任一项所述的方法。
CN202211287246.2A 2022-10-20 2022-10-20 一种软件分发方法、电子设备及系统 Pending CN117950677A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211287246.2A CN117950677A (zh) 2022-10-20 2022-10-20 一种软件分发方法、电子设备及系统
PCT/CN2023/124946 WO2024083114A1 (zh) 2022-10-20 2023-10-17 一种软件分发方法、电子设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211287246.2A CN117950677A (zh) 2022-10-20 2022-10-20 一种软件分发方法、电子设备及系统

Publications (1)

Publication Number Publication Date
CN117950677A true CN117950677A (zh) 2024-04-30

Family

ID=90736974

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211287246.2A Pending CN117950677A (zh) 2022-10-20 2022-10-20 一种软件分发方法、电子设备及系统

Country Status (2)

Country Link
CN (1) CN117950677A (zh)
WO (1) WO2024083114A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107291496A (zh) * 2017-06-06 2017-10-24 苏州小雨伞网络科技有限公司 一种软件的发布安装方法
CN110531990A (zh) * 2019-07-26 2019-12-03 苏州浪潮智能科技有限公司 软件安装方法及装置
CN112947947A (zh) * 2019-12-11 2021-06-11 华为终端有限公司 安装包的下载方法、分发方法、终端设备、服务器及系统
CN114610331A (zh) * 2020-11-25 2022-06-10 网神信息技术(北京)股份有限公司 软件安装方法和系统

Also Published As

Publication number Publication date
WO2024083114A1 (zh) 2024-04-25

Similar Documents

Publication Publication Date Title
US11947974B2 (en) Application start method and electronic device
CN114461239B (zh) 软件升级系统和软件升级方法
CN112988213B (zh) 一种程序数据更新方法、电子设备及计算机存储介质
CN112817634B (zh) Cota包下载方法及装置
CN114124980B (zh) 一种启动应用的方法、设备、系统、终端及存储介质
CN112783384A (zh) 一种云应用运行的控制方法及电子设备
CN112860445B (zh) 一种快应用与原生应用间数据共享的方法及终端
WO2022253158A1 (zh) 一种用户隐私保护方法及装置
CN115333941B (zh) 获取应用运行情况的方法及相关设备
CN114741256B (zh) 传感器监听方法、装置及终端设备
CN116483734B (zh) 一种基于编译器的插桩方法、系统及相关电子设备
CN115309431B (zh) 一种参数更新方法、可读介质和电子设备
WO2021238376A1 (zh) 功能包的加载方法、装置、服务器和电子设备
CN116048955A (zh) 一种测试方法及电子设备
CN116795435A (zh) 兼容性管控方法及相关设备
CN117950677A (zh) 一种软件分发方法、电子设备及系统
CN117093315B (zh) 一种升级内容显示方法、电子设备和存储介质
CN117009023B (zh) 显示通知信息的方法及相关装置
CN116048544B (zh) 一种弹窗广告的处理方法、电子设备及可读存储介质
CN116048545B (zh) 一种弹窗广告的处理方法、电子设备及可读存储介质
CN117729561A (zh) 系统升级方法、终端及存储介质
CN117931384A (zh) 一种业务访问的方法、系统、电子设备及存储介质
CN116991532A (zh) 一种虚拟机窗口的显示方法、电子设备及系统
CN117707562A (zh) 参数更新方法和终端设备
CN117857646A (zh) 数据网络共享方法、电子设备及存储介质

Legal Events

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