CN102262555A - 加载java三方库的不同版本的方法和装置 - Google Patents
加载java三方库的不同版本的方法和装置 Download PDFInfo
- Publication number
- CN102262555A CN102262555A CN2011102409071A CN201110240907A CN102262555A CN 102262555 A CN102262555 A CN 102262555A CN 2011102409071 A CN2011102409071 A CN 2011102409071A CN 201110240907 A CN201110240907 A CN 201110240907A CN 102262555 A CN102262555 A CN 102262555A
- Authority
- CN
- China
- Prior art keywords
- class
- module
- application program
- java application
- tripartite
- 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
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供了一种加载JAVA三方库的不同版本的方法,包括如下步骤:A、构建一个用于构建类加载管理器和各个模块的模块类加载器的启动管理单元,实现JAVA应用程序启动前的初始化;B、在所述启动管理单元中启动JAVA应用程序,通过类加载管理器加载JAVA应用程序的类,根据模块的类的特征找到对应的模块类加载器实现模块的类的加载,其中至少两个模块中存在不同版本的相同三方库。本发明还提供一种加载JAVA三方库的不同版本的装置。本发明方案能够根据模块需要自动引用所需版本的三方库,避免三方库的版本冲突。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及JAVA应用程序中三方库的多版本兼容技术,特别涉及一种加载JAVA三方库的不同版本的方法和装置。
背景技术
随着信息技术的发展,计算机应用越来越广泛,各种应用系统相继而生,采用面向对象技术开发应用系统也越来越多,JAVA开发技术得到了广泛的使用,特别是采用JAVA开发一个长期性的、大型的应用程序也就越来越多。
由于JAVA在程序开发中占有的比例越来越大,项目工程也越来越大,这就使得JAVA开发人员不能只基于官方提供的JAVA开发工具包(JDK,JAVADevelopment Kit)来完成一个应用程序的开发,而必须利用各种资源进行整合来进行快速开发,在这个过程中使用已经很成熟的三方库也就越来越迫切。所谓三方库,就是由第三方提供的库文件,其中包含了可以直接使用的变量、函数或类。
现今,免费的、付费的三方库越来越多,在任何一个采用JAVA开发的应用程序产品中,都会或多或少地使用三方库。并且照目前的趋势来看,未来使用三方库的开发过程还会继续增长,对三方库的要求也会随之不断提高。因此,三方库的内容也在不断地扩充,这就使得三方库的版本越来越多,版本也在不断地升级。在三方库不断升级的过程中,功能的兼容性会存在一定的问题。
一般而言,JAVA应用程序中尽量引用一个版本的三方库。但是在开发过程中,对三方库的升级要求也越来越明显,随着JAVA应用程序的不断开发,需要使用新版本的三方库;但是JAVA应用程序的一些早期模块又需要老版本的三方库,这样一个JAVA应用程序可能需要同一个三方库的不同版本,这就可能使用三方库的版本中起了冲突。
在现有技术中,JAVA应用程序进行三方库升级只能进行源代码修改,使得同一个三方库的不同版本分别形成一个独立的三方库,也就是说,将同一个三方库的不同版本分别变成不同的三方库,从而完成三方库的升级。但是这样带来了很大的工作量和维护工作。
发明内容
针对现有技术的不足,本发明提供了一种JAVA三方库管理方法和装置,能够根据模块需要自动引用所需版本的三方库,避免三方库的版本冲突。
本发明实施例提供一种加载JAVA三方库的不同版本的方法,包括如下步骤:
A、构建一个用于构建类加载管理器和各个模块的模块类加载器的启动管理单元,实现JAVA应用程序启动前的初始化;
B、在所述启动管理单元中启动JAVA应用程序,通过类加载管理器加载JAVA应用程序的类,根据模块的类的特征找到对应的模块类加载器实现模块的类的加载,其中至少两个模块中存在不同版本的相同三方库。
较佳地,步骤A包括:
A1、构建用于根据待加载类的特征来使用相应的类加载器的类加载管理器;
A2、构建各个模块的模块类加载器,其中至少两个模块中存在不同版本的相同三方库;
A3、构建各个模块的类的特征和模块类加载器的映射关系,并添加到类加载管理器中。
较佳地,步骤A还包括:
A4、构建用于加载无三方库要求的模块中的类和JAVA应用程序启动类的平台类加载器。
较佳地,步骤B包括:
B1、通过类加载管理器加载JAVA应用程序启动类;
B2、通过启动JAVA应用程序启动类启动JAVA应用程序;
B3、JAVA应用程序加载模块的类时,检测加载类特征,根据预先定义的模块的类的特征与模块类加载器的映射关系,在加载类时采用对应的模块类加载器;
B4、如果未找到合适的模块类加载器,再使用平台类加载器加载无三方库要求的模块。
较佳地,在通过线程类加载器加载对象之前,在JAVA应用程序执行过程中动态修改线程类加载器。
本发明实施例还提供一种加载同一个JAVA三方库的不同版本的装置,包括:
启动管理单元,用于构建类加载管理器和模块类加载器;并用于实现JAVA应用程序启动的初始并启动JAVA应用程序,通过反射的方式执行JAVA应用程序启动类;
类加载管理器,用于接收JAVA应用程序对类的加载请求,并管理JAVA应用程序的各个模块的类加载器;根据待加载类的特征来使用相应的类加载器,其中包括使用模块类加载器;
至少两个模块类加载器,所述模块类加载器用于实现模块的类的加载,至少两个模块中存在不同版本的相同三方库。
较佳地,该装置进一步包括:
平台类加载器,用于加载JAVA应用程序的平台部分。
较佳地,该装置进一步包括:
线程类加载器管理单元,用于在JAVA应用程序执行过程中动态修改线程类加载器。
较佳地,所述平台部分是指无三方库要求的模块的类和JAVA应用程序启动类。
较佳地,所述平台类加载器由类加载管理器构建。
从以上技术方案可以看出,通过构建启动管理单元来启动JAVA应用程序,通过启动管理单元构建模块加载器实现模块的类的加载,从而使得JAVA应用程序能够根据模块需要自动引用所需版本的三方库,避免三方库的版本冲突。
附图说明
图1是本发明实施例的JAVA三方库管理装置结构示意图;
图2是本发明实施例的启动管理单元的处理流程图;
图3是本发明实施例的类加载管理器的处理流程图;
图4是本发明实施例的平台类加载器的处理流程图;
图5是本发明实施例的模块加载器的处理流程图;
图6是本发明实施例的线程类加载器管理在JAVA应用程序被使用的流程图;
图7是本发明实施例的线程类加载器管理的处理流程图。
具体实施方式
下面结合附图及实施方式,详细描述本发明的技术方案。
现有技术采用启动命令java-cp*.jar com.app.JavaAppMain来实现java应用应用程序的启动,JAVA应用程序中只有一个类加载器,由JDK指定,并且在JAVA归档文件中一个三方库只能存在单一版本。而本发明方案中,为了使得JAVA应用程序能够根据模块需要自动引用所需版本的三方库,避免三方库的版本冲突,不再通过上述启动命令启动JAVA应用程序,而是构建一个启动管理单元来启动。
本发明实施例提供一种加载同一个JAVA三方库的不同版本的装置的结构框图如图1所示,本装置包含五个部分:启动管理单元、类加载管理器、平台类加载器、模块类加载器、线程类加载器管理单元,各部分的主要功能如下:
启动管理单元101,负责初始化过程,完成类加载管理器的构建、平台类加载器的构建、模块类加载器的构建、模块的类的特征和模块类加载器的映射关系,按照模块的类的特征添加模块类加载器到类加载管理器中,调用类加载管理器加载JAVA应用程序启动类、再在本管理单元中启动JAVA应用程序(这里需要通过反射的方式启动)。
类加载管理器102,用于类的特征的识别,根据类的特征找到对应的模块类加载器(如果没有找到,就转到平台类加载器上),是通过对应的类加载器完成类的加载。
模块类加载器103,负责模块的类的加载过程,加载失败转到类加载管理器中继续。本发明中至少两个模块中存在不同版本的相同三方库。
平台类加载器104,用于接收JAVA应用程序对类的加载请求,实现JAVA应用程序平台部分的类加载(包含无三方库版本要求的模块和JAVA应用程序启动类部分),还用于检测当前待加载的类是否为模块的类,根据检测结果转入到类加载管理器中。
需要说明的是,在JAVA应用程序或者JAVA三方库的实现过程中,除了通用的类加载方式(在JAVA应用程序或者JAVA三方库中直接加载类),还有通过线程类加载器加载对象(例如:spring就是采用此种模式加载类),通过线程类加载器加载类,需要对该方式进行特殊的处理。所以本发明实施例提供的加载同一个JAVA三方库的不同版本的装置还包括线程类加载器管理单元,用于JAVA应用程序中的线程类加载器的修改和恢复功能。
本发明实施例提供的加载同一个JAVA三方库的不同版本方法流程图如图2所示,具体如下:
步骤S210:构建类加载管理器,用于接收JAVA应用程序对类的加载请求,并管理JAVA应用程序的各个模块的类加载器。其中包含公共JAVA归档文件(JAR,JAVAArchive);
步骤S220:构建平台类加载器,包含无三方库版本要求的模块和JAVA应用程序启动类部分;
步骤S230:构建各个模块的类加载器;注意这里的JAVA归档文件是按照模块来划分的,则可以在两个不同的模块中存在不同版本的相同三方库;
步骤S240:构建模块的类的特征和模块类加载器的映射关系,能够通过模块的类的特征找到对应的模块类加载器,并按照模块的类的特征添加模块类加载器到类加载管理器中;
步骤S250:通过类加载管理器加载JAVA应用程序启动类,并实例化为对象;
步骤S260:通过反射的方式启动JAVA应用程序。
类加载管理器一般是由JAVA应用程序启动管理单元或平台类加载器或模块类加载器调用进入的,类加载管理器的处理流程见图3,其过程如下:
步骤S310,检测待加载类的特征,如果是模块的类,找到对应的模块类加载器,进入步骤S320;如果不是模块的类,进入S330;
步骤S320,通过对应的模块类加载器加载待加载类,返回结果,结束本流程;
步骤S330,通过平台类加载器加载待加载类,加载成功则返回结果,结束本流程;否则进入S340;
步骤S340,直接调用JAVA的默认类加载器加载。
平台类加载器是由类加载管理器调用进入或JDK直接调用进入的。平台类加载器加载的处理流程见图5,过程如下:
步骤S410,在需要加载一个类时,需要先检测是否为模块的类,如果是进入S420,如果否进入S430;
步骤S420,直接调用类加载管理器来重新指定模块类加载器加载;
步骤S430,通过平台类加载器的JAVA归档文件加载待加载类。
模块类加载器也是由类加载管理器调用进入或JDK直接调用进入的。模块类加载器加载的处理流程见图5,过程如下:
步骤S510,直接调用对应模块类加载器中的JAVA归档文件加载待加载类,如果失败转入到S520,如果成功转入到S530;
步骤S520,调用类加载管理器来重新指定其他类加载器(可能是其他模块的模块类加载器,可能是平台类加载器);
步骤S530,成功后返回。
在JAVA应用程序中还需要对线程的类加载器进行管理,在本发明中是通过线程类加载器管理单元来完成的,图6和图7描述了JAVA应用程序的处理过程和线程类加载器管理单元的管理过程。
图6为线程类加载器管理单元在JAVA应用程序的调用流程:
步骤S610,在JAVA应用程序中需要加载类时,进入到平台类加载器或者模块类加载器中。
在现有技术中JAVA应用程序中是通过JDK进行类的加载的,而本发明JAVA应用程序的对象的默认类加载器由类加载管理器指定,故这里加载流程将会直接进入到平台类加载器或者模块类加载器中。
步骤S620,在类加载完成后,在JAVA应用程序中实例化对象;
步骤S630,在JAVA应用程序中对步骤S630实例化的对象通过线程类加载器管理单元重新构建,得到被管理的JAVA应用程序对象(可以采用动态代理的构建线程类加载器管理单元)。在JAVA应用程序中调用被管理的JAVA应用程序对象进行其他类的逻辑处理,这里是执行的被管理的JAVA应用程序对象的方法,而不是步骤S630的实例化对象。
图7为线程类加载器管理单元的执行过程:
步骤S710,首先需要比较当前类(即步骤S610中需要加载的类)的类加载器和线程类加载器是否一致,如果一致进入S760,如果不一致进入S720;
步骤S720,将当前线程类加载器缓存起来;
步骤S730,修改当前线程的类加载器为当前类的类加载器,这里当前类的类加载器是由类加载管理器指定,可能是平台类加载器可能是模块类加载器;
步骤S740,执行步骤S620中创建的对象,完成JAVA应用程序的逻辑;
步骤S750,恢复线程的类加载器为S720缓存的类加载器,进入步骤S770;
步骤S760,执行步骤S620中创建的对象,完成JAVA应用程序的逻辑;
步骤S770,返回结果,本流程结束。
注:线程类加载器管理单元可以通过动态代理技术实现。
在JDK1.3以后,JAVA提供了动态代理技术,就是拦截JAVA应用程序的方法执行,使得在执行JAVA应用程序的方法时,不再直接调用JAVA应用程序的方法,而是调用动态代理提供的方法,再通过动态代理的方法来调用JAVA应用程序的方法。
简单的来说:如果JAVA应用程序对象A需要调用对象B的方法,如不采用动态代理,在对象A中就直接调用对象B的方法;如果采用了动态代理,在对象B之上需要构建一个动态代理的对象C,对象A就调用了对象C的方法,在对象C在来调用对象B的方法返回给A,这样就能够在执行对象B的方法时增加动态代理中的其他逻辑处理。
Claims (10)
1.一种加载JAVA三方库的不同版本的方法,其特征在于,包括如下步骤:
A、构建一个用于构建类加载管理器和各个模块的模块类加载器的启动管理单元,实现JAVA应用程序启动前的初始化;
B、在所述启动管理单元中启动JAVA应用程序,通过类加载管理器加载JAVA应用程序的类,根据模块的类的特征找到对应的模块类加载器实现模块的类的加载,其中至少两个模块中存在不同版本的相同三方库。
2.根据权利要求1所述的方法,其特征在于,步骤A包括:
A1、构建用于根据待加载类的特征来使用相应的类加载器的类加载管理器;
A2、构建各个模块的模块类加载器,其中至少两个模块中存在不同版本的相同三方库;
A3、构建各个模块的类的特征和模块类加载器的映射关系,并添加到类加载管理器中。
3.根据权利要求2所述的方法,其特征在于,步骤A还包括:
A4、构建用于加载无三方库要求的模块中的类和JAVA应用程序启动类的平台类加载器。
4.根据权利要求2所述的方法,其特征在于,步骤B包括:
B1、通过类加载管理器加载JAVA应用程序启动类;
B2、通过启动JAVA应用程序启动类启动JAVA应用程序;
B3、JAVA应用程序加载模块的类时,检测加载类特征,根据预先定义的模块的类的特征与模块类加载器的映射关系,在加载类时采用对应的模块类加载器;
B4、如果未找到合适的模块类加载器,再使用平台类加载器加载无三方库要求的模块。
5.根据权利要求1至4任一项所述的方法,其特征在于,在通过线程类加载器加载对象之前,在JAVA应用程序执行过程中动态修改线程类加载器。
6.一种加载同一个JAVA三方库的不同版本的装置,包括:
启动管理单元,用于构建类加载管理器和模块类加载器;并用于实现JAVA应用程序启动的初始并启动JAVA应用程序,通过反射的方式执行JAVA应用程序启动类;
类加载管理器,用于接收JAVA应用程序对类的加载请求,并管理JAVA应用程序的各个模块的类加载器;根据待加载类的特征来使用相应的类加载器,其中包括使用模块类加载器;
至少两个模块类加载器,所述模块类加载器用于实现模块的类的加载,至少两个模块中存在不同版本的相同三方库。
7.根据权利要求6所述的装置,其特征在于,该装置进一步包括:
平台类加载器,用于加载JAVA应用程序的平台部分。
8.根据权利要求6或7所述的装置,其特征在于,该装置进一步包括:
线程类加载器管理单元,用于在JAVA应用程序执行过程中动态修改线程类加载器。
9.根据权利要求6或7所述的装置,其特征在于,所述平台部分是指无三方库要求的模块的类和JAVA应用程序启动类。
10.根据权利要求9所述的装置,其特征在于,所述平台类加载器由类加载管理器构建。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102409071A CN102262555B (zh) | 2011-08-22 | 2011-08-22 | 加载java三方库的不同版本的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102409071A CN102262555B (zh) | 2011-08-22 | 2011-08-22 | 加载java三方库的不同版本的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102262555A true CN102262555A (zh) | 2011-11-30 |
CN102262555B CN102262555B (zh) | 2013-11-20 |
Family
ID=45009192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011102409071A Active CN102262555B (zh) | 2011-08-22 | 2011-08-22 | 加载java三方库的不同版本的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102262555B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473096A (zh) * | 2013-09-10 | 2013-12-25 | 浙江大学城市学院 | 一种在android系统的虚拟机上加载java类的方法及系统 |
CN103678113A (zh) * | 2012-09-04 | 2014-03-26 | 国际商业机器公司 | 计算机软件应用的自测试、及其方法和系统 |
CN105718282A (zh) * | 2016-01-05 | 2016-06-29 | 山东中创软件工程股份有限公司 | 一种类冲突问题的处理方法及装置 |
CN107038045A (zh) * | 2017-03-30 | 2017-08-11 | 腾讯科技(深圳)有限公司 | 加载库文件的方法及装置 |
CN108647061A (zh) * | 2018-04-24 | 2018-10-12 | 北京奇虎科技有限公司 | 系统隐藏方法的调用方法、装置和计算设备 |
CN109976787A (zh) * | 2019-03-12 | 2019-07-05 | 平安普惠企业管理有限公司 | 应用程序升级方法、装置、终端及计算机可读存储介质 |
CN112667283A (zh) * | 2020-12-30 | 2021-04-16 | 深圳证券交易所 | 框架数据的引用方法、装置及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006063876A1 (de) * | 2004-12-17 | 2006-06-22 | Siemens Aktiengesellschaft | Verfahren und vorrichtung zur verschlüsselung und ausführung einer software-bibliothek |
US20070250828A1 (en) * | 2005-11-16 | 2007-10-25 | Tseitlin Ariel D | Portable libraries |
CN101482817A (zh) * | 2008-12-18 | 2009-07-15 | 浙江大学 | 基于黑盒的大粒度Java构件组装方法 |
CN101739340A (zh) * | 2009-12-17 | 2010-06-16 | 金蝶软件(中国)有限公司 | 一种脚本文件的验证方法和装置 |
-
2011
- 2011-08-22 CN CN2011102409071A patent/CN102262555B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006063876A1 (de) * | 2004-12-17 | 2006-06-22 | Siemens Aktiengesellschaft | Verfahren und vorrichtung zur verschlüsselung und ausführung einer software-bibliothek |
US20070250828A1 (en) * | 2005-11-16 | 2007-10-25 | Tseitlin Ariel D | Portable libraries |
CN101482817A (zh) * | 2008-12-18 | 2009-07-15 | 浙江大学 | 基于黑盒的大粒度Java构件组装方法 |
CN101739340A (zh) * | 2009-12-17 | 2010-06-16 | 金蝶软件(中国)有限公司 | 一种脚本文件的验证方法和装置 |
Non-Patent Citations (1)
Title |
---|
赵宇等: "深入研究Java的类加载机制", 《唐山师范学院学报》, vol. 32, no. 2, 31 March 2010 (2010-03-31) * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9838412B2 (en) | 2012-09-04 | 2017-12-05 | International Business Machines Corporation | Computer software application self-testing |
CN103678113A (zh) * | 2012-09-04 | 2014-03-26 | 国际商业机器公司 | 计算机软件应用的自测试、及其方法和系统 |
US9256511B2 (en) | 2012-09-04 | 2016-02-09 | International Business Machines Corporation | Computer software application self-testing |
CN103678113B (zh) * | 2012-09-04 | 2017-01-18 | 国际商业机器公司 | 计算机软件应用的自测试、及其方法和系统 |
CN103473096A (zh) * | 2013-09-10 | 2013-12-25 | 浙江大学城市学院 | 一种在android系统的虚拟机上加载java类的方法及系统 |
CN105718282A (zh) * | 2016-01-05 | 2016-06-29 | 山东中创软件工程股份有限公司 | 一种类冲突问题的处理方法及装置 |
CN107038045A (zh) * | 2017-03-30 | 2017-08-11 | 腾讯科技(深圳)有限公司 | 加载库文件的方法及装置 |
CN107038045B (zh) * | 2017-03-30 | 2022-10-14 | 腾讯科技(深圳)有限公司 | 加载库文件的方法及装置 |
CN108647061A (zh) * | 2018-04-24 | 2018-10-12 | 北京奇虎科技有限公司 | 系统隐藏方法的调用方法、装置和计算设备 |
CN108647061B (zh) * | 2018-04-24 | 2021-11-23 | 北京奇虎科技有限公司 | 系统隐藏方法的调用方法、装置和计算设备 |
CN109976787A (zh) * | 2019-03-12 | 2019-07-05 | 平安普惠企业管理有限公司 | 应用程序升级方法、装置、终端及计算机可读存储介质 |
CN109976787B (zh) * | 2019-03-12 | 2022-04-19 | 平安普惠企业管理有限公司 | 应用程序升级方法、装置、终端及计算机可读存储介质 |
CN112667283A (zh) * | 2020-12-30 | 2021-04-16 | 深圳证券交易所 | 框架数据的引用方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102262555B (zh) | 2013-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102262555B (zh) | 加载java三方库的不同版本的方法和装置 | |
US8555280B2 (en) | Terminal device of non-android platform for executing android applications, and computer readable recording medium for storing program of executing android applications on non-android platform | |
CN107636612B (zh) | 应用迁移装置、方法与存储介质 | |
KR101702700B1 (ko) | 고속 컴퓨터 시동 | |
US8739147B2 (en) | Class isolation to minimize memory usage in a device | |
CN100549957C (zh) | 一种类装载隔离的方法及一种类装载隔离的装置 | |
JP2009512020A (ja) | オペレーティングシステムの停止状態からの高速起動 | |
CN102402427A (zh) | 一种Java应用程序的更新方法及装置 | |
US20210191780A1 (en) | Method and apparatus for processing development machine operation task, device and storage medium | |
CN105190550A (zh) | 用于启动具有多个中央处理器的计算机系统的方法 | |
EP2798491A1 (en) | Method and device for managing hardware errors in a multi-core environment | |
CN108141378B (zh) | Vnfd中的休眠vdu | |
CN105022630A (zh) | 一种组件管理系统及组件管理方法 | |
CN102073525A (zh) | 基于Java平台的Web业务系统的动态升级方法及装置 | |
CN111767090A (zh) | 小程序的启动方法、装置、电子设备以及存储介质 | |
US20130054951A1 (en) | Software execution method and electronic device using the same | |
AU2010260587A1 (en) | Computer process management | |
CN116541142A (zh) | 任务调度方法、装置、设备、存储介质及计算机程序产品 | |
CN105677481A (zh) | 一种数据处理方法、系统及电子设备 | |
US8875107B2 (en) | Component lock tracing by associating component type parameters with particular lock instances | |
WO2018103372A1 (zh) | 一种驱动管理方法及宿主机 | |
CN106775608B (zh) | 独立系统进程的实现方法和装置 | |
WO2015184902A1 (zh) | 一种智能分屏的并发处理方法及相应的智能终端 | |
CN112035192B (zh) | 支持组件热部署的Java类文件加载方法及装置 | |
WO2021129853A1 (zh) | 移动服务升级方法、装置和终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |