首页 / 专利库 / 软件 / 操作系统 / 应用间调用关系的确定方法、调用规则生成方法及装置

应用间调用关系的确定方法、调用规则生成方法及装置

阅读:377发布:2024-01-09

专利汇可以提供应用间调用关系的确定方法、调用规则生成方法及装置专利检索,专利查询,专利分析的服务。并且本 申请 公开了一种应用间调用关系的确定方法及装置,用以解决采用 现有技术 确定应用之间是否存在调用关系效率较低的问题。方法包括:确定第一应用的安装包中的、第一应用能够响应的调用消息的第一特征;确定第二应用发出的用于调用其他应用的调用消息的第二特征;根据第一特征和第二特征,确定所述第二应用和所述第一应用之间的调用关系。本申请还公开了一种调用规则生成方法及装置。,下面是应用间调用关系的确定方法、调用规则生成方法及装置专利的具体信息内容。

1.一种应用间调用关系的确定方法,其特征在于,包括:
确定第一应用的安装包中的、第一应用能够响应的调用消息的第一特征;
确定第二应用发出的用于调用其他应用的调用消息的第二特征;
根据所述第一特征和所述第二特征,确定所述第二应用和所述第一应用之间的调用关系。
2.如权利要求1所述的方法,其特征在于,确定第一应用的安装包中的、第一应用能够响应的调用消息的第一特征,包括:
确定第一应用的安装包中的、第一应用能够以启动或者唤醒方式进行响应的调用消息的第一特征。
3.如权利要求1或2所述的方法,其特征在于,确定第一应用的安装包中的、第一应用能够响应的调用消息的第一特征,包括:
根据设置在第一应用的安装包的注册启动条件,确定第一应用能够响应的调用消息的第一特征;
所述注册启动条件,为所述安装包进行安装时,会注册到操作系统的第一应用的启动条件;所述启动条件,包括第一应用能够响应的调用消息的第一特征。
4.如权利要求3所述的方法,其特征在于,根据设置在第一应用的安装包的注册启动条件,确定第一应用能够响应的调用消息的第一特征,包括:
通过对所述第一应用的安装文件进行静态源代码扫描,确定所述注册启动条件;
根据所述注册启动条件,确定第一应用能够响应的调用消息的第一特征。
5.如权利要求1所述的方法,其特征在于,所述第二应用发出的用于调用其他应用的调用消息,包括下述至少一种:
第二应用向操作系统发出的用于调用其他应用的广播消息;
第二应用向操作系统发出的用于调用其他应用的意图Intent消息;
第二应用向操作系统发出的用于调用其他应用的延迟意图PendingIntent消息。
6.如权利要求1所述的方法,其特征在于,根据所述第一特征和所述第二特征,确定所述第二应用和所述第一应用之间的调用关系,包括:
判断所述第一特征是否与所述第二特征匹配;
在判断结果为匹配时,确定所述第二应用能够调用所述第一应用;
在判断结果为不匹配时,确定所述第二应用不能调用所述第一应用。
7.一种基于如权利要求1或2或4~6任一权项所述方法的调用规则生成方法,其特征在于,包括:
当确定出第二应用能够调用第一应用时,根据与第二应用发出的用于调用第一应用的调用消息对应的进程名称,生成包含所述进程名称的调用规则。
8.如权利要求7所述的方法,其特征在于,根据与第二应用发出的用于调用第一应用的调用消息对应的进程名称,生成包含所述进程名称的调用规则,包括:
根据第二应用发出的用于调用其他应用的调用消息的指定消息内容与操作系统进程的进程名称的映射关系,以及所述第二应用发出的用于调用第一应用的调用消息的指定消息内容,确定与所述第二应用发出的用于调用第一应用的调用消息对应的操作系统进程的进程名称;
根据确定出的进程名称,生成包含所述进程名称的调用规则。
9.一种应用间调用关系的确定装置,其特征在于,包括:
第一特征确定单元,用于确定第一应用的安装包中的、第一应用能够响应的调用消息的第一特征;
第二特征确定单元,用于确定第二应用发出的用于调用其他应用的调用消息的第二特征;
调用关系确定单元,用于根据所述第一特征和所述第二特征,确定所述第二应用和所述第一应用之间的调用关系。
10.如权利要求9所述的装置,其特征在于,第一特征确定单元,用于:
确定第一应用的安装包中的、第一应用能够以启动或者唤醒方式进行响应的调用消息的第一特征。
11.如权利要求9或10所述的装置,其特征在于,第一特征确定单元,用于:
根据设置在第一应用的安装包的注册启动条件,确定第一应用能够响应的调用消息的第一特征;
所述注册启动条件,为所述安装包进行安装时,会注册到操作系统的第一应用的启动条件;所述启动条件,包括第一应用能够响应的调用消息的第一特征。
12.如权利要求11所述的装置,其特征在于,第一特征确定单元,用于:
通过对所述第一应用的安装文件进行静态源代码扫描,确定所述注册启动条件;
根据所述注册启动条件,确定第一应用能够响应的调用消息的第一特征。
13.如权利要求9所述的装置,其特征在于,所述第二应用发出的用于调用其他应用的调用消息,包括下述至少一种:
第二应用向操作系统发出的用于调用其他应用的广播消息;
第二应用向操作系统发出的用于调用其他应用的意图Intent消息;
第二应用向操作系统发出的用于调用其他应用的延迟意图PendingIntent消息。
14.如权利要求9所述的装置,其特征在于,调用关系确定单元,用于:
判断所述第一特征是否与所述第二特征匹配;
在判断结果为匹配时,确定所述第二应用能够调用所述第一应用;
在判断结果为不匹配时,确定所述第二应用不能调用所述第一应用。
15.一种基于如权利要求9或10或12~14任一权项所述装置的调用规则生成装置,其特征在于,包括:
规则生成单元,用于在所述调用关系确定单元确定出第二应用能够调用第一应用时,根据与第二应用发出的用于调用第一应用的调用消息对应的进程名称,生成包含所述进程名称的调用规则。
16.如权利要求15所述的装置,其特征在于,规则生成单元,用于:
根据第二应用发出的用于调用其他应用的调用消息的指定消息内容与操作系统进程的进程名称的映射关系,以及所述第二应用发出的用于调用第一应用的调用消息的指定消息内容,确定与所述第二应用发出的用于调用第一应用的调用消息对应的操作系统进程的进程名称;
根据确定出的进程名称,生成包含所述进程名称的调用规则。

