卡片分享方法、电子设备及通信系统转让专利

申请号 : CN202010512011.3

文献号 : CN113778574B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 宋平杨昌俊

申请人 : 荣耀终端有限公司

摘要 :

本申请提供一种卡片分享方法、电子设备及通信系统。该方法包括:响应于用户的第一操作,显示第一应用的界面,第一应用的界面中显示有第一卡片,第一卡片包括第一卡片模块和第二卡片模块,第一卡片的界面资源是由第二应用提供的;响应于用户的第二操作,向第三应用发送第二消息,第二操作与第一卡片模块关联,第二消息包括第一卡片模块的标识;显示第三应用的界面,第三应用的界面中显示有第一卡片模块,第一卡片模块的界面资源是由第四应用提供的。从而,使得卡片可以在同设备中的不同应用程序之间或者在跨设备之间实现分享。

权利要求 :

1.一种卡片分享方法,其特征在于,包括:

响应于用户的第一操作,显示第一应用的界面,所述第一应用的界面中显示有第一卡片,所述第一卡片包括第一卡片模块和第二卡片模块,所述第一卡片的界面资源是由第二应用提供的;

响应于所述用户的第二操作,向第三应用发送第二消息,所述第二操作与所述第一卡片模块关联,所述第二消息包括所述第一卡片模块的标识;

显示所述第三应用的界面,所述第三应用的界面中显示有所述第一卡片模块,所述第一卡片模块的界面资源是由第四应用提供的,所述第一卡片模块和所述第二卡片模块允许被单独或以组合的形式进行分享;其中,所述第一卡片对应于所述第一应用中的一个服务,通过对所述第一卡片对应的所述一个服务进行拆分得到所述第一卡片模块和所述第二卡片模块。

2.根据权利要求1所述的方法,其特征在于,所述第一卡片还包括:第三卡片模块,所述第三应用的界面中还显示有所述第三卡片模块,所述第三卡片模块的界面资源是由所述第四应用提供的。

3.根据权利要求1所述的方法,其特征在于,所述第一应用、所述第二应用、第三应用为第一设备中的不同的应用程序,第一应用进程对应所述第一应用,第二应用进程对应所述第二应用,第三应用进程对应所述第三应用,第四应用进程对应所述第四应用,所述第二应用与所述第四应用为同一个应用程序,所述第二应用进程与所述第四应用进程为同一个应用程序进程。

4.根据权利要求1所述的方法,其特征在于,所述第一应用和所述第二应用为第一设备中的不同的应用程序,第三应用和第四应用为第二设备中的不同的应用程序,所述第一设备与所述第二设备不同,第一应用进程对应所述第一应用,第二应用进程对应所述第二应用,第三应用进程对应所述第三应用,第四应用进程对应所述第四应用。

5.根据权利要求1所述的方法,其特征在于,所述第一应用和所述第二应用为第一设备中的不同的应用程序,第三应用为第二设备中的不同的应用程序,所述第一设备与所述第二设备不同,第一应用进程对应所述第一应用,第二应用进程对应所述第二应用,第三应用进程对应所述第三应用,第四应用进程对应所述第四应用,所述第二应用与所述第四应用为同一个应用程序,所述第二应用进程与所述第四应用进程为同一个应用程序进程。

6.根据权利要求3‑5任一项所述的方法,其特征在于,

向所述第二应用进程发送第一消息;

从所述第二应用进程接收第一绘制结果,所述第一绘制结果是所述第二应用进程基于所述第一卡片的界面资源渲染绘制得到的,所述第一卡片的界面资源是所述第二应用进程基于所述第一消息从资源包集合中调用得到的,所述资源包集合包括所述第一卡片中的第一卡片模块、第二卡片模块和第三卡片模块的界面资源以及第二卡片中的第四卡片模块和第五卡片模块的界面资源;

基于所述第一绘制结果在所述第一应用的界面中显示所述第一卡片。

7.根据权利要求6所述的方法,其特征在于,所述第一消息包括:所述第一卡片的标识。

8.根据权利要求6所述的方法,其特征在于,所述第一消息包括:所述第一卡片的标识、所述第一卡片模块的标识和所述第二卡片模块的标识。

9.根据权利要求7所述的方法,其特征在于,所述第一消息还包括:第一地址;

从所述第二应用进程接收发送到所述第一地址中的所述第一绘制结果。

10.根据权利要求7‑9任一项所述的方法,其特征在于,所述方法还包括:在所述第一设备有所述资源包集合的情况下,向所述第二应用进程发送所述第一消息。

11.根据权利要求2‑5、7‑9任一项所述的方法,其特征在于,

向所述第四应用进程发送第三消息;

从所述第四应用进程接收第二绘制结果,所述第二绘制结果是所述第四应用进程基于所述第一卡片模块的界面资源渲染绘制得到的,所述第一卡片模块的界面资源是所述第四应用进程基于所述第三消息从资源包集合中调用得到的,所述资源包集合包括所述第一卡片中的第一卡片模块、第二卡片模块和第三卡片模块的界面资源以及第二卡片中的第四卡片模块和第五卡片模块的界面资源;

基于所述第二绘制结果在所述第三应用的界面中显示所述第一卡片模块。

12.根据权利要求11所述的方法,其特征在于,所述第三消息包括:所述第一卡片的标识和所述第一卡片模块的标识。

13.根据权利要求12所述的方法,其特征在于,所述第三消息还包括:第二地址;

从所述第四应用进程接收发送到所述第二地址中的所述第二绘制结果。

14.根据权利要求12或13所述的方法,其特征在于,所述方法还包括:在确定所述第三应用进程能够显示卡片的情况下,向所述第四应用进程发送所述第三消息。

15.根据权利要求7‑9、12‑13任一项所述的方法,其特征在于,所述资源包集合还包括第五应用的界面资源。

16.根据权利要求1‑5、7‑9、12‑13任一项所述的方法,其特征在于,所述第一应用的界面包括:第一区域和第二区域;

所述第一卡片位于所述第一区域,第一应用页面位于所述第二区域,所述第一应用页面的界面资源是由所述第一应用提供的。

17.根据权利要求1‑5、7‑9、12‑13任一项所述的方法,其特征在于,所述第一应用包括:主屏幕、负一屏、控制中心或者通知中心中的任意一个。

18.一种电子设备,其特征在于,包括:至少一个存储器和至少一个处理器;

所述存储器用于存储程序指令;

所述处理器用于调用所述存储器中的程序指令使得所述电子设备执行权利要求1‑17任一项所述的卡片分享方法。

19.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器使得电子设备执行时实现权利要求1‑17任一项所述的卡片分享方法。

20.一种通信系统,其特征在于,包括:第一设备和第二设备;所述第一设备中安装有第一应用,所述第二设备安装有第三应用;

所述第一应用,用于响应于用户的第一操作,显示所述第一应用的界面,所述第一应用的界面中显示有第一卡片,所述第一卡片包括第一卡片模块和第二卡片模块,所述第一卡片的界面资源是由第二应用提供的;

所述第一应用,还用于响应于所述用户的第二操作,向第三应用发送第二消息,所述第二操作与所述第一卡片模块关联,所述第二消息用于指示所述第一卡片模块;

所述第三应用,用于显示所述第三应用的界面,所述第三应用的界面中显示有所述第一卡片模块,所述第一卡片模块的界面资源是由第四应用提供的,所述第一卡片模块和所述第二卡片模块允许被单独或以组合的形式进行分享;其中,所述第一卡片对应于所述第一应用中的一个服务,通过对所述第一卡片对应的所述一个服务进行拆分得到所述第一卡片模块和所述第二卡片模块。

说明书 :

卡片分享方法、电子设备及通信系统

技术领域

[0001] 本申请涉及通信技术领域,尤其涉及一种卡片分享方法、电子设备及通信系统。

背景技术

[0002] 卡片是一种新的服务展示技术,广泛应用于电子设备,方便用户快速查看各类应用的服务信息。然而,现有卡片只支持应用中有限的控件组合,尤其是并不支持使用频繁或者控制入口较深的控件,且常常出现在电子设备的固定位置,展示方式单一固定,很难做到二次组合和分享。因此,如何灵活实现卡片分享是现亟需解决的问题。

发明内容

[0003] 本申请提供一种卡片分享方法、电子设备及通信系统,以在同设备的应用程序之间实现卡片中的部分卡片模块或者整张卡片的分享,还在跨设备之间实现卡片中的部分卡片模块或者整张卡片的分享。
[0004] 第一方面,本申请提供一种卡片分享方法,包括:响应于用户的第一操作,显示第一应用的界面,第一应用的界面中显示有第一卡片,第一卡片包括第一卡片模块和第二卡片模块,第一卡片的界面资源是由第二应用提供的;响应于用户的第二操作,向第三应用发送第二消息,第二操作与第一卡片模块关联,第二消息包括第一卡片模块的标识;显示第三应用的界面,第三应用的界面中显示有第一卡片模块,第一卡片模块的界面资源是由第四应用提供的。
[0005] 通过第一方面提供的卡片分享方法,基于卡片可拆分为多个卡片模块以及卡片模块可重新组合,不仅在同设备的应用程序之间实现了卡片中的部分卡片模块或者整张卡片的分享,还在跨设备之间实现了卡片中的部分卡片模块或者整张卡片的分享,从而,基于用户意愿能够通过卡片中的卡片模块或者整张卡片,方便快捷地向用户提供用户想要得到的服务内容,尤其是服务内容中频繁使用或者操作繁琐等关键信息,满足了不同场景的分享需求,有利于提升用户体验感。
[0006] 在一种可能的设计中,第一卡片还包括:第三卡片模块,第三应用的界面中还显示有第三卡片模块,第三卡片模块的界面资源是由第四应用提供的。由此,本申请可将卡片的属性设置为可重新组合,也可将卡片的属性设置为不可重新组合,如用于表明卡片的服务内容或者卡片的关键信息等的卡片模块设置为不可重新组合的卡片模块,从而,第一应用进程响应于用户的第二操作,可以确定出第三应用的界面上需要显示第二卡片模块和第三卡片模块,或者,第三应用基于第二消息中的第一卡片模块的标识,可以确定出第三应用的界面上需要显示第二卡片模块和第三卡片模块。由此,为实现卡片的分享提供给了便利性。
[0007] 在一种可能的设计中,第一应用、第二应用、第三应用为第一设备中的不同的应用程序,第一应用进程对应第一应用,第二应用进程对应第二应用,第三应用进程对应第三应用,第四应用进程对应第四应用,第二应用与第四应用为同一个应用程序,第二应用进程与第四应用进程为同一个应用程序进程。从而,本申请的卡片分享方法适用于在同设备中的不同应用程序之间的使用场景中,有利于向用户提供卡片的多种显示渠道,且每种显示渠道的卡片可以相同或者不同,方便用户能够及时获取到想要获取到的服务内容。
[0008] 在一种可能的设计中,第一应用和第二应用为第一设备中的不同的应用程序,第三应用和第四应用为第二设备中的不同的应用程序,第一设备与第二设备不同,第一应用进程对应第一应用,第二应用进程对应第二应用,第三应用进程对应第三应用,第四应用进程对应第四应用。从而,本申请的卡片分享方法适用于在跨设备之间的卡片分享场景,有利于向不同用户提供卡片的显示渠道,且不同设备提供各自的卡片的资源支持,降低了不同设备之间的依赖性,实现了不同设备间的解耦。
[0009] 在一种可能的设计中,第一应用和第二应用为第一设备中的不同的应用程序,第三应用为第二设备中的不同的应用程序,第一设备与第二设备不同,第一应用进程对应第一应用,第二应用进程对应第二应用,第三应用进程对应第三应用,第四应用进程对应第四应用,第二应用与第四应用为同一个应用程序,第二应用进程与第四应用进程为同一个应用程序进程。从而,本申请的卡片分享方法适用于在跨设备之间的卡片分享场景,有利于向不同用户提供卡片的显示渠道,且不同设备中的卡片的UI显示由一个设备提供资源支持,确保了卡片能够在不同设备中连续显示。
[0010] 在一种可能的设计中,向第二应用进程发送第一消息;从第二应用进程接收第一绘制结果,第一绘制结果是第二应用进程基于第一卡片的界面资源渲染绘制得到的,第一卡片的界面资源是第二应用进程基于第一消息从资源包集合中调用得到的,资源包集合包括第一卡片中的第一卡片模块、第二卡片模块和第三卡片模块的界面资源以及第二卡片中的第四卡片模块和第五卡片模块的界面资源;基于第一绘制结果在第一应用的界面中显示第一卡片。由此,至少一个卡片可以嵌入到电子设备的任意一个应用程序中,从而以卡片的方式向用户显示服务内容,使得卡片具备丰富的UI显示渠道,能够满足不同的用户需求。
[0011] 在一种可能的设计中,第一消息包括:第一卡片的标识。从而,在第二应用进程确定出第一卡片以及第一卡片中的第一卡片模块和第二卡片模块的基础上,减少了第一应用进程与第二应用进程之间的数据传输量。
[0012] 在一种可能的设计中,第一消息包括:第一卡片的标识、第一卡片模块的标识和第二卡片模块的标识。从而,使得第二应用进程可以准确地确定出第一卡片中的第一卡片模块和第二卡片模块,并及时调用第一卡片中的第一卡片模块和第二卡片模块的界面资源,实现第一卡片的渲染绘制,使得第一应用能够快速显示第一卡片。
[0013] 在一种可能的设计中,第一消息还包括:第一地址;从第二应用进程接收发送到第一地址中的第一绘制结果,为提供第一绘制结果提供一种可能的实现方式。另外,通过地址分享的方式,不仅可以实现第一绘制结果的更新,还可以停止卡片的分享以回收服务。
[0014] 在一种可能的设计中,该方法还包括:在第一设备有资源包集合的情况下,向第二应用进程发送第一消息。从而,由于在第一设备没有资源包集合的情况下,第二应用进程便无法从资源包集合中调用第一卡片的界面资源,因此,有利于降低第一设备执行不必要的操作,节省第一设备的功耗,还使得第一设备可以及时下载资源包集合,以便快速实现卡片分享。
[0015] 在一种可能的设计中,向第四应用进程发送第三消息;从第四应用进程接收第二绘制结果,第二绘制结果是第四应用进程基于第一卡片模块的界面资源渲染绘制得到的,第一卡片模块的界面资源是第四应用进程基于第三消息从资源包集合中调用得到的,资源包集合包括第一卡片中的第一卡片模块、第二卡片模块和第三卡片模块的界面资源以及第二卡片中的第四卡片模块和第五卡片模块的界面资源;基于第二绘制结果在第三应用的界面中显示第一卡片模块。由此,卡片可以分享到同一设备中的不同应用程序中或者不同设备中,满足了不同场景的分享需求。
[0016] 在一种可能的设计中,第三消息包括:第一卡片的标识和第一卡片模块的标识。从而,使得第四应用进程能够准确地确定出第一卡片和第一卡片模块,并及时调用第一卡片中第一卡片模块的界面资源,实现第一卡片模块的渲染绘制,使得第三应用能够快速显示第一卡片模块。
[0017] 在一种可能的设计中,第三消息还包括:第二地址;从第四应用进程接收发送到第二地址中的第二绘制结果,为提供第二绘制结果提供一种可能的实现方式。另外,通过地址分享的方式,不仅可以实现第二绘制结果的更新,还可以停止卡片的分享以回收服务。
[0018] 在一种可能的设计中,该方法还包括:在确定第三应用进程能够显示卡片的情况下,向第四应用进程发送第三消息。从而,由于在第三应用进程不能够显示卡片的情况下,第三应用进程便无法向第四应用进程发送第三消息,因此,有利于降低第三应用进程所在的设备执行不必要的操作,节省第三应用进程所在的设备的功耗,且使得第三应用进程所在的设备可以及时向用户通知第一应用无法向第三应用分享卡片。
[0019] 在一种可能的设计中,资源包集合还包括第五应用的界面资源。从而,为第五应用实现界面显示提供了资源支持。
[0020] 在一种可能的设计中,第一应用的界面包括:第一区域和第二区域;第一卡片位于第一区域,第一应用页面位于第二区域,第一应用页面的界面资源是由第一应用提供的。从而,丰富了第一应用的界面,使得第一应用不仅可以显示一个或者多个卡片,还可以显示第一应用页面。对应的,第三应用等其他应用也可同时支持卡片和应用页面的显示。
[0021] 在一种可能的设计中,第一应用包括:主屏幕、负一屏、控制中心、通知中心或者智能家居应用中的任意一个。其中,第一应用可为第一设备中各种类型的应用程序,有利于丰富卡片显示和卡片分享的渠道。
[0022] 在一种可能的设计中,第三应用包括:主屏幕、负一屏、控制中心、通知中心或者智能家居应用中的任意一个。其中,第三应用可为第一设备或者第二设备中各种类型的应用程序,有利于丰富卡片显示和卡片分享的渠道。
[0023] 第二方面,本申请提供一种电子设备,包括:至少一个存储器和至少一个处理器;存储器用于存储程序指令;处理器用于调用存储器中的程序指令使得电子设备执行第一方面及第一方面任一种可能的设计中的卡片分享方法。
[0024] 第三方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器使得电子设备执行时实现第一方面及第一方面任一种可能的设计中的卡片分享方法。
[0025] 第四方面,本申请提供一种计算机程序产品,包括:执行指令,执行指令存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取执行指令,至少一个处理器执行执行指令使得电子设备实现第一方面及第一方面任一种可能的设计中的卡片分享方法。
[0026] 第五方面,本申请提供一种通信系统,包括:第一设备和第二设备;第一设备中安装有第一应用,第二设备安装有第三应用;第一应用,用于响应于用户的第一操作,显示第一应用的界面,第一应用的界面中显示有第一卡片,第一卡片包括第一卡片模块和第二卡片模块,第一卡片的界面资源是由第二应用提供的;第一应用,还用于响应于用户的第二操作,向第三应用发送第二消息,第二操作与第一卡片模块关联,第二消息用于指示第一卡片模块;第三应用,用于显示第三应用的界面,第三应用的界面中显示有第一卡片模块,第一卡片模块的界面资源是由第四应用提供的。
[0027] 上述第五面以及上述第五面的各可能的设计中所提供的网络设备,其有益效果可以参见上述第一方面和第一方面的各可能的实施方式所带来的有益效果,在此不再赘述。

