CN109189591A - 用于调用应用组件的方法和装置 - Google Patents

用于调用应用组件的方法和装置 Download PDF

Info

Publication number
CN109189591A
CN109189591A CN201811005366.2A CN201811005366A CN109189591A CN 109189591 A CN109189591 A CN 109189591A CN 201811005366 A CN201811005366 A CN 201811005366A CN 109189591 A CN109189591 A CN 109189591A
Authority
CN
China
Prior art keywords
application
application component
component
equipment
mark
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201811005366.2A
Other languages
English (en)
Other versions
CN109189591B (zh
Inventor
康森
王刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201811005366.2A priority Critical patent/CN109189591B/zh
Publication of CN109189591A publication Critical patent/CN109189591A/zh
Application granted granted Critical
Publication of CN109189591B publication Critical patent/CN109189591B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/549Remote execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例公开了用于调用应用组件的方法和装置。该方法的一具体实施方式包括:响应于检测到第一应用组件运行时需要调用第二应用组件,确定包括第二应用组件的第二应用;向运行第二应用的第二设备发送包括第二应用组件的标识的调用请求;接收第二设备发送的第二应用组件的调用信息,其中,调用信息是运行第二应用的第二设备在基于调用请求对第二应用组件进行调用后生成的。该实施方式提高了对应用组件的调试效率。

Description

用于调用应用组件的方法和装置
技术领域
本申请实施例涉及计算机技术领域,具体涉及用于调用应用组件的方法和装置。
背景技术
由于现有的app(Application,应用)功能越来越多,导致app编译越来越慢、开发效率越来越低。为了提高app的开发效率,通常会以组件的形式开发app。在app开发过程中,每个app都会形成多个组件。实践中,不同app之间可能会存在很多相同的功能。这样,在新的APP的开发过程中,可以通过调用其他app的组件来进一步提高app的开发效率。
在调试过程中,常用的组件调用方式是首先将需要调用的应用组件所在的app整体解耦,然后再调用解耦后的应用组件。然而,对app整体解耦通常需要花费大量的时间。
发明内容
本申请实施例提出了用于调用应用组件的方法和装置。
第一方面,本申请实施例提供了一种用于调用应用组件的方法,应用于第一设备,包括:响应于检测到第一应用组件运行时需要调用第二应用组件,确定包括第二应用组件的第二应用;向运行第二应用的第二设备发送包括第二应用组件的标识的调用请求;接收第二设备发送的第二应用组件的调用信息,其中,调用信息是运行第二应用的第二设备在基于调用请求对第二应用组件进行调用后生成的。
在一些实施例中,确定包括第二应用组件的第二应用,包括:生成包括第二应用组件的标识的组件查找信息,以及广播组件查找信息;响应于接收到确认信息,将具有确认信息中的标识的应用确定为第二应用,其中,确认信息用于确认接收到组件查找信息的设备上运行有第二应用,并且确认信息包括运行在接收到组件查找信息的设备上的包括第二应用组件的应用的标识。
在一些实施例中,第二应用组件被封装在第二应用中的第二组件管理类中。
在一些实施例中,接收第二设备发送的第二应用组件的调用信息,包括:以预设接收方式接收第二设备发送的第二应用组件的调用信息,其中,预设接收方式包括以下之一:同步接收方式、异步接收方式。
在一些实施例中,向运行第二应用的第二设备发送包括第二应用组件的标识的调用请求,包括:创建与第二应用组件的标识绑定的本地服务套接字;通过本地服务套接字向运行第二应用的第二设备发送包括第二应用组件的标识的调用请求。
在一些实施例中,该方法还包括:扫描与第一应用组件相关的第一应用组件类;修改第一应用组件类的字节码,生成调用第一应用组件类的构造方法的注册代码,并注册到第一组件管理类中,以生成第一应用组件类的标识与第一应用组件的映射表。
第二方面,本申请实施例提供了一种用于调用应用组件的装置,设置于第一设备,包括:确定单元,被配置成响应于检测到第一应用组件运行时需要调用第二应用组件,确定包括第二应用组件的第二应用;发送单元,被配置成向运行第二应用的第二设备发送包括第二应用组件的标识的调用请求;接收单元,被配置成接收第二设备发送的第二应用组件的调用信息,其中,调用信息是运行第二应用的第二设备在基于调用请求对第二应用组件进行调用后生成的。
在一些实施例中,确定单元包括:广播子单元,被配置成生成包括第二应用组件的标识的组件查找信息,以及广播组件查找信息;确定子单元,被配置成响应于接收到确认信息,将具有确认信息中的标识的应用确定为第二应用,其中,确认信息用于确认接收到组件查找信息的设备上运行有第二应用,并且确认信息包括运行在接收到组件查找信息的设备上的包括第二应用组件的应用的标识。
在一些实施例中,第二应用组件被封装在第二应用中的第二组件管理类中。
在一些实施例中,接收单元进一步被配置成:以预设接收方式接收第二设备发送的第二应用组件的调用信息,其中,预设接收方式包括以下之一:同步接收方式、异步接收方式。
在一些实施例中,发送单元包括:创建子单元,被配置成创建与第二应用组件的标识绑定的本地服务套接字;发送子单元,被配置成通过本地服务套接字向运行第二应用的第二设备发送包括第二应用组件的标识的调用请求。
在一些实施例中,该装置还包括:扫描单元,被配置成扫描与第一应用组件相关的第一应用组件类;注册单元,被配置成修改第一应用组件类的字节码,生成调用第一应用组件类的构造方法的注册代码,并注册到第一组件管理类中,以生成第一应用组件类的标识与第一应用组件的映射表。
第三方面,本申请实施例提供了一种第一设备,该第一设备包括:一个或多个处理器;存储装置,其上存储有一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实现方式描述的方法。
第四方面,本申请实施例提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面中任一实现方式描述的方法。
本申请实施例提供的用于调用应用组件的方法和装置,若第一用用组件运行时需要调用第二应用组件,则可以首先确定出包括第二应用组件的第二应用;然后向运行第二应用的第二设备发送包括第二应用组件的标识的调用请求;最后接收第二设备发送的第二应用组件的调用信息。在调试过程中,不需要对第二应用整体解耦即可调用第二应用组件,从而提高了对应用组件的调用效率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构;
图2是根据本申请的用于调用应用组件的方法的一个实施例的流程图;
图3是根据本申请的用于调用应用组件的方法的又一个实施例的流程图;
图4是图3所提供的用于调用应用组件的方法的一个应用场景的示意图;
图5是根据本申请的用于调用应用组件的装置的一个实施例的结构示意图;
图6是适于用来实现本申请实施例的第一设备的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的用于调用应用组件的方法或用于调用应用组件的装置的实施例的示例性系统架构100。
如图1所示,系统架构100中可以包括设备101、102和网络103。网络103用以在设备101、102之间提供通信链路的介质。网络103可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用设备101通过网络103与设备102交互,以接收或发送消息等。设备101、102可以运行各种应用。例如,设备101可以运行第一应用,设备102可以运行第二应用。
设备101、102可以是硬件,也可以是软件。当设备101、102为硬件时,可以是各种电子设备。包括但不限于智能手机、平板电脑、膝上型便携计算机、台式计算机和服务器等等。当设备101、102为软件时,可以安装在上述电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
设备101可以提供各种服务,例如设备101可以在检测到第一应用组件运行时需要调用第二应用组件,确定包括第二应用组件的第二应用;向运行第二应用的设备102发送包括第二应用组件的标识的调用请求;接收设备102发送的第二应用组件的调用信息。
需要说明的是,本申请实施例所提供的用于调用应用组件的方法一般由设备101执行,相应地,用于调用应用组件的装置一般设置于设备101中。
应该理解,图1中的设备和网络的数目仅仅是示意性的。根据实现需要,可以具有任意数目的设备和网络。
继续参考图2,其示出了根据本申请的用于调用应用组件的方法的一个实施例的流程200。该用于调用应用组件的方法应用于第一设备,包括以下步骤:
步骤201,响应于检测到第一应用组件运行时需要调用第二应用组件,确定包括第二应用组件的第二应用。
在本实施例中,用于调用应用组件的方法的执行主体(例如图1所示的设备101)可以运行第一应用组件,若第一应用组件运行时需要调用第二应用组件,上述执行主体可以确定出包括第二应用组件的第二应用。
这里,第一应用组件可以是对新业务以组件形式开发所得到的组件。例如,第一应用组件可以对第二应用中的新业务进行开发所生成的组件。此时,第一应用组件运行时会依赖第二应用中的第二应用组件。又例如,第一应用组件可以是对单独的新业务进行开发所生成的组件。此时,可以将第一应用组件作为一个单独的应用,通过跨应用的方式调用第二应用中的第二应用组件。同时,第二应用也可以通过跨应用的方式调用第一应用组件。第一应用组件还可以是对第一应用中的新业务进行开发所生成的组件。此时,第一应用中的第一应用组件可以通过跨应用的方式调用第二应用中的第二应用组件。同时,第二应用也可以通过跨应用的方式调用第一应用中的第一应用组件。由于第一应用组件支持跨应用的方式调用第二应用中的所有组件,无需将第一应用组件与其他应用组件一起打包即可运行调试。所有的组件都是平行的,没有依赖关系。这样,不仅可以从框架层面避免组件之间的依赖,做到完全的代码隔离,还可以提高组件独立运行时的编译速度,并且在对应用进行改造时,从第一个应用组件开始就可以独立运行,而不会因为需要调用到应用组件外的其他功能而必须跟对应的应用一起打包运行调试。
通常,在开发第二应用时,可以形成多个功能模块(应用组件),以实现多个功能。第二应用组件可以对应其中一个功能模块,运行第二应用组件时可以实现该功能模块对应的功能。
在本实施例的一些可选的实现方式中,第二应用组件可以被封装在第二应用中的第二组件管理类中。具体地,在确定出包括第二应用组件的第二应用之后,可以在第二应用组件对应的功能模块中创建第二组件管理类,来管理第二应用组件。第二应用组件被封装在第二组件管理类中,并对外提供调用接口,以供其他组件(如第一应用组件)通过该调用接口调用第二应用组件,而不必在对第一应用组件的调试期间就对第二应用组件进行解耦,以提高对应用组件的开发效率和调试效率。并且,同一个功能模块中可以创建多个组件管理类。若后续需要对该功能模块进行解耦,只需将这些组件管理类移动到解耦后的功能模块中即可。
为了减少后期维护成本,当需要添加新业务对应的应用组件时,需要在gradle(项目自动化构建开源工具)中添加一下对需要调用的应用组件对应功能模块的依赖,以实现对应用组件自动注册。其中,依赖可以包括但不限于maven(项目对象模型)依赖、project(项目)依赖等。在本实施例的一些可选的实现方式中,可以将Transform API与ASM(Automatic Storage Management,自动存储管理)二者结合,生成一个gradle插件,具体得,上述执行主体可以通过如下步骤对第一应用组件自动注册:
首先,扫描与第一应用组件相关的第一应用组件类。
具体地,在编译时扫描当前要打包到第一应用组件中的所有第一应用组件类。其中,第一应用组件类可以包括但不限于对应功能模块中java(门面向对象编程语言)文件编译后的class(类)、aidl(Android Interface Definition Language,接口定义语言)文件编译后的class、jar(计算机文件格式)包中的class、aar(二进制归档文件)包中的class、project依赖中的class、maven依赖中的class等等。
其次,修改第一应用组件类的字节码,生成调用第一应用组件类的构造方法的注册代码,并注册到第一组件管理类中,以生成第一应用组件类的标识与第一应用组件的映射表。
这样,就可以实现编译时自动注册的功能,不用关心第一应用组件中有哪些应用组件类,不会增加新的class,不需要反射。
步骤202,向运行第二应用的第二设备发送包括第二应用组件的标识的调用请求。
在本实施例中,上述执行主体可以向运行第二应用的第二设备(例如图1所示的设备102)发送调用请求。其中,调用请求中可以包括第二应用组件的标识。第二应用组件的标识可以由字母、数字、符号等组成,用于唯一标识第二应用组件。
步骤203,接收第二设备发送的第二应用组件的调用信息。
在本实施例中,第二设备可以基于调用请求对第二应用组件进行调用,从而生成调用信息,并将调用信息发送给上述执行主体。
在本实施例的一些可选的实现方式中,上述执行主体可以以预设接收方式接收第二设备发送的第二应用组件的调用信息。其中,预设接收方式可以包括以下之一:同步接收方式、异步接收方式。这里,可以实现java.util.concurrent.Callable接口同步接收调用信息。然而,当调用第二应用组件的目标方法时,可能需要异步接收调用信息。此时,可以采用Wait-Notify(等待-通知)机制,当需要异步接收调用信息时,在CC(组件化开发)框架内部进行阻塞,等需要接收调用信息时,终止阻塞,接收调用信息。
应当理解的是,这里要求调用第二应用组件后一定生成调用信息,即需要确保每一种导致调用流程结束的逻辑分支上(例如if-else、try-catch)都要生成调用信息。否则,会导致上述执行主体一直阻塞等待调用信息,直至超时。
需要说明的是,作为组件化开发框架基础库,想尽量让跨进程调用与进程内部调用的功能一致,对使用此框架的开发者在切换app模式和lib模式时尽量简单,另外需要尽量保证安全性。因此,跨组件间通信实现的同时,应该满足以下条件:每个应用都能被其他应用调用;应用可以设置是都对外提供跨进程组件调用的支持;调用请求发出去之后能自动探测当前设备上是否有支持此次调用的应用;支持超时、取消。
本申请实施例提供的用于调用应用组件的方法,若第一用用组件运行时需要调用第二应用组件,则可以首先确定出包括第二应用组件的第二应用;然后向运行第二应用的第二设备发送包括第二应用组件的标识的调用请求;最后接收第二设备发送的第二应用组件的调用信息。在调试过程中,不需要对第二应用整体解耦即可调用第二应用组件,从而提高了对应用组件的调用效率。
进一步参考图3,其示出了根据本申请的用于调用应用组件的方法的又一个实施例的流程300。该用于调用应用组件的方法应用于第一设备,包括以下步骤:
步骤301,响应于检测到第一应用组件运行时需要调用第二应用组件,生成包括第二应用组件的标识的组件查找信息,以及广播组件查找信息。
在本实施例中,用于调用应用组件的方法的执行主体(例如图1所示的设备101)可以运行第一应用组件,若第一应用组件运行时需要调用第二应用组件,上述执行主体可以生成组件查找信息,并进行广播。其中,组件查找信息中可以包括第二应用组件的标识。
通常,若上述执行主体上没有运行有包括第二应用组件的应用,此时,上述执行主体可以向运行有同样使用了组件化开发框架的应用的设备广播组件查找信息。
步骤302,响应于接收到确认信息,将具有确认信息中的标识的应用确定为第二应用。
在本实施例中,若接收到组件查找信息的某个设备确认其上运行有包括第二应用组件的应用,则可以向上述执行主体发送确认信息。此时,上述执行主体可以将该设备确定为第二设备,将具有确认信息中的标识的应用确定为第二应用。其中,确认信息可以用于确认接收到组件查找信息的设备上运行有第二应用。通常,确认信息中可以包括运行在接收到组件查找信息的设备上的包括第二应用组件的应用的标识,即第二应用的标识。
这里,接收上述执行主体广播的组件查找信息的设备上可以设置BroadcastReceiver(广播接收器)。其中,BroadcastReceiver可以设置接收权限,能避免外部恶意调用,并可以通过设置开关,来决定在接收到广播的组件查找信息之后是否返回确认信息。具体地,为了适应不同需求,BroadcastReceiver可以设置两个安全级别的接收权限。其一,权限验证:外部调用是否响应的开关设置。其二,在应用中设置开关,可关闭响应外部调用。通常,为了便于开发者接入,默认开启对外部组件调用的支持,并且不需要权限验证。在应用正式发布前,关闭响应外部调用。
步骤303,创建与第二应用组件的标识绑定的本地服务套接字。
在本实施例中,上述执行主体可以创建与第二应用组件的标识绑定的本地服务套接字(LocalServerSocket)。
步骤304,通过本地服务套接字向运行第二应用的第二设备发送包括第二应用组件的标识的调用请求。
在本实施例中,第二设备可以根据组件查找信息和本地服务套接字与上述执行主体建立连接,并通过本地服务套接字向第二设备发送调用请求。其中,调用请求中可以包括第二应用组件的标识。这里,建立本地服务套接字连接的目的是为了能够继续给本次调用请求发送超时和/或取消的指令。
步骤305,接收第二设备发送的第二应用组件的调用信息。
在本实施例中,第二设备可以基于调用请求对第二应用组件进行调用,从而生成调用信息,并通过本地服务套接字将调用信息发送给上述执行主体。
需要说明的是,上述执行主体还可以先执行步骤303,再执行步骤302,也可以同时执行步骤302和步骤303,这里对执行顺序不进行限定。
继续参见图4,图4是根据本实施例的用于调用应用组件的方法的一个应用场景的示意图。在图4所示的应用场景中,设备411上的app420包括组件管理类421、组件422、423、424、425。其中,组件422运行时需要调用组件432,此时,设备411可以生成包括组件432的标识的组件查找信息401,并广播给设备412、413、414。随后,设备412确认其上运行有包括组件432的app430,其中,app430包括组件管理类431、组件432、433、434、435。此时,设备412可以向设备411发送确认信息402。随后,设备411与设备412之间建立LocalServerSocket连接。设备411通过LocalServerSocket向设备412发送包括组件432的标识的调用请求403。随后设备412调用app430中的组件432,生成调用信息404,并通过LocalServerSocket向设备411发送调用信息404。
从图3中可以看出,与图2对应的实施例相比,本实施例中的用于调用应用组件的方法的流程300突出了确定第二应用和发送调用请求的步骤。由此,本实施例描述的方案通过BroadcastReceiver设置接收权限,能避免外部恶意调用。并且,建立本地服务套接字,能够继续给本次调用请求发送超时和/或取消的指令。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种用于调用应用组件的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的用于调用应用组件的装置500设置于第一设备,可以包括:确定单元501、发送单元502和接收单元503。其中,确定单元501,被配置成响应于检测到第一应用组件运行时需要调用第二应用组件,确定包括第二应用组件的第二应用;发送单元502,被配置成向运行第二应用的第二设备发送包括第二应用组件的标识的调用请求;接收单元503,被配置成接收第二设备发送的第二应用组件的调用信息,其中,调用信息是运行第二应用的第二设备在基于调用请求对第二应用组件进行调用后生成的。
在本实施例中,用于调用应用组件的装置500中:确定单元501、发送单元502和接收单元503的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201、步骤202和步骤203的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,确定单元501可以包括:广播子单元(图中未示出),被配置成生成包括第二应用组件的标识的组件查找信息,以及广播组件查找信息;确定子单元(图中未示出),被配置成响应于接收到确认信息,将具有确认信息中的标识的应用确定为第二应用,其中,确认信息用于确认接收到组件查找信息的设备上运行有第二应用,并且确认信息包括运行在接收到组件查找信息的设备上的包括第二应用组件的应用的标识。
在本实施例的一些可选的实现方式中,第二应用组件被封装在第二应用中的第二组件管理类中。
在本实施例的一些可选的实现方式中,接收单元503进一步被配置成:以预设接收方式接收第二设备发送的第二应用组件的调用信息,其中,预设接收方式包括以下之一:同步接收方式、异步接收方式。
在本实施例的一些可选的实现方式中,发送单元502包括:创建子单元(图中未示出),被配置成创建与第二应用组件的标识绑定的本地服务套接字;发送子单元(图中未示出),被配置成通过本地服务套接字向运行第二应用的第二设备发送包括第二应用组件的标识的调用请求。
在本实施例的一些可选的实现方式中,用于调用应用组件的装置500还可以包括:扫描单元(图中未示出),被配置成扫描与第一应用组件相关的第一应用组件类;注册单元(图中未示出),被配置成修改第一应用组件类的字节码,生成调用第一应用组件类的构造方法的注册代码,并注册到第一组件管理类中,以生成第一应用组件类的标识与第一应用组件的映射表。
下面参考图6,其示出了适于用来实现本申请实施例的第一设备(例如图1所示的设备101)的计算机系统600的结构示意图。图6示出的第一设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读介质或者是上述两者的任意组合。计算机可读介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,所述程序设计语言包括面向目标的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或第一设备上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括确定单元、发送单元和接收单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,确定单元还可以被描述为“接收单元的单元”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的第一设备中所包含的;也可以是单独存在,而未装配入该第一设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该第一设备执行时,使得该第一设备:响应于检测到第一应用组件运行时需要调用第二应用组件,确定包括第二应用组件的第二应用;向运行第二应用的第二设备发送包括第二应用组件的标识的调用请求;接收第二设备发送的第二应用组件的调用信息,其中,调用信息是运行第二应用的第二设备在基于调用请求对第二应用组件进行调用后生成的。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (14)

1.一种用于调用应用组件的方法,应用于第一设备,包括:
响应于检测到第一应用组件运行时需要调用第二应用组件,确定包括所述第二应用组件的第二应用;
向运行所述第二应用的第二设备发送包括所述第二应用组件的标识的调用请求;
接收所述第二设备发送的所述第二应用组件的调用信息,其中,所述调用信息是运行所述第二应用的第二设备在基于所述调用请求对所述第二应用组件进行调用后生成的。
2.根据权利要求1所述的方法,所述确定包括所述第二应用组件的第二应用,包括:
生成包括所述第二应用组件的标识的组件查找信息,以及广播所述组件查找信息;
响应于接收到确认信息,将具有所述确认信息中的标识的应用确定为第二应用,其中,所述确认信息用于确认接收到所述组件查找信息的设备上运行有所述第二应用,并且所述确认信息包括运行在接收到所述组件查找信息的设备上的包括所述第二应用组件的应用的标识。
3.根据权利要求1所述的方法,所述第二应用组件被封装在所述第二应用中的第二组件管理类中。
4.根据权利要求3所述的方法,所述接收所述第二设备发送的所述第二应用组件的调用信息,包括:
以预设接收方式接收所述第二设备发送的所述第二应用组件的调用信息,其中,所述预设接收方式包括以下之一:同步接收方式、异步接收方式。
5.根据权利要求4所述的方法,所述向运行所述第二应用的第二设备发送包括所述第二应用组件的标识的调用请求,包括:
创建与所述第二应用组件的标识绑定的本地服务套接字;
通过所述本地服务套接字向运行所述第二应用的第二设备发送包括所述第二应用组件的标识的调用请求。
6.根据权利要求1-5之一所述的方法,其中,所述方法还包括:
扫描与所述第一应用组件相关的第一应用组件类;
修改所述第一应用组件类的字节码,生成调用所述第一应用组件类的构造方法的注册代码,并注册到第一组件管理类中,以生成所述第一应用组件类的标识与所述第一应用组件的映射表。
7.一种用于调用应用组件的装置,设置于第一设备,包括:
确定单元,被配置成响应于检测到第一应用组件运行时需要调用第二应用组件,确定包括所述第二应用组件的第二应用;
发送单元,被配置成向运行所述第二应用的第二设备发送包括所述第二应用组件的标识的调用请求;
接收单元,被配置成接收所述第二设备发送的所述第二应用组件的调用信息,其中,所述调用信息是运行所述第二应用的第二设备在基于所述调用请求对所述第二应用组件进行调用后生成的。
8.根据权利要求7所述的装置,所述确定单元包括:
广播子单元,被配置成生成包括所述第二应用组件的标识的组件查找信息,以及广播所述组件查找信息;
确定子单元,被配置成响应于接收到确认信息,将具有所述确认信息中的标识的应用确定为第二应用,其中,所述确认信息用于确认接收到所述组件查找信息的设备上运行有所述第二应用,并且所述确认信息包括运行在接收到所述组件查找信息的设备上的包括所述第二应用组件的应用的标识。
9.根据权利要求7所述的装置,所述第二应用组件被封装在所述第二应用中的第二组件管理类中。
10.根据权利要求9所述的装置,所述接收单元进一步被配置成:
以预设接收方式接收所述第二设备发送的所述第二应用组件的调用信息,其中,所述预设接收方式包括以下之一:同步接收方式、异步接收方式。
11.根据权利要求10所述的装置,所述发送单元包括:
创建子单元,被配置成创建与所述第二应用组件的标识绑定的本地服务套接字;
发送子单元,被配置成通过所述本地服务套接字向运行所述第二应用的第二设备发送包括所述第二应用组件的标识的调用请求。
12.根据权利要求7-11之一所述的装置,其中,所述装置还包括:
扫描单元,被配置成扫描与所述第一应用组件相关的第一应用组件类;
注册单元,被配置成修改所述第一应用组件类的字节码,生成调用所述第一应用组件类的构造方法的注册代码,并注册到第一组件管理类中,以生成所述第一应用组件类的标识与所述第一应用组件的映射表。
13.一种第一设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
14.一种计算机可读介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1-6中任一所述的方法。
CN201811005366.2A 2018-08-30 2018-08-30 用于调用应用组件的方法和装置 Active CN109189591B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811005366.2A CN109189591B (zh) 2018-08-30 2018-08-30 用于调用应用组件的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811005366.2A CN109189591B (zh) 2018-08-30 2018-08-30 用于调用应用组件的方法和装置

Publications (2)

Publication Number Publication Date
CN109189591A true CN109189591A (zh) 2019-01-11
CN109189591B CN109189591B (zh) 2022-04-12

Family

ID=64917151

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811005366.2A Active CN109189591B (zh) 2018-08-30 2018-08-30 用于调用应用组件的方法和装置

Country Status (1)

Country Link
CN (1) CN109189591B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110929233A (zh) * 2019-11-22 2020-03-27 连尚(新昌)网络科技有限公司 信息处理方法和装置
CN114461291A (zh) * 2020-10-22 2022-05-10 北京国双科技有限公司 应用程序组件调用方法、装置、电子设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102364436A (zh) * 2011-06-24 2012-02-29 浙大网新科技股份有限公司 实现WinCE/Android混合API调试的方法及系统
US20120151467A1 (en) * 2006-03-30 2012-06-14 Microsoft Corporation Providing com access to an isolated system
CN103019941A (zh) * 2012-12-28 2013-04-03 大唐微电子技术有限公司 程序调试方法和装置
CN103092645A (zh) * 2012-12-31 2013-05-08 武汉中地数码科技有限公司 一种基于微内核技术的地理空间信息应用系统及其实现方法
CN104765646A (zh) * 2015-03-18 2015-07-08 小米科技有限责任公司 组件调用方法及装置
CN105224332A (zh) * 2015-10-14 2016-01-06 深圳市金证科技股份有限公司 一种应用程序生成方法和装置
CN105338025A (zh) * 2014-07-21 2016-02-17 阿里巴巴集团控股有限公司 调用组件方法、系统、客户端及集中组件方法和服务器
CN108027743A (zh) * 2015-09-14 2018-05-11 万事达卡国际股份有限公司 具有分段架构的隔离应用

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120151467A1 (en) * 2006-03-30 2012-06-14 Microsoft Corporation Providing com access to an isolated system
CN102364436A (zh) * 2011-06-24 2012-02-29 浙大网新科技股份有限公司 实现WinCE/Android混合API调试的方法及系统
CN103019941A (zh) * 2012-12-28 2013-04-03 大唐微电子技术有限公司 程序调试方法和装置
CN103092645A (zh) * 2012-12-31 2013-05-08 武汉中地数码科技有限公司 一种基于微内核技术的地理空间信息应用系统及其实现方法
CN105338025A (zh) * 2014-07-21 2016-02-17 阿里巴巴集团控股有限公司 调用组件方法、系统、客户端及集中组件方法和服务器
CN104765646A (zh) * 2015-03-18 2015-07-08 小米科技有限责任公司 组件调用方法及装置
CN108027743A (zh) * 2015-09-14 2018-05-11 万事达卡国际股份有限公司 具有分段架构的隔离应用
CN105224332A (zh) * 2015-10-14 2016-01-06 深圳市金证科技股份有限公司 一种应用程序生成方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110929233A (zh) * 2019-11-22 2020-03-27 连尚(新昌)网络科技有限公司 信息处理方法和装置
CN114461291A (zh) * 2020-10-22 2022-05-10 北京国双科技有限公司 应用程序组件调用方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN109189591B (zh) 2022-04-12

Similar Documents

Publication Publication Date Title
CN109062563B (zh) 用于生成页面的方法和装置
CN112104709B (zh) 智能合约的处理方法、装置、介质及电子设备
CN111290760B (zh) 应用程序编译方法、装置、电子设备及存储介质
CN107077379B (zh) 一种虚拟机创建方法和装置
CN110069308A (zh) 页面启动方法、装置、电子设备和存储介质
CN109976793A (zh) 一种应用程序的运行方法、装置、设备和介质
CN110221840B (zh) 应用程序的功能实现方法及装置、设备及存储介质
CN109189591A (zh) 用于调用应用组件的方法和装置
CN109471647A (zh) 一种数据的更新方法、装置、电子设备及可读介质
CN109343970B (zh) 基于应用程序的操作方法、装置、电子设备及计算机介质
CN110489162A (zh) 安装包so文件精简方法、装置、介质和设备
CN112114789A (zh) 一种业务开发方法及设备
CN112015384A (zh) 一种接口映射方法和装置
CN114285793A (zh) 一种分发方法、装置、设备和存储介质
CN112764836A (zh) 运行快应用的方法、装置及电子设备
WO2023083071A1 (zh) 视图交互方法、装置、电子设备及计算机可读介质
CN109145591A (zh) 应用程序的插件加载方法
CN110489180A (zh) 一种埋点上报方法、装置、介质和电子设备
CN109947423A (zh) 代码生成方法、装置、终端和介质
CN109491687A (zh) 一种应用软件的热更新方法、装置、终端及可读介质
CN110262841A (zh) 一种对字节码进行增强的方法和装置
CN111273970B (zh) 智能合约的调用方法、装置、系统、介质及电子设备
CN110399187A (zh) 一种语言资源的处理方法和装置
CN114416103A (zh) 代码编译方法及装置、计算机可读介质、电子设备
CN111488286B (zh) 一种Android模块独立开发的方法及装置

Legal Events

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