说明书全文

应用间调用关系的确定方法、调用规则生成方法及装置

技术领域

[0001] 本申请涉及计算机技术领域,尤其涉及一种应用间调用关系的确定方法、调用规则生成方法及装置。

背景技术

[0002] 随着智能手机功能的不断增加,手机上安装的用于实现不同功能的应用(Application,APP)也变得越来越多。在用户对这些APP使用的过程中,可能会通过该APP(调用方APP)调用其他APP(被调用方APP),比如,该APP的某些功能可能会需要通过调用其他APP来协助实现。
[0003] 所述应用之间的调用,一般可以是指某一应用通过向操作系统发送特定的消息,以使得操作系统根据接收到的所述消息,启动或者唤醒其他的应用。比如,用户通过点击应用A的图标以触发操作系统启动应用A,在应用A启动时,应用A会向操作系统发送用于启动应用B的消息,以使得操作系统根据该消息启动应用B,在这种情况下,则说明应用A与应用B之间存在调用关系。
[0004] 例如,当用户期望通过“微博APP”拍摄照片并将拍摄的照片以微博的形式发出时,仅通过微博APP无法拍摄照片,因而此时需要微博APP调用相机APP来拍摄照片,此时则说明微博APP与相机APP之间存在调用关系。还比如,用户在浏览器上搜索到一部视频,用户期望观看该视频,此时浏览器会调用手机上安装的视频播放APP,以通过该视频播放APP播放该视频,此时则说明浏览器与视频播放APP之间存在调用关系。
[0005] 现有技术中,确定智能终端上哪些应用间存在调用关系,往往需要对智能终端上安装的应用发生的事件进行监控,并在监控到发生应用之间的调用时,确定发生应用间调用的两个应用之间存在调用关系。
[0006] 可见,采用现有技术,只有当智能终端上安装的两个应用之间真正发生调用时,才可以确定这两个应用间是否存在调用关系。这种方式的实现,由于依赖于应用之间真正的调用,从而需要在智能终端上安装待确定彼此间调用规则的各种应用,过程比较繁琐,效率较低。发明内容
[0007] 本申请实施例提供一种应用间调用关系的确定方法,用以解决采用现有技术确定应用之间是否存在调用关系效率较低的问题。
[0008] 本申请实施例还提供一种应用间调用关系的确定装置,用以解决采用现有技术确定应用之间是否存在调用关系效率较低的问题。
[0009] 本申请实施例还提供一种调用规则生成方法及装置。
[0010] 本申请实施例采用下述技术方案:
[0011] 一种应用间调用关系的确定方法,包括:
[0012] 确定第一应用的安装包中的、第一应用能够响应的调用消息的第一特征;
[0013] 确定第二应用发出的用于调用其他应用的调用消息的第二特征;
[0014] 根据所述第一特征和所述第二特征,确定所述第二应用和所述第一应用之间的调用关系。
[0015] 一种基于上述应用间调用关系的确定方法的调用规则生成方法,包括:
[0016] 当确定出第二应用能够调用第一应用时,根据与第二应用发出的用于调用第一应用的调用消息对应的进程名称,生成包含所述进程名称的调用规则。
[0017] 一种应用间调用关系的确定装置,包括:
[0018] 第一特征确定单元,用于确定第一应用的安装包中的、第一应用能够响应的调用消息的第一特征;
[0019] 第二特征确定单元,用于确定第二应用发出的用于调用其他应用的调用消息的第二特征;
[0020] 调用关系确定单元,用于根据所述第一特征和所述第二特征,确定所述第二应用和所述第一应用之间的调用关系。
[0021] 一种基于上述应用间调用关系的确定装置的调用规则生成装置,包括:
[0022] 规则生成单元,用于在调用关系确定单元确定出第二应用能够调用第一应用时,根据与第二应用发出的用于调用第一应用的调用消息对应的操作系统进程的进程名称,生成包含所述进程名称的调用规则。
[0023] 本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
[0024] 由于可以从第一应用的安装包中,确定所述第一应用能够响应的调用消息的第一特征,并确定第二应用能够发出的、用于调用其他应用的调用消息的第二特征,进而可以根据所述第一特征和所述第二特征,确定所述第二应用是否能够调用所述第一应用,在这种情况下,第一应用不需要安装在智能终端上,即可确定第一应用与第二应用之间是否存在调用关系,从而提高了确定应用之间的调用关系的效率。附图说明
[0025] 此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0026] 图1为本申请实施例提供的一种应用间调用关系的确定方法的具体流程示意图;
[0027] 图2为本申请实施例提供的一种从应用的安装包中,获取应用能够响应的调用消息的第一特征的具体流程示意图;
[0028] 图3为本申请实施例提供的一种获得应用发出的用于调用其他应用的调用消息的第二特征的具体流程示意图;
[0029] 图4为本申请实施例提供的一种应用间调用关系的确定装置的具体结构示意图。

