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

应用保活方法、电子设备及存储介质与流程

2022-11-12 18:32:06 来源:中国专利 TAG:


1.本技术实施例涉及电子设备领域,尤其涉及一种应用保活方法、电子设备及存储介质。


背景技术:

2.应用协同功能是指两个应用程序(application,app)之间协同为用户提供服务的功能,通过应用协同功能可以给用户带来丰富的体验。应用程序可以简称应用。例如,第一设备上安装有第一应用,第二设备上安装有第二应用。当第一设备与第二设备连接时,第一应用和第二应用之间可以协同为用户提供服务,用户可以在第二设备上通过第二应用查看第一设备上的第一应用中的信息。
3.在第一应用和第二应用协同为用户提供服务的过程中,第一设备的操作系统可能会由于系统资源的限制(系统资源不足),而强行杀死第一设备上运行的某些应用来释放系统资源。当第一设备杀死的应用中包括第一应用(第一应用可以称为应用协同功能的关联应用)时,会导致第一应用和第二应用之间的应用协同功能受到影响,影响用户体验。
4.目前,针对上述第一应用和第二应用之间的应用协同功能受到影响的问题,一种实现方式中:第二应用可以注册第一应用的死亡通知,当第一应用被第一设备杀死时,第二应用可以接收到第一应用的死亡通知,并重新拉起第二应用,以继续实现第一应用和第二应用之间的应用协同功能。但是,这种实现方式中,只有第一应用被杀死后,第二应用才会接收到第一应用的死亡通知,此时,第一应用和第二应用之间的应用协同功能已经受到影响了。
5.另一种实现方式中:第一应用和第二应用之间可以建立心跳关系,第二应用可以周期性向第一应用发送心跳信息。第一设备的操作系统强行杀死第一设备上运行的某些应用来释放系统资源时,如果监测到第二应用周期性向第一应用发送的心跳信息,则可以延长第一应用的存活时间。这种实现方式虽然可以避免第一应用和第二应用之间的应用协同功能受到影响,但是会大大增加第一设备和第二设备的功耗。


技术实现要素:

