进程对象管理的方法、相关装置、设备以及可读存储介质与流程

文档序号:31016209发布日期:2022-08-05 18:57阅读:65来源:国知局
进程对象管理的方法、相关装置、设备以及可读存储介质与流程

1.本技术涉及进程对象管理的技术领域,尤其涉及一种进程对象管理的方法、相关装置、设备以及计算机可读存储介质。


背景技术:

2.在分布式场景下,一个远端进程可以被多个本端进程的应用连接。远端进程和本端进程的应用之间采用跨进程的方式进行通信。
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.本技术实施例,本端进程向远端进程发送对象的同时发送对象所在进程的进程标识以及对象的内存信息,有利于远端进程通过进程标识和内存信息建立了远端进程应用内安装对象与其原始对象的映射关系,从而使远端进程解析其应用中对象的原始对象时,解析步骤简单,解决了远端进程由于远端进程无法确定其应用中对象的原始对象,使得远端进程和本端进程之间无法交互的问题;另外,在一定程度上节约了远端进程解析其对象的原始对象的时间以及终端设备的计算资源,提高了终端设备及其操作系统的工作性能。
42.在一种可能实现的方式中,所述第一本端进程基于所述第一响应创建所述第一对象,包括:
43.所述第一本端进程基于所述第一响应调用软件开发工具包创建第二对象;所述第二对象为所述第一本端进程工作的java对象;
44.所述第一本端进程基于所述第一响应和所述第二对象调用软件开发工具包创建所述第一对象;所述第一对象为与所述远端进程通信的aidl对象。
45.本技术实施例,第一本端进程基于第一响应创建java对象和aidl对象,将工作对象和通信对象分隔,避免远端进程的数据信息泄露给本端进程,提高了远端进程数据信息的安全性。
46.在一种可能实现的方式中,所述第一本端进程将所述注册信息发送给所述远端进程之后,包括:
47.所述第一本端进程通过所述第二对象向其应用内的所述第一对象发送第一通信消息;
48.所述第一本端进程通过所述第一对象将所述第一通信消息发送给所述远端进程;
49.其中,所述第一通信消息包括第一进程指示信息,所述第一进程指示信息用于指示所述第一通信消息的目标进程为第二本端进程,所述第二本端进程为与所述第一本端进程进行通信的本端进程。
50.本技术实施例,第一本端进程将进程指示信息发送给远端进程,有利于远端进程基于进程指示信息利用其应用内安装对象与其原始对象的映射关系将通信消息进行转发,在一定程度上节约了远端进程解析通信消息的目标对象的时间,节约了终端设备及其操作系统的计算资源,提高了终端设备及其操作系统的工作性能。
51.在一种可能实现的方式中所述第一本端进程将所述注册信息发送给所述远端进程之后,包括:
52.所述第一本端进程通过所述第一对象接收所述远端进程发送的第二通信消息;
53.所述第一本端进程通过所述第一对象将所述第二通信消息发送给所述第二对象;
54.其中,所述第二通信消息由第二本端进程发送,所述第二本端进程为与所述第一本端进程进行通信的本端进程,所述第二通信消息包括第二进程指示信息,所述第二进程指示信息用于指示所述通信消息的目标进程为第一本端进程。
55.本技术实施例,第一本端进程将进程指示信息发送给远端进程,有利于远端进程基于进程指示信息利用其应用内安装对象与其原始对象的映射关系将通信消息进行转发,在一定程度上节约了远端进程解析通信消息的目标对象的时间,节约了终端设备及其操作系统的计算资源,提高了终端设备及其操作系统的工作性能。
56.在一种可能实现的方式中,所述第二请求携带有所述进程标识和所述内存信息;或者,所述第一本端进程向所述远端进程发送第二请求之后,包括:
57.所述第一本端进程向所述远端进程发送第二请求;所述第二请求用于指示所述远端进程执行第一操作。
58.在一种可能实现的方式中,所述第一本端进程向所述远端进程发送第二请求之后,包括:
59.所述第一本端进程向所述远端进程发送所述进程标识和所述内存信息;
60.所述第一本端进程接收所述远端进程发送的第一反馈信息;所述第一反馈信息用于指示所述远端进程卸载所述第一对象的结果。
61.本技术实施例,第一本端进程将进程标识和内存信息发送给远端进程之后,有利于远端进程基于进程标识和内存信息便可以从其应用中找到目标对象执行第一操作,寻找目标对象的步骤简单,操作不繁琐,在一定程度上节约了远端进程寻找目标对象的时间,也节约了终端设备及其操作系统的计算资源,提高了终端设备及其操作系统的工作性能。
62.在一种可能实现的方式中,所述第二请求携带有所述进程标识和所述内存信息;或者,所述第一本端进程向所述远端进程发送第二请求之后,包括:
63.所述第一本端进程向所述远端进程发送所述进程标识和所述内存信息;
64.所述第一本端进程接收所述远端进程发送的第二反馈信息;所述第二反馈信息用于指示所述远端进程修改所述第一对象的参数的结果。
65.本技术实施例,第一本端进程将进程标识和内存信息发送给远端进程之后,有利于远端进程基于进程标识和内存信息便可以从其应用中找到目标对象执行第一操作,寻找目标对象的步骤简单,操作不繁琐,在一定程度上节约了远端进程寻找目标对象的时间,也节约了终端设备及其操作系统的计算资源,提高了终端设备及其操作系统的工作性能。
66.第三方面,本技术实施例提供了一种进程对象管理装置,包括:
67.第一请求接收单元,用于接收第一本端进程的第一请求;
68.第一响应发送单元,用于基于所述第一请求向所述第一本端进程发送第一响应;
69.注册信息接收单元,用于接收所述第一本端进程发送的注册信息;
70.安装单元,用于使用所述注册信息在其应用内安装所述第一对象。
71.在一种可能实现的方式中,所述进程对象管理装置,还包括:
72.第一通信消息接收单元,用于接收所述第一本端进程发送的第一通信消息;
73.第一通信消息发送单元,用于基于所述进程指示信息将所述第一通信消息发送给所述第二本端进程。
74.在一种可能实现的方式中,所述进程对象管理装置,还包括:
75.第二通信消息接收单元,用于接收第二本端进程发送的第二通信消息;
76.第二通信消息发送单元,用于基于所述进程指示信息将所述第二通信消息发送给所述第一本端进程。
77.在一种可能实现的方式中,所述进程对象管理装置,还包括:
78.第二请求接收单元,用于接收所述第一本端进程发送的第二请求;
79.第一操作执行单元,用于基于所述第二请求、所述进程标识以及所述内存信息执行第一操作。
80.在一种可能实现的方式中,所述第一操作执行单元,包括:
81.接收单元,用于接收所述第一本端进程发送的所述进程标识和所述内存信息;
82.寻找单元,用于基于所述进程标识和所述内存信息在其应用中寻找第一对象;
83.卸载单元,用于卸载所述第一对象;
84.第一反馈信息发送单元,用于向所述第一本端进程发送第一反馈信息。
85.在一种可能实现的方式中,所述第一操作执行单元,包括:
86.接收单元,用于接收所述第一本端进程发送的所述进程标识和所述内存信息;
87.寻找单元,用于基于所述进程标识和所述内存信息在其应用中寻找第一对象;
88.修改单元,用于修改所述第一对象的参数;
89.第二反馈信息发送单元,用于向所述第一本端进程发送第二反馈信息。
90.在一种可能实现的方式中,所述进程对象管理装置,还包括:
91.第一请求发送单元,用于向远端进程发送第一请求;
92.第一响应接收单元,用于接收所述远端进程发送的第一响应;
93.第一对象创建单元,用于基于所述第一响应创建所述第一对象;
94.注册信息生成单元,用于复制所述第一对象,并将复制的第一对象、进程标识以及内存信息进行封装,得到注册信息;
95.注册信息发送单元,用于将所述注册信息发送给所述远端进程。
96.在一种可能实现的方式中,所述第一对象创建单元,包括:
97.第二创建单元,用于基于所述第一响应调用软件开发工具包创建第二对象;
98.第一创建单元,用于基于所述第一响应和所述第二对象调用软件开发工具包创建所述第一对象。
99.在一种可能实现的方式中,所述进程对象管理装置,还包括:
100.第一通信消息发送单元,用于通过所述第二对象向所述第一对象发送第一通信消息;
101.第二通信消息发送单元,用于通过所述第一对象将所述第一通信消息发送给所述远端进程。
102.在一种可能实现的方式中,所述进程对象管理装置,还包括:
103.第一通信消息接收单元,用于通过所述第一对象接收所述远端进程发送的第二通信消息;
104.第二通信消息接收单元,用于通过所述第一对象将所述第二通信消息发送给所述第二对象。
105.在一种可能实现的方式中,所述进程对象管理装置,还包括:
106.第二请求发送单元,用于向所述远端进程发送第二请求。
107.在一种可能实现的方式中,所述进程对象管理装置,还包括:
108.发送单元,用于向所述远端进程发送所述进程标识和所述内存信息;
109.第一反馈信息接收单元,用于接收所述远端进程发送的第一反馈信息。
110.在一种可能实现的方式中,所述进程对象管理装置,还包括:
111.发送单元,用于向所述远端进程发送所述进程标识和所述内存信息;
112.第二反馈信息接收单元,用于接收所述远端进程发送的第二反馈信息。
113.第四方面,本技术实施例提供了一种进程对象管理设备,包括存储器和处理器;
114.其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器存储的程序代码,执行上述第一方面及其各种可能实现的方式中的进程对象管理的方法。
115.第五方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时,实现上述第一方面及其各种可能实现的方式中进程对象管理的方法或实现上述第二方面及其各种可能实现的方式中的进程对象管理的方法。
116.第六方面,本技术实施例提供了一种计算机程序,该计算机程序包括指令,当所述计算机程序被计算机执行时,使得远端进程可以执行上述第一方面及其各种可能实现的方式中远端进程所执行的流程、或第一本端进程可以执行上述第二方面及其各种可能实现的方式中第一本端进程所执行的流程。
117.第七方面,本技术实施例提供了一种芯片系统,该芯片系统包括处理器,用于支持远端进程实现第一方面及其各种可能方式中的方法所涉及的功能、或第一本端进程实现第二方面及其各种可能方式中的方法所涉及的功能。
118.在一种可能的设计中,所述芯片系统还包括存储器,所述存储器用于保存第一本端进程或远端进程必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其它分立器件。
附图说明
119.下面对本技术实施例用到的附图进行介绍。
120.图1是本技术实施例提供的一种进程对象管理的场景示意图;
121.图2是本技术实施例提供的一种本端进程向远端进程创建对象的示意图;
122.图3是本技术实施例提供的另外一种进程对象管理方法的流程图;
123.图4是本技术实施例提供的另外一种进程对象管理的示意图;
124.图5是本技术实施例提供的一种进程对象管理装置的结构示意图;
125.图6是本技术实施例提供的一种进程对象管理装置的结构示意图;
126.图7是本技术实施例提供的一种进程对象管理设备的结构示意图;
127.图8是本技术实施例提供的一种进程对象管理设备的结构示意图。
具体实施方式
128.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或者特性可以包含在本实施例申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是相同的实施例,也不是与其它实施例互斥的独立的或是备选的实施例。本领域技术人员可以显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。本技术的说明书和权利要求书及所述附图中术语“第一”、“第二”、“第三”等是区别于不同的对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元,或者可选地,还包括没有列出的步骤或单元,或者可选地还包括这些过程、方法、产品或设备固有的其它步骤或单元。
129.附图中仅示出了与本技术相关的部分而非全部内容。在更加详细地讨论示例性实施例之前,应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
130.在本说明书中使用的术语“部件”、“模块”、“系统”、“单元”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件或执行中的软件。例如,单元可以是但不限于在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或分布在两个或多个计算机之间。此外,这些单元可从在上面存储有各种数据结构的各种计算机可读介质执行。单元可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一单元交互的第二单元数据。例如,通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
131.请参见图1,图1是本技术实施例提供的一种进程对象管理的场景示意图。在所述进程对象管理的场景中包括移动终端(图1以智能手机为例进行说明),在智能手机中包括
多个进程,每个进程对应一个应用程序。例如,在图1中,软件1为具有类似抖音等小视频观看分享功能的软件,软件2为具有微信等通讯交友功能的软件。本技术实施例以图1中的软件1为进程1,软件2为进程2,软件1和软件2都为本端进程以及软件1和软件2进行通信为例,进行举例说明。软件1和软件2属于不同的进程,因此,软件1和软件2不能直接进行通信,当软件1中的视频要上传到软件2,通过软件2发送给用户的联系人时,需要通过智能手机中的远端进程作为连接,使得软件1上的视频可以上传到软件2上。首先,软件1和软件2在远端进程上建立对象;然后,将软件1上的视频通过软件1中的对象传输给远端进程,远端进程再将软件1传输的视频通过对象发送给软件2。这样,软件1上的视频便可以上传到软件2上,从而将上传的视频发送给用户的联系人,实现了两个进程之间的通信。
132.在上述实施例中,两个本端进程进行通信之前要先在远端进程中创建对象,下面对本端进程在远端进程中创建对象的过程进行说明。请参见图2,图2是本技术实施例提供的一种本端进程向远端进程创建对象的示意图。如图2所述,在终端设备中,存在多个本端进程和一个远端进程,一个本端进程可以理解为图1中智能手机的一个应用程序,例如软件2、软件1、qq等。对于一个本端进程,存在多个对象执行不同的功能。由于本端进程的用户空间是互相独立的,一般而言是不能互相访问的,因此本端进程与本端进程之间不能直接通信,需要通过一个“中间介质”将进程连接起来,这个中间介质就是远端进程,使不同进程之间能够通信。本技术实施例以本端进程在远端进程上创建执行通信功能的对象为例,进行举例说明。
133.如图2所示,以进程1、进程2
……
、进程n执行通信功能的对象分别为对象1、对象2
……
、对象n为例,进行举例说明。进程1将对象1进行复制,并生成binder,所述binder为区别进程1的对象与其它对象的进程标识;然后,进程1将复制的对象1及其对应的binder通过aidl接口发送给远端进程。远端进程接收到进程1发送的对象1之后,安装对象1,并基于对象1的binder生成进对象1的binder对象;进程1中的对象1为远端进程应用中安装的对象1的原始对象。同理可得,进程2、进程3
……
进程n以相同的方式在远端进程中创建对象。
134.当终端设备中本端进程的对象在远端进程中创建完毕后,远端进程要对其应用内安装的对象进行区分,要获悉在其应用内安装对象的原始对象,从而获取原始对象所在进程的进程号和内存地址;因此,远端进程对安装在远端进程应用中的对象进行解析,解析的方法如下:
135.远端进程使用remotecallbacklist来遍历远端进程应用中的所有binder对象。首先,远端进程需要打开map遍历,在map中找到需要解析的目标对象;然后,使用remotecallbacklist对目标对象的binder对象进行解析,获取目标对象的原始对象;最后,关闭map遍历。在图2中,当远端进程安装了进程1、进程2
……
、进程n分别发送的对象1、对象2
……
、对象n之后,远端进程会分别对其应用中安装的所有对象进行解析,以确定其应用中安装的对象的原始对象,以便远端进程通过其安装的对象与原始对象交互,实现本端进程与远端进程的通信。例如,远端进程要确定其应用中的对象1中的原始对象,远端进程将对象1确定为目标对象;然后,远端进程打开其应用中的map,遍历map中的binder对象,直至找到目标对象的binder对象;然后,远端进程使用remotecallbacklist来解析目标对象的binder对象,获取目标对象的原始对象。例如,远端进程要获取对象1的原始对象;那么,远端进程使用remotecallbacklist来解析对象1的binder对象,解析完成后,远端进程可得到
其应用内安装的对象1的原始对象为进程1中的对象1;那么,当远端进程作为“中间介质”使用其应用中的对象1向本端进程发送信息时,远端进程基于原始对象所在进程的进程号和原始对象的内存地址将信息发送给进程1中的对象1,而不会把消息错发给其它进程或进程1中的其它对象。
136.本技术实施例,两个本端进程通信之前,本端进程向远端进程发送对象,远端进程安装对象,创建与对象相关的binder对象,从而确保了安装在远端进程应用中对象的唯一性。远端进程通过使用remotecallbacklist来解析对象的binder对象,从而确定远端进程安装的对象对应本端进程中的哪一个对象,有利于远端进程与本端进程之间进行通信,进而解决了两个本端进程之间不能直接通信的问题以及远端进程不能区分其安装对象的原始对象的问题,使得远端进程能够通过其安装的对象与所述对象的原始对象通信,实现了远端进程和本端进程之间的交互。
137.在图2的实施例中,远端进程使用remotecallbacklist来解析其应用中安装的binder对象,从而确定其应用中安装对象的原始对象,有利于远端进程与本端进程之间进行通信。但是通过这种方式,远端进程不能一次性全部解析其应用内安装的所有对象与本端进程对象的对应关系,每次只能解析一个binder对象;且当远端进程每次解析一个binder对象时,要执行打开map遍历、使用remotecallbacklist遍历binder对象、解析目标对象的binder对象、关闭map遍历等操作,使得远端进程确定其应用内安装的所有对象与本端进程中对象的对应关系步骤繁琐且耗费时间,从而降低系统的工作性能。为了解决上述问题,本技术实施例提供了另外一种进程对象管理的方法。请参见图3,图3是本技术实施例提供的另外一种进程对象管理方法的流程图,本技术实施例以单个本端进程在远端进程中创建对象为例进行举例说明,其具体流程如下:
138.步骤s301:第一本端进程向远端进程发送第一请求。
139.具体地,第一本端进程在远端进程中创建对象之前,要绑定远端进程,以便远端进程识别和安装第一本端进程发送的注册信息。第一本端进程绑定远端进程的方式为向远端进程发送第一请求,所述第一请求用于指示第一本端进程绑定远端进程的服务请求。
140.步骤s302:远端进程基于所述第一请求向第一本端进程发送第一响应。
141.具体地,远端进程接收到第一本端进程的绑定服务请求后(第一请求),生成第一响应,所述第一响应包括test.aidl接口和第一消息;其中,test.aidl接口为第一本端进程和远端进程约定的跨进程通信接口,包括远端进程执行的协议和性能参数等数据信息,用于指示本端进程创建对象;第一消息用于指示远端进程所能提供的服务(例如,对象安装服务、对象修改服务、对象卸载服务等)。
142.步骤s303:第一本端进程基于第一响应创建第一对象。
143.具体地,第一本端进程接收到第一响应后,根据第一响应中test.aidl接口调用软件开发工具包(software development kit,软件开发工具包)创建java对象,所述java对象是第一本端进程实际工作的对象,且所述java对象是第一本端进程的“私密”对象,其内部参数和信息只能由本端进程识别,其它本端进程和远端进程不能识别所述java对象,也不能获取所述java对象的内部信息和参数。因此,对于一个java对象,远端进程不能对其进行识别,也无法获取其内部参数和信息,远端进程也就无法安装java对象;另外,远端进程发送test.aidl接口指示第一本端进程创建java对象时,可以选择性让第一本端进程获取
远端进程执行的协议和性能参数等数据信息,避免远端进程造成数据信息的泄露,从而引发数据信息安全的问题。为了使得第一本端进程能够在远端进程中创建对象,第一本端进程基于第一响应中test.aidl接口调用软件开发工具包创建java对象后,在基于test.aidl接口和所述java对象创建与java对象功能相同的aidl对象,所述aidl对象的内部参数和信息能够被其它本端进程以及远端进程识别,因此,aidl对象能够安装在远端进程中,且能够与远端进程进行通信,aidl对象为第一对象。例如,在图4中,若进程1为第一本端进程,进程1基于test.aidl接口调用软件开发工具包创建执行通信功能的java对象1,然后再基于java对象1和test.aidl接口调用软件开发工具包创建执行通信功能的aidl对象1,所述aidl对象1为待传输的对象,也是与远端进程进行通信的对象。由于aidl对象指示起通信作用的对象,且是基于test.aidl接口所创建的;因此,aidl对象中关于远端进程的参数和信息不会被进程1识别,保证了远端进程的数据信息不会被泄露。通过将第一本端进程实际工作的对象(java对象)和与远端进程通信的对象(aidl对象)分隔,避免远端进程造成数据信息的泄露,从而引发数据信息安全的问题。
144.步骤s304:第一本端进程复制所述第一对象,并将复制的第一对象、进程标识以及内存信息进行封装,得到注册信息。
145.具体地,进程标识是与本端进程存在映射关系的标识,可以是进程号pid等标识;内存信息为与第一对象内存地址存在对应关系的信息,也可以是第一对象的内存地址。通过进程标识和内存信息在终端设备中就可以确保第一对象的唯一性(通过第一对象的内存地址以及第一对象所在的进程可以将第一对象和其他对象进行区分)。
146.步骤s305:第一本端进程将注册信息发送给远端进程。
147.步骤s306:远端进程使用注册信息在其应用内安装第一对象。
148.具体地,远端进程接收到注册信息后安装第一对象,并将注册信息中的进程标识的内存信息存储在存储器中,并建立一个映射关系表,所述映射关系表包括指示第一对象与进程标识和内存信息的映射关系。如图4所示,进程1、进程2
……
进程n分别向远端进程发送注册信息,远端进程将注册信息中的对象安装后,建立了一个映射关系表,映射关系表包括本端进程发送的对象与安装对象的进程标识和安装进程在本端进程中的内存地址的对应关系。当远端进程确认在其应用中安装对象的原始对象时,可以通过所述映射关系表找到原始对象,而不必执行像图2实施例中遍历map中的binder对象,解析binder对象等繁琐操作来找到原始对象,在一定程度上节约了解析时间,提高了系统的性能。
149.步骤s307:第一本端进程向远端进程发送第二请求。
150.具体地,第一请求用于指示远端进程执行第一操作;因此,第一请求的类型不同,远端进程所执行的第一操作也不同。
151.在一种可能实现的方式中,若第一请求用于指示远端进程卸载其安装的第一对象;那么,远端进程执行的第一操作为卸载第一对象。
152.在一种可能实现的方式中,若第一请求用于指示远端进程修改第一对象的参数;那么,远端进程执行的第一操作为修改第一对象的参数。
153.步骤s308:远端进程基于第二请求、进程标识以及内存信息执行第一操作。
154.具体地,若第二请求用于指示远端进程卸载其安装的第一对象,远端进程执行的第一操作为卸载在其应用内安装的第一对象。远端进程在执行第一操作之前,接收第一本
端进程发送的进程标识和内存信息。远端进程接收到内存信息和进程标识之后,在映射关系表中找到待卸载的第一对象,然后根据第二请求中的卸载指令,将第一对象从远端进程的应用中卸载。在卸载完成后,远端进程向第一本端进程发送第一反馈信息,用于告知第一本端进程卸载结果。
155.在一种可能实现的方式中,若第二请求用于指示远端进程修改第一对象的参数,远端进程执行的第一操作为修改在其应用内安装的第一对象的参数。远端进程在执行第一操作之前,接收第一本端进程发送的进程标识和内存信息。远端进程接收到内存信息和进程标识之后,在映射关系表中找到待修改的第一对象,然后根据第二请求中的修改指令,修改远端进程应用中的第一对象的参数。在修改完成后,远端进程向第一本端进程发送第二反馈信息,用于告知第一本端进程修改第一对象的结果。
156.步骤s309:第一本端进程向远端进程发送第一通信消息。
157.具体地,若第一本端进程和第二本端进程通信,远端进程作为第一本端进程和第二本端进程的中介,转发第一本端进程和第二本端进程之间的通信消息。本技术实施例以图4中进程1为第一本端进程,对象1为执行通信功能的第一对象,进程2为与进程1通信的本端进程,进程2中的对象2为执行通信功能的对象为例,进行举例说明。进程1和进程2采用步骤s301~步骤s306的方法分别在远端进程的应用中安装aidl对象1和aidl对象2。进程1和进程2分别安装好对象1和对象2后,进程1中的java对象1将第一通信消息发送给进程1的aidl对象1,所述第一通信消息包括第一进程指示信息,所述第一进程指示信息用于指示所述第一通信消息发送给进程2;然后,进程1的aidl对象1将所述通信消息发送给安装在远端进程中的aidl对象1。
158.步骤s310:远端进程基于第一进程指示信息向第二本端进程发送第一通信消息。
159.具体地,远端进程基于进程指示信息通过安装在其应用中的aidl对象1将通信消息发送给安装在其应用中的aidl对象2;远端进程通过安装在其应用中的aidl对象2发送给进程2中的aidl对象2;最后,进程2中的aidl对象2将所述第一通信消息传输给java对2,实现进程2和进程1之间的通信。
160.步骤s311:远端进程接收第二本端进程发送的第二通信消息。
161.步骤s312:远端进程基于第二进程指示信息向第一本端进程发送第二通信消息。
162.步骤s311~步骤s312可参考步骤s309~步骤s310,本技术实施例不再赘述。
163.本技术实施例,第一本端进程将第一对象、进程标识以及内存信息传输给远端进程,与图2实施例不同的是,远端进程确保其应用中安装对象的唯一性是通过binder对象来实现的,本实施例通过第一对象的进程标识以及内存信息便可确保第一对象的唯一性,即:远端进程通过进程标识和内存信息可知安装在其应用中的第一对象的原始对象,解决了由于远端进程无法获知其应用中对象的原始对象,使得远端进程和本端进程之间无法交互的问题。远端进程通过test.aidl接口,指示第一本端进程创建java对象和aidl对象,避免远端进程造成数据信息的泄露,从而引发数据信息安全的问题。另外,由于远端进程通过映射关系表中进程标识和内存信息与第一对象的映射关系便可得知第一对象的原始对象,相较于图2实施例中,远端进程使用remotecallbacklist对目标对象的binder对象进行解析,获取目标对象与其所属本端进程的目标对象的对应关系而言节约了大量时间也减轻了终端设备的工作负担,从而提高了终端设备的系统性能。
164.上述详细阐述了本技术实施例的方法,下面介绍本技术实施例的相关装置、设备、计算机可读存储介质、计算机程序以及芯片系统。
165.请参见图5,图5是本技术实施例提供的一种进程对象管理装置的结构示意图,所述进程对象管理装置5可以包括第一请求接收单元501、第一响应发送单元502、注册信息接收单元503以及安装单元504;其中,各个单元的详细描述如下:
166.第一请求接收单元501,用于接收第一本端进程的第一请求;
167.第一响应发送单元502,用于基于所述第一请求向所述第一本端进程发送第一响应;
168.注册信息接收单元503,用于接收所述第一本端进程发送的注册信息;
169.安装单元504,用于使用所述注册信息在其应用内安装所述第一对象。
170.在一种可能实现的方式中,所述进程对象管理装置5,还包括:
171.第一通信消息接收单元,用于接收所述第一本端进程发送的第一通信消息;
172.第一通信消息发送单元,用于基于所述进程指示信息将所述第一通信消息发送给所述第二本端进程。
173.在一种可能实现的方式中,所述进程对象管理装置5,还包括:
174.第二通信消息接收单元,用于接收第二本端进程发送的第二通信消息;
175.第二通信消息发送单元,用于基于所述进程指示信息将所述第二通信消息发送给所述第一本端进程。
176.在一种可能实现的方式中,所述进程对象管理装置5,还包括:
177.第二请求接收单元,用于接收所述第一本端进程发送的第二请求;
178.第一操作执行单元,用于基于所述第二请求、所述进程标识以及所述内存信息执行第一操作。
179.在一种可能实现的方式中,所述第一操作执行单元,包括:
180.接收单元,用于接收所述第一本端进程发送的所述进程标识和所述内存信息;
181.寻找单元,用于基于所述进程标识和所述内存信息在其应用中寻找第一对象;
182.卸载单元,用于卸载所述第一对象;
183.第一反馈信息发送单元,用于向所述第一本端进程发送第一反馈信息。
184.在一种可能实现的方式中,所述第一操作执行单元,包括:
185.接收单元,用于接收所述第一本端进程发送的所述进程标识和所述内存信息;
186.寻找单元,用于基于所述进程标识和所述内存信息在其应用中寻找第一对象;
187.修改单元,用于修改所述第一对象的参数;
188.第二反馈信息发送单元,用于向所述第一本端进程发送第二反馈信息。
189.请参见图6,图6是本技术实施例提供的一种进程对象管理装置的结构示意图,所述进程对象管理装置6和上述进程对象管理装置5可以为同一装置,可以包括第一请求发送单元601、第一响应发送单元602、第一对象创建单元603、注册信息生成单元604以及注册信息发送单元605;其中,各个单元的详细描述如下:
190.第一请求发送单元601,用于向远端进程发送第一请求;
191.第一响应发送单元602,用于接收所述远端进程发送的第一响应;
192.第一对象创建单元603,用于基于所述第一响应创建所述第一对象;
193.注册信息生成单元604,用于复制所述第一对象,并将复制的第一对象、进程标识以及内存信息进行封装,得到注册信息;
194.注册信息发送单元605,用于将所述注册信息发送给所述远端进程。
195.在一种可能实现的方式中,所述第一对象创建单元603,包括:
196.第二创建单元,用于基于所述第一响应调用软件开发工具包创建第二对象;
197.第一创建单元,用于基于所述第一响应和所述第二对象调用软件开发工具包创建所述第一对象。
198.在一种可能实现的方式中,所述进程对象管理装置6,还包括:
199.第一通信消息发送单元,用于通过所述第二对象向所述第一对象发送第一通信消息;
200.第二通信消息发送单元,用于通过所述第一对象将所述第一通信消息发送给所述远端进程。
201.在一种可能实现的方式中,所述进程对象管理装置6,还包括:
202.第一通信消息接收单元,用于通过所述第一对象接收所述远端进程发送的第二通信消息;
203.第二通信消息接收单元,用于通过所述第一对象将所述第二通信消息发送给所述第二对象。
204.在一种可能实现的方式中,所述进程对象管理装置6,还包括:
205.第二请求发送单元,用于向所述远端进程发送第二请求。
206.在一种可能实现的方式中,所述进程对象管理装置6,还包括:
207.发送单元,用于向所述远端进程发送所述进程标识和所述内存信息;
208.第一反馈信息接收单元,用于接收所述远端进程发送的第一反馈信息。
209.在一种可能实现的方式中,所述进程对象管理装置6,还包括:
210.发送单元,用于向所述远端进程发送所述进程标识和所述内存信息;
211.第二反馈信息接收单元,用于接收所述远端进程发送的第二反馈信息。
212.请参见图7,图7是本技术实施例提供的一种进程对象管理设备的结构示意图,所述进程对象管理设备7可以包括存储器701、通信模块702和处理器703,其中,各个单元的详细描述如下:
213.存储器701用于存储程序代码。
214.处理器703用于调用存储器存储的程序代码执行如下步骤:
215.通过通信模块702接收第一本端进程的第一请求;
216.基于所述第一请求通过通信模块702向所述第一本端进程发送第一响应;
217.通过通信模块702接收所述第一本端进程发送的注册信息;
218.使用所述注册信息在其应用内安装所述第一对象。
219.在一种可能实现的方式中,所述处理器703使用所述注册信息在其应用内安装所述第一对象之后,还包括:
220.通过通信模块702接收所述第一本端进程发送的第一通信消息;
221.基于所述进程指示信息通过通信模块702将所述第一通信消息发送给所述第二本端进程。
222.在一种可能实现的方式中,所述处理器703使用所述注册信息在其应用内安装所述第一对象之后,还包括:
223.通过通信模块702接收第二本端进程发送的第二通信消息;
224.基于所述进程指示信息通过通信模块702将所述第二通信消息发送给所述第一本端进程。
225.在一种可能实现的方式中,所述处理器703使用所述注册信息在其应用内安装所述第一对象之后,还包括:
226.通过通信模块702接收所述第一本端进程发送的第二请求;
227.基于所述第二请求、所述进程标识以及所述内存信息执行第一操作。
228.在一种可能实现的方式中,所述处理器703基于所述第二请求、所述进程标识以及所述内存信息执行第一操作,包括:
229.通过通信模块702接收所述第一本端进程发送的所述进程标识和所述内存信息;
230.基于所述进程标识和所述内存信息在其应用中寻找第一对象;
231.所述远端进程卸载所述第一对象;
232.通过通信模块702向所述第一本端进程发送第一反馈信息。
233.在一种可能实现的方式中,所述处理器703基于所述第二请求、所述进程标识以及所述内存信息执行第一操作,包括:
234.通过通信模块702接收所述第一本端进程发送的所述进程标识和所述内存信息;
235.基于所述进程标识和所述内存信息在其应用中寻找第一对象;
236.修改所述第一对象的参数;
237.通过通信模块702向所述第一本端进程发送第二反馈信息。
238.请参见图8,图8是本技术实施例提供的一种进程对象管理设备的结构示意图,所述进程对象管理设备8和上述进程对象管理设备7可以为同一设备,可以包括存储器801、通信模块802和处理器803,其中,各个单元的详细描述如下:
239.存储器801用于存储程序代码。
240.处理器803用于调用存储器存储的程序代码执行如下步骤:
241.通过通信模块802向远端进程发送第一请求;
242.通过通信模块802接收所述远端进程发送的第一响应;
243.基于所述第一响应创建所述第一对象;
244.复制所述第一对象,并将复制的第一对象、进程标识以及内存信息进行封装,得到注册信息;
245.通过通信模块802将所述注册信息发送给所述远端进程。
246.在一种可能实现的方式中,所述处理器803基于所述第一响应创建所述第一对象,包括:
247.基于所述第一响应调用软件开发工具包创建第二对象;
248.基于所述第一响应和所述第二对象调用软件开发工具包创建所述第一对象。
249.在一种可能实现的方式中,所述处理器803通过通信模块802将所述注册信息发送给所述远端进程之后,包括:
250.通过通信模块802使用所述第二对象向其应用内的所述第一对象发送第一通信消
息;
251.通过通信模块802使用所述第一对象将所述第一通信消息发送给所述远端进程。
252.在一种可能实现的方式中,所述处理器803通过通信模块802将所述注册信息发送给所述远端进程之后,包括:
253.通过通信模块802使用所述第一对象接收所述远端进程发送的第二通信消息;
254.通过通信模块802使用所述第一对象将所述第二通信消息发送给所述第二对象。
255.在一种可能实现的方式中,所述处理器803通过通信模块802将所述注册信息发送给所述远端进程之后,包括:
256.通过通信模块802向所述远端进程发送第二请求。
257.在一种可能实现的方式中,所述处理器803通过通信模块802向所述远端进程发送第二请求之后,包括:
258.通过通信模块802向所述远端进程发送所述进程标识和所述内存信息;
259.通过通信模块802接收所述远端进程发送的第一反馈信息。
260.在一种可能实现的方式中,所述处理器803通过通信模块802向所述远端进程发送第二请求之后,包括:
261.通过通信模块802向所述远端进程发送所述进程标识和所述内存信息;
262.通过通信模块802接收所述远端进程发送的第二反馈信息。
263.本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时,实现上述实施例及其各种可能的实现方式中的进程对象管理的方法。
264.本技术实施例提供了一种计算机程序,该计算机程序包括指令,当所述计算机程序被计算机执行时,使得进程对象管理设备的远端进程可以执行上述实施例及其各种可能的实现方式中进程对象管理设备的远端进程所执行的流程、或进程对象管理设备的第一本端进程可以执行上述实施例及其各种可能的实现方式中进程对象管理设备的第一本端进程所执行的流程。
265.本技术实施例提供了一种芯片系统,该芯片系统包括处理器,用于支持进程对象管理设备的远端进程实现上述实施例及其各种可能方式中的方法所涉及的功能、或进程对象管理设备的第一本端进程实现上述实施例及其各种可能方式中的方法所涉及的功能。
266.在一种可能的设计中,所述芯片系统还包括存储器,所述存储器用于保存进程对象管理设备的远端进程或进程对象管理设备的第一本端进程必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其它分立器件。
267.需要说明的是,上述实施例中的存储器,可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其它类型的静态存储设备,随机存储器(random access memory,ram)或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于于此。存储器可以是独立存在,通过总线于处理器相连接。存储器可以
和处理器集成在一起。
268.上述实施例中的处理器,可以是通用中央处理器(cpu),微处理器,特定应用集成电路(application-specific integrated circuit,asic),或一个或多个用于控制以上方案程序执行的集成电路。
269.对于前述各方法实施例,为了简单描述,故将其都表达为一系列的动作组合,但是本领域的技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可能可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。
270.在本技术所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
271.上述作为分离部件说明的单元可以是或者不是也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,既可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
272.另外,在本技术各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
273.上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以为个人计算机、服务器或者网络设备等,具体可以是计算机设备中的处理器)执行本技术各个实施例上述方法的全部或部分步骤。其中,前述的存储介质可包括:u盘、移动硬盘、磁碟、光盘、只读存储器(read-only memory,rom)或者随机存取存储器(random access memory,ram)等各种可以存储程序代码的介质。
274.以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1