CN111488286A - 一种Android模块独立开发的方法及装置 - Google Patents
一种Android模块独立开发的方法及装置 Download PDFInfo
- Publication number
- CN111488286A CN111488286A CN202010298779.5A CN202010298779A CN111488286A CN 111488286 A CN111488286 A CN 111488286A CN 202010298779 A CN202010298779 A CN 202010298779A CN 111488286 A CN111488286 A CN 111488286A
- Authority
- CN
- China
- Prior art keywords
- module
- target
- project
- implementation class
- target function
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 242
- 230000008569 process Effects 0.000 claims abstract description 189
- 238000013507 mapping Methods 0.000 claims abstract description 64
- 238000011161 development Methods 0.000 claims abstract description 62
- 238000004891 communication Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 10
- 238000012360 testing method Methods 0.000 claims description 7
- 230000003993 interaction Effects 0.000 claims description 4
- 230000009466 transformation Effects 0.000 abstract description 5
- 230000000694 effects Effects 0.000 abstract description 4
- 230000006870 function Effects 0.000 description 149
- 238000010586 diagram Methods 0.000 description 12
- 230000003287 optical effect Effects 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
Abstract
本申请实施例提供了一种Android模块独立开发的方法及相关装置,其中,本申请实施例提供了一种Android模块独立开发的方法,可包括:创建主工程对应的第一进程以及第一模块工程对应的第二进程;第一进程接收第二进程发送的调用信息,调用信息包括需要调用的目标功能的目标功能名称和目标功能参数;第一进程从预先生成的目标映射表中,查找与目标功能名称对应的目标实现类,目标映射表包括功能名称与实现类之间的映射关系;第一进程将目标功能参数输入至目标实现类,获得目标功能的执行结果;第一进程将目标功能的执行结果返回第二进程。既可以在主工程模块化改造中达到模块工程独立开发效果,也可以提高模块化开发效率。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种Android模块独立开发的方法及装置。
背景技术
在日常的Android开发过程中,由于业务不断增长,项目的源代码越来越多,工程日益庞大,直接导致了不同业务代码耦合严重,改动风险大,难以维护。对于这个问题,业界通常会采用模块化改造的方案来解决:按业务进行划分,将主工程中的不同业务逐个抽离出来,放置到独立的子工程(即模块工程)中进行开发,模块工程开发完成后再发布为AAR集成回主工程。
由于不同业务的代码放到独立子工程各自维护,一定程度上可以减轻耦合的问题,提高工程的可维护性。但是,某个模块若是依赖了尚未从主工程抽离的模块,例如A模块工程依赖了B模块工程的功能,而B模块工程尚未从主工程抽离,那么就只能暂停A模块工程的开发,等待B模块工程从主工程抽离出来发布为AAR后,才能让A模块工程依赖B模块工程的AAR,继续进行A模块工程的开发工作。所以这种方法很容易就会导致模块工程间的开发工作需要串行进行的,某个模块工程的开发进度会影响到其他模块工程的开发工作的正常进行,从而影响整体模块化改造的开发效率。
发明内容
鉴于上述问题,提出了本申请以便提供一种克服上述问题或者至少部分地解决上述问题的一种Android模块独立开发的方法及装置。
第一方面,本申请实施例提供了一种Android模块独立开发的方法,应用于测试设备,可包括:
创建主工程对应的第一进程以及第一模块工程对应的第二进程,所述主工程包括所述第一模块工程需要调用的第二模块工程;
所述第一进程接收所述第二进程发送的调用信息,所述调用信息包括需要调用的目标功能的目标功能名称和目标功能参数,所述目标功能为所述第二模块工程中的部分或全部实现类所执行的功能;
所述第一进程从预先生成的目标映射表中,查找与所述目标功能名称对应的目标实现类,所述目标映射表包括功能名称与实现类之间的映射关系,所述目标实现类用于执行所述目标功能;
所述第一进程将所述目标功能参数输入至所述目标实现类,获得所述目标功能的执行结果;
所述第一进程将所述目标功能的执行结果返回所述第二进程。
通过第一方面的方法,实施本申请实施例可以创建主工程对应的第一进程以及第一模块工程对应的第二进程,所述第一进程接收所述第二进程发送的调用信息后,所述第一进程从预先生成的目标映射表中,查找与所述目标功能名称对应的目标实现类,并将所述目标功能参数输入至所述目标实现类,获得所述目标功能的执行结果,最后将所述目标功能的执行结果返回所述第二进程。其中,所述目标映射表包括功能名称与实现类之间的映射关系,所述目标实现类用于执行所述目标功能,这种可以用来支持某模块工程在所依赖的模块工程尚未完成从主工程中抽离的情况下,也能依赖到所需的接口(功能),并且可以独立运行验证相关功能,既可以在主工程模块化改造中达到模块工程独立开发效果,也可以提高模块化开发效率。
在一种可能实现的方式中所述所述第一进程接收所述第二进程发送的调用信息,包括:所述第一进程接收所述第二进程通过广播消息发送的调用信息。
在一种可能实现的方式中,所述所述第一进程接收所述第二进程发送的调用信息,包括:所述第一进程接收所述第二进程发送的请求创建连接的广播消息;所述第一进程根据所述请求创建连接的广播消息,创建与所述第二进程的通信连接,并向所述第二进程发送连接创建结果的广播消息;所述第二进程接收到所述连接创建结果的广播消息后,与所述通信通道建立连接;所述第一进程通过所述通信通道接收所述第二进程发送的调用信息。
第二方面,本申请实施例提供了一种Android模块独立开发的方法,应用于开发设备,所述方法包括:接收到对主工程的编译指令,其中所述主工程包括内部具有调用关系的多个模块工程;从所述主工程中查找具有预设标记的实现类;其中所述预设标记用于指示所述实现类以供一模块工程对另一模块工程进行调用;获取所述实现类的功能名称;创建目标映射表,以保存所述实现类与所述实现类的功能名称的映射关系。
在一种可能实现的方式中,所述实现类的预设标记的添加步骤包括:若所述主工程中的一模块工程需要被另一模块工程调用,在所述主工程中创建实现类,所述实现类用于实现预先设置的功能调用抽象接口;其中所述抽象接口包含方法调用、功能参数以及回调接口;为所述实现类添加预设标记。
第三方面,本申请实施例提供了一种Android模块独立开发的装置,应用于测试设备,所述装置包括:
第一创建单元,用于创建主工程对应的第一进程以及第一模块工程对应的第二进程,所述主工程包括所述第一模块工程需要调用的第二模块工程;
第一接收单元,用于所述第一进程接收所述第二进程发送的调用信息,所述调用信息包括需要调用的目标功能的目标功能名称和目标功能参数,所述目标功能为所述第二模块工程中的部分或全部实现类所执行的功能
第一查找单元,用于所述第一进程从预先生成的目标映射表中,查找与所述目标功能名称对应的目标实现类,所述目标映射表包括功能名称与实现类之间的映射关系,所述目标实现类用于执行所述目标功能;
第一获取单元,用于所述第一进程将所述目标功能参数输入至所述目标实现类,获得所述目标功能的执行结果;
返回单元,用于所述第一进程将所述目标功能的执行结果返回所述第二进程。
在一种可能实现的方式中,第一接收单元,具体用于所述第一进程接收所述第二进程通过广播消息发送的调用信息。
在一种可能实现的方式中,第一接收单元,具体用于所述第一进程接收所述第二进程发送的请求创建连接的广播消息;所述第一进程根据所述请求创建连接的广播消息,创建与所述第二进程的通信连接,并向所述第二进程发送连接创建结果的广播消息;所述第二进程接收到所述连接创建结果的广播消息后,与所述通信通道建立连接;所述第一进程通过所述通信通道接收所述第二进程发送的调用信息。
第四方面,本申请实施例提供了一种Android模块独立开发的装置,应用于开发设备,所述装置包括:
第二接收单元,用于接收到对主工程的编译指令,其中所述主工程包括内部具有调用关系的多个模块工程;
第二查找单元,用于从所述主工程中查找具有预设标记的实现类;其中,所述预设标记用于指示所述实现类以供一模块工程对另一模块工程进行调用;
第二获取单元,用于获取所述实现类的功能名称;
第二创建单元,用于创建目标映射表,以保存所述实现类与所述实现类的功能名称的映射关系。
在一种可能实现的方式中,所述装置包括:预设标记单元,用于:若所述主工程中的一模块工程需要被另一模块工程调用,在所述主工程中创建实现类,所述实现类用于实现预先设置的功能调用抽象接口;其中所述抽象接口包含方法调用、功能参数以及回调接口;为所述实现类添加预设标记。
第五方面,本申请实施例提供了一种Android模块独立开发的装置,包括存储组件,处理组件和通信组件,存储组件,处理组件和通信组件相互连接,其中,存储组件用于存储计算机程序,通信组件用于与外部设备进行信息交互;处理组件被配置用于调用计算机程序,执行第一方面或第二方面所述的方法,此处不再赘述
第六方面,本申请实施例提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现上述第一方面或上述第二方面的方法。
第七方面,本申请实施例提供了一种计算机程序,该计算机程序包括指令,当该计算机程序被计算机执行时,使得计算机可以执行上述第三方面或第四方面中的Android模块独立开发的装置所执行的流程。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1是本申请实施例提供的一种Android模块独立开发的系统架构的示意图;
图2A是本申请实施例提供的一种Android模块独立开发的方法流程的示意图;
图2B是本申请实施例提供的一种Android模块独立开发的实际应用的方法流程示意图;
图3是本申请实施例提供的另一种Android模块独立开发的方法流程的示意图;
图4A是本申请实施例提供的一种Android模块独立开发的装置的结构示意图;
图4B是本申请实施例提供的另一种Android模块独立开发的装置的结构示意图;
图5是本申请实施例提供的又一种Android模块独立开发的装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例进行描述。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于描述特定顺序。此外,“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本申请中使用的术语“服务器”、“单元”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,服务器可以是但不限于,处理器,数据处理平台,计算设备,计算机,两个或更多个计算机等。
首先,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。
(1)JSON(JavaScriptObject Notation,JS对象简谱),是一种轻量级的数据交换格式。它基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
(2)安卓Android,一个基于Linux内核的开放源代码移动操作系统,是目前主流的手机操作系统之一,本申请所指的Android开发可以指基于Android系统的app应用开发。
(3)工程:一个程序往往包含多项功能,这些功能通常由许多个源代码文件实现,工程是对于这些源代码文件的一种组织形式,为具有一定结构的文件目录。
(4)子module工程:在Android中,一种工程内部可以继续按照功能划分为不同的子目录,每个子目录存储不同的源代码。这种子目录称为子module工程。
(5)模块:指复杂系统(整体)中的一个部分,可以理解为一个单独的功能模块。
(6)模块化:一种将复杂系统分解为更好的可管理模块的方式,在软件开发领域,指的是将某一个业务(功能)划分为独立部分进行开发与维护。
(7)AAR(Android Archive),一种Android中第三方库的存在形式。主要包含第三方库的代码(class文件)和资源。AAR文件通常存放于maven仓库中。
(8)maven仓库:一个依赖管理系统,负责AAR的版本管理。通常搭建在远程服务器中,所以也可称为maven服务器。其中,maven仓库被分为两类:本地仓库和远程仓库,但是远程仓库又分为三大类分别是:中央仓库、私服和其他仓库。
(9)APK(AndroidPackage),又称为Android application package,Android应用程序包。APK是Android操作系统使用的一种类似Symbian Sis或Sisx应用程序包文件格式,用于分发和安装移动应用及中间件。一个Android应用程序的代码想要在Android设备上运行,必须先进行编译,然后被打包成为一个被Android系统所能识别的文件才可以被运行,而这种能被Android系统识别并运行的文件格式便是“APK”。
其次,对本申请实施例所基于的其中一种Android模块独立开发的系统架构进行描述。
情况一,Android模块独立开发的装置101可以为云端的一个服务器,这个服务器与本地终端构成一个系统,请参考附图1,图1是本申请实施例提供的一种Android模块独立开发的系统架构的示意图,如图1所示,系统架构可以包括一个或多个服务器(多个服务器可以构成一个服务器集群),以及一个或多个终端(或设备),其中包括:Android模块独立开发的装置101和终端设备102。
Android模块独立开发的装置101应用于开发设备,可以包括但不限于后台服务器、组件服务器、数据处理服务器、处理插件(如:Gradle插件)等,当上述Android模块独立开发的装置101为服务器时,所述服务器可以通过互联网与多个终端进行通信,服务器上也需要运行有相应的服务器端程序来提供相应Android模块独立开发服务。例如,服务器可以接收到对主工程的编译指令,其中所述主工程包括内部具有调用关系的多个模块工程;根据所述编译指令从所述主工程中查找具有预设标记的实现类;其中所述预设标记用于指示所述实现类以供一模块工程对另一模块工程进行调用;获取所述实现类的功能名称;创建目标映射表,以保存所述实现类与所述实现类的功能名称的映射关系。
终端设备102可以安装并运行相关的应用。应用是指与Android模块独立开发的装置相对应,应用于测试设备。这里,该本地服务可包括但不限于:创建主工程对应的第一进程以及第一模块工程对应的第二进程,所述主工程包括所述第一模块工程需要调用的第二模块工程;所述第一进程接收所述第二进程发送的调用信息,所述调用信息包括需要调用的目标功能的目标功能名称和目标功能参数,所述目标功能为所述第二模块工程中的部分或全部实现类所执行的功能;所述第一进程从预先生成的目标映射表中,查找与所述目标功能名称对应的目标实现类,所述目标映射表包括功能名称与实现类之间的映射关系,所述目标实现类用于执行所述目标功能;所述第一进程将所述目标功能参数输入至所述目标实现类,获得所述目标功能的执行结果;所述第一进程将所述目标功能的执行结果返回所述第二进程。本方案实施例中的终端可以包括但不限于任何一种基于智能操作系统的电子产品,其可与用户通过键盘、虚拟键盘、触摸板、触摸屏以及声控设备等输入设备来进行人机交互,诸如智能手机、平板电脑、个人电脑等。其中,智能操作系统包括但不限于任何通过向移动设备提供各种移动应用来丰富设备功能的操作系统,诸如:安卓(AndroidTM)、iOSTM、Windows PhoneTM等。
情况二,系统架构可以是一个设备,这个设备可以为本地的一个终端,终端可以安装并运行相关的应用,为客户提供本地服务的程序。例如,该终端可以创建主工程对应的第一进程以及第一模块工程对应的第二进程,所述第一进程接收所述第二进程发送的调用信息后,所述第一进程从预先生成的目标映射表中,查找与所述目标功能名称对应的目标实现类,并将所述目标功能参数输入至所述目标实现类,获得所述目标功能的执行结果,最后将所述目标功能的执行结果返回所述第二进程。其中,所述目标映射表包括功能名称与实现类之间的映射关系,所述目标实现类用于执行所述目标功能。本方案实施例中的终端可以包括但不限于任何一种基于智能操作系统的电子产品,其可与用户通过键盘、虚拟键盘、触摸板、触摸屏以及声控设备等输入设备来进行人机交互,诸如智能手机、平板电脑、个人电脑等。其中,智能操作系统包括但不限于任何通过向移动设备提供各种移动应用来丰富设备功能的操作系统,诸如安卓(AndroidTM)、iOSTM、Windows PhoneTM等。
还可以理解的是,图1的Android模块独立开发的系统架构只是本申请实施例中的部分示例性的实施方式,本申请实施例中的Android模块独立开发的系统架构包括但不仅限于以上Android模块独立开发的系统架构。
参考附图2A,图2A是本申请实施例提供的一种Android模块独立开发的方法流程的示意图。可应用于上述图1中的系统,如:测试设备。该方法可以包括以下步骤S201-步骤S205。
步骤S201:创建主工程对应的第一进程以及第一模块工程对应的第二进程。
具体地,Android模块独立开发的装置可以创建主工程对应的第一进程以及第一模块工程对应的第二进程,所述主工程包括所述第一模块工程需要调用的第二模块工程。主工程包括多个模块工程,例如:Android模块独立开发的装置可以通过主工程实时或周期性监听一个或多个模块工程广播的广播消息,以实现相关功能。
步骤S202:第一进程接收第二进程发送的调用信息。
具体的,Android模块独立开发的装置通过第一进程接收第二进程发送的调用信息,所述调用信息包括需要调用的目标功能的目标功能名称和目标功能参数,所述目标功能为所述第二模块工程中的部分或全部实现类所执行的功能。该调用信息用于请求支持该模块工程可以依赖到所需的实现类接口,并且可以独立运行验证相关功能后返回相关结果,实现调用的目的。例如:Android模块独立开发的装置注册一个广播接收器BroadCastReceiver,开始监听第一广播消息(如:action=“createConnection”的广播)。
可选的,所述第一进程接收所述第二进程通过广播消息发送的调用信息。例如:第一模块工程A所在进程向该主工程发送请求(即,第一广播信息),该请求中包含当前第一模块工程A需要调用的第二模块工程B功能的名称与功能调用所需参数,请参考附图2B,图2B是本申请实施例提供的一种Android模块独立开发的实际应用的方法流程示意图。如图2B所示:模块工程A向主工程发送“login”(功能名称)与“userName”(调用该功能所需的参数,即,目标功能参数);主工程开始进入等待状态。
可选的,所述第一进程接收所述第二进程发送的调用信息,包括:所述第一进程接收所述第二进程通过广播消息发送的调用信息。
可选的,所述第一进程接收所述第二进程发送的调用信息,包括:所述第一进程接收所述第二进程发送的请求创建连接的广播消息;所述第一进程根据所述请求创建连接的广播消息,创建与所述第二进程的通信连接,并向所述第二进程发送连接创建结果的广播消息;所述第二进程接收到所述连接创建结果的广播消息后,与所述通信通道建立连接;所述第一进程通过所述通信通道接收所述第二进程发送的调用信息。
例如:Android模块独立开发的装置通过所述主工程接收所述第一模块工程发送的第二广播消息,其中,该第二广播消息用于建立第一模块工程与主工程的连接。可选的,主工程所在进程:注册一个广播接收器BroadCastReceiver,开始实时或周期性监听来自模块工程的第二广播消息(如:模块工程广播的action=“createConnection”消息)。Android模块独立开发的装置根据所述第二广播消息,创建与所述第一模块工程的通信连接。可以理解的是,接收到第二广播消息后,可以在主工程建立一个子线程,该子线程可以用于与第一模块工程建立连接。例如:接收到第一模块工程发送的action=“createConnection”的广播后,在主工程启动一个Service,名为MainService,然后在MainService中创建一个子线程,并在子线程中启动一个LocalServerSocket,名为“com.module.server”,该服务用于调用第二模块工程的相关功能。第一模块工程向主工程中发送第二广播消息(如:模块工程广播的action=“createConnection”消息)后,建立一个LocalSocket,并尝试与主工程中一个子线程“com.module.server”的LocalServerSocket建立连接。Android模块独立开发的装置向所述第一模块工程发送第三广播消息,所述第三广播消息用于指示所述通信链接创建完成。可以理解的是,第一模块工程向主工程中发送第二广播消息(如:模块工程广播的action=“createConnection”消息)后,建立一个LocalSocket,可以与主工程中的子线程“com.module.server”的LocalServerSocket建立连接;连接建立完成后,主工程可以向所述第一模块工程发送用于指示所述通信链接创建完成的第三广播消息。Android模块独立开发的装置控制所述多个模块工程中每一个模块工程创建抽象接口,所述抽象接口包含方法调用,功能参数以及回调接口。可以理解的是,第一模块工程在需要依赖调用第二模块工程的功能,而第二模块工程尚未从主工程中抽离时,需要在第一模块工程创建一个模块工程之间功能调用的抽象接口IModule,该抽象接口,包含一个方法调用invoke,接收功能调用所需参数(名为params)以及回调接口(名为callback),第一模块工程独立运行的过程中,当执行到需要调用其他模块工程的登录功能的逻辑时,可以通过该抽象接口调用其他模块工程的功能。以模块工程A需要调用模块工程B的登录功能为例,首先在模块工程A中定义一个模块之间功能调用的抽象接口IModule,该IModule包含一个方法invoke、接收功能调用所需参数(名为params)以及回调接口(名为callback);在主工程中:LoginMethod类内部实现invoke方法,并根据模块工程A传入的params参数,调用主工程中模块工程B的登录相关代码完成登录功能,并在执行登录结束后,将登录结果使用callback参数回调给invoke方法的调用者,即模块工程A。可以理解的是,在需要调用其他模块工程的功能的模块工程,使用本申请实施例提供的ModularDispatcher.invoke(String MethodName(功能名称),String Params(功能参数),Callback callback(回调接口))抽象接口,传入三个参数为“login”、“userName”、callback,表明希望调用其他模块工程的功能,登录参数为“userName”,并且需要通过callback获取登录结果。
步骤S203:第一进程从预先生成的目标映射表中,查找与目标功能名称对应的目标实现类。
具体的,Android模块独立开发的装置根据所述调用信息,通过所述第一进程从预先生成的目标映射表中,查找与所述目标功能名称对应的目标实现类,所述目标映射表包括功能名称与实现类之间的映射关系,所述目标实现类用于执行所述目标功能。例如:可以根据所述目标功能名称,遍历目标映射表,确定与所述目标功能名称对应的目标实现类,例如:如图2B所示:主工程所在进程收到上一步骤S202由第二进程发送的调用信息后,取出调用信息中的需要调用的目标功能名称(“login”)与目标功能参数(“userName”);再开始遍历存储的MethodsMap映射表,找出key=“login”的目标实现类,即LoginMethod.class。
步骤S204:第一进程将目标功能参数输入至目标实现类,获得目标功能的执行结果。
具体地,Android模块独立开发的装置通过第一进程将所述目标功能参数输入至所述目标实现类,获得执行结果。例如:如图2B所示:根据目标实现类LoginMethod.class,使用反射创建一个实例mLoginMethod,调用mLoginMethod.invoke()方法,传入目标功能名称“userName”,mLoginMethod.invoke()方法执行完成后,登录逻辑即执行完成,获得执行结果(如:登录成功或者失败),通过回传参数callback将执行结果返回第一模块工程所在的进程。
步骤S205:第一进程将目标功能的执行结果返回第二进程。
具体的,Android模块独立开发的装置可以通过第一进程将所述目标功能的执行结果返回所述第二进程,即,Android模块独立开发的装置将所述目标功能参数输入至所述目标实现类,获得执行结果之后,还可以根据第一回调接口,将所述执行结果,发送至第二进程,即,所述第一模块工程。
可选的,所述第一模块工程收到上述执行结果后,使用第一模块工程传入的callback,将该结果回调给第一模块工程,至此,第一模块工程完成了独立运行过程中对于第二模块工程的功能的调用;且后续第一模块工程的开发过程中,若未改动主工程LoginMethod的逻辑,主工程不需要重新打包,仅需要重新打包编译第一模块工程即可,极大节省模块A开发期间的编译时长。
实施本申请实施例可以创建主工程对应的第一进程以及第一模块工程对应的第二进程,所述第一进程接收所述第二进程发送的调用信息后,所述第一进程从预先生成的目标映射表中,查找与所述目标功能名称对应的目标实现类,并将所述目标功能参数输入至所述目标实现类,获得所述目标功能的执行结果,最后将所述目标功能的执行结果返回所述第二进程。其中,所述目标映射表包括功能名称与实现类之间的映射关系,所述目标实现类用于执行所述目标功能,这种可以用来支持某模块工程在所依赖的模块工程尚未完成从主工程中抽离的情况下,也能依赖到所需的接口(功能),并且可以独立运行验证相关功能,既可以在主工程模块化改造中达到模块工程独立开发效果,也可以提高模块化开发效率。
请参考附图3,图3是本申请实施例提供的另一种Android模块独立开发的方法流程的示意图。可应用于上述图1中的系统,如:开发设备。该方法可以包括以下步骤S301-步骤S304。
步骤S301:接收到对主工程的编译指令。
具体的,Android模块独立开发的装置接收到对主工程的编译指令,其中,所述主工程包括内部具有调用关系的多个模块工程,该编译指令用于对主工程进行编译。
步骤S302:从主工程中查找具有预设标记的实现类。
具体的,Android模块独立开发的装置根据所述编译指令,从所述主工程中查找具有预设标记的实现类,其中,所述预设标记用于指示所述实现类以供一模块工程对另一模块工程进行调用。
可选的,所述实现类的预设标记的添加步骤包括:若所述主工程中的一模块工程需要被另一模块工程调用,在所述主工程中创建实现类,所述实现类用于实现预先设置的功能调用抽象接口;其中所述抽象接口包含方法调用、功能参数以及回调接口;为所述实现类添加预设标记。例如:若所述主工程中的一模块工程需要被另一模块工程调用,Android模块独立开发的装置需要在源码中声明了@Module注解的抽象接口所有类,可以为所述声明之后的实现类添加预设标记。
步骤S303:获取具有预设标记的实现类的功能名称。
具体的,Android模块独立开发的装置查找具有预设标记的实现类后,获取所述具有预设标记的实现类的功能名称。例如:触发主工程的编译,在编译代码的过程中,使用注解处理器,收集源码中声明了@Module注解的抽象接口所有类,即,具有预设标记的实现类;解析收集到的所有声明了@Module的抽象接口的类,取出注解中定义的功能名称。
步骤S304:根据具有预设标记的实现类的功能名称,创建目标映射表。
具体的,Android模块独立开发的装置,根据实现类的功能名称,创建目标映射表,以保存所述实现类与所述实现类的功能名称的映射关系。例如:Android模块独立开发的装置获取到所有具有预设标记的实现类的功能名称后,生成一个MethodsMap映射表,该映射表包含了所有抽象接口的实现类及其对应的功能名称,其中key为功能名称,value为IModule接口实现类的类名;继续触发代码和工程中资源的编译,生成主工程对应的APK文件,即,module-app.apk;再将module-app.apk安装到手机上,启动运行,主工程的功能开始运行在module-app进程中;触发模块工程A的编译,生成模块工程A对应的APK文件:module-A.apk;将module-A.apk安装到手机上,启动运行,模块工程A的功能即可开始独立运行在module-A进程中。
可选的,Android模块独立开发的装置根据实现类的功能名称,创建目标映射表,可以包括:Android模块独立开发的装置在dex流程之前对所有编译好的class文件进行字节码分析,判断该类是否实现了抽象接口;若是,将该实现类收集起来,生成所述目标映射表。即,Android模块独立开发的装置可以在dex流程之前对所有编译好的class文件进行字节码分析,分析该类是否实现了抽象接口,若是,则收集起来,生成一个目标映射表,实现同样的可以自动收集工程中所有IMethod实现类的目的。
实施本申请实施例,可以接收到对主工程的编译指令,其中,所述主工程包括内部具有调用关系的多个模块工程;从所述主工程中查找具有预设标记的实现类;其中,所述预设标记用于指示所述实现类以供一模块工程对另一模块工程进行调用;获取所述实现类的功能名称;创建目标映射表,以保存所述实现类与所述实现类的功能名称的映射关系。这种可以用来支持某模块工程在所依赖的模块工程尚未完成从主工程中抽离的情况下,也能依赖到所需的接口(功能),并且可以独立运行验证相关功能,既可以在主工程模块化改造中达到模块工程独立开发效果,也可以提高模块化开发效率。
总的来说,本申请可以创建主工程对应的第一进程以及第一模块工程对应的第二进程,通过所述第一进程接收所述第二进程发送的调用信息后,所述第一进程从预先生成的目标映射表中,查找与所述目标功能名称对应的目标实现类,并将所述目标功能参数输入至所述目标实现类,获得所述目标功能的执行结果,最后将所述目标功能的执行结果返回所述第二进程。使用本申请的提供的装置与方法,可以支持某模块工程在所依赖的模块工程尚未抽离完成的情况下,也能在其独立工程中依赖到所需的目标实现类,调用到其需要的功能,以支持自身功能开发,并且可以在此前提下独立运行当前模块工程以验证相关功能,即当前模块工程的开发工作不会被另一个模块工程的开发进度所影响。且后续模块工程的开发过程中,若未改动主工程LoginMethod的逻辑,主工程不需要重新打包,仅需要重新打包编译该模块工程,极大地节省了该模块工程开发期间的编译时长,在模块化改造中也提高模块化开发效率。
上述详细阐述了本申请实施例的方法,下面提供了与本申请实施例的相关Android模块独立开发的装置,应用于测试设备,Android模块独立开发的装置可以是一种通过快速获取、处理、分析和提取有价值的数据,以交互数据为基础,为第三方使用带来各种便利的设备,如:手机、电脑等。请参考附图4A,图4A是本申请实施例提供的一种Android模块独立开发的装置的结构示意图。可以包括第一创建单元401,第一接收单元402,第一查找单元403,第一获取单元404和返回单元405。
第一创建单元401,用于创建主工程对应的第一进程以及第一模块工程对应的第二进程,所述主工程包括所述第一模块工程需要调用的第二模块工程;
第一接收单元402,用于所述第一进程接收所述第二进程发送的调用信息,所述调用信息包括需要调用的目标功能的目标功能名称和目标功能参数,所述目标功能为所述第二模块工程中的部分或全部实现类所执行的功能
第一查找单元403,用于所述第一进程从预先生成的目标映射表中,查找与所述目标功能名称对应的目标实现类,所述目标映射表包括功能名称与实现类之间的映射关系,所述目标实现类用于执行所述目标功能;
第一获取单元404,用于所述第一进程将所述目标功能参数输入至所述目标实现类,获得所述目标功能的执行结果;
返回单元405,用于所述第一进程将所述目标功能的执行结果返回所述第二进程。
在一种可能实现的方式中,所述第一接收单元402,具体用于所述第一进程接收所述第二进程通过广播消息发送的调用信息。
在一种可能实现的方式中,所述第一接收单元402,具体用于所述第一进程接收所述第二进程发送的请求创建连接的广播消息;所述第一进程根据所述请求创建连接的广播消息,创建与所述第二进程的通信连接,并向所述第二进程发送连接创建结果的广播消息;所述第二进程接收到所述连接创建结果的广播消息后,与所述通信通道建立连接;所述第一进程通过所述通信通道接收所述第二进程发送的调用信息。
上述详细阐述了本申请实施例的方法,下面提供了与本申请实施例的相关Android模块独立开发的装置,应用于开发设备,Android模块独立开发的装置可以是一种可以进行代码编写的设备。请参考附图4B,图4B是本申请实施例提供的另一种Android模块独立开发的装置的结构示意图。可以包括第二接收单元411,第二查找单元412,第二获取单元413和第二创建单元414,还可以包括:预设标记单元415。
第二接收单元411,用于接收到对主工程的编译指令,其中所述主工程包括内部具有调用关系的多个模块工程;
第二查找单元412,用于从所述主工程中查找具有预设标记的实现类;其中,所述预设标记用于指示所述实现类以供一模块工程对另一模块工程进行调用;
第二获取单元413,用于获取所述实现类的功能名称;
第二创建单元414,用于创建目标映射表,以保存所述实现类与所述实现类的功能名称的映射关系。
在一种可能实现的方式中,所述装置包括:预设标记单元415,用于:若所述主工程中的一模块工程需要被另一模块工程调用,在所述主工程中创建实现类,所述实现类用于实现预先设置的功能调用抽象接口;其中所述抽象接口包含方法调用、功能参数以及回调接口;为所述实现类添加预设标记。
需要说明的是,各个操作的实现还可以对应参照图2A至图3所示的方法实施例的相应描述,此处不再赘述。
如图5所示,图5是本申请实施例提供的又一种Android模块独立开发的装置的结构示意图,该装置包括至少一个处理器501,至少一个存储器502、至少一个通信接口503。此外,该设备还可以包括天线等通用部件,在此不再详述。
处理器501可以是通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制以上方案程序执行的集成电路。
通信接口503,用于与其他设备或通信网络通信,如以太网,无线接入网(RAN),核心网,无线局域网(Wireless Local Area Networks,WLAN)等。
存储器502可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,所述存储器502用于存储执行以上方案的应用程序代码,并由处理器501来控制执行。所述处理器501用于执行所述存储器502中存储的应用程序代码。
存储器502存储的代码可执行以上图2A或图3提供的Android模块独立开发的方法,比如,当装置20为Android模块独立开发的装置101时,可以接收到对主工程的编译指令,其中,所述主工程包括内部具有调用关系的多个模块工程;从所述主工程中查找具有预设标记的实现类;其中,所述预设标记用于指示所述实现类以供一模块工程对另一模块工程进行调用;获取所述实现类的功能名称;创建目标映射表,以保存所述实现类与所述实现类的功能名称的映射关系。又例如:当装置20为终端设备102时,可以创建主工程对应的第一进程以及第一模块工程对应的第二进程,所述主工程包括所述第一模块工程需要调用的第二模块工程;所述第一进程接收所述第二进程发送的调用信息,所述调用信息包括需要调用的目标功能的目标功能名称和目标功能参数,所述目标功能为所述第二模块工程中的部分或全部实现类所执行的功能;所述第一进程从预先生成的目标映射表中,查找与所述目标功能名称对应的目标实现类,所述目标映射表包括功能名称与实现类之间的映射关系,所述目标实现类用于执行所述目标功能;所述第一进程将所述目标功能参数输入至所述目标实现类,获得所述目标功能的执行结果;所述第一进程将所述目标功能的执行结果返回所述第二进程。
需要说明的是,本申请实施例中所描述的Android模块独立开发的装置中各功能单元的功能可参照图2A至图3所示的方法实施例的相应描述,此处不再赘述。
在本申请中,所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能组件可以集成在一个组件也可以是各个组件单独物理存在,也可以是两个或两个以上组件集成在一个组件中。上述集成的组件既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的组件如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个本申请实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。尽管在此结合各实施例对本申请进行了描述,然而,在实施例所要求保护的本申请过程中,本领域技术人员可理解并实现公开实施例的其他变化。
Claims (10)
1.一种Android模块独立开发的方法,其特征在于,应用于测试设备,所述方法包括:
创建主工程对应的第一进程以及第一模块工程对应的第二进程,所述主工程包括所述第一模块工程需要调用的第二模块工程;
所述第一进程接收所述第二进程发送的调用信息,所述调用信息包括需要调用的目标功能的目标功能名称和目标功能参数,所述目标功能为所述第二模块工程中的部分或全部实现类所执行的功能;
所述第一进程从预先生成的目标映射表中,查找与所述目标功能名称对应的目标实现类,所述目标映射表包括功能名称与实现类之间的映射关系,所述目标实现类用于执行所述目标功能;
所述第一进程将所述目标功能参数输入至所述目标实现类,获得所述目标功能的执行结果;
所述第一进程将所述目标功能的执行结果返回所述第二进程。
2.根据权利要求1所述方法,其特征在于,所述所述第一进程接收所述第二进程发送的调用信息,包括:
所述第一进程接收所述第二进程通过广播消息发送的调用信息。
3.根据权利要求1所述方法,其特征在于,所述所述第一进程接收所述第二进程发送的调用信息,包括:
所述第一进程接收所述第二进程发送的请求创建连接的广播消息;
所述第一进程根据所述请求创建连接的广播消息,创建与所述第二进程的通信连接,并向所述第二进程发送连接创建结果的广播消息;
所述第二进程接收到所述连接创建结果的广播消息后,与所述通信通道建立连接;
所述第一进程通过所述通信通道接收所述第二进程发送的调用信息。
4.一种Android模块独立开发的方法,其特征在于,应用于开发设备,所述方法包括:
接收到对主工程的编译指令,其中,所述主工程包括内部具有调用关系的多个模块工程;
从所述主工程中查找具有预设标记的实现类;其中,所述预设标记用于指示所述实现类以供一模块工程对另一模块工程进行调用;
获取所述实现类的功能名称;
创建目标映射表,以保存所述实现类与所述实现类的功能名称的映射关系。
5.根据权利要求4所述方法,其特征在于,所述实现类的预设标记的添加步骤包括:
若所述主工程中的一模块工程需要被另一模块工程调用,在所述主工程中创建实现类,所述实现类用于实现预先设置的功能调用抽象接口;其中所述抽象接口包含方法调用、功能参数以及回调接口;
为所述实现类添加预设标记。
6.一种Android模块独立开发的装置,其特征在于,应用于测试设备,所述装置包括:
第一创建单元,用于创建主工程对应的第一进程以及第一模块工程对应的第二进程,所述主工程包括所述第一模块工程需要调用的第二模块工程;
第一接收单元,用于所述第一进程接收所述第二进程发送的调用信息,所述调用信息包括需要调用的目标功能的目标功能名称和目标功能参数,所述目标功能为所述第二模块工程中的部分或全部实现类所执行的功能
第一查找单元,用于所述第一进程从预先生成的目标映射表中,查找与所述目标功能名称对应的目标实现类,所述目标映射表包括功能名称与实现类之间的映射关系,所述目标实现类用于执行所述目标功能;
第一获取单元,用于所述第一进程将所述目标功能参数输入至所述目标实现类,获得所述目标功能的执行结果;
返回单元,用于所述第一进程将所述目标功能的执行结果返回所述第二进程。
7.根据权利要求6所述装置,其特征在于,所述第一接收单元,具体用于所述第一进程接收所述第二进程通过广播消息发送的调用信息。
8.一种Android模块独立开发的装置,其特征在于,应用于开发设备,所述装置包括:
第二接收单元,用于接收到对主工程的编译指令,其中所述主工程包括内部具有调用关系的多个模块工程;
第二查找单元,用于从所述主工程中查找具有预设标记的实现类;其中,所述预设标记用于指示所述实现类以供一模块工程对另一模块工程进行调用;
第二获取单元,用于获取所述实现类的功能名称;
第二创建单元,用于创建目标映射表,以保存所述实现类与所述实现类的功能名称的映射关系。
9.一种Android模块独立开发的装置,其特征在于,包括处理组件、存储组件和通信模组件,处理组件、存储组件和通信组件相互连接,其中,存储组件用于存储计算机程序,通信组件用于与外部设备进行信息交互;处理组件被配置用于调用计算机程序,执行如权利要求1-3任意一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1-3任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010298779.5A CN111488286B (zh) | 2020-04-15 | 2020-04-15 | 一种Android模块独立开发的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010298779.5A CN111488286B (zh) | 2020-04-15 | 2020-04-15 | 一种Android模块独立开发的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111488286A true CN111488286A (zh) | 2020-08-04 |
CN111488286B CN111488286B (zh) | 2024-02-09 |
Family
ID=71812889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010298779.5A Active CN111488286B (zh) | 2020-04-15 | 2020-04-15 | 一种Android模块独立开发的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111488286B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015394A (zh) * | 2020-08-27 | 2020-12-01 | 北京百度网讯科技有限公司 | 安卓功能模块开发方法和装置、计算机系统和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622241A (zh) * | 2011-01-26 | 2012-08-01 | 腾讯科技(深圳)有限公司 | 一种软件升级方法及装置 |
US20170075791A1 (en) * | 2015-09-14 | 2017-03-16 | Salesforce.Com, Inc. | Methods and systems for executing tests using grouped/filtered test classes during testing of an application |
CN108255545A (zh) * | 2016-12-28 | 2018-07-06 | 阿里巴巴集团控股有限公司 | 组件间的功能调用方法、装置及组件化架构系统 |
CN109032815A (zh) * | 2018-07-18 | 2018-12-18 | 武汉斗鱼网络科技有限公司 | 功能模块间的信息交互方法、装置、设备及存储介质 |
CN109343982A (zh) * | 2018-09-30 | 2019-02-15 | 武汉斗鱼网络科技有限公司 | 功能模块间的信息交互方法、装置、设备及存储介质 |
CN110275790A (zh) * | 2019-06-26 | 2019-09-24 | 北京金山安全软件有限公司 | 应用程序中的进程间通信同步回调方法、系统及相关设备 |
CN110825448A (zh) * | 2019-09-18 | 2020-02-21 | 五八有限公司 | 实现多业务模块相互调用的方法、装置、电子设备和存储介质 |
-
2020
- 2020-04-15 CN CN202010298779.5A patent/CN111488286B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622241A (zh) * | 2011-01-26 | 2012-08-01 | 腾讯科技(深圳)有限公司 | 一种软件升级方法及装置 |
US20170075791A1 (en) * | 2015-09-14 | 2017-03-16 | Salesforce.Com, Inc. | Methods and systems for executing tests using grouped/filtered test classes during testing of an application |
CN108255545A (zh) * | 2016-12-28 | 2018-07-06 | 阿里巴巴集团控股有限公司 | 组件间的功能调用方法、装置及组件化架构系统 |
CN109032815A (zh) * | 2018-07-18 | 2018-12-18 | 武汉斗鱼网络科技有限公司 | 功能模块间的信息交互方法、装置、设备及存储介质 |
CN109343982A (zh) * | 2018-09-30 | 2019-02-15 | 武汉斗鱼网络科技有限公司 | 功能模块间的信息交互方法、装置、设备及存储介质 |
CN110275790A (zh) * | 2019-06-26 | 2019-09-24 | 北京金山安全软件有限公司 | 应用程序中的进程间通信同步回调方法、系统及相关设备 |
CN110825448A (zh) * | 2019-09-18 | 2020-02-21 | 五八有限公司 | 实现多业务模块相互调用的方法、装置、电子设备和存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015394A (zh) * | 2020-08-27 | 2020-12-01 | 北京百度网讯科技有限公司 | 安卓功能模块开发方法和装置、计算机系统和存储介质 |
CN112015394B (zh) * | 2020-08-27 | 2024-02-27 | 北京百度网讯科技有限公司 | 安卓功能模块开发方法和装置、计算机系统和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111488286B (zh) | 2024-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3876116B1 (en) | Method and apparatus for running mini program, electronic device, and storage medium | |
US9760415B2 (en) | Code service for language-independent dispatch | |
WO2021184725A1 (zh) | 用户界面测试方法、装置、存储介质及计算机设备 | |
CN111399840B (zh) | 一种模块开发方法及装置 | |
CN110688096B (zh) | 包含插件的应用程序的构建方法、装置、介质及电子设备 | |
CN110928548B (zh) | 一种数据处理方法以及设备 | |
CN112769706B (zh) | 组件化路由方法及系统 | |
CN115599386A (zh) | 代码生成方法、装置、设备及存储介质 | |
KR20110130611A (ko) | 이기종 운영체제 계층 모듈에서 동작하는 웹기반어플리케이션의 연동이 가능한 모바일 단말기용 웹 플랫폼 유닛 | |
JP2005228183A (ja) | プログラム実行方法、および、プログラム実行のための計算機システム | |
CN111488286B (zh) | 一种Android模块独立开发的方法及装置 | |
CN111414154A (zh) | 前端开发的方法、装置、电子设备和存储介质 | |
CN111158777A (zh) | 组件调用方法、装置及计算机可读存储介质 | |
CN111581578B (zh) | 接口请求处理方法和装置 | |
KR20080027293A (ko) | 데이터 언어에서 다수 언어들의 관리 | |
CN111400623B (zh) | 用于搜索信息的方法和装置 | |
CN114637672A (zh) | 自动化数据测试方法、装置、计算机设备及存储介质 | |
CN111400396A (zh) | 数据同步脚本的生成方法、装置及计算机可读存储介质 | |
CN116974653B (zh) | 类加载方法及系统 | |
CN116302847B (zh) | 异常信息的动态采集方法、装置、计算机设备及介质 | |
CN112256326B (zh) | 信息的处理方法、装置、设备及存储介质 | |
CN111209225B (zh) | 获取实际地址的方法、装置、介质和电子设备 | |
CN113626045A (zh) | 开发工具的安装方法、装置、电子设备及存储介质 | |
CN114995858A (zh) | 升级包兼容性的检测方法与系统 | |
CN115408074A (zh) | 接口数据的处理方法、装置、设备、介质及程序产品 |
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 |