附图说明

[0028] 图1为本申请一实施例提供的一种电子设备的结构示意图;
[0029] 图2a为本申请一实施例提供的一种电子设备的软件结构框图;
[0030] 图2b为本申请一实施例提供的一种卡片服务引擎的软件结构框图;
[0031] 图3a‑图3l为本申请一实施例提供的人机交互界面示意图;
[0032] 图4a‑图4b为本申请一实施例提供的人机交互界面示意图;
[0033] 图5a‑图5d为本申请一实施例提供的人机交互界面示意图;
[0034] 图6a‑图6d为本申请一实施例提供的人机交互界面示意图;
[0035] 图7为本申请一实施例提供的一种卡片的界面示意图;
[0036] 图8为本申请一实施例提供的一种卡片模块的代码示意图;
[0037] 图9a‑图9b为本申请一实施例提供的人机交互界面示意图;
[0038] 图10a‑图10b为本申请一实施例提供的人机交互界面示意图;
[0039] 图11为本申请一实施例示意的一种应用程序的代码示意图;
[0040] 图12a为本申请一实施例示意的一种场景软件架构示意图;
[0041] 图12b为本申请一实施例提供的一种卡片分享方法的信令交互图;
[0042] 图13a‑图13b为本申请一实施例示意的一种场景软件架构示意图;
[0043] 图13c为本申请一实施例提供的一种卡片分享方法的信令交互图;
[0044] 图14a‑图14b为本申请一实施例示意的一种场景软件架构示意图;
[0045] 图14c为本申请一实施例提供的一种卡片分享方法的信令交互图;
[0046] 图15a‑图15b为本申请一实施例示意的一种场景软件架构示意图;
[0047] 图15c为本申请一实施例提供的一种卡片分享方法的信令交互图。

具体实施方式