具体实施方式

[0030] 为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0031] 以下结合附图,详细说明本申请各实施例提供的技术方案。
[0032] 实施例1
[0033] 本申请实施例提供了一种应用间调用关系的确定方法,用以解决采用现有技术确定应用之间是否存在调用关系效率较低的问题。
[0034] 本申请实施例提供的应用间调用关系的确定方法的执行主体,可以但不限于为手机、平板电脑、个人电脑(Personal Computer,PC)、智能电视以及任何可以安装运行应用的智能终端中的至少一种。
[0035] 为便于描述,下文以该方法的执行主体为手机为例,对该方法的实施方式进行介绍。可以理解,该方法的执行主体为手机只是一种示例性的说明,并不应理解为对该方法的限定。
[0036] 该方法的具体实现流程示意图如图1所示,主要包括下述步骤:
[0037] 步骤11,确定第一应用的安装包中的、第一应用能够响应的调用消息的第一特征;
[0038] 所述第一应用的安装包(Install Package)中包括该应用的所有安装文件,运行所述安装包,可将该应用的所有安装文件均释放到硬盘上。某应用的安装包即使未安装到手机上,也可以对该应用的安装包中的安装文件进行扫描并确定安装文件中包含的信息。
[0039] 采用步骤11所提供的方法,由于所述第一应用能够响应的调用消息的第一特征,是从所述第一应用的安装包中获取到的,因而手机上只需要保存有所述第一应用的安装包即可,而不需要将所述第一应用安装到手机上,从而可以减少由于安装应用而耗费的处理资源以及存储空间。
[0040] 所述第一应用对调用消息的响应方式,一般可以包括启动第一应用或者唤醒第一应用,当然第一应用还可以通过其他方式对调用消息进行响应,本申请实施例对第一应用对调用消息的具体响应方式不做限定。由于第一应用通常以启动或者唤醒的方式响应针对第一应用的调用消息,在一种实施方式中,步骤11的具体实现方式可以包括:确定第一应用的安装包中的、第一应用能够以启动或者唤醒方式进行响应的调用消息的第一特征。
[0041] 所述第一应用能够以启动或者唤醒的方式进行响应的调用消息,是指第一应用能够响应,并且具体的响应方式包括启动第一应用自身启动或者唤醒第一应用自身的消息。比如,手机操作系统根据应用1发出的用于启动其他应用的广播消息,向应用2发送调用消息,以使得应用2响应于手机操作系统发送的该调用消息而启动,那么,该调用消息,就是应用2能够以启动的方式进行响应的调用消息。
[0042] 所述调用消息的第一特征,一般是指表示“该调用消息能够实现‘调用第一应用’这一功能”的特征。比如,该第一特征可以是所述调用消息中包含的指定字符串,第一应用若接收到该指定字符串,则会启动或者被唤醒,即,该指定字符串能够实现调用第一应用的功能,从而该指定字符串可以作为第一应用能够响应的调用消息的第一特征。
[0043] 该第一特征,可以具备唯一标识,该唯一标识的存在,可以使得根据该唯一标识(手机可以预先对该唯一标识进行保存),实现从第一应用的安装包中确定具备该唯一标识的特征,作为第一特征。或者,该第一特征,可以保存在第一应用的安装包中的指定位置中,通过对该指定位置的扫描,可以确定该指定位置中保存的特征,作为第一特征。
[0044] 在一种实施方式中,步骤11的具体实现方式可以包括:根据设置在第一应用的安装包的注册启动条件,确定第一应用能够响应的调用消息的第一特征。
[0045] 其中,所述注册启动条件,为所述安装包进行安装时,会注册到操作系统的第一应用的启动条件;所述启动条件,包括第一应用能够响应的调用消息的第一特征。
[0046] 所述注册启动条件,往往保存在应用特定的安装文件中,该特定的安装文件一般可以是指manifest.xml文件。该文件是整个应用程序的信息描述文件,该文件描述了应用程序的一些组件,如活动(Activity)、服务(Service)、广播接收机(BroadcastReceiver)以及内容提供商(Content provider)等。在实际使用中,操作系统启动或者唤醒某一应用,可以是指操作系统通过向该应用发送调用消息,以启动或者唤醒该应用所包含的至少一个组件。由于在应用的manifest.xml文件中保存了该应用的不同组件的注册启动条件,因而,可以从应用的安装包中的manifest.xml文件中,获得该应用的注册启动条件。
[0047] 例如,若假设某应用A的manifest.xml文件中,定义了应用A的组件B的一种通过操作系统广播唤醒或启动的注册启动条件,该注册启动条件中包括用于定义该组件B名称的字符串(假设该字符串为“”),以及用于定义组件B能够以启动或者唤醒的方式进行响应的调用消息所包含的字符串(假设该字符串为“”),则当应用A接收到操作系统通过广播的方式发送的调用消息中携带有字符串“startup.bootcomplete”时,根据该调用消息与应用A的注册启动条件中均包含相同的字符串“startup.bootcomplete”,可以确定应用A的组件B能够以启动或者唤醒的方式响应该调用消息,进而唤醒或者启动所述应用A的组件B。针对该例而言,应用A的manifest.xml文件中所述定义组件B的注册启动条件中包含的字符串“startup.bootcomplete”,即为该应用A能够以启动或者唤醒的方式进行响应的调用消息的第一特征。
[0048] 还比如,假设应用C的manifest.xml文件中,定义了与应用C的组件D对应的进程名称“abc”,并在该进程名称“abc”的子类中定义了组件D的注册启动条件,比如,假设该注册启动条件中包括用于定义该组件D名称的字符串(假设该字符串为“”)。那么,当应用C接收到操作系统发送的携带有“com.a.Sapplications”以及作为进程名称的字符串“abc”的调用消息时,根据调用消息中携带的字符串“abc”,可以在进程名称“abc”的子类中查找组件D的注册启动条件,由于根据查找结果,可以确定出该调用消息与应用C的组件D的注册启动条件均包含相同的字符串“com.a.Sapplications”,因此可以确定,应用C的组件D能够以启动或者唤醒的方式响应该调用消息,进而唤醒或者启动所述应用C的组件D。针对该例而言,应用C的manifest.xml文件中所述定义组件D的注册启动条件中包含的字符串“com.a.Sapplications”,即为该应用C能够以启动或者唤醒的方式进行响应的调用消息的第一特征。
[0049] 需要说明的是,针对应用的同一组件,在该应用的manifest.xml文件中可能定义了多种不同的注册启动条件。例如,某应用E的manifest.xml文件中,定义了应用E的组件F通过操作系统发出的intent消息唤醒或启动的注册启动条件。该注册启动条件中,包括用于定义该组件名称的字符串,假设为“”,此外,该注册启动条件中还可以包括两条用于定义组件C能够以启动或者唤醒的方式进行响应的字符串,假设第一条字符串包括:“”;第二条字符串包括“”。
[0050] 那么,当应用E接收到操作系统发送的intent消息中携带有字符串“android.intent.action.MAIN”以及“android.intent.category.LAUNCHER”时,由于该调用消息与应用E的注册启动条件中,均包含相同的字符串“android.intent.action.MAIN”以及“android.intent.category.LAUNCHER”,从而可以确定,应用E的组件F能够以启动或者唤醒的方式响应该调用消息,进而唤醒或者启动所述应用E的组件F。当该调用消息中携带有字符串“com.x.x.MainActivity”以及“android.intent.category.DEFAULT”时,由于该调用消息与应用E的注册启动条件中,均包含相同的字符串“com.x.x.MainActivity”以及“android.intent.category.DEFAULT”,从而可以确定,应用E的组件F能够以启动或者唤醒的方式响应该调用消息,进而唤醒或者启动所述应用E的组件F。针对该例而言,应用E的manifest .xml文件中所述定义组件F的注册启动条件中包含的字符串
“android.intent.action.MAIN”以及“android.intent.category.LAUNCHER”(或者“com.x.x.MainActivity”以及“android.intent.category.DEFAULT”),为该应用E能够以启动或者唤醒的方式进行响应的调用消息的第一特征。
[0051] 为了可以根据设置在第一应用的安装包的注册启动条件,确定第一应用能够响应的调用消息的第一特征,本申请实施例可以通过静态源代码扫描的方式,从第一应用的注册启动条件中确定所述调用消息的第一特征。在一种实施方式中,可以通过对所述第一应用的安装包中的注册启动条件进行静态源代码扫描,确定所述第一应用能够响应的调用消息的第一特征。
[0052] 所述静态源代码扫描,一般可以是指在软件工程中,程序员在写好源代码后,无需经过编译器编译,而直接使用一些扫描工具对源代码进行扫描,以找出源代码当中存在的一些语义缺陷、安全漏洞的解决方案。在本申请实施例中,可以通过对应用的源代码进行静态源代码扫描的方式,以达到从应用的源代码中确定所述第一应用能够响应的调用消息的第一特征的目的。由于静态源代码扫描已经是成熟的相关技术,因而不再对静态源代码扫描的具体实现方式进行赘述。
[0053] 另外,本申请实施例也可以采用其他方式来获取所述第一特征。例如,通过对所述第一应用进行反编译的方式,确定所述第一应用能够以启动或者唤醒的方式进行响应的调用消息的第一特征。本申请实施例对所述第一应用能够响应的调用消息的第一特征的获取方式不做限定。
[0054] 需要说明的是,目前,可安装在手机上的应用的数量十分庞大,为了可以尽可能全面的生成不同应用之间的调用规则,往往需要对手机上所有应用的安装包进行扫描,以分别获取该些应用能够分别响应的调用消息的特征。在这种情况下,为了后续分辨该些应用能够分别响应的调用消息的特征分别是从哪个应用的安装包中获取到的,在一种实施方式中,可以将应用能够响应的调用消息的特征与该应用的唯一标识(比如,可以是应用的名称)以“应用唯一标识——调用消息的特征”的形式保存——即以键值对的形式,将应用的唯一标识作为键,而将该应用能够响应的调用消息的特征作为该键的值的形式进行保存。
[0055] 在一种实施方式中,可以按照如图2所示的流程来实现上述步骤11,该流程具体可以包括:通过对应用的manifest.xml文件中的Service以及BroadcastReceiver进行静态源代码扫描的方式,确定第一应用能够响应的调用消息的第一特征,并以键值对的形式(将第一应用的唯一标识作为键,而将该应用能够响应的调用消息的特征作为该键的值)保存第一应用能够响应的调用消息的特征。
[0056] 需要说明的是,考虑到操作系统也可以在没有接收到其他应用的用于调用第一应用的调用消息的情况下,直接向第一应用发出调用消息,而本申请实施例确定第一应用能够响应的调用消息的第一特征,主要是为了后续确定第一应用能够被哪个其他应用所调用。因此,可选的,上述的第一应用能够响应的调用消息,可以包括第一应用能够响应的、由其他应用发出的调用消息,而不包括以上所说的由操作系统直接向第一应用发出的调用消息。
[0057] 步骤12,确定第二应用发出的用于调用其他应用的调用消息的第二特征;
[0058] 所述第二应用发出的用于调用其他应用的调用消息的第二特征,一般是指表示“该调用消息能够实现‘调用其他应用’这一功能”的特征。比如,该第二特征可以是所述调用消息中包含的指定字符串,若除第二应用外的至少一个应用接收到该指定字符串,会启动或者被唤醒,即,该指定字符串能够实现调用其他应用的功能,从而该指定字符串可以作为第二应用发出的用于调用其他应用的调用消息的第二特征。
[0059] 该第二特征,可以具备唯一标识,该唯一标识的存在,可以使得根据该唯一标识(手机可以预先对该唯一标识进行保存),实现从第二应用发出的用于调用其他应用的调用消息中确定具备该唯一标识的特征,作为第二特征。或者,该第二特征,可以存在于第二应用发出的用于调用其他应用的调用消息中的指定位置,从而可以将存在于该指定位置的特征,作为第二特征。
[0060] 在第二应用的运行过程中,第二应用可能会需要调用其他应用。第二应用为了调用其他应用,可以向操作系统发送用于调用其他应用的消息。
[0061] 第二应用向操作系统发送的用于调用其他应用的调用消息中,具体可以包括:被调用应用的信息、期望被调用应用执行的指定操作的信息以及被调用应用在完成指定操作时所需要的数据,以使得操作系统执行:根据接收到的该调用消息中包含的被调用应用的信息,确定被调用应用,并将该调用消息发送给被调用应用,达到调用被调用应用完成指定操作的目的。
[0062] 其中,所述第二应用发出的用于调用其他应用的调用消息,具体可以包括但不仅限于下述消息中的至少一种:
[0063] 消息1,第二应用向操作系统发出的用于调用其他应用的广播消息;
[0064] 消息2,第二应用向操作系统发出的用于调用其他应用的意图Intent消息;
[0065] 消息3,第二应用向操作系统发出的用于调用其他应用的延迟意图PendingIntent消息。
[0066] 需要说明的是,由于应用每次向操作系统发送的上述消息,均会被操作系统记录并保存在系统日志中,因而可以通过对系统日志的查询,获得第二应用发出的用于调用其他应用的调用消息的第二特征。
[0067] 在一种实施方式中,可以按照如图3所示的流程来实现上述步骤12,该流程具体可以包括:通过对系统日志的查询,获得第二应用发出的用于调用其他应用的调用消息的第二特征,并将所述第二应用的唯一标识作为键,而将第二应用发出的用于调用其他应用的调用消息的第二特征作为该键的值,保存所述第二应用发出的用于调用其他应用的调用消息的第二特征。
[0068] 步骤13,根据所述第一特征和所述第二特征,确定所述第二应用和所述第一应用之间的调用关系。
[0069] 在一种实施方式中,步骤13的具体实现方式可以包括:判断所述第一特征是否与所述第二特征匹配;在判断结果为所述第一特征与所述第二特征匹配时,则确定所述第二应用能够调用所述第一应用。
[0070] 前文已提到,所述第一特征与所述第二特征均可以以“应用唯一标识——调用消息的特征”这样的键值对形式保存,因而根据保存的特征可以确定与该特征对应的应用。当判断结果为第一特征与第二特征匹配时,则确定与第二特征对应的第二应用可以调用与第一特征对应的第一应用。
[0071] 需要说明的是,当所述第一特征与所述第二特征相同时,一般可以说明第二应用发出的用于调用其他应用的调用消息与第一应用能够响应的调用消息相同,从而说明第二应用可以调用第一应用。因而,当所述第一特征与所述第二特征相同时,可以认为所述第一特征与所述第二特征匹配。
[0072] 此外,第一特征与第二特征匹配,具体也可以是第一特征与第二特征之间的关系符合保存的预设映射关系,等。针对保存的预设映射关系而言,具备预设映射关系的双方,一方是:调用方应用发出的调用消息所包含的、表示“调用消息能够实现‘调用某应用’这一功能”的特征,另一方是:被调用方应用能够响应的调用消息所包含的、表示“该调用消息能够实现‘调用被调用方应用’这一功能”的特征。
[0073] 需要说明的是,一方面,考虑到应用之间的调用往往会耗费智能终端的大量的处理资源,另一方面,考虑到某些应用之间发生的调用可能是不必要的,因此可以对不必要的调用进行禁止以避免处理资源浪费。比如,用户期望启动某游戏应用玩游戏时,该游戏应用会自动调用某游戏推广应用,而用户在当前场景下不需要启动该游戏推广应用——在这种情况下,游戏应用与游戏推广应用之间发生的调用可能是不必要的。为了减少该调用对终端处理资源的耗费,可以对该调用进行禁止。
[0074] 为了达到禁用不必要的调用的目的,在一种实施方式中,当根据上述方法确定出应用A与应用B之间存在调用关系时,可以生成应用A与应用B之间的调用规则,并根据用户的反馈,对生成的应用间调用规则进行筛选,以筛选出应用间不必要的调用对应的调用规则(后文称不必要的调用规则),并将不必要的调用规则保存至智能终端。
[0075] 生成的应用间调用规则中,一般包括:调用方应用发送的、用于调用被调用方应用的调用消息所对应的操作系统进程的进程名称。其中,所述调用消息所对应的操作系统进程,是操作系统响应于调用方应用向操作系统发送的所述调用消息而创建的进程。操作系统通过创建该进程,可以实现向被调用方应用发送调用消息,从而达到调用被调用方应用的目的。该进程的名称,可以根据不同调用消息中的指定消息内容和操作系统进程的进程名称的映射关系,以及所述调用消息中的指定消息内容,从预先保存的操作系统的各种进程的进程名称中确定出。
[0076] 后续,当有应用A向操作系统发送用于调用应用B的调用消息时,操作系统会确定与该调用消息对应的操作系统进程的进程名称,并将确定出的进程名称与保存的不必要的调用规则中的进程名称进行对比,当确定出的进程名称与不必要的调用规则中的进程名称相同时,则可以确定应用A此次对应用B的调用是不必要的,此时操作系统将不会创建所述进程名称的进程,从而不会向应用B发送所述调用消息,达到禁止应用A对应用B进行调用的目的。
[0077] 在一种实施方式中,当确定出第二应用能够调用第一应用时,根据与第二应用发出的用于调用第一应用的调用消息对应的进程名称,生成包含所述进程名称的调用规则,具体可以包括:根据第二应用发出的用于调用其他应用的调用消息的指定消息内容与操作系统进程的进程名称的映射关系,以及所述第二应用发出的用于调用第一应用的调用消息的指定消息内容,确定与所述第二应用发出的用于调用第一应用的调用消息对应的操作系统进程的进程名称;根据确定出的进程名称,生成包含所述进程名称的调用规则。
[0078] 需要说明的是,当判断出第一特征与第二特征匹配时,操作系统可以根据保存的、键值对形式的特征,分别确定第二特征对应的第二应用以及第一特征对应的第一应用,进而可以从第二应用发出的用于调用其他应用的调用消息中,确定出第二应用发出的用于调用第一应用的调用消息,并根据与所述第二应用发出的用于调用第一应用的调用消息对应的操作系统进程的进程名称,生成包含所述进程名称的应用间调用规则。
[0079] 当应用被安装到终端设备上后,该应用安装包中的所有安装文件均会保存到终端设备上,而应用的安装文件中往往保存有应用能够向操作系统发送的消息的指定消息内容与所述消息所能触发创建的操作系统进程的进程名称的映射关系。其中,当向操作系统发送的消息为调用其他应用的调用消息时,该调用消息的指定消息内容,一般是指调用方应用的标识和被调用方应用的标识。
[0080] 当操作系统接收到应用发出的用于调用其他应用的调用消息时,操作系统可以根据该应用的安装文件中保存的该映射关系,以及接收到的该调用消息中的指定消息内容,确定与该调用消息中的指定消息内容对应的操作系统进程的进程名称,即确定与该调用消息对应的操作系统进程的进程名称,并创建进程名称与确定的进程名称相同的进程。
[0081] 基于上述可知,无论操作系统是否响应第二应用发出的用于调用其他应用的调用消息而创建操作系统进程,该操作系统进程的进程名称都可以根据上述映射关系及该调用消息中的指定消息内容确定。因此,本申请实施例中,根据与第二应用发出的用于调用其他应用的调用消息对应的操作系统进程的进程名称,所生成的包含所述进程名称的应用间调用规则,与采用现有技术中的应用间调用规则生成方法生成的应用间调用规则是相同的,它们同样都包含相同的操作系统进程的进程名称。
[0082] 在一种实施方式中,可以通过计算机的方式或者人工的方式,根据用户反馈的应用间不必要的调用,而对生成的应用间调用规则进行筛选,以筛选出应用间不必要的调用对应的应用间调用规则。
[0083] 而当应用间调用规则中仅包括操作系统进程的进程名称时,采用人工的方式可能无法分辨调用规则是属于哪两个应用之间的,进而无法对生成的应用间调用规则进行筛选。
[0084] 为了避免上述问题,在一种实施方式中,当判断第一特征与第二特征匹配时,操作系统可以根据保存的、键值对形式的特征,分别确定与第二特征对应的第二应用的唯一标识,以及与第一特征对应的第一应用的唯一标识,并生成包含第二应用发出的用于调用第一应用的调用消息对应的操作系统进程的进程名称、所述第一应用的唯一标识以及所述第二应用的唯一标识的第二应用与第一应用之间的应用间调用规则。因而可以根据应用间调用规则中包括的第一应用的唯一标识以及第二应用的唯一标识,确定该调用规则为第一应用与第二应用之间的应用间调用规则,进而可以通过人工的方式对生成的应用间调用规则进行筛选。
[0085] 采用本申请实施例1提供的应用间调用关系的确定方法,由于可以从第一应用的安装包中,确定所述第一应用能够响应的调用消息的第一特征,并确定第二应用能够发出的、用于调用其他应用的调用消息的第二特征,根据所述第一特征和所述第二特征,确定所述第二应用和所述第一应用之间的调用关系,在这种情况下,第一应用不需要安装在智能终端上,即可确定第一应用与第二应用之间是否存在调用关系,从而提高了确定应用之间的调用关系的效率。
[0086] 需要说明的是,实施例1所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也可以由不同设备作为执行主体。比如,步骤11和步骤12的执行主体可以为设备1,步骤13的执行主体可以为设备2;又比如,步骤11的执行主体可以为设备1,步骤12的执行主体可以为设备2,步骤13的执行主体可以为设备3;还比如,步骤11的执行主体可以为设备
1,步骤12以及步骤13的执行主体可以为设备2;等等。
[0087] 需要说明的是,本申请实施例并不对上述方法的各步骤的执行先后顺序进行限制。比如,步骤11可以与步骤12同步执行,或者,步骤11可以在步骤12后执行。本申请实施例中为各步骤设置编号,是为了有条理地描述各步骤,并不是对步骤的执行顺序进行限制,即,本申请实施例中为各步骤设置的编号并不能视为限制步骤执行顺序的特征。
[0088] 实施例2
[0089] 本申请实施例提供了一种应用间调用关系的确定装置,用以解决采用现有技术确定应用之间是否存在调用关系效率较低的问题。该装置的具体结构示意图如图4所示,包括:第一特征确定单元21、第二特征确定单元22以及调用关系确定单元23。
[0090] 其中,第一特征确定单元21,用于确定第一应用的安装包中的、第一应用能够响应的调用消息的第一特征;
[0091] 第二特征确定单元22,用于确定第二应用发出的用于调用其他应用的调用消息的第二特征;
[0092] 调用关系确定单元23,用于根据所述第一特征和所述第二特征,确定所述第二应用和所述第一应用之间的调用关系。
[0093] 在一种实施方式中,第一特征确定单元21,用于:确定第一应用的安装包中的、第一应用能够以启动或者唤醒方式进行响应的调用消息的第一特征。
[0094] 在一种实施方式中,第一特征确定单元21,用于:根据设置在第一应用的安装包的注册启动条件,确定第一应用能够响应的调用消息的第一特征;所述注册启动条件,为所述安装包进行安装时,会注册到操作系统的第一应用的启动条件;所述启动条件,包括第一应用能够响应的调用消息的第一特征。
[0095] 在一种实施方式中,第一特征确定单元21,用于:通过对所述第一应用的安装文件进行静态源代码扫描,确定所述注册启动条件;根据所述注册启动条件,确定第一应用能够响应的调用消息的第一特征。
[0096] 在一种实施方式中,所述第二应用发出的用于调用其他应用的调用消息,包括下述至少一种:第二应用向操作系统发出的用于调用其他应用的广播消息;第二应用向操作系统发出的用于调用其他应用的意图Intent消息;第二应用向操作系统发出的用于调用其他应用的延迟意图PendingIntent消息。
[0097] 在一种实施方式中,调用关系确定单元23,用于:判断所述第一特征是否与所述第二特征匹配;在判断结果为匹配时,确定所述第二应用能够调用所述第一应用;在判断结果为不匹配时,确定所述第二应用不能调用所述第一应用。
[0098] 采用本申请实施例2提供的应用间调用关系的确定装置,由于可以从第一应用的安装包中,确定所述第一应用能够响应的调用消息的第一特征,并确定第二应用能够发出的、用于调用其他应用的调用消息的第二特征,根据所述第一特征和所述第二特征,确定所述第二应用和所述第一应用之间的调用关系,在这种情况下,第一应用不需要安装在智能终端上,即可确定第一应用与第二应用之间是否存在调用关系,从而提高了确定应用之间的调用关系的效率。
[0099] 在一种实施方式中,本申请实施例还提供了一种基于前文所述的应用间调用关系的确定装置的调用规则生成装置,包括:规则生成单元,用于在所述调用关系确定单元23确定出第二应用能够调用第一应用时,根据与第二应用发出的用于调用第一应用的调用消息对应的进程名称,生成包含所述进程名称的调用规则。
[0100] 在一种实施方式中,规则生成单元,用于根据用于调用其他应用的调用消息的指定消息内容与操作系统进程的进程名称的映射关系,以及所述第二应用发出的用于调用其他应用的调用消息的指定消息内容,确定与所述第二应用发出的用于调用其他应用的调用消息对应的操作系统进程的进程名称;根据确定出的进程名称,生成包含所述进程名称的应用间调用规则。
[0101] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0102] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0103] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0104] 在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0105] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0106] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0107] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0108] 本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0109] 以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