6.为解决上述提到的问题,本技术实施例提供一种应用保活方法、电子设备及存储介质。本技术实施例的技术方案可以适用于上述第一应用和第二应用之间实现应用协同功能的场景中,延长第一应用的存活时间,以避免第一应用和第二应用之间的应用协同功能受到影响。而且,第一应用和第二应用所在的设备的功耗较低。
7.第一方面,本技术实施例提供一种应用保活方法,所述方法应用于第一设备,第一设备包括第一应用,第一应用与第二应用之间具有应用协同功能;所述方法包括:当第一应用检测到第二应用获取第一应用中的第一信息时,第一应用创建第一对象,并生成第一对象的唯一标识符。第一应用向第二应用发送第一对象的唯一标识符。第一应用接收第二应用根据第一对象的唯一标识符发送的订阅请求,订阅请求包括第二应用的标识信息。第一
应用根据订阅请求,在所述第一对象的订阅列表中添加所述第二应用的标识信息。当第一设备的操作系统,由于系统资源的限制需要强行杀死第一设备上运行的某些应用来释放系统资源时,对于第一应用,第一设备的操作系统查询第一对象的订阅列表,如果第一对象的订阅列表中包括第二应用的标识信息,则第一设备的操作系统延长第一应用的存活时间。
8.本技术实施例中,在用户通过第二应用查看第一应用中的第一信息的过程中,当第一设备的操作系统由于系统资源的限制,需要强行杀死第一设备上运行的某些应用来释放系统资源时,对于第一应用,第一设备可以先查询第一对象的订阅列表,如果第一对象的订阅列表中包括第二应用的标识信息,则表明第一应用和第二应用之间存在协同关系,第一设备可以延长第一应用的存活时间,以避免第一应用和第二应用之间的应用协同功能受到影响。
9.可以看到,该方法可以通过简单的方式建立第一应用和第二应用之间的协同关系,而不需要周期性的心跳。因此,第一设备和第二设备的功耗可以较低。另外,该方法相对于第一应用被杀死后重新拉起的方式而言,用户体验可以更好。
10.根据第一方面,所述第一设备的操作系统延长第一应用的存活时间,包括:第一设备的操作系统,将第一应用在第一设备中所有当前正在运行的应用中的优先级提升至少一个优先级,优先级越高,应用的存活时间越长。
11.可选地,所述第一设备的操作系统,将第一应用在第一设备中所有当前正在运行的应用中的优先级提升至少一个优先级,包括:第一设备的操作系统,将第一应用在第一设备中所有当前正在运行的应用中的优先级提升至最高优先级。
12.根据第一方面,或者以上第一方面的任意一种实现方式,订阅请求是第二应用在校验到第二应用具有读取第一对象的唯一标识符的权限后,发送给第一应用的。
13.本实施方式中,第二应用接收到来自第一应用的第一对象的唯一标识符后,先对第一对象的唯一标识符进行校验,在确认具有读取第一对象的唯一标识符的权限后,再执行后续步骤(即发送订阅请求),可以更好的保护用户隐私。
14.根据第一方面,或者以上第一方面的任意一种实现方式,所述第一应用根据订阅请求,在第一对象的订阅列表中添加第二应用的标识信息,包括:第一应用校验第二应用是否具有订阅第一对象的权限;当第一应用校验到第二应用具有订阅第一对象的权限后,第一应用根据订阅请求,在第一对象的订阅列表中添加第二应用的标识信息。
15.本实施方式中,第一应用接收到来自第二应用的订阅请求后,先对订阅请求进行校验,在确认第二应用有权限订阅第一对象后,再执行后续步骤,也可以更好的保护用户隐私。
16.换言之,由于该应用保活方法涉及到应用的运行数据,所以,该方法可以只在用户同意并赋予相应的权限后,再实现应用保活,以更好的保护用户隐私。
17.根据第一方面,或者以上第一方面的任意一种实现方式,所述方法还包括:第一应用接收第二应用根据第一对象的唯一标识符发送的取消订阅请求,取消订阅请求包括第二应用的标识信息。第一应用根据取消订阅请求,在第一对象的订阅列表中删除第二应用的标识信息。当第一设备的操作系统,由于系统资源的限制需要强行杀死第一设备上运行的某些应用来释放系统资源时,对于第一应用,第一设备的操作系统查询第一对象的订阅列表,如果第一对象的订阅列表中不包括第二应用的标识信息,则第一设备的操作系统无需
延长第一应用的存活时间。
18.根据第一方面,或者以上第一方面的任意一种实现方式,第一对象的唯一标识符包括第一设备的设备信息、第一应用的应用信息、第一对象的对象信息、以及创建第一对象时的时间戳信息。
19.需要说明的是,本技术对第一对象的唯一标识符的具体格式不作限制。
20.根据第一方面,或者以上第一方面的任意一种实现方式,第一应用和第二应用所在的设备为同一设备或不同设备。
21.例如,一种实施方式中,第二应用可以安装于第二设备上,第一设备与第二设备不同。
22.又例如,另一种实施方式中,第二应用也可以安装于第一设备上。
23.根据第一方面,或者以上第一方面的任意一种实现方式,第二应用包括多个第三应用;所述如果第一对象的订阅列表中包括第二应用的标识信息,则第一设备的操作系统延长第一应用的存活时间,包括:如果第一对象的订阅列表中包括至少一个第三应用的标识信息,则第一设备的操作系统延长第一应用的存活时间。
24.例如,对于与第一应用之间实现协同功能的应用包括多个的情况,当第一设备的操作系统由于系统资源的限制,需要强行杀死第一设备上运行的某些应用来释放系统资源时,对于第一应用,第一设备的操作系统可以先查询第一对象的订阅列表,如果第一对象的订阅列表中包括其他应用的标识信息,则表明第一对象有被其他应用订阅,第一应用和其他应用之间存在协同关系,第一设备的操作系统可以延长第一应用的存活时间。
25.第二方面,本技术实施例提供一种应用保活装置,所述装置应用于第一设备,第一设备可以通过该装置实现第一方面所述的应用保活方法中第一应用的功能。第一应用与第二应用之间具有应用协同功能。
26.该装置可以包括:对象管理模块,用于当检测到第二应用获取第一应用中的第一信息时,创建第一对象,并生成所述第一对象的唯一标识符;用于检测到第二应用获取第一应用中的第一信息时,创建第一对象,并生成第一对象的唯一标识符。收发模块,用于向第二应用发送第一对象的唯一标识符;接收第二应用根据第一对象的唯一标识符发送的订阅请求,订阅请求包括第二应用的标识信息。保活管理模块,用于根据订阅请求,在第一对象的订阅列表中添加第二应用的标识信息。
27.当第一设备的操作系统,由于系统资源的限制需要强行杀死第一设备上运行的某些应用来释放系统资源时,对于第一应用,第一设备的操作系统查询第一对象的订阅列表,如果第一对象的订阅列表中包括第二应用的标识信息,则第一设备的操作系统延长第一应用的存活时间。
28.一些实施例中,第一设备的操作系统具体用于,将第一应用在第一设备中所有当前正在运行的应用中的优先级提升至少一个优先级,优先级越高,应用的存活时间越长。
29.可选地,第一设备的操作系统具体用于,将第一应用在第一设备中所有当前正在运行的应用中的优先级提升至最高优先级。
30.可选地,订阅请求是第二应用在校验到第二应用具有读取第一对象的唯一标识符的权限后,发送给第一应用的。
31.可选地,该装置还可以包括:权限校验模块,用于校验第二应用是否具有订阅第一
对象的权限;保活管理模块,具体用于当权限校验模块校验到第二应用具有订阅第一对象的权限后,根据订阅请求,在第一对象的订阅列表中添加第二应用的标识信息。
32.可选地,收发模块,还用于接收第二应用根据第一对象的唯一标识符发送的取消订阅请求,取消订阅请求包括第二应用的标识信息。保活管理模块,还用于根据取消订阅请求,在第一对象的订阅列表中删除第二应用的标识信息。当第一设备的操作系统,由于系统资源的限制需要强行杀死第一设备上运行的某些应用来释放系统资源时,对于第一应用,第一设备的操作系统查询第一对象的订阅列表,如果第一对象的订阅列表中不包括第二应用的标识信息,则第一设备的操作系统无需延长第一应用的存活时间。
33.可选地,第一对象的唯一标识符包括第一设备的设备信息、第一应用的应用信息、第一对象的对象信息、以及创建第一对象时的时间戳信息。
34.可选地,第一应用和第二应用所在的设备为同一设备或不同设备。
35.可选地,第二应用包括多个第三应用;第一设备的操作系统具体用于,如果第一对象的订阅列表中包括至少一个第三应用的标识信息,则第一设备的操作系统延长第一应用的存活时间。
36.第三方面,本技术实施例提供一种电子设备,包括:处理器;存储器;以及计算机程序;其中,计算机程序存储在存储器上,当计算机程序被处理器执行时,使得电子设备实现如第一方面及第一方面中任意一种实现方式所述的应用保活方法。
37.第四方面,本技术实施例提供一种计算机可读存储介质,计算机可读存储介质包括计算机程序,当计算机程序在电子设备上运行时,使得电子设备实现如第一方面及第一方面中任意一种实现方式所述的应用保活方法。
38.第五方面,本技术实施例还提供一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码在电子设备上运行时,使得电子设备实现如第一方面及第一方面中任意一种实现方式所述的应用保活方法。
39.上述第三方面至第五方面中,电子设备可以是第一方面中提到的第一设备。
40.第二方面及第二方面的任意一种实现方式、第三方面及第三方面的任意一种实现方式、第四方面及第四方面的任意一种实现方式、第五方面及第五方面的任意一种实现方式,所对应的技术效果可参见上述第一方面及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
附图说明
41.图1为本技术实施例提供的应用场景示意图;
42.图2为本技术实施例提供的第一设备的结构示意图;
43.图3为本技术实施例提供的应用保活方法的流程示意图;
44.图4为本技术实施例提供的应用保活方法的另一流程示意图;
45.图5为本技术实施例提供的应用保活装置的结构示意图;
46.图6为本技术实施例提供的应用保活装置的另一结构示意图。
具体实施方式
47.以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对
本技术的限制。如在本技术的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本技术以下各实施例中,“至少一个”、“一个或多个”是指一个或两个以上(包含两个)。字符“/”一般表示前后关联对象是一种“或”的关系。
48.在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。术语“连接”包括直接连接和间接连接,除非另外说明。
49.以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
50.在本技术实施例中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。
51.应用协同功能是指两个应用程序(application,app)之间协同为用户提供服务的功能,通过应用协同功能可以给用户带来丰富的体验。应用程序可以简称应用。例如,第一设备上安装有第一应用,第二设备上安装有第二应用。当第一设备与第二设备连接时,第一应用和第二应用之间可以协同为用户提供服务,用户可以在第二设备上通过第二应用查看第一设备上的第一应用中的信息。
52.在第一应用和第二应用协同为用户提供服务的过程中,第一设备的操作系统可能会由于系统资源的限制(系统资源不足),而强行杀死第一设备上运行的某些应用来释放系统资源。杀死应用是指结束应用的进程。当第一设备的操作系统杀死的应用中包括第一应用(第一应用可以称为应用协同功能的关联应用)时,会导致第一应用和第二应用之间的应用协同功能受到影响,影响用户体验。
53.举例说明,假设第一设备为手机,第一应用为手机上安装的图库应用1;第二设备为智能手表,第二应用为智能手表上安装的图库应用2。当手机和智能手表连接时,图库应用1和图库应用2之间可以协同为用户提供服务,用户可以在智能手表上通过图库应用2查看手机上的图库应用1中的图片。
54.在图库应用1和图库应用2协同为用户提供服务的过程中,手机的操作系统可能会由于系统资源的限制,而强行杀死手机上运行的某些应用来释放系统资源。如果手机杀死的应用中包括图库应用1,则会导致图库应用1和图库应用2之间的应用协同功能受到影响,图库应用1和图库应用2无法继续协同为用户提供服务。此时,用户在智能手表上通过图库应用2查看手机上的图库应用1中的图片的操作,可能会被强制中断,导致用户无法继续在智能手表上通过图库应用2查看手机上图库应用1中的图片,严重影响了用户体验。
55.目前,针对上述第一应用和第二应用之间的应用协同功能受到影响的问题,一种实现方式中:第二应用可以注册第一应用的死亡通知,当第一应用被第一设备杀死时,第二应用可以接收到第一应用的死亡通知,并重新拉起第二应用,以继续实现第一应用和第二应用之间的应用协同功能。但是,这种实现方式中,只有第一应用被杀死后,第二应用才会接收到第一应用的死亡通知,此时,第一应用和第二应用之间的应用协同功能已经受到影响了。
56.另一种实现方式中:第一应用和第二应用之间可以建立心跳关系,第二应用可以周期性向第一应用发送心跳信息。第一设备的操作系统强行杀死第一设备上运行的某些应用来释放系统资源时,如果监测到第二应用周期性向第一应用发送的心跳信息,则可以延长第一应用的存活时间。这种实现方式虽然可以避免第一应用和第二应用之间的应用协同功能受到影响,但是会大大增加第一设备和第二设备的功耗。
57.在此背景技术下,本技术实施例提供了一种应用保活方法,可以适用于上述第一应用和第二应用之间实现应用协同功能的场景中。该方法可以包括:当第二应用接收到用户查看第一应用中的第一信息的操作时,第二应用从第一应用中获取第一信息,并展示给用户。当第一应用检测到第二应用获取第一信息时,第一应用创建第一对象,并生成第一对象的唯一标识符。在生成第一对象的唯一标识符后,第一应用将第一对象的唯一标识符发送(分享)给第二应用。第二应用根据第一对象的唯一标识符,向第一应用发送订阅请求。订阅请求用于向第一应用指示第二应用订阅了第一对象,订阅请求可以包括第二应用的标识信息。第一应用在接收到订阅请求后,根据订阅请求,在第一对象的订阅列表中添加第二应用的标识信息。当第一应用在第一对象的订阅列表中添加了第二应用的标识信息后,即表明第一应用和第二应用之间建立了协同关系(或称为依赖关系)。
58.在用户通过第二应用查看第一应用中的第一信息的过程中,当第一设备的操作系统由于系统资源的限制,需要强行杀死第一设备上运行的某些应用来释放系统资源时,对于第一应用,第一设备的操作系统可以先查询第一对象的订阅列表,如果第一对象的订阅列表中包括第二应用的标识信息,则表明第一应用和第二应用之间存在协同关系,第一设备的操作系统可以延长第一应用的存活时间。通过该应用保活方法可以延长第一应用的存活时间,以避免第一应用和第二应用之间的应用协同功能受到影响。而且,第一设备和第二设备的功耗可以较低。
59.下面结合附图对本技术实施例的技术方案进行示例性说明。
60.图1为本技术实施例提供的应用场景示意图。如图1所示,本技术实施例的应用场景可以包括:第一设备100和第二设备200。第一设备100和第二设备200之间可通过有线或无线的方式建立连接。第一设备100上安装有第一应用110,第二设备200上安装有第二应用210。当第一设备100和第二设备200连接时,第一应用110和第二应用210之间可以协同为用户提供服务,用户可以在第二设备200上通过第二应用210查看第一设备100上的第一应用110中的信息。
61.可选地,第一设备100和第二设备200之间采用无线方式建立连接时采用的无线通信协议可以为无线保真(wireless fidelity,wi-fi)协议、蓝牙(bluetooth)协议、zigbee协议、近距离无线通信(near field communication,nfc)协议,各种蜂窝网协议等,在此不作具体限制。
62.在具体实现时,上述第一设备100和/或第二设备200,可以为手机,平板电脑,手持计算机,pc,蜂窝电话,个人数字助理(personal digital assistant,pda),可穿戴式设备(如:智能手表、智能手环),智能家居设备(如:电视机),车机(如:车载电脑),智慧屏,游戏机,耳机,人工智能(artificial intelligence,ai)音箱、以及增强现实(augmented reality,ar)/虚拟现实(virtual reality,vr)设备等,本技术实施例对第一设备100和第二设备200的具体设备形态不作特殊限制。
63.可选地,在一些实施例中,第一设备100和第二设备200的设备形态可以相同。例如,第一设备100和第二设备200均为手机。
64.或者,另外一些实施例中,第一设备100和第二设备200的设备形态也可以不同。例如,第一设备100可以手机,第二设备200可以为智能手表。
65.上述第一设备100和第二设备200可以是触屏设备,也可以是非触屏设备。
66.可选地,第一设备100和/或第二设备200的操作系统,可以是安卓tm(android)系统、iostm系统、windowstm系统、mactm系统、linuxtm系统等。更具体的,还可以小米tm系统、emuitm系统、android weartm系统、lite ostm、tizentm系统、watch ostm系统等。
67.一些实施例中,第一设备100和第二设备200的操作系统可以相同。另外一些实施例中,第一设备100和第二设备200的操作系统也可以不同。本技术实施例对第一设备100和/或第二设备200的操作系统,不作具体限制。
68.作为一种示例,第一设备100,第二设备200分别可以包括存储器,处理器和显示器。其中,存储器可以用于存储操作系统,处理器可以用于运行存储器中存储的操作系统。显示器可以用于显示各种用户界面(user interface,ui)。第一设备100的显示可以用于显示第一设备100上安装的第一应用的应用界面、以及第一设备100的操作系统的用户交互界面。
69.示例性地,图2为本技术实施例提供的第一设备的结构示意图。如图2所示,以第一设备100为手机为例,第一设备100可以包括处理器210,外部存储器接口220,内部存储器221,通用串行总线(universal serial bus,usb)接口230,充电管理模块240,电源管理模块241,电池242,天线1,天线2,移动通信模块250,无线通信模块260,音频模块270,扬声器270a,受话器270b,麦克风270c,耳机接口270d,传感器模块280,按键290,马达291,指示器292,摄像头293,显示屏294,以及用户标识模块(subscriber identification module,sim)卡接口295等。
70.处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
71.其中,控制器可以是手机的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
72.处理器210中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器210中的存储器为高速缓冲存储器。该存储器可以保存处理器210刚用过或循环使用的指令
diode,fled),miniled,microled,micro-oled,量子点发光二极管(quantum dot light emitting diodes,qled)等。在一些实施例中,手机可以包括1个或m个显示屏294,m为大于1的正整数。例如,显示屏294可以用于显示应用程序的显示界面。
82.手机通过gpu,显示屏294,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏294和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器210可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
83.可以理解的是,图2所示的结构并不构成对手机的具体限定。在一些实施例中,手机也可以包括比图2所示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置等。又或者,图2所示的一些部件可以以硬件,软件或软件和硬件的组合实现。
84.另外,当第一设备100是平板电脑,手持计算机,pc,蜂窝电话,pda,可穿戴式设备,智能家居设备,车机,智慧屏,游戏机,耳机,ai音箱、以及ar/vr设备等其他终端设备时,这些其他终端设备的具体结构也可以参考图2所示。示例性地,其他终端设备可以是在图2给出的结构的基础上增加或减少了组件,在此不再一一赘述。
85.当第二设备200与第一设备100的设备形态相同时,第二设备200的结构与第一设备100的结构相同。当第二设备200与第一设备100的设备形态不同时,第二设备200的结构也可以参考图2所示,可以是在图2给出的结构的基础上增加或减少了组件,在此也不再赘述。
86.可选地,第一应用110和第二应用210的应用类型可以相同或不同。例如,第一应用110和第二应用210都可以是图库应用。或者,第一应用110可以是文件管理应用,第二应用210可以是图库应用。本技术在此不作限制。
87.本技术实施例提供的应用保活方法,可以应用图1中所示的应用场景中。
88.下面结合图3所示的流程,对本技术实施例提供的应用保活方法,在图1所示的应用场景中的具体实现过程进行示例性说明。图3为本技术实施例提供的应用保活方法的流程示意图。如图3所示,该方法可以包括s301-s308。
89.s301、第二应用210接收用户查看第一应用110中的第一信息的操作。
90.例如,第二应用210的应用界面中可以提供一个第一控件,当用户点击第一控件时,可以触发第二应用210从第一应用110中获取第一信息,并展示给用户。用户点击第一控件的操作即为s301中所述的用户查看第一应用110中的第一信息的操作。
91.第一信息是指第一应用110中包含的信息,例如,当第一应用110是图库应用时,第一信息可以是第一应用110中存储的图片。
92.s302、第二应用210从第一应用110中获取第一信息,并展示给用户。
93.第一应用110检测到第二应用210获取第一信息时,可以执行s303-s304。
94.示例性地,第二应用210可以通过向第一应用110发送第一信息的获取请求。第一应用110接收到该第一信息的获取请求后,可以向第二应用210返回第一信息。第一应用110接收到该第一信息的获取请求时,即可以检测到第二应用210获取第一信息。
95.s303、第一应用110创建第一对象,并生成第一对象的唯一标识符。
96.一些实施例中,第一对象可以是第一应用110创建的虚拟对象,如虚拟对象可以是文本、数字等,该虚拟对象可以由第一应用110随机生成或按照某种规则生成,在此不作限
制。
97.另外一些实施例中,第一对象也可以是第一应用110根据第一信息创建的,或者,第一对象可以是第一信息。例如,当第一应用110是图库应用,第一信息是第一应用110中存储的图片1时,第一对象可以是根据图片1创建的文本数据,或者,第一对象可以是图片1。
98.第一对象的唯一标识符可以由第一应用110根据第一设备100的设备信息、第一应用110的应用信息、第一对象的对象信息、创建第一对象时的时间戳信息等生成。第一对象的唯一标识符可以包括:第一设备100的设备信息、第一应用110的应用信息、第一对象的对象信息、以及创建第一对象时的时间戳信息。
99.示例性地,第一设备100的设备信息可以是第一设备100的设备名称或设备型号。第一应用110的应用信息可以是第一应用110的应用名称或应用类型。第一对象的对象信息可以是第一对象的名称。
100.例如,假设第一应用110创建的第一对象为“object”,第一设备100的设备型号为“12345”,第一应用110的应用名称为“photo”,创建第一对象时的时间戳为“20201027”,则第一对象的唯一标识符可以为“12345_photo_object_20201027”。
101.需要说明的是,本技术实施例对第一对象的唯一标识符的具体格式不作限制。
102.s304、第一应用110向第二应用210发送第一对象的唯一标识符。
103.相应地,第二应用210接收来自第一应用110的第一对象的唯一标识符。
104.s305、第二应用210根据第一对象的唯一标识符,向第一应用110发送订阅请求。
105.相应地,第一应用110接收来自第二应用210的订阅请求。
106.其中,订阅请求用于向第一应用110指示第二应用210订阅了第一对象,订阅请求可以包括第二应用210的标识信息。
107.示例性地,第二应用210的标识信息可以是第二应用210的名称。
108.s306、第一应用110根据订阅请求,在第一对象的订阅列表中添加第二应用210的标识信息。
109.当第一应用110在第一对象的订阅列表中添加了第二应用210的标识信息后,即表明第一应用110和第二应用210之间建立了协同关系。
110.在用户通过第二应用210查看第一应用110中的第一信息的过程中,当第一设备100的操作系统由于系统资源的限制,需要强行杀死第一设备100上运行的某些应用来释放系统资源时,第一对象的订阅列表中包含的第二应用210的标识信息,可以用于指示第一设备100延长第一应用110的存活时间。例如,可以参见s307-s308。
111.s307、当第一设备100的操作系统由于系统资源的限制,需要强行杀死第一设备100上运行的某些应用来释放系统资源时,第一设备100的操作系统查询第一对象的订阅列表。
112.以第一设备100的操作系统为安卓
tm
系统为例,安卓
tm
系统中包括一个lowmemorykiller组件,该lowmemorykiller组件可以用于强行杀死第一设备100上运行的某些应用来释放系统资源。
113.s308、当第一对象的订阅列表中包括第二应用210的标识信息时,第一设备100的操作系统延长第一应用110的存活时间。
114.一些实施例中,第一设备100的操作系统延长第一应用110的存活时间,可以包括:
第一设备100的操作系统不强行杀死第一应用110。
115.另外一些实施例中,第一设备100的操作系统延长第一应用110的存活时间,也可以包括:第一设备100的操作系统提升第一应用110在所有当前正在运行的应用中的优先级,优先级越高,应用的存活时间越长。
116.可选地,第一设备100的操作系统提升第一应用110在所有当前正在运行的应用中的优先级,可以是指:将第一应用110在所有当前正在运行的应用中的优先级提升至最高优先级。例如,假设第一设备100上当前正在运行的应用包括:应用a、应用b、以及第一应用110。应用a、应用b、以及第一应用110的当前优先级为:应用a高于应用b、应用b高于第一应用110。则,第一设备100的操作系统可以调整这三个应用的优先级依次为:第一应用110高于应用a,应用a高于应用b,第一设备100的操作系统在强行杀死应用时,会先杀死应用b,最后杀死第一应用110。从而,第一应用110的存活时间可以更长。
117.或者,第一设备100的操作系统提升第一应用110在所有当前正在运行的应用中的优先级,也可以是指:将第一应用110在所有当前正在运行的应用中的优先级提升至少一个优先级。例如,同样以第一设备100上当前正在运行的应用包括:应用a、应用b、以及第一应用110为例,第一设备100的操作系统可以调整这三个应用的优先级依次为:应用a高于第一应用110,第一应用110高于应用b,第一设备100的操作系统在强行杀死应用时,会先杀死应用b,最后杀死应用a。第一应用110的存活时间也可以更长。
118.需要说明的是,本技术实施例对第一设备100的操作系统延长第一应用110的存活时间的具体方式不作限制。
119.另外,应当理解,本技术实施例中,当第二应用210并未接收用户查看第一应用110中的第一信息的操作时,在第一对象的订阅列表中则没有第二应用210的标识信息,表明第一应用110和第二应用210之间没有协同关系。当第一设备100的操作系统由于系统资源的限制,需要强行杀死第一设备100上运行的某些应用来释放系统资源时,第一设备100的操作系统查询第一对象的订阅列表后,由于第一对象的订阅列表不包括第二应用210的标识信息,所以第一设备100的操作系统无需延长第一应用110的存活时间,如可以直接杀死第一应用110、或者可以维持第一应用110的优先级。
120.基于这样的理解,本技术实施例中,当第二应用210接收到用户取消查看第一应用中的信息的操作时,可以触发第一应用110在第一对象的订阅列表中删除第二应用210的标识信息,以使得第一设备100的操作系统由于系统资源的限制,需要强行杀死第一设备100上运行的某些应用来释放系统资源时,也无需延长第一应用110的存活时间。例如,图4为本技术实施例提供的应用保活方法的另一流程示意图。如图4所示,该方法可以包括s401-s405。
121.s401、第二应用210接收用户取消查看第一应用110中的第一信息的操作。
122.例如,第二应用210的应用界面中可以提供一个第二控件,当用户点击第二控件时,可以触发第二应用210不再从第一应用110中获取第一信息。用户点击第二控件的操作即为s401中所述的用户取消查看第一应用110中的第一信息的操作。
123.第一信息可以参见s301中所述。
124.第二应用210接收到用户取消查看第一应用110中的第一信息的操作后,不再从第一应用110中获取第一信息,并同时执行s402。
125.s402、第二应用210根据第一对象的唯一标识符,向第一应用110发送取消订阅请求。
126.相应地,第一应用110接收来自第二应用210的取消订阅请求。
127.其中,取消订阅请求用于向第一应用110指示第二应用210取消订阅第一对象,取消订阅请求也可以包括第二应用210的标识信息。
128.s403、第一应用110根据取消订阅请求,在第一对象的订阅列表中删除第二应用210的标识信息。
129.当第一应用110在第一对象的订阅列表中删除了第二应用210的标识信息后,即表明第一应用110和第二应用210之间没有了协同关系。
130.此时,当第一设备100的操作系统由于系统资源的限制,需要强行杀死第一设备100上运行的某些应用来释放系统资源时,第一对象的订阅列表不再包含第二应用210的标识信息,能够指示第一设备100无需再延长第一应用110的存活时间。例如,可以参见s404-s405。
131.s404、当第一设备100的操作系统由于系统资源的限制,需要强行杀死第一设备100上运行的某些应用来释放系统资源时,第一设备100的操作系统查询第一对象的订阅列表。
132.s405、当第一对象的订阅列表中不包括第二应用210的标识信息时,第一设备100的操作系统无需延长第一应用110的存活时间。
133.可选地,第一设备100的操作系统无需延长第一应用110的存活时间,可以是指:当第一设备100的操作系统由于系统资源的限制,需要强行杀死第一设备100上运行的某些应用来释放系统资源时,第一设备100的操作系统无需再调整第一应用110的优先级,或者,直接杀死第一应用110。
134.本技术实施例中,在用户通过第二应用210查看第一应用110中的第一信息的过程中,当第一设备100的操作系统由于系统资源的限制,需要强行杀死第一设备100上运行的某些应用来释放系统资源时,对于第一应用110,第一设备可以先查询第一对象的订阅列表,如果第一对象的订阅列表中包括第二应用210的标识信息,则表明第一应用110和第二应用210之间存在协同关系,第一设备100可以延长第一应用110的存活时间,以避免第一应用110和第二应用210之间的应用协同功能受到影响。
135.可以看到,该方法可以通过简单的方式建立第一应用110和第二应用210之间的协同关系,而不需要周期性的心跳。因此,第一设备100和第二设备200的功耗可以较低。另外,该方法相对于第一应用110被杀死后重新拉起的方式而言,用户体验可以更好。
136.举例说明,以第一设备100为手机,第一应用110为手机上安装的图库应用1,第二设备200为智能手表,第二应用210为智能手表上安装的图库应用2为例,当手机和智能手表连接时,图库应用2可以接收用户查看图库应用1中的图片的操作。图库应用2可以响应于用户查看图库应用1中的图片的操作,从图库应用1中获取图片并显示。当图库应用1检测到图库应用2获取图片时,图库应用1可以创建第一对象,并生成第一对象的唯一标识符。在生成第一对象的唯一标识符后,图库应用1可以将第一对象的唯一标识符发送(分享)给图库应用2。图库应用2根据第一对象的唯一标识符,向图库应用1发送订阅请求。图库应用1在接收到订阅请求后,可以根据订阅请求,在第一对象的订阅列表中添加图库应用2的标识信息。
当图库应用1在第一对象的订阅列表中添加了图库应用2的标识信息后,即表明图库应用1和图库应用2之间建立了协同关系(或称为依赖关系)。
137.在用户通过图库应用2查看图库应用1中的图片的过程中,当手机的操作系统由于系统资源的限制,需要强行杀死手机上运行的某些应用来释放系统资源时,对于图库应用1,手机的操作系统可以先查询第一对象的订阅列表,如果第一对象的订阅列表中包括图库应用2的标识信息,则手机的操作系统可以延长图库应用1的存活时间。通过该应用保活方法可以延长图库应用1的存活时间,以避免图库应用1和图库应用2之间的应用协同功能受到影响,进而保证用户体验。而且,手机和智能手表的功耗可以较低。
138.可选地,本技术实施例中,第二应用210接收到来自第一应用110的第一对象的唯一标识符后,可以先对第一对象的唯一标识符进行校验,以确定第二应用210是否有权限读取第一对象的唯一标识符。当第二应用210确定有权限读取第一对象的唯一标识符时,第二应用210再执行后续步骤,如s305。
139.其中,第二应用210读取第一对象的唯一标识符的权限可以由用户在第二设备200上赋予第二应用210。例如,第二应用210第一次接收到来自第一应用110的第一对象的唯一标识符时,或者,第一设备100与第二设备200建立连接时,第二设备200可以显示第一界面,第一界面中可以包括提示信息:“是否允许第二应用210读取来自第一应用110的信息”、以及“确认”按键和“取消”按键。当用户点击“确认”按键时,可以赋予第二应用210读取第一对象的唯一标识符的权限。当用户点击“取消”按键时,第二应用210则没有读取第一对象的唯一标识符的权限。
140.可以理解,如果用户没有赋予第二应用210读取第一对象的唯一标识符的权限,则第二应用210不再执行后续步骤。
141.本技术实施例中,第二应用210接收到来自第一应用110的第一对象的唯一标识符后,先对第一对象的唯一标识符进行校验,在确认具有读取第一对象的唯一标识符的权限后,再执行后续步骤,可以更好的保护用户隐私。
142.可选地,本技术实施例中,第一应用110接收到来自第二应用210的订阅请求后,也可以先对订阅请求进行校验,以确定第二应用210是否有权限订阅第一对象。当第一应用110确定第二应用210有权限订阅第一对象时,再执行后续步骤,如s306。
143.类似地,第二应用210订阅第一对象的权限可以由用户在第一设备100上赋予第二应用210。例如,第一应用110第一次接收到来自第二应用210的订阅请求时,或者,第一设备100与第二设备200建立连接时,第一设备100可以显示第二界面,第二界面中可以包括提示信息:“是否允许第二应用210订阅第一对象”、以及“确认”按键和“取消”按键。当用户点击“确认”按键时,可以赋予第二应用210订阅第一对象的权限。当用户点击“取消”按键时,第二应用210则没有订阅第一对象的权限。
144.可以理解,如果用户没有赋予第二应用210订阅第一对象的权限,则第一应用110不再执行后续步骤。
145.本技术实施例中,第一应用110接收到来自第二应用210的订阅请求后,先对订阅请求进行校验,在确认第二应用210有权限订阅第一对象后,再执行后续步骤,也可以更好的保护用户隐私。
146.换言之,由于本技术实施例提供的应用保活方法涉及到应用的运行数据,所以,该
方法可以只在用户同意并赋予相应的权限后,再实现应用保活,以更好的保护用户隐私。
147.以上实施例主要说明了本技术实施例提供的应用保活方法,在图1所示的应用场景中的具体实现过程。其中,第一应用110和第二应用210是分别安装在两个不同的设备(第一设备100和第二设备200)上的。但需要说明的是,本技术实施例提供的该应用保活方法,同样适用于安装于同一设备上的两个应用之间,实现保活。当该应用保活方法应用于安装于同一设备上的两个应用之间时,具体流程与前述实施例所述的第一应用110和第二应用210之间的交互流程类似,不再赘述。
148.最后,还需要说明的是,本技术实施例虽然是以第一应用和第二应用之间实现应用协同功能为例进行说明,但应当理解,与第一应用之间实现协同功能的应用可以包括多个。每个应用均可以与第一应用之间实现协同功能,并按照前述实施例中所述的流程,订阅第一应用创建的第一对象。第一应用可以将订阅了第一对象的所有应用的标识信息均加入第一对象的订阅列表。对于与第一应用之间实现协同功能的应用包括多个的情况,当第一设备(或者说第一应用所在的设备)的操作系统由于系统资源的限制,需要强行杀死第一设备上运行的某些应用来释放系统资源时,对于第一应用,第一设备的操作系统可以先查询第一对象的订阅列表,如果第一对象的订阅列表中包括其他应用的标识信息,则表明第一对象有被其他应用订阅,第一应用和其他应用之间存在协同关系,第一设备的操作系统可以延长第一应用的存活时间。
149.换言之,本技术实施例中,前述提到的第二应用可以包括多个应用(如第三应用),当第一设备的操作系统由于系统资源的限制,需要强行杀死第一设备上运行的某些应用来释放系统资源时,如果第一对象的订阅列表中包括至少一个第三应用的标识信息,则表明第一对象有被第三应用订阅,第一应用和该第三应用之间存在协同关系,第一设备的操作系统可以延长第一应用的存活时间。这里,第三应用可以被称为订阅方。
150.可选地,本技术实施例中,当第一对象是第一应用中的第一信息时,本技术实施例的技术方案实际可以理解为:当有其他应用读取(获取)第一信息时,第一应用在第一对象的订阅列表中记录了其他应用的标识信息(具体参见前述实施例)。第一对象的订阅列表中包含其他应用的标识信息,则表明第一信息正在被其他应用读取。所以。第一设备的操作系统需要强行杀死第一设备上运行的某些应用来释放系统资源时,可以适当延长第一应用的存活时间。
151.对应于前述实施例中所述的应用保活方法,本技术实施例还提供一种应用保活装置,该装置可以应用于第一设备,如:该装置可以以代码的方式与第一应用共同部署于前述第一设备中,第一设备可以调用该代码,实现前述应用保活方法中第一应用的功能。第一应用与第二应用之间具有应用协同功能。图5为本技术实施例提供的应用保活装置的结构示意图。如图5所示,该装置可以包括:
152.对象管理模块501,用于当检测到第二应用获取第一应用中的第一信息时,创建第一对象,并生成所述第一对象的唯一标识符;用于检测到第二应用获取第一应用中的第一信息时,创建第一对象,并生成第一对象的唯一标识符。收发模块502,用于向第二应用发送第一对象的唯一标识符;接收第二应用根据第一对象的唯一标识符发送的订阅请求,订阅请求包括第二应用的标识信息。保活管理模块503,用于根据订阅请求,在第一对象的订阅列表中添加第二应用的标识信息。
153.当第一设备的操作系统,由于系统资源的限制需要强行杀死第一设备上运行的某些应用来释放系统资源时,对于第一应用,第一设备的操作系统查询第一对象的订阅列表,如果第一对象的订阅列表中包括第二应用的标识信息,则第一设备的操作系统延长第一应用的存活时间。
154.一些实施例中,第一设备的操作系统具体用于,将第一应用在第一设备中所有当前正在运行的应用中的优先级提升至少一个优先级,优先级越高,应用的存活时间越长。
155.可选地,第一设备的操作系统具体用于,将第一应用在第一设备中所有当前正在运行的应用中的优先级提升至最高优先级。
156.可选地,订阅请求是第二应用在校验到第二应用具有读取第一对象的唯一标识符的权限后,发送给第一应用的。
157.可选地,图6为本技术实施例提供的应用保活装置的另一结构示意图。如图6所示,该装置还可以包括:权限校验模块504,用于校验第二应用是否具有订阅第一对象的权限;保活管理模块503,具体用于当权限校验模块504校验到第二应用具有订阅第一对象的权限后,根据订阅请求,在第一对象的订阅列表中添加第二应用的标识信息。
158.可选地,收发模块502,还用于接收第二应用根据第一对象的唯一标识符发送的取消订阅请求,取消订阅请求包括第二应用的标识信息。保活管理模块503,还用于根据取消订阅请求,在第一对象的订阅列表中删除第二应用的标识信息。当第一设备的操作系统,由于系统资源的限制需要强行杀死第一设备上运行的某些应用来释放系统资源时,对于第一应用,第一设备的操作系统查询第一对象的订阅列表,如果第一对象的订阅列表中不包括第二应用的标识信息,则第一设备的操作系统无需延长第一应用的存活时间。
159.可选地,第一对象的唯一标识符包括第一设备的设备信息、第一应用的应用信息、第一对象的对象信息、以及创建第一对象时的时间戳信息。
160.可选地,第一应用和第二应用所在的设备为同一设备或不同设备。
161.可选地,第二应用包括多个第三应用;第一设备的操作系统具体用于,如果第一对象的订阅列表中包括至少一个第三应用的标识信息,则第一设备的操作系统延长第一应用的存活时间。
162.可以理解的,该装置中,各模块的具体实现原理,可以参考前述方法实施例中所述。
163.应理解以上装置中单元或模块(以下均称为单元)的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且装置中的单元可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分单元以软件通过处理元件调用的形式实现,部分单元以硬件的形式实现。
164.例如,各个单元可以为单独设立的处理元件,也可以集成在装置的某一个芯片中实现,此外,也可以以程序的形式存储于存储器中,由装置的某一个处理元件调用并执行该单元的功能。此外这些单元全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件又可以称为处理器,可以是一种具有信号的处理能力的集成电路。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路实现或者以软件通过处理元件调用的形式实现。
165.在一个例子中,以上装置中的单元可以是被配置成实施以上方法的一个或多个集
成电路,例如:一个或多个专用集成电路(application specific integrated circuit,asic),或,一个或多个数字信号处理器(digital signal process,dsp),或,一个或者多个现场可编辑逻辑门阵列(field programmable gate array,fpga),或这些集成电路形式中至少两种的组合。
166.再如,当装置中的单元可以通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如cpu或其它可以调用程序的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,soc)的形式实现。
167.在一种实现中,以上装置实现以上方法中各个对应步骤的单元可以通过处理元件调度程序的形式实现。例如,该装置可以包括处理元件和存储元件,处理元件调用存储元件存储的程序,以执行以上方法实施例所述的方法。存储元件可以为与处理元件处于同一芯片上的存储元件,即片内存储元件。
168.在另一种实现中,用于执行以上方法的程序可以在与处理元件处于不同芯片上的存储元件,即片外存储元件。此时,处理元件从片外存储元件调用或加载程序于片内存储元件上,以调用并执行以上方法实施例所述的方法。
169.例如,本技术实施例还可以提供一种装置,如:电子设备,可以包括:处理器,用于存储该处理器可执行指令的存储器。该处理器被配置为执行上述指令时,使得该电子设备实现如前述实施例所述的应用保活方法。该存储器可以位于该电子设备之内,也可以位于该电子设备之外。且该处理器包括一个或多个。
170.示例性地,该电子设备可以是上述第一设备。
171.在又一种实现中,该装置实现以上方法中各个步骤的单元可以是被配置成一个或多个处理元件,这里的处理元件可以为集成电路,例如:一个或多个asic,或,一个或多个dsp,或,一个或者多个fpga,或者这些类集成电路的组合。这些集成电路可以集成在一起,构成芯片。
172.例如,本技术实施例还提供一种芯片,该芯片可以应用于上述电子设备。芯片包括一个或多个接口电路和一个或多个处理器;接口电路和处理器通过线路互联;处理器通过接口电路从电子设备的存储器接收并执行计算机指令,以实现如前述实施例所述的应用保活方法。
173.本技术实施例还提供一种计算机程序产品,包括计算机可读代码,当计算机可读代码在电子设备中运行时,使得电子设备实现如前述实施例所述的应用保活方法。
174.通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
175.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
176.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
177.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
178.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,如:程序。该软件产品存储在一个程序产品,如计算机可读存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
179.例如,本技术实施例还可以提供一种计算机可读存储介质,其上存储有计算机程序指令。当计算机程序指令被电子设备执行时,使得电子设备实现如前述实施例所述的应用保活方法。
180.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献