[0048] 本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,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可以是单个,也可以是多个。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0049] 本申请提供一种卡片分享方法,基于卡片可拆分为多个卡片模块以及卡片模块可重新组合,不仅在同设备的应用程序之间实现了卡片中的部分卡片模块或者整张卡片的分享,还在跨设备之间实现了卡片中的部分卡片模块或者整张卡片的分享,从而,基于用户意愿能够通过卡片中的卡片模块或者整张卡片,方便快捷地向用户提供用户想要得到的服务内容,尤其是服务内容中频繁使用或者操作繁琐等关键信息,满足了不同场景的分享需求,有利于提升用户体验感。
[0050] 例如,该电子设备可以是手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra‑mobile personal computer,UMPC)、上网本、个人数字助理(personaldigital assistant,PDA)、智能电视、智慧屏、高清电视、4K电视、智能音箱、智能投影仪等物联网(the internet of things,IOT)设备,本申请对电子设备的具体类型不作任何限制。
[0051] 下面以电子设备为手机为例,结合图1,介绍本申请涉及的电子设备。
[0052] 图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等。
[0053] 可以理解的是,本申请示意的结构并不构成对电子设备100的具体限定。在另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
[0054] 处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural‑network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
[0055] 其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
[0056] 处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
[0057] 在一些实施例中,处理器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)接口等。
[0058] I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器110可以包含多组I2C总线。处理器110可以通过不同的I2C总线接口分别耦合触摸传感器180K,充电器,闪光灯,摄像头193等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C总线接口通信,实现电子设备100的触摸功能。
[0059] I2S接口可以用于音频通信。在一些实施例中,处理器110可以包含多组I2S总线。处理器110可以通过I2S总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过I2S接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
[0060] PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过PCM总线接口耦合。在一些实施例中,音频模块170也可以通过PCM接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
[0061] UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过UART接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过UART接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
[0062] MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(display serial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现电子设备100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现电子设备100的显示功能。
[0063] GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
[0064] USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
[0065] 可以理解的是,本申请示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
[0066] 充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
[0067] 电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
[0068] 电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
[0069] 天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
[0070] 移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
[0071] 调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
[0072] 无线通信模块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转为电磁波辐射出去。
[0073] 在一些实施例中,电子设备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)。
[0074] 电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
[0075] 显示屏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的正整数。
[0076] 电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
[0077] ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
[0078] 摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal‑oxide‑semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
[0079] 数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
[0080] 视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
[0081] NPU为神经网络(neural‑network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
[0082] 外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
[0083] 内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
[0084] 电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
[0085] 音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
[0086] 扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170A收听音乐,或收听免提通话。
[0087] 受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
[0088] 麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。电子设备100可以设置至少一个麦克风170C。在另一些实施例中,电子设备100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
[0089] 耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
[0090] 压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,电子设备100根据压力传感器180A检测所述触摸操作强度。电子设备100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
[0091] 陀螺仪传感器180B可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180B检测电子设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备100的抖动,实现防抖。陀螺仪传感器180B还可以用于导航,体感游戏场景。
[0092] 气压传感器180C用于测量气压。在一些实施例中,电子设备100通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。
[0093] 磁传感器180D包括霍尔传感器。电子设备100可以利用磁传感器180D检测翻盖皮套的开合。在一些实施例中,当电子设备100是翻盖机时,电子设备100可以根据磁传感器180D检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
[0094] 加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
[0095] 距离传感器180F,用于测量距离。电子设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,电子设备100可以利用距离传感器180F测距以实现快速对焦。
[0096] 接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备100通过发光二极管向外发射红外光。电子设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定电子设备100附近有物体。当检测到不充分的反射光时,电子设备100可以确定电子设备
100附近没有物体。电子设备100可以利用接近光传感器180G检测用户手持电子设备100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180G也可用于皮套模式,口袋模式自动解锁与锁屏。
[0097] 环境光传感器180L用于感知环境光亮度。电子设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180G配合,检测电子设备100是否在口袋里,以防误触。
[0098] 指纹传感器180H用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
[0099] 温度传感器180J用于检测温度。在一些实施例中,电子设备100利用温度传感器180J检测的温度,执行温度处理策略。例如,当温度传感器180J上报的温度超过阈值,电子设备100执行降低位于温度传感器180J附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,电子设备100对电池142加热,以避免低温导致电子设备100异常关机。在其他一些实施例中,当温度低于又一阈值时,电子设备100对电池
142的输出电压执行升压,以避免低温导致的异常关机。
[0100] 触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
[0101] 骨传导传感器180M可以获取振动信号。在一些实施例中,骨传导传感器180M可以获取人体声部振动骨块的振动信号。骨传导传感器180M也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器180M也可以设置于耳机中,结合成骨传导耳机。音频模块170可以基于所述骨传导传感器180M获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。应用处理器可以基于所述骨传导传感器180M获取的血压跳动信号解析心率信息,实现心率检测功能。
[0102] 按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
[0103] 马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
[0104] 指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
[0105] 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分离。
[0106] 电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请以分层架构的Android系统为例,示例性说明电子设备100的软件结构。其中,本申请对电子设备的操作系统的类型不做限定。例如,Android系统、鸿蒙操作系统(Harmony Operating System,鸿蒙OS)等。
[0107] 图2a为本申请一实施例提供的一种电子设备的软件结构框图。如图2a所示,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
[0108] 应用程序层可以包括一系列应用程序包。
[0109] 如图2a所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,游戏,购物,出行,即时通信(如短信息),智能家居,设备控制等应用程序。
[0110] 其中,智能家居应用可用于对具有联网功能的家居设备进行控制或管理。例如,家居设备可以包括电灯、电视和空调。又如,家居设备还可以包括防盗门锁、音箱、扫地机器人、插座、体脂秤、台灯、空气净化器、电冰箱、洗衣机、热水器、微波炉、电饭锅、窗帘、风扇、电视、机顶盒、门窗等。
[0111] 另外,应用程序包还可以包括:主屏幕(即桌面),负一屏,控制中心,通知中心,卡片应用,卡片服务应用等应用程序。
[0112] 其中,负一屏,又可称为“‑1屏”,是指在电子设备的主屏幕向右滑动屏幕,直至滑动至最左侧分屏的用户界面(user interface,UI)。例如,负一屏可以用于放置一些快捷服务功能和通知消息,比如全局搜索、应用程序某个页面的快捷入口(付款码、微信等)、即时信息及提醒(快递信息、支出信息、通勤路况、打车出行信息、日程信息等)及关注动态(足球看台、篮球看台、股票信息等)等。控制中心为电子设备的下拉消息通知栏,即当用户在电子设备上进行向下操作时电子设备所显示出的用户界面。通知中心为电子设备的上拉消息通知栏,即当用户在电子设备上进行向上操作时电子设备所显示出的用户界面。卡片应用可参见下文提及的内容,此处不做赘述。卡片服务应用,用于提供卡片服务,以支持卡片的UI显示、卡片在同设备中各个应用程序之间的分享以及卡片在跨设备之间的分享等。
[0113] 应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
[0114] 如图2a所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器,卡片服务(Service)引擎等。
[0115] 窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
[0116] 内容提供器用于存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
[0117] 视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
[0118] 电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
[0119] 资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
[0120] 通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
[0121] 卡片服务引擎用于支撑卡片服务应用实现卡片的渲染展示,还用于负责事件、API等调用处理。
[0122] 图2b为本申请一实施例提供的一种卡片服务引擎的软件结构框图。如图2b所示,卡片服务引擎可以包括:前端框架、后端引擎和适配层(porting layout)。其中:
[0123] 前端框架包括:服务前端和Javascript Engine。
[0124] 后端引擎包括:component、API、component tree、element tree、render tree、eventmanager、focus、theme、channel、animation、layout、image provider和cardview。
[0125] 适配层用于对接如surface、event、vsync、life cycle等系统,以适配不同类型的操作系统的系统库。
[0126] 安卓运行时包括核心库和虚拟机。安卓运行时负责Android系统的调度和管理。
[0127] 核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是Android系统的核心库。
[0128] 应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
[0129] 系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGLES),2D图形引擎(例如:SGL)等。
[0130] 表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
[0131] 媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
[0132] 三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
[0133] 2D图形引擎是2D绘图的绘图引擎。
[0134] 内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
[0135] 下面结合利用智能音箱播放声音的场景,示例性说明电子设备100的软件和硬件的工作流程。
[0136] 当触摸传感器180K接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标,触摸操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别该输入事件所对应的控件。以该触摸操作是触摸单击操作,该单击操作所对应的控件为智能音箱图标的控件为例,智能音箱应用调用应用框架层的接口,启动智能音箱应用,进而通过调用内核层启动音频驱动,通过扬声器170A将音频电信号转换成声音信号。
[0137] 可以理解的是,本申请示意的结构并不构成对电子设备100的具体限定。在另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
[0138] 基于前述描述,电子设备可以将卡片或者卡片中的卡片模块,分享给电子设备的其他应用程序,实现同设备的不同应用程序之间的卡片分享,或者分享给其他电子设备,实现在跨设备之间的卡片分享。
[0139] 下面,结合场景一和场景二,对任意一张卡片分享的实现过程进行详细说明。
[0140] 场景一
[0141] 场景一中,本申请将第一设备中的第一应用所显示的第一卡片分享到第一设备中的第二应用。图3a‑图3l为本申请一实施例提供的人机交互界面示意图。以第一设备为手机,第一应用为手机中的智能家居应用,第一卡片对应于智能家居应用推送的播放音乐服务,第二应用为手机的负一屏为例。
[0142] 其中,第一卡片包括:卡片模块1、卡片模块2、卡片模块3、卡片模块4、卡片模块5和卡片模块6。其中,卡片模块1为不可重新组合的。卡片模块2、卡片模块3、卡片模块4、卡片模块5和卡片模块6均为可重新组合的。
[0143] 卡片模块1,用于表示卡片对应的服务为智能音箱应用推送的播放音乐服务,如采用智能音箱图标和文字“HUAWEI Sound X”表示。
[0144] 卡片模块2,用于表示智能音箱的蓝牙连接功能,如采用文字“在线”和蓝牙图标的操作按钮表示。
[0145] 卡片模块3,用于表示智能音箱的当前播放歌曲名称、切换歌曲和调节音量大小的功能,如采用歌曲名称“半岛铁盒”、上一首图标的操作按钮、播放/暂停图标的操作按钮和下一首图标的操作按钮、文字“音量”、音量图标、用于调节音量的滑动操作按钮以及文字“68%”表示。
[0146] 卡片模块4,用于表示智能音箱的音乐有声功能,如采用文字“音乐有声”和耳机图标的操作按钮表示。
[0147] 卡片模块5,用于表示智能音箱的语音技能功能,如采用文字“语音技能”和学习图标的操作按钮表示。
[0148] 卡片模块6,用于表示智能音箱的立体声功能,如采用文字“立体声”和立体声图标的操作按钮表示。
[0149] 请参考图3a‑图3l,本申请的卡片分享方法可以包括:步骤11‑步骤15。
[0150] 步骤11:如果用户想要启动智能家居应用中的第一卡片,用户可以在如图3b所示的第一设备的显示屏上点击智能家居应用的图标,手机的显示屏显示如图3c所示的界面,用户点击界面上第一卡片的图标,其中,将“HUAWEI Sound X”和智能音箱图标共同设置在一个圆角矩形框来表示第一卡片的图标,手机的显示屏显示如图3d所示的第一卡片的UI,以便向用户提供第一卡片的服务内容。
[0151] 步骤12:如果用户想要查看第一卡片,用户可在如图3d所示的第一卡片的空白处进行长按操作,则手机的显示屏显示如图3e所示的界面,该界面上的卡片模块2、卡片模块3、卡片模块4、卡片模块5和卡片模块6的右下方均显示一个选项,该选项用于指示对应的卡片模块是否被选中进行分享,如方框图标的操作按钮。本文提及的长按操作可以理解为用户执行操作的时长满足预设时长所对应的操作。
[0152] 步骤13:用户可以在如图3e所示的界面上勾选在线和语音技能的服务功能,用户可以分别点击卡片模块2显示的方框图标和卡片模块5显示的方框图标,则卡片模块2对应的方框图标和卡片模块5对应的方框图标中均会出现如图3f所示的对勾图标。其中,该对勾图标用于表示卡片模块被选择且待分享。用户可继续点击文字“分享”的操作按钮,则手机的显示屏跳转至如图3g所示的页面。
[0153] 步骤14:如图3g所示,该页面显示有预览区域、跨设备分享选项以及本设备分享选项。
[0154] 其中,预览区域中显示有卡片模块1、卡片模块2和卡片模块5。卡片模块1采用智能音箱图标和文字“HUAWEI Sound X”进行表示,卡片模块2采用和蓝牙图标的操作按钮进行表示,卡片模块5采用学习图标的操作按钮进行表示。
[0155] 其中,跨设备分享选项中包括:车载图标、电视图标、手机图标、平板电脑图标、手表图标和笔记本图标。车载图标对应于唯一的车载设备,电视图标对应电视机,手机图标对应手机,平板电脑图标对应平板电脑,手表图标对应手表,笔记本图标对应笔记本。
[0156] 其中,本设备分享选项中包括:文字“添加到桌面”的操作按钮、文字“添加到负一屏”的操作按钮、“添加到控制中心”的操作按钮和文字“添加到通知中心”的操作按钮。
[0157] 其中,本申请对该页面中预览区域、跨设备分享选项和本设备分享选项各自的形状大小、位置布局、表示内容、设备数量和设备类型等参数不做限定。需要说明的是,该页面不限于图3g所示的表示方式。
[0158] 步骤15:如果用户想要将第一卡片分享到负一屏,用户在本设备分享选项中的文字“添加到负一屏”的操作按钮上进行点击操作,则手机的负一屏便显示如图3h所示的包括有卡片模块1、卡片模块2和卡片模块5的卡片。
[0159] 由此,负一屏从如图3a所示的界面变为如图3h所示的界面,该界面上增加了包括有卡片模块1、卡片模块2和卡片模块5的卡片,该卡片的UI与预览区域显示的内容的布局相同。另外,该卡片的UI也可以与预览区域显示的内容的布局不同。
[0160] 其中,用户在如图3b所示的显示屏上向右滑动操作,手机的显示屏便显示如图3a所示的界面,即手机的负一屏在卡片未分享之前的界面。需要说明的是,负一屏上显示的客厅的电视的卡片,可以按照与步骤11‑步骤15的相似描述,从智能家居应用分享到负一屏,此处不做赘述。
[0161] 在一些实施例中,手机的负一屏可能未开启。此时,用户在如图3g所示的界面上点击文字“添加到负一屏”的操作按钮,手机的显示屏可显示出图3i所示的界面,该界面上可以弹出一个圆角矩形框,该圆角矩形框中显示有文字“未打开负一屏”以及“设置”的操作按钮,使得用户及时获知由于负一屏未打开而无法将第一卡片分享到负一屏。
[0162] 用户可以点击“设置”的操作按钮,手机的显示屏便显示“更多设置”的界面,该界面上显示有“桌面布局”的设置操作按钮、“摇一摇”的开关操作按钮、“图标角标”的开关操作按钮、“循环滑动”的开关操作按钮和“HiBoard(负一屏)”的开关操作按钮,用户可以点击“HiBoard(负一屏)”的开关操作按钮,将HiBoard(负一屏)打开,如图3k所示。用户点击如图3k所示的界面上的返回按钮,该返回按钮采用如位于左上角的向左箭头进行表示。手机的显示屏返回到如图3l所示的界面,即图3g所示的界面。
[0163] 用户在如图3l所示的界面上点击文字“添加到负一屏”的操作按钮,手机的显示屏可显示出图3h所示的界面,使得包括有卡片模块1、卡片模块2和卡片模块5的卡片可以分享到手机的负一屏。
[0164] 综上,卡片或者卡片中的卡片模块能够在同一设备的不同应用程序之间实现分享,有利于通过同一设备的不同显示渠道向用户提供卡片,方便用户快速查找卡片,避免了由于服务内容的控制入口比较深而导致用户操作繁琐且复杂的问题,使得用户方便快捷地查找到卡片对应的服务内容,简化了用户的复杂操作,满足了用户高频操作的诉求,提升了用户的操作体验感。
[0165] 场景二
[0166] 场景二中,本申请将第一设备中的第一应用所显示的第一卡片分享到第二设备中的第三应用。图4a‑图4b为本申请一实施例提供的人机交互界面示意图。以第一设备为手机,第一应用为手机中的智能家居应用,第一卡片对应于智能家居应用推送的播放音乐服务,第二设备为车载设备,第三应用为车载设备的主屏幕为例。其中,第一卡片的具体内容可参见图3a‑图3l所示描述,此处不做赘述。
[0167] 请参考图4a‑图4b,本申请的卡片分享方法可以包括:步骤21‑步骤25。其中,步骤21‑步骤24分别与图3a‑图3l中的步骤11‑步骤14所描述的内容,此处不做赘述。
[0168] 步骤25:如果用户想要将第一卡片分享到车载设备,如图4a所示,用户点击跨设备分享选项中的车载图标的操作按钮,则车载设备的主屏幕便显示如图4b所示的包括有卡片模块1、卡片模块2和卡片模块5的卡片。
[0169] 由此,车载设备的主屏幕新增了包括有卡片模块1、卡片模块2和卡片模块5的卡片,该卡片的UI与预览区域显示的内容的布局不同。另外,该卡片的UI也可以与预览区域显示的内容的布局相同。
[0170] 综上,卡片或者卡片中的卡片模块能够在不同设备之间实现分享,有利于通过不同设备的显示渠道向用户提供服务内容,使得多个用户通过卡片的形式同时具备控制诉求,如家庭成员或者客人对家中设备具备临时的控制诉求等,满足了不同场景的分享需求,提升了用户的操作体验感。
[0171] 需要说明的是,场景一和场景二中,本申请包括但不限于上述内容提及的用户操作、界面布局、界面大小、显示内容等参数。另外,不同类型的设备,第一卡片的UI可以相同,也可以不同,本申请对此不做限定。
[0172] 基于场景一和场景二的描述,如果用户在第一应用中未找到第一卡片,用户可以从如云端下载市场等服务器中下载安装第一卡片,或者从第一设备的本地存储中下载安装第一卡片,本申请对此不做限定。
[0173] 下面以智能家居应用为例,示例性说明智能家居应用下载第一卡片的实现过程。
[0174] 图5a‑图5d为本申请一实施例提供的人机交互界面示意图。以第一设备为手机,第一应用为手机中的智能家居应用,第一卡片对应于智能家居应用推送的播放音乐服务为例。
[0175] 请参见图5a‑图5d,如果用户执行步骤11或步骤21,手机的显示屏显示如图5a所示的界面,而不是如图3c所示的界面,用户需要从智能家居应用中下载第一卡片。用户可以点击添加操作按钮,手机的显示屏显示如图5b所示的界面。其中,该界面上包括已添加卡片选项和所有卡片选项。已添加卡片选项中包括:主卧的台灯的卡片、客厅的空调的卡片、插头的卡片、客厅的电视的卡片和空气净化器的卡片。所有卡片中包括:第一卡片和体脂秤的卡片。需要说明的是,已添加卡片选项中的卡片也可以参见图5a‑图5d所示的描述添加到智能家居应用中,此处不做赘述。
[0176] 如图5b所示,用户可点击第一卡片上的添加操作按钮,手机的显示屏显示出如图5c所示的界面,该界面中已添加卡片选项中新增了第一卡片。用户可点击一个选项,该选项用于表示已完成添加卡片,如图5c所示的对勾图标,手机的显示屏显示出如图5d所示的界面,即图3c所示的界面,使得第一卡片添加到智能家居应用中,方便用户实现第一卡片的分享。
[0177] 在第一卡片添加到智能家居应用的过程中,智能家居应用不仅可以获取到第一卡片的卡片名称,还可以获取到第一卡片中全部卡片模块的卡片模块编号,即卡片模块1的卡片模块编号、卡片模块2的卡片模块编号、卡片模块3的卡片模块编号、卡片模块4的卡片模块编号、卡片模块5的卡片模块编号和卡片模块6的卡片模块编号。从而使得用户将第一卡片中的全部卡片模块分享给第二应用或者第二设备。
[0178] 在一些实施例中,用户还可以选择将第一卡片中的卡片模块添加到智能家居应用中,以便灵活显示单一卡片的UI,满足不同的显示需求。另外,用户还可以选择将第一卡片中的卡片模块与第二卡片中的卡片模块组合添加到智能家居应用中,有利于灵活显示不同卡片的UI,满足不同的显示需求。
[0179] 下面继续以智能家居应用为例,示例性说明智能家居应用下载第一卡片的实现过程。
[0180] 图6a‑图6d为本申请一实施例提供的人机交互界面示意图。以第一设备为手机,第一应用为手机中的智能家居应用,第一卡片对应于智能家居应用推送的播放音乐服务为例。
[0181] 请参见图6a‑图6d,用户在手机的显示屏所显示的如图5a所示的界面上点击添加操作按钮,手机的显示屏显示如图6a所示的界面。用户点击第一卡片上的一个选项,该选项用于展示第一卡片中的卡片模块,如图6a所示上的展开操作按钮,手机的显示屏显示如图6b所示的界面,该界面上包括卡片模块2、卡片模块4、卡片模块5和卡片模块6,且该界面上的卡片模块2、卡片模块4、卡片模块5和卡片模块6的右下方均显示一个选项,该选项用于指示对应的卡片模块是否被选中,如方框图标的操作按钮。
[0182] 用户可以在如图6b所示的界面上分别点击卡片模块2显示的方框图标和卡片模块5显示的方框图标,则卡片模块2显示的方框图标和卡片模块5显示的方框图标中均会出现如图6b所示的对勾图标。其中,该对勾图标用于表示卡片模块被选择。
[0183] 如图6c所示,用户可点击第一卡片上的添加操作按钮,手机的显示屏显示出如图6c所示的界面,该界面中已添加卡片选项中新增了第一卡片,且该界面上还显示有第一卡片中的卡片模块2对应的图标和卡片模块5对应的图标。用户可点击一个选项,该选项用于表示已完成添加卡片,如图6c所示的对勾图标,手机的显示屏显示出如图6d所示的界面,使得第一卡片添加到智能家居应用中,方便用户实现第一卡片的分享。
[0184] 在第一卡片添加到智能家居应用的过程中,智能家居应用不仅可以获取到第一卡片的卡片名称,还可以获取到第一卡片中卡片模块2的卡片模块编号和卡片模块5的卡片模块编号。从而使得用户将第一卡片中的卡片模块分享2和卡片模块5分享给第二应用或者第二设备。
[0185] 综上,至少一个卡片可以嵌入到电子设备的任意一个应用程序中,从而以卡片的方式向用户显示服务内容,使得卡片具备丰富的UI显示渠道,能够满足不同的用户需求。
[0186] 本申请中,卡片(card)是一种嵌入式服务形态,可嵌入在应用进程或者操作系统中,直观地向用户展示关键的内容(如关于同一主题的图片、文本、视频、链接等),以满足用户需求。
[0187] 一般情况下,一张卡片对应于应用程序中的一个服务,如购物应用中订单物流服务,出行应用中票务信息服务,智能音箱应用中播放声音服务等。每张卡片可拆分为对应的多个卡片模块(complication),即卡片可拆分。
[0188] 其中,卡片模块是卡片重新组合的最小单元,或者说,卡片模块是卡片分享的最小单元。可以理解为,卡片中的每个卡片模块均为可重新组合的,以便实现卡片中至少一个卡片模块的重新组合。或者,卡片中的部分卡片模块为可重新组合的,且剩余卡片模块为不可重新组合的,以便实现剩余卡片模块和部分卡片模块中的至少一个卡片模块的重新组合。
[0189] 一个卡片模块可由多个组件组合。一个组件可以包括但不限于为信息、图片、文本、操作按钮、音视频、链接等。组合的组件不同,则对应的卡片模块显示不同的UI,使得不同卡片通过包括不同的卡片模块以实现不同的UI显示。从而,不仅方便每张卡片由多个卡片模块实现存储和管理,且可支持每张卡片中部分或者全部卡片模块的UI显示,有利于快速实现和更新每张卡片的UI显示。
[0190] 其中,每张卡片所包括的卡片模块可以是应用程序的服务提供商通过将每个服务拆分为对应的卡片模块,并下发给电子设备的卡片应用进程,也可以是应用程序的服务提供商向卡片服务应用进程发送服务内容,由卡片服务应用进程基于服务内容将每个服务拆分为对应的卡片模块,并下发给电子设备的卡片应用进程。卡片服务应用进程和卡片应用进程的具体内容可参见下文描述内容,此处不做赘述。
[0191] 其中,每张卡片具有唯一的标识,即卡片身份标识(identity document,ID),如卡片名称或者卡片编号等表示形式。为了便于说明,本申请中以卡片的标识为卡片名称为例进行示意。每张卡片中所包括的卡片模块均与该卡片的卡片名称相关联,以便电子设备基于卡片名称来存储每张卡片所包括的卡片模块。且每个卡片模块具有唯一的标识,如卡片模块编号,且该标识可以如采用二进制数、字符串等表示形式。为了便于说明,本申请中以卡片模块的标识为卡片模块编号为例进行示意。
[0192] 在卡片模块下发给电子设备时,卡片名称也同时下发给电子设备,以便快速确定与卡片名称对应的卡片以及该卡片中的全部卡片模块,或者,卡片名称和卡片模块编号也同时下发给电子设备,以便快速确定与卡片名称对应的卡片以及该卡片中的卡片模块。
[0193] 其中,本申请对卡片的视觉样式不做限定。此处提及的视觉样式,又称“样式”,是指事物呈现给人视觉上的感受,包括事物的形状、结构、大小、色彩、动静等。例如,电子设备显示卡片时,卡片的视觉样式可以包括卡片的形状(如矩形)、颜色(如白色、黑色、彩色等)、尺寸、卡片模块的位置布局、卡片模块的形状等。
[0194] 在一个具体实施例中,以如图3d所示的第一卡片为例,如图7所示,该第一卡片包括:卡片模块1、卡片模块2、卡片模块3、卡片模块4、卡片模块5和卡片模块6(图7中以对应的数字分别对6个卡片模块进行示意)。其中:
[0195] 卡片模块1,对应于图8所示的关于智能音箱图标和文字“HUAWEI Sound X”的代码。
[0196] 卡片模块2,对应于图8所示的关于文字“在线”和蓝牙图标的操作按钮的代码。
[0197] 卡片模块4,对应于图8所示的关于文字“音乐有声”和耳机图标的操作按钮的代码。
[0198] 卡片模块5,对应于图8所示的关于文字“语音技能”和学习图标的操作按钮的代码。
[0199] 需要说明的是,任意一张卡片可以仅包括可重新组合的卡片模块。例如,第一卡片包括第一卡片模块和第二卡片模块,第一卡片模块和第二卡片模块可以均可重新组合的卡片模块。另外,任意一张卡片可以包括可重新组合的卡片模块和不可重新组合的卡片模块。例如,第一卡片包括第一卡片模块、第二卡片模块和第三卡片模块,第一卡片模块和第二卡片模块可以均可重新组合的卡片模块,第三卡片模块可以为不可重新组合的卡片模块。本申请提及的重新组合可以理解为用户可进行选择及分享。
[0200] 另外,每张卡片可以关联该卡片对应的一个或者多个UI,方便用户通过在该卡片上执行操作可以实现跳转至该卡片对应的应用程序的页面的功能。
[0201] 一方面,操作按钮还可以链接到操作按钮对应的应用程序的某个页面。例如,用户点击图9a所示的第一卡片中歌曲名称“半岛铁盒”操作按钮,则手机的显示屏可以跳转至歌曲名称“半岛铁盒”的歌词页面,该歌词页面中显示有歌曲名称“半岛铁盒”的歌词的部分内容、上一首图标的操作按钮、播放/暂停图标的操作按钮和下一首图标的操作按钮、文字“音量”和表示音量的“68%”、用于调节音量的滑动操作按钮等。
[0202] 另一方面,卡片自身也可以链接到如卡片应用的页面。例如,如图10a所示,用户通过点击第一卡片上一选项,该选项用于表示关闭第一卡片的显示,则手机的显示屏显示如图10b所示的界面,即图3c所示的界面。
[0203] 请参见图10b,如图10b所示,该界面中包括:智能家居应用的应用页面101、6个卡片(102‑107)的UI以及1个选项108,该选项108用于添加卡片。其中,6个卡片的内容可参见前文描述,此处不做赘述。为了便于说明,6个卡片(102‑107)以第一卡片和第二卡片为例进行示意。其中:
[0204] 智能家居应用的应用页面101对应于如图11所示的应用页面的代码。从而,使得智能家居应用实现应用页面的UI显示。
[0205] 第一卡片的UI对应于如图11所示的第一卡片的代码,该代码中嵌入第一卡片的卡片标签“card src”,该卡片标签中携带有第一卡片的卡片名称“fa.soundx.soundXcard”。从而,使得智能家居应用实现第一卡片的UI显示。
[0206] 第二卡片的UI对应于如图11所示的第二卡片的代码,该代码中嵌入第二卡片的卡片标签“card src”,该卡片标签中携带有第二卡片的卡片名称“fa.aircondition.airconditioncard”。从而,使得智能家居应用实现第二卡片的UI显示。
[0207] 1个选项108的UI对应于如图11所示的卡槽的代码,该代码中嵌入第二卡片的卡片标签“card”。从而,使得智能家居应用实现对新增卡片(如重新组合卡片模块后的卡片)的UI显示。
[0208] 请参见图12a,以将第一卡片嵌入到第一设备的第一应用中并实现第一卡片的显示为例。图12a为本申请一实施例示意的一种场景软件架构示意图。如图12a所示,第一设备中的第一卡片服务模块可以包括:第一应用进程、第一卡片服务应用进程以及资源包集合。其中,第一卡片服务模块位于图2a中的应用程序层。
[0209] 需要说明的是,进程(Process)是操作系统进行资源分配和调度的基本单位,是操作系统结构的基础。即,操作系统在运行任意一个应用程序时,就会创建一个进程,分配一个空间。对应的,第一应用进程对应于第一设备中的第一应用,第一卡片服务应用进程对应于第一设备中的第一卡片服务应用。且本申请对第一设备中的应用的具体实现类型不做限定。另外,本申请提及的应用程序又可称为应用。
[0210] 第一应用进程,用于提供卡片。
[0211] 第一应用进程包括:资源包1、卡片标签1和卡片容器1。其中:
[0212] 资源包1,用于提供第一应用的应用页面的UI显示和逻辑执行的代码,即界面资源。资源包1中包括与第一应用的应用页面对应的JS Bundle和Resource,JS Bundle用于实现第一应用的应用页面1的逻辑执行和UI显示,Resource用于向JS Bundle提供第一应用的应用页面1的UI显示中的视频、图片等数据来源。此处的第一应用的应用页面1指的是除了卡片显示的UI之外的其他UI,即通过资源包1中的JS Bundle所显示的UI。
[0213] 卡片标签1,用于嵌入不同的卡片或者卡片模块。卡片标签1中携带有卡片的卡片名称,以便第一应用进程基于卡片标签1解析加载与卡片名称对应的卡片,且该卡片包括至少一个卡片模块。例如,第一应用进程中的代码有:,card表示卡片标签1,src表示卡片名称,则第一应用进程可以加载并显示包括全部卡片模块的卡片。
[0214] 基于前述描述,第一应用可以同时实现应用页面1和至少一个卡片的显示UI。如果第一应用可实现第一卡片的显示UI和第二卡片的显示UI,则如图11所示,在第一应用的应用页面1的UI显示和逻辑执行的代码中会嵌入第一卡片的卡片标签1和第二卡片的卡片标签1,其中,第一卡片的卡片标签1中携带有第一卡片的卡片名称“fa.soundx.soundXcard”,第二卡片的卡片标签1中携带有第二卡片的卡片名称“fa.aircondition.airconditioncard”。
[0215] 另外,第一应用进程还可以包括未携带有卡片名称的卡片标签2,以便第一应用进程将卡片标签2作为占位符,用于加载显示重新组合卡片模块后的卡片。本文提及的重新组合卡片模块后的卡片可以理解为包括部分卡片模块的卡片,或者通过将重新组合后包括全部卡片模块的卡片。例如,第一应用进程中的代码有:,card表示卡片标签2,且无卡片名称src,则第一应用进程可以加载并显示者重新组合卡片模块后的卡片。
[0216] 卡片容器1,用于存放绘制结果(图12a中以一个卡片进行示意),绘制结果可以理解为一帧一帧的图像,用来形成卡片的显示UI。一般情况下,每张卡片的界面资源存储在卡片容器1中的不同存储空间。在一些实施例中,每张卡片对应一个地址1,以便第一卡片服务应用进程按照地址1,将绘制结果传输给卡片容器1中对应的存储空间,使得第一应用能够实现卡片的UI显示,不仅可以实现静态图片形式的卡片的显示,还可以实现较为复杂的动态形式的卡片的显示。其中,本申请对地址1的具体实现形式不做限定。例如,地址1可以为用于卡片的存储空间的起始地址。
[0217] 基于前述描述,第一应用除了实现应用页面1和至少一个卡片的显示UI之外,还可以同时为重新组合卡片模块后的卡片预留至少一个卡槽,以便实现重新组合卡片模块后的卡片的显示UI。如果第一应用除了实现第一卡片的显示UI和第二卡片的显示UI之外还可显示重新组合卡片模块后的卡片,则如图11所示,在第一应用的应用页面1的UI显示和逻辑执行的代码中会嵌入卡片标签2、第一卡片的卡片标签1和第二卡片的卡片标签1,其中,卡片标签2用于预留卡槽来显示重新组合卡片模块后的卡片,第一卡片的卡片标签1中携带有第一卡片的卡片名称“fa.soundx.soundXcard”,第二卡片的卡片标签1中携带有第二卡片的卡片名称“fa.aircondition.airconditioncard”。
[0218] 卡片应用进程,即从资源包集合中加载资源时对应的进程称之为卡片应用进程。资源包集合,用于预先存储各张卡片的UI显示和逻辑执行的代码,通常基于每张卡片的卡片名称来存储该卡片的全部卡片模块的UI显示和逻辑执行的代码。
[0219] 从而,第一卡片服务应用进程可从卡片应用进程中加载卡片的UI显示和逻辑执行的代码,以实现第一应用进程和第二应用进程的卡片UI显示,还使得卡片应用可从卡片应用进程中加载卡片的UI显示和逻辑执行的代码,以便卡片应用实现卡片的UI显示。其中,本文提及的卡片应用为关于卡片的应用程序。以卡片对应于智能家居应用推送的播放音乐服务为例,则卡片应用可以为智能家居应用或者智能音箱应用。
[0220] 对应的,资源包集合中包括:至少一个资源包2(图12a中以第一卡片的资源包2和第二卡片的资源包2进行示意),每个资源包2对应一张卡片的UI显示和逻辑执行的代码。例如,第一卡片的资源包2可以实现第一卡片中的6个卡片模块的UI显示。针对任意一张卡片,资源包2中包括与该卡片中各个卡片模块对应的JS Bundle和Resource,JS Bundle用于实现卡片中各个卡片模块的UI显示和逻辑执行,Resource用于向JS Bundle提供卡片UI显示的视频、图片等数据来源。
[0221] 另外,资源包集合还用于存储卡片应用的应用页面的UI显示和逻辑执行的代码,使得卡片应用可从卡片应用进程中加载应用页面的UI显示和逻辑执行的代码,以实现卡片应用中除了卡片UI显示之外的其他UI。此处的卡片应用的应用页面指的是除了卡片显示的UI之外的其他UI,即通过资源包3中的JS Bundle所显示的UI。
[0222] 对应的,资源包集合中还可以包括:至少一个资源包3(图12a中以一个资源包3进行示意),每个资源包3对应一张卡片对应的卡片应用的应用页面的UI显示和逻辑执行的代码。针对任意一张卡片,资源包3中包括与该卡片对应的卡片应用的应用页面对应的JS Bundle和Resource,JS Bundle用于实现与该卡片对应的卡片应用的应用页面的UI显示和逻辑执行,Resource用于向JS Bundle提供与该卡片对应的卡片应用的应用页面UI显示的视频、图片等数据源。
[0223] 第一卡片服务应用进程,用于提供驱动卡片的UI显示和逻辑执行的服务,即第一卡片服务应用进程从卡片应用进程中加载JS Bundle,并基于JS Bundle绘制渲染得到绘制结果1。从而,第一卡片服务应用进程将绘制结果1传输给第一应用进程或者第二应用进程,以实现卡片的UI显示,即第一卡片服务应用进程与第一应用进程或者第一卡片服务应用进程与第二应用进程,通过共享地址来实现卡片的UI显示。其中,第一卡片服务应用进程对应于第一设备中卡片服务应用。
[0224] 本申请中,在第一应用进程与第一卡片服务应用进程之间可以建立进程间通信(inter‑process communication,IPC)连接,以便实现第一卡片服务应用进程与第一应用进程之间的相互通信。
[0225] 下面,基于图12a实施例的描述,以图12a中的第一应用进程、卡片应用进程和第一卡片服务应用进程为执行主体,对本申请的第一卡片显示的实现过程进行详细说明。
[0226] 图12b为本申请一实施例提供的一种卡片分享方法的信令交互图。如图12b所示,本申请的卡片分享方法可以包括:步骤S101‑S117。
[0227] 如果用户想要启动第一应用中的第一卡片,用户可以在第一应用的页面上执行如点击、长按、滑动等第一操作。其中,第一卡片为第一应用中的任意一个卡片。本文提及的长按操作可以理解为用户执行操作的时长满足预设时长所对应的操作。
[0228] S101、第一应用进程响应于用户的第一操作,根据第一卡片的卡片标签1中的卡片名称查询第一设备的卡片服务模块中是否有资源包集合。其中,该资源包集合中存储有与卡片名称对应的第一卡片。
[0229] 本领域技术人员可以理解,在电子设备中的任意一个进程安装后,该进程会在电子设备的操作系统中存储广播信息,该广播信息用于表示该进程已安装。因此,第一应用进程可以通过确定是否能够查找到该广播信息,来判断卡片应用进程是否安装。若未查找到该广播信息,则第一应用进程确定第一设备没有卡片应用进程对应的资源包集合,并执行步骤S102。若查找到该广播信息,则第一应用进程确定第一设备有卡片应用进程对应的资源包集合,并执行步骤S103‑S108。
[0230] S102、第一应用进程不作处理,且无法显示第一卡片。可以理解为,第一应用无法嵌入第一卡片。
[0231] S103、第一应用进程解析第一卡片的卡片标签1得到第一卡片的卡片名称,并在第一应用进程与第一卡片服务应用进程之间建立IPC连接。
[0232] 在一些实施例中,第一卡片服务应用进程在无卡片显示时默认处于不启动状态,则S103中第一应用程序可以启动第一卡片服务应用进程,从而可以降低资源开销。其中,第一应用程序与第一卡片服务应用进程之间可以预先建立绑定关系,以便第一应用进程基于该绑定关系,启动第一卡片服务应用进程,即第一应用进程可以拉起第一卡片服务应用进程。
[0233] 在另一些实施例中,第一卡片服务应用进程在无卡片显示时默认处于启动状态,则S103中第一应用进程无需启动第一卡片服务应用进程。
[0234] 需要说明的是,在第一应用进程与第一卡片服务应用进程之间的IPC连接也可以由第一设备的操作系统建立,本申请对此不做限定。步骤103为可选地,即在第一应用进程与第一卡片服务应用进程之间的IPC连接可以预先建立好的。
[0235] S104、第一应用进程通过第一应用进程与第一卡片服务应用进程之间的IPC连接,向第一卡片服务应用进程发送第一卡片的卡片名称和地址1。
[0236] S105、第一卡片服务应用进程确定出与第一卡片的卡片名称相关联的至少一个卡片模块,并通过卡片应用进程从资源包集合中加载与至少一个卡片模块对应的JS Bundle。其中,本文涉及的JS Bundle可以为一个JS Bundle,也可以为多个JS Bundle,本申请对此不做限定。
[0237] S106、第一卡片服务应用进程基于与至少一个卡片模块对应的JS Bundle,绘制渲染得到第一绘制结果。其中,第一绘制结果可以理解为一帧一帧的图像,用来形成第一卡片的UI。
[0238] S107、第一卡片服务应用进程通过第一卡片服务应用进程与第一应用进程之间的IPC连接,按照地址1,向第一应用进程的卡片容器1中发送第一绘制结果。
[0239] S108、第一应用进程基于卡片容器1的地址1中的第一绘制结果显示出第一卡片。从而,使得第一设备以卡片的形式将应用服务提供商推送的服务内容呈现给用户,以便根据不同服务场景向用户推送不同的卡片。另外,卡片在每个应用程序中的显示UI可以相同,也可以不同,本申请对此不做限定。
[0240] 由此,场景一中的步骤11和场景二中的步骤21均可采用上述描述内容,实现第一卡片的UI显示。
[0241] 本申请中,用户可以将第一卡片中的卡片模块分享到第一设备中的第二应用中。下面,对本申请的在同设备的不同应用之间的卡片分享方法的具体实现方式进行描述。
[0242] 请参见图13a‑图13c,以卡片从第一设备的第一应用分享到第一设备的第二应用为例。图13a和图13b为本申请一实施例提供的一种场景软件架构示意图。如图13a和图13b所示,第一设备中的第一卡片服务模块可以包括:第一应用进程、第一卡片服务应用进程、第二应用进程以及资源包集合。其中,第一应用进程、第一卡片服务应用进程以及资源包集合可参见图12a中的描述,此处不做赘述。
[0243] 第二应用进程,用于接收并显示分享的卡片。
[0244] 第二应用进程包括:资源包4、卡片标签2和卡片容器2。其中:
[0245] 资源包4,用于提供第二应用的应用页面2的UI显示和逻辑执行的代码。资源包4中包括与第二应用的应用页面2对应的JS Bundle和Resource,JS Bundle用于实现第二应用的应用页面2的逻辑执行和UI显示,Resource用于向JS Bundle提供第二应用的应用页面2的UI显示中的视频、图片等数据来源。此处的第二应用的应用页面2指的是除了卡片显示的UI之外的其他UI,即通过资源包4中的JS Bundle所显示的UI。
[0246] 卡片标签2,用于嵌入不同的卡片或者卡片模块。卡片标签2中未携带有卡片名称,以便第二应用进程将卡片标签2作为占位符,用于加载显示重新组合卡片模块后的卡片。例如,第二应用进程中的代码有:,card表示卡片标签2,则第二应用进程可以加载并显示重新组合卡片模块后的卡片。
[0247] 基于前述描述,第二应用在实现应用页面2的UI显示的同时,可以为重新组合卡片模块后的卡片预留至少一个卡槽,以便实现重新组合卡片模块后的卡片的显示UI,具体实现过程可参见图12a实施例中应用页面1的显示UI和卡片标签2的描述,此处不做赘述。
[0248] 另外,第二应用进程还可以包括携带有卡片名称的卡片标签1,以便第二应用进程基于卡片标签1解析加载与卡片名称对应的卡片,且该卡片包括至少一个卡片模块。例如,第二应用进程中的代码有:,card表示卡片标签1,src表示卡片名称,则第二应用进程可以加载并显示包括全部卡片模块的卡片。
[0249] 卡片容器2,用于存放绘制结果(图13b中以一个卡片进行示意),绘制结果可以理解为一帧一帧的图像,用来形成卡片的显示UI。一般情况下,每张卡片的界面资源存储在卡片容器2中的不同存储空间。在一些实施例中,每张卡片对应一个地址2,以便第一卡片服务应用进程按照地址2,将绘制结果传输给卡片容器2中对应的存储空间,使得第二应用能够实现卡片的UI显示,不仅可以实现静态图片形式的卡片的显示,还可以实现较为复杂的动态形式的卡片的显示。其中,本申请对地址2的具体实现形式不做限定。例如,地址2可以为卡片的存储空间的起始地址。
[0250] 基于前述描述,第二应用除了可以同时实现应用页面2的显示UI以及为重新组合卡片模块后的卡片预留至少一个卡槽之外,还可以实现至少一个卡片的显示UI,具体实现过程可参见图12a实施例中的描述,此处不做赘述。
[0251] 本申请中,在第一应用进程与第二应用进程之间可以建立IPC连接,以便实现第一应用进程与第二应用进程之间的相互通信。在第一卡片服务应用进程与第二应用进程之间可以建立IPC连接,以便实现第一卡片服务应用进程与第二应用进程之间的相互通信。
[0252] 下面,基于图13a和图13b实施例的描述,以图13a和图13b中的第一应用进程、第二应用进程、卡片应用进程和第一卡片服务应用进程为执行主体,对本申请的卡片分享方法的具体实现过程进行详细说明。
[0253] 图13c为本申请一实施例提供的一种卡片分享方法的信令交互图。如图13c所示,本申请的卡片分享方法可以包括:步骤S201‑S209。
[0254] 如果用户想要将嵌入到第一应用中的第一卡片或者第一卡片中的卡片模块分享到第一设备中的第二应用,则用户可以在第一卡片的UI上执行第二操作,该第二操作用于确定用户从第一卡片中选择分享的卡片模块以及用户所选择的第二应用,并通过步骤S201‑S217将用户从第一卡片中选择分享的卡片模块从第一应用分享到第二应用。需要说明的是,用户可以从第一卡片中选择部分卡片模块进行分享,也可以从第一卡片中选择全部卡片模块进行分享,本申请对不做限定。
[0255] S201、第一应用进程响应于用户的第二操作,确定出用户从第一卡片中选择分享的第一卡片模块和用户所选择的第二应用进程。其中,第一卡片模块可以为第一卡片中的至少一个卡片模块。该第二操作可以与第一卡片中的第一卡片模块关联,也可以与第一卡片中的第一卡片模块以及第一卡片中的第三卡片模块关联,第三卡片模块为不可重新组合的至少一个卡片模块,本申请对此不做限定。并且,第二操作还可以用于指示第一设备将第一卡片中的第一卡片模块分享到第二应用,或者,第二操作还可以用于指示第一设备将第一卡片中的第一卡片模块和第三卡片模块分享到第二应用。
[0256] S202、第一应用进程在第一应用进程与第二应用进程之间建立IPC连接,并通过第二应用进程与第二应用进程之间的IPC连接,向第二应用进程发送第一卡片的卡片名称和第一卡片模块的卡片模块编号。
[0257] S203、第二应用进程判断与第一卡片的卡片名称相关联的第一卡片的卡片标签2是否存在,以确定第二应用进程是否能够加载并显示卡片。若第一卡片的卡片标签2存在,则第二应用进程确定第二应用进程能够加载并显示卡片;若第一卡片的卡片标签2不存在,则第二应用进程确定第二应用进程无法加载显示卡片。
[0258] S204、第二应用进程在确定第二应用进程能够加载显示卡片时,在第二应用进程与第一卡片服务应用进程之间建立IPC连接。
[0259] S205、第二应用进程通过第二应用进程与第一卡片服务应用进程之间的IPC连接,向第一卡片服务应用进程发送第一卡片的卡片名称、第一卡片模块的卡片模块编号和地址2。
[0260] S206、第一卡片服务应用进程确定出与第一卡片的卡片名称和第一卡片模块的卡片模块编号相关联的第一卡片模块,并通过卡片应用进程从资源包集合中加载与第一卡片模块对应的JS Bundle。
[0261] S207、第一卡片服务应用进程基于与第一卡片模块对应的JS Bundle,绘制渲染得到绘制结果2。其中,绘制结果2可以理解为一帧一帧的图像,用来形成第一卡片模块的显示UI。
[0262] 其中,基于第二应用的页面尺寸和第一设备的显示屏的尺寸,第一卡片服务应用进程可以对绘制结果2中的每个卡片模块的形状大小、位置布局和表示内容等参数进行适应性设置,使得第一卡片模块能够在第二应用中实现美观且清晰的UI显示。另外,卡片模块在每个应用程序中的显示UI可以相同,也可以不同,本申请对此不做限定。
[0263] 需要说明的是,绘制结果2也可以用来形成第一卡片模块和第三卡片模块的显示UI。
[0264] S208、第一卡片服务应用进程通过第一卡片服务应用进程与第二应用进程之间的IPC连接,按照地址2,向第二应用进程的卡片容器2发送绘制结果2。
[0265] S209、第二应用进程基于卡片容器2中的绘制结果2显示出第一卡片模块。从而,使得第一设备以卡片的形式,基于用户意愿将应用服务提供商推送的服务内容,尤其服务内容中用户频繁使用或者操作繁琐等关键信息,通过UI显示呈现给用户,以便根据不同服务场景向用户推送不同的卡片。
[0266] 综上,基于卡片的可拆分以及卡片模块的可重新组合,使得重新组合卡片模块后的卡片可以在同一设备的不同应用程序之间进行分享,且基于用户意愿,可通过卡片的显示UI向用户提供用户想要得到的服务内容,尤其是服务内容中频繁使用或者操作繁琐等关键信息,有利于提升用户体验感。
[0267] 另外,由于第一卡片中的全部卡片模块可以基于第一卡片的卡片名称进行确定,因此,在步骤S202中,第一应用进程通过第一应用进程与第二应用进程之间的IPC连接,向第二应用进程发送第一卡片的卡片名称,而无需将第一卡片的全部卡片模块各自对应的卡片模块编号发送给第二应用进程,降低了数据传输量。在步骤S205中,第二应用进程通过第二应用进程与第一卡片服务应用进程之间的IPC连接,向第一卡片服务应用进程发送第一卡片的卡片名称和地址2,无需将第一卡片的全部卡片模块各自对应的卡片模块编号发送给第一卡片服务应用进程,降低了数据传输量。
[0268] 从而,使得用户的电子设备以卡片的形式,基于用户意愿将应用服务提供商推送全部的服务内容,通过UI显示呈现给用户,以便根据不同服务场景向用户推送不同的卡片。
[0269] 需要说明的是,第一卡片除了分享到负一屏之外,还可以分享到第一设备的其他进程中。
[0270] 在另一些实施例中,用户可以将第一设备中的第一应用嵌入的第一卡片拖拽到第一设备中的第二应用中。其中,第一应用和第二应用所显示的卡片的显示UI可以相同,也可以不同,本申请对此不做限定。例如,用户将显示在手机的智能家居应用中的第一卡片拖拽到手机的负一屏中,使得负一屏能够显示第一卡片的UI。从而,使得卡片具备丰富的显示渠道。
[0271] 在另一些实施例中,用户可以将第一设备中的第二应用中重新组合卡片模块后的卡片拖拽到第一设备中的第三应用中,其具体实现过程可参见前述内容。其中,第二应用和第三应用所显示的卡片的显示UI可以相同,也可以不同,本申请对此不做限定。例如,用户将显示在分享到手机的负一屏中的卡片拖拽到手机的主屏幕中,使得主屏幕能够显示卡片的UI。
[0272] 在一些实施例中,用户可通过结束第二应用,停止卡片的分享。第一应用进程也可以在向第二应用分享卡片的同时,向第一卡片服务应用进程发送卡片的分享时长,使得第一卡片服务应用进程在卡片的分享时长之内,通过地址分享的方式,支持第二应用显示该卡片,也使得第一卡片服务应用进程在卡片的分享时长之外,通过停止地址分享的方式,不再支持第二应用显示该卡片。本申请不限于前述两种实现方式停止卡片的分享。从而,第一应用可通过停止卡片的分享实现服务的回收。另外,第一卡片服务应用进程还可以通过地址分享的方式,实现绘制结果2的更新。
[0273] 本申请中,第一设备可以采用多种实现方式,向第二设备分享卡片。下面,结合两者可行的实现方式,对本申请的在跨设备之间的卡片分享方法的具体实现方式进行描述。
[0274] 一种可行的实现方式中,请参见图14a‑图14c,以卡片从第一设备的第一应用分享到第二设备的第三应用为例。图14a和图14b为本申请一实施例提供的一种场景软件架构示意图。如图14a和图14b所示,第一设备中的第一卡片服务模块可以包括:第一应用进程和第一卡片服务应用进程。其中,第一卡片服务模块位于图2a中的应用程序层。第二设备中的第二卡片服务模块可以包括:第三应用进程和第二卡片服务应用进程。其中,第二卡片服务模块位于图2a中的应用程序层。
[0275] 其中,第一应用进程和第一卡片服务应用进程的具体实现内容可参见图12a实施例中的描述,此处不做赘述。
[0276] 第三应用进程,用于接收并显示分享的卡片。
[0277] 第三应用进程包括:资源包5、卡片标签2和卡片容器3。其中:
[0278] 资源包5,用于提供第三应用的应用页面3的UI显示和逻辑执行的代码,即界面资源。资源包5中包括与第三应用的应用页面3对应的JS Bundle和Resource,JS Bundle用于实现第三应用的应用页面3的逻辑执行和UI显示,Resource用于向JS Bundle提供第三应用的应用页面3的UI显示中的视频、图片等数据来源。此处的第三应用的应用页面3指的是除了卡片显示的UI之外的其他UI,即通过资源包5中的JS Bundle所显示的UI。
[0279] 卡片标签2,用于嵌入不同的卡片或者卡片模块。卡片标签2中未携带有卡片名称,以便第三应用进程将卡片标签2作为占位符,用于加载显示重新组合卡片模块后的卡片。例如,第三应用进程中的代码有:,card表示卡片标签2,则第三应用进程可以加载并显示重新组合卡片模块后的卡片。
[0280] 基于前述描述,第三应用在实现应用页面3的UI显示的同时,可以为重新组合卡片模块后的卡片预留至少一个卡槽,以便实现重新组合卡片模块后的卡片的显示UI,具体实现过程可参见图12a实施例中应用页面1的显示UI和卡片标签2的描述,此处不做赘述。
[0281] 另外,第三应用进程还可以包括携带有卡片名称的卡片标签1,以便第三应用进程基于卡片标签1解析加载与卡片名称对应的卡片,且该卡片包括至少一个卡片模块。例如,第三应用进程中的代码有:,card表示卡片标签1,src表示卡片名称,则第三应用进程可以加载并显示包括全部卡片模块的卡片。
[0282] 卡片容器3,用于存放绘制结果(图14b中以一个卡片进行示意),绘制结果可以理解为一帧一帧的图像,用来形成卡片的显示UI。一般情况下,每张卡片的界面资源存储在卡片容器3中的不同存储空间。在一些实施例中,每张卡片对应一个地址3,以便第一卡片服务应用进程按照地址3,将绘制结果传输给卡片容器3中对应的存储空间,使得第三应用能够实现卡片的UI显示,不仅可以实现静态图片形式的卡片的显示,还可以实现较为复杂的动态形式的卡片的显示。其中,本申请对地址3的具体实现形式不做限定。例如,地址3可以为卡片的存储空间的起始地址。
[0283] 基于前述描述,第三应用除了实现应用页面3的显示UI以及为重新组合卡片模块后的卡片预留至少一个卡槽之外,还可以同时实现至少一个卡片的显示UI,具体实现过程可参见图12a实施例中的描述,此处不做赘述。
[0284] 第二卡片服务应用进程,用于提供驱动卡片的UI显示和逻辑执行的服务,即第二卡片服务应用进程从卡片应用进程中加载JS Bundle,并基于JS Bundle绘制渲染得到绘制结果2。从而,第二卡片服务应用进程将绘制结果2传输给第三应用进程,以实现卡片的UI显示,即第二卡片服务应用进程与第一应用进程或者第二卡片服务应用进程与第二应用进程,通过共享地址来实现卡片的UI显示。其中,第二卡片服务应用进程对应于第二设备中第二卡片服务应用。
[0285] 本申请中,在第一应用进程与第三应用进程之间可以建立远程过程调用(remote procedure call,RPC)连接,以便实现第一应用进程与第三应用进程之间的相互通信。在第一卡片服务应用进程与第一应用进程之间可以建立IPC连接,以便实现第一卡片服务应用进程与第一应用进程之间的相互通信。在第二卡片服务应用进程与第三应用进程之间可以建立IPC连接,以便实现第二卡片服务应用进程与第三应用进程之间的相互通信。
[0286] 另外,第一设备和第二设备均可从如云端应用服务器中安装卡片应用进程对应的资源包集合。其中,卡片应用进程和资源包集合的具体实现内容可参见图12a实施例中的描述,此处不做赘述。需要说明的是,第一设备和第二设备中的资源包集合可以相同,也可以不同,本申请对此不做限定。为了便于说明,图14a和图14b中以第一设备和第二设备中的资源包集合相同为例进行示意。
[0287] 下面,基于图14a和图14b实施例的描述,以图14a和图14b中的第一应用进程、第一卡片服务应用进程、第三应用进程、第二卡片服务应用进程和卡片应用进程为执行主体,对本申请的卡片分享方法的具体实现过程进行详细说明。
[0288] 图14c为本申请一实施例提供的一种卡片分享方法的信令交互图。如图14c所示,本申请的卡片分享方法可以包括:步骤S301‑S310。
[0289] 如果用户想要将嵌入到第一应用中的第一卡片或者第一卡片中的卡片模块分享到第二设备中的第三应用,则用户可以在第一卡片的显示UI上执行第二操作,该第二操作用于确定用户从第一卡片中选择分享的卡片模块以及用户所选择的第二设备和第三应用进程,并通过步骤S301‑S310将用户从卡片中选择分享的卡片模块从第一应用进程分享到第二设备中的第三应用进程。需要说明的是,用户可以从第一卡片中选择部分卡片模块进行分享,也可以从卡第一片中选择全部卡片模块进行分享,本申请对不做限定。
[0290] S301、第一应用进程响应于用户的第二操作,确定出用户从第一卡片中选择分享的第一卡片模块和用户所选择的第二设备(如确定出第二设备的设备编号等唯一标识)和第三应用进程(如确定出第三应用进程的名称、编号等唯一的标识)。其中,第一卡片模块可以为第一卡片中的至少一个卡片模块。该第二操作可以与第一卡片中的第一卡片模块关联,也可以与第一卡片中的第一卡片模块以及第一卡片中的第三卡片模块关联,第三卡片模块为不可重新组合的至少一个卡片模块,本申请对此不做限定。并且,第二操作还可以用于指示第一设备将第一卡片中的第一卡片模块分享到第二设备中的第三应用,或者,第二操作还可以用于指示第一设备将第一卡片中的第一卡片模块和第三卡片模块分享到第二设备中的第三应用。
[0291] S302、第一应用进程在第一应用进程与第三应用进程之间建立RPC连接,并通过第一应用进程与第三应用进程之间的RPC连接,向第三应用进程发送第一卡片的卡片名称和第一卡片模块的卡片模块编号。
[0292] S303、第三应用进程根据第一卡片的卡片名称查询第二设备的卡片服务模块中是否有资源包集合。其中,该资源包集合中存储有与卡片名称对应的第一卡片。
[0293] 若没有资源包集合,则执行步骤S304。若有卡片应用进程,则执行步骤S305‑S310。
[0294] 其中,步骤S303与图12b实施例中的S101的实现方式类似,本申请对此不做限定。
[0295] S304、第三应用进程不作处理,且无法显示该卡片。
[0296] S305、第三应用进程在第三应用进程与第二卡片服务应用进程之间建立IPC连接。
[0297] 在一些实施例中,第二卡片服务应用进程在无卡片显示时默认处于不启动状态,则S305中第三应用可以启动第二卡片服务应用进程,从而可以降低资源开销。
[0298] 在另一些实施例中,第二卡片服务应用进程在无卡片显示时默认处于启动状态,则S305中第三应用进程无需启动第二卡片服务应用进程。
[0299] S306、第三应用进程通过第三应用进程与第二卡片服务应用进程之间的IPC连接,向第二卡片服务应用进程发送第一卡片的卡片名称、第一卡片模块的卡片模块编号和地址3。
[0300] S307、第二卡片服务应用进程确定出与第一卡片的卡片名称关联和第一卡片模块的卡片模块编号相关联的第一卡片模块,并从卡片应用进程中加载与第一卡片模块对应的JS Bundle。
[0301] S308、第二卡片服务应用进程基于与第一卡片模块对应的JS Bundle,绘制渲染得到绘制结果2。其中,绘制结果2可以理解为一帧一帧的图像,用来形成第一卡片模块的显示UI。
[0302] S309、第二卡片服务应用进程通过第二卡片服务应用进程与第三应用进程之间的IPC连接,按照地址3,向第三应用进程的卡片容器3发送绘制结果2。
[0303] S310、第三应用进程基于卡片容器3中的绘制结果2显示出第一卡片模块。从而,使得第二设备以卡片的形式,基于用户意愿将应用服务提供商推送的服务内容,尤其服务内容中用户频繁使用或者操作繁琐等关键信息,通过UI显示呈现给用户,使得卡片能够快速从第一设备分享到第二设备,以便根据不同服务场景向不同的用户推送卡片。
[0304] 综上,基于卡片的可拆分以及卡片模块的可重新组合,使得重新组合卡片模块后的卡片可以在不同设备之间实现分享,且基于用户意愿能够将用户想要分享的服务内容以卡片的形式快速分享给其他用户,使得其他用户也具备对设备的控制诉求,如家庭成员均具备设备的控制权限或者客人对家里的设备具备临时控制诉求等,有利于提升用户体验感。
[0305] 另外,由于第一卡片中的全部卡片模块可以基于该卡片的卡片名称进行确定,因此,在步骤S302中,第一应用进程通过第一应用进程与第三应用进程之间的RPC连接,向第三应用进程发送第一卡片的卡片名称,而无需将第一卡片的全部卡片模块各自对应的卡片模块编号发送给第二应用进程,降低了数据传输量。在步骤S306中,第三应用进程通过第三应用进程与第二卡片服务应用进程之间的IPC连接,向第二卡片服务应用进程发送第一卡片的卡片名称和地址3,无需将第一卡片的全部卡片模块各自对应的卡片模块编号发送给第二卡片服务应用进程,降低了数据传输量。
[0306] 从而,使得用户的电子设备以卡片的形式,基于用户意愿将应用服务提供商推送全部的服务内容,通过UI显示呈现给用户,以便根据不同服务场景向用户推送不同的卡片。
[0307] 需要说明的是,卡片除了分享到车载设备之外,还可以分享到其他设备中,具体可参考前述内容,此处不做赘述。且第二设备还可以将卡片分享到其他设备中,其具体实现过程可参考前述内容。另外,用户可以将第二设备中的重新组合卡片模块后的卡片拖拽到第二设备中的其他应用或者其他设备中,其具体实现过程可参见前述内容。
[0308] 在一些实施例中,用户可通过结束第三应用,停止卡片的分享。第一应用进程也可以在向第三应用分享卡片的同时,向第三应用进程发送卡片的分享时长,使得第二卡片服务应用进程在卡片的分享时长之内,通过地址分享的方式,支持第三应用显示该卡片,也使得第二卡片服务应用进程在卡片的分享时长之外,通过停止地址分享的方式,不再支持第三应用显示该卡片。本申请不限于前述两种实现方式停止卡片的分享。从而,第一应用可通过停止卡片的分享实现服务的回收。另外,第二卡片服务应用进程还可以通过地址分享的方式,实现绘制结果2的更新。
[0309] 另一种可行的实现方式中,请参见图15a‑图15c,以卡片从第一设备的第一应用分享到第二设备的第三应用为例。图15a和图15b为本申请一实施例提供的一种场景软件架构示意图。如图15a和图15b所示,第一设备中的第一卡片服务模块可以包括:第一应用进程、卡片应用进程以及第一卡片服务应用进程。其中,第一卡片服务模块位于图2a中的应用程序层。第二设备中的第二卡片服务模块可以包括:第三应用进程。其中,第二卡片服务模块位于图2a中的应用程序层。
[0310] 其中,第一应用进程、卡片应用进程以及第一卡片服务应用进程的具体实现方式可参见图12a实施例中的描述,此处不做赘述。第三应用进程的具体实现方式可参见图14a和图14b实施例中的描述,此处不做赘述。
[0311] 本申请中,在第一应用进程与第三应用进程之间可以建立RPC连接,以便实现第一应用进程与第三应用进程之间的相互通信。在第一卡片服务应用进程与第一应用进程之间可以建立IPC连接,以便实现卡片服务应用进程与第一应用进程之间的相互通信。在第一卡片服务应用进程与第三应用进程之间可以建立RPC连接,以便实现第一卡片服务应用进程与第三应用进程之间的相互通信。
[0312] 下面,基于图15a和图15b实施例中的描述,以图15a和图15b中的第一应用进程、第三应用进程、卡片应用进程和第一卡片服务应用进程为执行主体,对本申请的卡片分享方法的具体实现过程进行详细说明。
[0313] 图15c为本申请一实施例提供的一种卡片分享方法的信令交互图。如图15c所示,本申请的卡片分享方法可以包括:步骤S401‑S409。
[0314] 如果用户想要将嵌入到第一应用中的第一卡片或者第一卡片中的卡片模块分享到第二设备中的第三应用,则用户可以在第一卡片的显示UI上执行第二操作,该第二操作用于确定用户从第一卡片中选择分享的卡片模块以及用户所选择的第二设备和第三应用进程,并通过步骤S401‑S409将用户从第一卡片中选择分享的卡片模块从第一应用进程分享到第二设备中的第三应用进程。需要说明的是,用户可以从第一卡片中选择部分卡片模块进行分享,也可以从第一卡片中选择全部卡片模块进行分享,本申请对不做限定。
[0315] S401、第一应用进程响应于用户的第二操作,确定出用户从第一卡片中选择分享的第一卡片模块和用户所选择的第二设备和第三应用进程。其中,第一卡片模块可以为第一卡片中的至少一个卡片模块。该第二操作可以与第一卡片中的第一卡片模块关联,也可以与第一卡片中的第一卡片模块以及第一卡片中的第三卡片模块关联,第三卡片模块为不可重新组合的至少一个卡片模块,本申请对此不做限定。并且,第二操作还可以用于指示第一设备将第一卡片中的第一卡片模块分享到第二设备中的第三应用,或者,第二操作还可以用于指示第一设备将第一卡片中的第一卡片模块和第三卡片模块分享到第二设备中的第三应用。
[0316] S402、第一应用进程在第一应用进程与第三应用进程之间建立RPC连接,并通过第一应用进程与第三应用进程之间的RPC连接,向第三应用进程发送第一卡片的卡片名称和第一卡片模块的卡片模块编号。
[0317] S403、第三应用进程判断与第一卡片的卡片名称相关联的第一卡片的卡片标签2是否存在,以确定第三应用进程是否能够加载显示卡片。若第一卡片的卡片标签2存在,则第三应用进程确定第三应用进程能够加载显示卡片;若第一卡片的卡片标签2不存在,则第三应用进程确定第三应用进程无法加载显示卡片。
[0318] S404、第三应用进程在确定第三应用进程能够加载显示卡片时,在第三应用进程与第一卡片服务应用进程之间建立RPC连接。
[0319] S405、第三应用进程通过第三应用进程与第一卡片服务应用进程之间的RPC连接,向第一卡片服务应用进程发送第一卡片的卡片名称、第一卡片模块的卡片模块编号和地址3。
[0320] S406、第一卡片服务应用进程确定出与第一卡片的卡片名称和第一卡片模块的卡片模块编号相关联的卡片模块,并从卡片应用进程中调用与第一卡片模块对应的JS Bundle。
[0321] S407、第一卡片服务应用进程基于与第一卡片模块对应的JS Bundle,绘制渲染得到绘制结果2。
[0322] S408、第一卡片服务应用进程通过第一卡片服务应用进程与第三应用进程之间的RPC连接,按照地址3,向第三应用进程的卡片容器3中发送绘制结果2。
[0323] S409、第三应用进程基于卡片容器3中的绘制结果2显示出第一卡片模块。从而,使得第二设备以卡片的形式,基于用户意愿将应用服务提供商推送的服务内容,尤其服务内容中用户频繁使用或者操作繁琐等关键信息,通过UI显示呈现给用户,使得卡片能够快速从第一设备分享到第二设备,以便根据不同服务场景向不同的用户推送卡片。
[0324] 综上,基于卡片的可拆分以及卡片模块的可重新组合,使得重新组合卡片模块后的卡片可以在不同设备之间实现分享,且基于用户意愿能够将用户想要分享的服务内容以卡片的形式快速分享给其他用户,使得其他用户也具备对设备的控制诉求,如家庭成员均具备设备的控制权限或者客人对家里的设备具备临时控制诉求等,有利于提升用户体验感。
[0325] 另外,由于卡片中的全部卡片模块可以基于该卡片的卡片名称进行确定,因此,在步骤S402中,第一应用进程通过第一应用进程与第三应用进程之间的RPC连接,向第三应用进程发送第一卡片的卡片名称,而无需将第一卡片的全部卡片模块各自对应的卡片模块编号发送给第二应用进程,降低了数据传输量。在步骤S405中,第三应用进程通过第三应用进程与第一卡片服务应用进程之间的RPC连接,向第一卡片服务应用进程发送第一卡片的卡片名称和地址3,无需将第一卡片的全部卡片模块各自对应的卡片模块编号发送给第二卡片服务应用进程,降低了数据传输量。
[0326] 综上,包括全部卡片模块的卡片可以在不同设备之间进行分享,使得卡片具有丰富的UI显示渠道,以便根据不同服务场景向不同的用户推送卡片。
[0327] 需要说明的是,卡片除了分享到车载设备之外,还可以分享到其他设备中,具体可参考前述内容,此处不做赘述。且第二设备还可以将卡片分享到其他设备中,其具体实现过程可参考前述内容。
[0328] 在一些实施例中,用户可通过结束第三应用,停止卡片的分享。第一应用进程也可以在向第三应用分享卡片的同时,向第一卡片服务应用进程发送卡片的分享时长,使得第一卡片服务应用进程在卡片的分享时长之内,通过地址分享的方式,支持第三应用显示该卡片,也使得第一卡片服务应用进程在卡片的分享时长之外,通过停止地址分享的方式,不再支持第三应用显示该卡片。本申请不限于前述两种实现方式停止卡片的分享。从而,第一应用可通过停止卡片的分享实现服务的回收。另外,第一卡片服务应用进程还可以通过地址分享的方式,实现绘制结果2的更新。
[0329] 基于前述的一些实施例,下面介绍本申请提供的卡片分享方法。
[0330] 示例性地,本申请提供一种卡片分享方法。
[0331] 本申请的卡片分享方法可以包括:步骤21‑步骤23。
[0332] 步骤21、响应于用户的第一操作,显示第一应用的界面,第一应用的界面中显示有第一卡片,第一卡片包括第一卡片模块和第二卡片模块,第一卡片的界面资源是由第二应用提供的。
[0333] 步骤22、响应于用户的第二操作,向第三应用发送第二消息,第二操作与第一卡片模块关联,第二消息包括第一卡片模块的标识。
[0334] 步骤23、显示第三应用的界面,第三应用的界面中显示有第一卡片模块,第一卡片模块的界面资源是第四应用提供的。
[0335] 本申请中,步骤21‑步骤23可适用于同设备中不同应用程序之间的卡片分享的场景,也可以适用于跨设备之间的卡片分享的场景。
[0336] 在同设备中不同应用程序之间的卡片分享的场景下,第一应用、第二应用、第三应用为第一设备中的不同的应用程序,第一应用进程对应第一应用,第二应用进程对应第二应用,第三应用进程对应第三应用,第四应用进程对应第四应用,第二应用与第四应用为同一个应用程序,第二应用进程与第四应用进程为同一个应用程序进程。
[0337] 步骤21‑步骤23的执行主体为第一设备,具体地,步骤21的执行主体为第一应用进程,步骤22的执行主体为第一应用进程,步骤23的执行主体为第三应用进程,具体实现过程可参见图3a‑图3l、图12a‑图12b以及图13a‑图13c中的描述内容,或者说参见第一卡片显示在第一应用中以及场景一中第一卡片从第一应用分享到第二应用的描述内容,此处不做赘述。
[0338] 其中,第一操作可以包括但不限于用户的点击、长按、滑动等至少一个操作,本申请对第一操作的类型和操作数量等参数不做限定,只需满足第一应用可以响应于用户第一操作实现第一卡片的显示即可。
[0339] 第一卡片的界面资源可以理解为显示第一卡片模块和第二卡片模块各自的逻辑执行和UI显示所需的如代码、视频、数据等资源,即第一卡片模块和第二卡片模块各自对应的JS Bundle和Resource,具体内容可参见前文描述,此处不做赘述。
[0340] 第二应用对应于前文实施例中的第一卡片服务应用。
[0341] 第二操作可以包括但不限于用户的点击、长按、滑动等至少一个操作,本申请对第二操作的类型和操作数量等参数不做限定。且第二操作与第一卡片模块关联,使得第一应用可以响应于用户的第二操作,确定出第一卡片中选择分享的第一卡片模块和分享的对象(即第二应用)。
[0342] 本申请对第二消息的具体表示方式不做限定。例如,第二消息除了包括第一卡片模块的标识之外,还可以包括第二应用的标识和/或第一卡片的标识等。
[0343] 第一卡片模块的界面资源可以理解为显示第一卡片模块的逻辑执行和UI显示所需的如代码、视频、数据等资源,即第一卡片模块对应的JS Bundle和Resource,具体内容可参见前文描述,此处不做赘述。
[0344] 第四应用对应于前文实施例中的第一卡片服务应用。
[0345] 在跨设备之间的卡片分享的情况下,第一应用和第二应用为第一设备中的不同的应用程序,第三应用和第四应用为第二设备中的不同的应用程序,第一设备与第二设备不同,第一应用进程对应第一应用,第二应用进程对应第二应用,第三应用进程对应第三应用,第四应用进程对应第四应用。
[0346] 步骤21‑步骤23的执行主体为第一设备,具体地,步骤21的执行主体为第一应用进程,步骤22的执行主体为第一应用进程,步骤23的执行主体为第三应用进程,具体实现过程可参见图3a‑图3l、图12a‑图12b以及图13a‑图13c中的描述内容,或者说参见第一卡片显示在第一应用中以及场景二的一种可行的实现方式中的第一卡片从第一应用分享到第二应用的描述内容,此处不做赘述。
[0347] 其中,第一操作可以包括但不限于用户的点击、长按、滑动等至少一个操作,本申请对第一操作的类型和操作数量等参数不做限定,只需满足第一应用可以响应于用户第一操作实现第一卡片的显示即可。
[0348] 第一卡片的界面资源可以理解为显示第一卡片模块和第二卡片模块各自的逻辑执行和UI显示所需的如代码、视频、数据等资源,即第一卡片模块和第二卡片模块各自对应的JS Bundle和Resource,具体内容可参见前文描述,此处不做赘述。
[0349] 第二应用对应于前文实施例中的第一卡片服务应用。
[0350] 第二操作可以包括但不限于用户的点击、长按、滑动等至少一个操作,本申请对第二操作的类型和操作数量等参数不做限定。且第二操作与第一卡片模块关联,使得第一应用可以响应于用户的第二操作,确定出第一卡片中选择分享的第一卡片模块和分享的对象(即第二应用)。
[0351] 本申请对第二消息的具体表示方式不做限定。例如,第二消息除了包括第一卡片模块的标识之外,还可以包括第二设备的设备标识、第二应用的标识或者第一卡片的标识等中的至少一个。
[0352] 第一卡片模块的界面资源可以理解为显示第一卡片模块的逻辑执行和UI显示所需的如代码、视频、数据等资源,即第一卡片模块对应的JS Bundle和Resource,具体内容可参见前文描述,此处不做赘述。
[0353] 第四应用对应于前文实施例中的第二卡片服务应用。
[0354] 在跨设备之间的卡片分享的情况下,第一应用和第二应用为第一设备中的不同的应用程序,第三应用为第二设备中的不同的应用程序,第一设备与第二设备不同,第一应用进程对应第一应用,第二应用进程对应第二应用,第三应用进程对应第三应用,第四应用进程对应第四应用,第二应用与第四应用为同一个应用程序,第二应用进程与第四应用进程为同一个应用程序进程。
[0355] 步骤21‑步骤23的执行主体为第一设备,具体地,步骤21的执行主体为第一应用进程,步骤22的执行主体为第一应用进程,步骤23的执行主体为第三应用进程,具体实现过程可参见图3a‑图3l、图12a‑图12b以及图13a‑图13c中的描述内容,或者说参见第一卡片显示在第一应用中以及场景二的一种可行的实现方式中的第一卡片从第一应用分享到第二应用的描述内容,此处不做赘述。
[0356] 其中,第一操作可以包括但不限于用户的点击、长按、滑动等至少一个操作,本申请对第一操作的类型和操作数量等参数不做限定,只需满足第一应用可以响应于用户第一操作实现第一卡片的显示即可。
[0357] 第一卡片的界面资源可以理解为显示第一卡片模块和第二卡片模块各自的逻辑执行和UI显示所需的如代码、视频、数据等资源,即第一卡片模块和第二卡片模块各自对应的JS Bundle和Resource,具体内容可参见前文描述,此处不做赘述。
[0358] 第二应用对应于前文实施例中的第一卡片服务应用。
[0359] 第二操作可以包括但不限于用户的点击、长按、滑动等至少一个操作,本申请对第二操作的类型和操作数量等参数不做限定。且第二操作与第一卡片模块关联,使得第一应用可以响应于用户的第二操作,确定出第一卡片中选择分享的第一卡片模块和分享的对象(即第二应用)。
[0360] 本申请对第二消息的具体表示方式不做限定。例如,第二消息除了包括第一卡片模块的标识之外,还可以包括第二设备的设备标识、第二应用的标识或者第一卡片的标识等中的至少一个。
[0361] 第一卡片模块的界面资源可以理解为显示第一卡片模块的逻辑执行和UI显示所需的如代码、视频、数据等资源,即第一卡片模块对应的JS Bundle和Resource,具体内容可参见前文描述,此处不做赘述。
[0362] 第四应用对应于前文实施例中的第一卡片服务应用。
[0363] 在一些实施例中,第一卡片还包括:第三卡片模块,第三应用的界面中还显示有第三卡片模块,第三卡片模块的界面资源是由第四应用提供的。
[0364] 其中,第一卡片模块和第二卡片模块可以设置为可重新组合的卡片模块,如前文提及的第一卡片中的卡片模块2‑卡片模块6。第三卡片模块可以设置为不可重新组合的卡片模块,如前文提及的第一卡片中的卡片模块1。
[0365] 步骤22中,基于第二操作与第一卡片模块关联,且第三卡片模块和第二卡片模块同属于第一卡片,第三卡片模块为不可重新组合的卡片模块,第一应用可以确定出第二卡片模块和第三卡片模块,使得第一应用可以向第三应用发送第二消息,该第二消息包括第一卡片模块的标识和第三卡片模块的标识。从而,步骤23中,第三应用的界面上显示有第一卡片模块和第三卡片模块。
[0366] 步骤22中,基于第二操作与第一卡片模块关联,第一应用可以确定出第二卡片模块,使得第一应用可以向第三应用发送第二消息,该第二消息包括第一卡片模块的标识。从而,步骤23中,基于第三卡片模块和第二卡片模块同属于第一卡片,第三卡片模块为不可重新组合的卡片模块,第三应用的界面上显示有第一卡片模块和第三卡片模块。
[0367] 综上,本申请可将卡片的属性设置为可重新组合,也可将卡片的属性设置为不可重新组合,如用于表明卡片的服务内容或者卡片的关键信息等的卡片模块设置为不可重新组合的卡片模块,从而,第一应用进程响应于用户的第二操作,可以确定出第三应用的界面上需要显示第二卡片模块和第三卡片模块,或者,第三应用基于第二消息中的第一卡片模块的标识,可以确定出第三应用的界面上需要显示第二卡片模块和第三卡片模块,具体实现过程可参见图3a‑图3d以及卡片的解释中的描述内容,此处不做赘述。从而,为实现卡片的分享提供给了便利性。
[0368] 步骤21的一种可行的实现方式中,响应于用户的第一操作,显示第一应用的界面的具体实现过程可以包括:步骤31‑步骤33。
[0369] 步骤31、向第二应用进程发送第一消息。
[0370] 步骤32、从第二应用进程接收第一绘制结果,第一绘制结果是第二应用进程基于第一卡片的界面资源渲染绘制得到的,第一卡片的界面资源是第二应用进程基于第一消息从资源包集合中调用得到的,资源包集合包括第一卡片中的第一卡片模块、第二卡片模块和第三卡片模块的界面资源以及第二卡片中的第四卡片模块和第五卡片模块的界面资源。
[0371] 步骤33、基于第一绘制结果在第一应用的界面中显示第一卡片。
[0372] 本申请中,步骤31‑步骤33的执行主体为第一设备,具体地,步骤31‑步骤33的执行主体为第一应用进程,具体实现过程可参见图3a‑图3d以及图12a‑图12b中的步骤S101‑S108的描述内容,或者说参见第一卡片显示在第一应用中的描述内容,此处不做赘述。
[0373] 其中,本申请对第一消息的具体内容不做限定。
[0374] 在一些实施例中,第一消息可以包括:第一卡片的标识。例如,第一卡片的卡片名称。从而,在第二应用进程确定出第一卡片以及第一卡片中的第一卡片模块和第二卡片模块的基础上,减少了第一应用进程与第二应用进程之间的数据传输量。
[0375] 在一些实施例中,第一消息可以包括:第一卡片的标识、第一卡片模块的标识和第二卡片模块的标识。例如,第一卡片的卡片名称、第一卡片模块的卡片模块编号和第二卡片模块的卡片模块编号。从而,使得第二应用进程快速确定第一卡片中的第一卡片模块和第二卡片模块。
[0376] 在一些实施例中,第一消息还可以包括:第一地址。从而,第一应用进程从第二应用进程接收发送到第一地址中的第一绘制结果,方便采用地址共享的方式,不仅使得第二应用进程提供第一绘制结果,还使得第一应用进程可以利用第一绘制结果显示第一应用的界面。
[0377] 其中,本申请对第一地址的具体表示内容不做限定,如参见前文提及的地址1。需要说明的是,除了第一地址由第一应用进程向第二应用进程之外,第一地址也可以由第二应用进程向第一应用进程通知,或者,第一地址由第一设备中的操作系统确定,并向第一应用进程和第二应用进程通知,本申请对此不做限定。
[0378] 在一些实施例中,方法还包括:在第一设备有资源包集合的情况下,向第二应用进程发送第一消息,具体实现内容可参见图12b中的步骤101中的描述内容,此处不做赘述。从而,在第一设备没有资源包集合的情况下,第二应用进程便无法从资源包集合中调用第一卡片的界面资源,有利于降低第一设备执行不必要的操作,节省第一设备的功耗,以及使得第一设备可以及时下载资源包集合,以便快速实现卡片分享。
[0379] 步骤22的一种可行的实现方式中,响应于用户的第二操作,向第三应用发送第二消息的具体实现过程可以包括:步骤41‑步骤43。
[0380] 步骤41、向第四应用进程发送第三消息。
[0381] 步骤42、从第四应用进程接收第二绘制结果,第二绘制结果是第四应用进程基于第一卡片模块的界面资源渲染绘制得到的,第一卡片模块的界面资源是第四应用进程基于第三消息从资源包集合中调用得到的,资源包集合包括第一卡片中的第一卡片模块、第二卡片模块和第三卡片模块的界面资源以及第二卡片中的第四卡片模块和第五卡片模块的界面资源。
[0382] 步骤43、基于第二绘制结果在第三应用的界面中显示第一卡片模块。
[0383] 本申请中,步骤31‑步骤33的执行主体为第一设备,具体地,步骤31‑步骤33的执行主体为第一应用进程,具体实现过程可参见图3a‑图3l、图13a‑图13c中的步骤S201‑S209、图14a‑图14c中的步骤S301‑S310以及图15a‑图15c中的步骤S401‑S409的描述内容,或者说参见将第一卡片从第一应用分享到第三应用的描述内容,此处不做赘述。
[0384] 其中,本申请对第三消息的具体内容不做限定。
[0385] 在一些实施例中,第三消息可以包括:第一卡片的标识和第一卡片模块的标识。例如,第一卡片的卡片名称和第一卡片模块的卡片模块编号。从而,使得第四应用进程快速确定第一卡片中的第一卡片模块。
[0386] 在一些实施例中,第三消息还可以包括:第二地址。从而,第三应用进程从第四应用进程接收发送到第二地址中的第二绘制结果,以便采用地址共享的方式,不仅使得第四应用进程提供第二绘制结果,还使得第三应用进程可以利用第二绘制结果显示第三应用的界面。
[0387] 其中,本申请对第二地址的具体表示内容不做限定,如参见前文提及的地址2或者地址3。需要说明的是,除了第二地址由第三应用进程向第四应用进程之外,第二地址也可以由第四应用进程向第三应用进程通知,或者,第二地址由第二设备或者第一设备中的操作系统确定,并向第三应用进程和第四应用进程通知,本申请对此不做限定。
[0388] 在一些实施例中,方法还可以包括:在确定第三应用进程能够显示卡片的情况下,向第四应用进程发送第三消息,具体实现内容可参见图13c中的步骤201、图14c中的步骤301以及图15c中的步骤401中的描述内容,此处不做赘述。从而,由于在第三应用进程不能够显示卡片的情况下,第三应用进程便无法向第四应用进程发送第三消息,因此,有利于降低第三应用进程所在的设备执行不必要的操作,节省第三应用进程所在的设备的功耗,且使得第三应用进程所在的设备可以及时向用户通知第一应用无法向第三应用分享卡片。
[0389] 在一些实施例中,资源包集合还包括第五应用的界面资源。其中,第五应用可参见前文提及的卡片应用,此处不做赘述。从而,为第五应用实现界面显示提供了资源支持。
[0390] 在一些实施例中,第一应用的界面包括:第一区域和第二区域。第一卡片位于第一区域,第一应用页面位于第二区域,第一应用页面的界面资源是由第一应用提供的,具体实现内容可参见图10b以及图11中的描述内容,此处不做赘述。
[0391] 在一些实施例中,第一应用包括:主屏幕、负一屏、控制中心、通知中心或者智能家居应用中的任意一个。
[0392] 在一些实施例中,第三应用包括:主屏幕、负一屏、控制中心、通知中心或者智能家居应用中的任意一个。
[0393] 示例性地,本申请还提供一种电子设备。该电子设备可以包括:至少一个存储器和至少一个处理器;存储器用于存储程序指令;处理器用于调用存储器中的程序指令使得第一设备执行前文实施例的卡片分享方法。
[0394] 示例性地,本申请还提供一种计算机程序产品,包括:执行指令,所述执行指令存储在可读存储介质中,电子设备的至少一个处理器可以从所述可读存储介质读取所述执行指令,至少一个处理器执行所述执行指令使得所述电子设备实现前文实施例的卡片分享方法。
[0395] 示例性地,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器使得电子设备执行时实现前文实施例的卡片分享方法。
[0396] 示例性地,本申请还提供一种通信系统。本申请的通信系统可以包括:第一设备和第二设备;第一设备中安装有第一应用,第二设备安装有第三应用;第一应用,用于响应于用户的第一操作,显示第一应用的界面,第一应用的界面中显示有第一卡片,第一卡片包括第一卡片模块和第二卡片模块,第一卡片的界面资源是由第二应用提供的;第一应用,还用于响应于用户的第二操作,向第三应用发送第二消息,第二操作与第一卡片模块关联,第二消息用于指示第一卡片模块;第三应用,用于显示第三应用的界面,第三应用的界面中显示有第一卡片模块,第一卡片模块的界面资源是由第四应用提供的。
[0397] 关于上述通信系统中的第一设备和第二设备可参见前文描述示例,此处不做赘述。
[0398] 在上述实施例中,全部或部分功能可以通过软件、硬件、或者软件加硬件的组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
[0399] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。