CN111866047B - 数据解码方法、装置、计算机设备及存储介质 - Google Patents
数据解码方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN111866047B CN111866047B CN201910364178.7A CN201910364178A CN111866047B CN 111866047 B CN111866047 B CN 111866047B CN 201910364178 A CN201910364178 A CN 201910364178A CN 111866047 B CN111866047 B CN 111866047B
- Authority
- CN
- China
- Prior art keywords
- data
- file
- class
- computer device
- specified
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开是关于一种数据解码方法、装置、计算机设备及存储介质,属于计算机技术领域。方法包括:将指定目录下的Class文件动态加载到内存中,Class文件由计算机设备对Protobuf文件进行编译得到后同步至指定目录;获取流数据;基于内存中的Class文件,对流数据进行解码,得到原始数据。如果计算机设备对Protobuf文件进行了更新,无需重新进行编译,即可获取到计算机设备同步到指定目录的Class文件,而且采用动态加载Class文件的方式,无需进行重启即可加载更新后的Class文件,节省了消耗的时长,提高了操作效率,避免由于重启而影响业务的正常运行,提高了服务可用性。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据解码方法、装置、计算机设备及存储介质。
背景技术
Protobuf(Protocol Buffer,协议缓冲区)协议是用于结构化数据串行化的方法,该协议轻便高效灵活,目前已经广泛应用到多种使用场景中,而最常用的使用场景之一是数据存储场景。在数据存储场景下,Protobuf协议支持数据的编码和解码,由存储方对数据进行编码后存储,由使用方对存储的数据进行解码。
存储方的第一计算机设备与使用方的第二计算机设备协商确定Protobuf文件,该Protobuf文件中包括自定义的指定数据类型。第一计算机设备获取符合指定数据类型的原始数据,对原始数据进行编码得到流数据,存储该流数据。第二计算机设备获取到Protobuf文件后,对Protobuf文件进行编译,得到Class文件,将Class文件加载到内存中。当第二计算机设备获取到第一计算机设备存储的流数据时,基于内存中加载的Class文件将流数据解码为符合该指定数据类型的原始数据。
由于业务存在多样性,需要经常根据业务需求更新Protobuf文件。如果第一计算机设备对Protobuf文件进行了更新,需要将更新后的Protobuf文件同步给第二计算机设备,由第二计算机设备重新进行编译,得到更新后的Class文件,且还需要进行重启,才能将更新后的Class文件加载到内存中。因此,更新Protobuf文件的过程耗时较长,操作效率低下,而且还影响了业务的正常运行,降低了服务可用性。
发明内容
本公开提供了一种数据解码方法、装置、计算机设备及存储介质,能够克服相关技术中存在的操作效率低下、降低了服务可用性的问题。
根据本公开实施例的第一方面,提供一种数据解码方法,所述方法包括:
将指定目录下的类Class文件动态加载到内存中,所述Class文件由计算机设备对协议缓冲区Protobuf文件进行编译得到后同步至所述指定目录,所述Protobuf文件包括指定数据类型;
获取流数据,所述流数据由所述计算机设备对符合所述指定数据类型的原始数据进行编码得到;
基于所述内存中的所述Class文件,对所述流数据进行解码,得到所述原始数据。
在一种可能实现的方式中,所述将指定目录下的Class文件动态加载到内存中,包括:
创建类加载器;
通过所述类加载器将所述指定目录下的所述Class文件动态加载到所述内存中。
在另一种可能实现的方式中,所述基于所述内存中的所述Class文件,对所述流数据进行解码,得到所述原始数据,包括:
基于所述Class文件实例化所述指定数据类型,得到所述指定数据类型对应的对象;
调用所述对象中的解析parse方法,对所述流数据进行解码,得到所述原始数据。
根据本公开实施例的第二方面,提供一种数据解码方法,所述方法包括:
获取协议缓冲区Protobuf文件,所述Protobuf文件包括指定数据类型;
对所述Protobuf文件进行编译,得到类Class文件;
将所述Class文件同步至计算机设备的指定目录中,所述计算机设备用于将所述指定目录下的所述Class文件动态加载到内存中,基于所述内存中的所述Class文件对流数据进行解码,得到符合所述指定数据类型的原始数据。
在一种可能实现的方式中,所述方法还包括:
获取符合所述指定数据类型的原始数据;
对所述原始数据进行编码,得到流数据,存储所述流数据。
在另一种可能实现的方式中,所述对所述原始数据进行编码,得到流数据,包括:
获取所述指定数据类型包括的至少一个属性;
根据所述原始数据,为所述至少一个属性分别进行赋予数值的操作;
根据为所述至少一个属性赋予的数值生成所述流数据。
根据本公开实施例的第三方面,提供一种数据解码装置,所述装置包括:
加载单元,被配置为将指定目录下的类Class文件动态加载到内存中,所述Class文件由计算机设备对协议缓冲区Protobuf文件进行编译得到后同步至所述指定目录,所述Protobuf文件包括指定数据类型;
数据获取单元,被配置为获取流数据,所述流数据由所述计算机设备对符合所述指定数据类型的原始数据进行编码得到;
解码单元,被配置为基于所述内存中的所述Class文件,对所述流数据进行解码,得到所述原始数据。
在一种可能实现的方式中,所述加载单元,包括:
创建子单元,被配置为创建类加载器;
加载子单元,被配置为通过所述类加载器将所述指定目录下的所述Class文件动态加载到所述内存中。
在另一种可能实现的方式中,所述解码单元,包括:
实例化子单元,被配置为基于所述Class文件实例化所述指定数据类型,得到所述指定数据类型对应的对象;
解码子单元,被配置为调用所述对象中的解析parse方法,对所述流数据进行解码,得到所述原始数据。
根据本公开实施例的第四方面,提供了一种数据解码装置,所述装置包括:
文件获取单元,被配置为获取协议缓冲区Protobuf文件,所述Protobuf文件包括指定数据类型;
编译单元,被配置为对所述Protobuf文件进行编译,得到类Class文件;
同步单元,被配置为将所述Class文件同步至计算机设备的指定目录中,所述计算机设备用于将所述指定目录下的所述Class文件动态加载到内存中,基于所述内存中的所述Class文件对流数据进行解码,得到符合所述指定数据类型的原始数据。
在一种可能实现的方式中,所述装置还包括:
数据获取单元,被配置为获取符合所述指定数据类型的原始数据;
编码单元,被配置为对所述原始数据进行编码,得到流数据,存储所述流数据。
在另一种可能实现的方式中,所述编码单元,包括:
属性获取子单元,被配置为获取所述指定数据类型包括的至少一个属性;
赋值子单元,被配置为根据所述原始数据,为所述至少一个属性分别进行赋予数值的操作;
数据生成子单元,被配置为根据为所述至少一个属性赋予的数值生成所述流数据。
根据本公开实施例的第五方面,提供一种计算机设备,所述计算机设备包括:
一个或多个处理器;
用于存储所述一个或多个处理器可执行命令的一个或多个存储器;
其中,所述一个或多个处理器被配置为执行第一方面所述的数据解码方法。
根据本公开实施例的第六方面,提供一种计算机设备,所述计算机设备包括:
一个或多个处理器;
用于存储所述一个或多个处理器可执行命令的一个或多个存储器;
其中,所述一个或多个处理器被配置为执行第二方面所述的数据解码方法。
根据本公开实施例的第七方面,提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由计算机设备的处理器执行时,使得所述计算机设备能够执行第一方面所述的数据解码方法。
根据本公开实施例的第八方面,提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由计算机设备的处理器执行时,使得所述计算机设备能够执行第二方面所述的数据解码方法。
根据本公开实施例的第九方面,提供一种计算机程序产品,当所述计算机程序产品中的指令由计算机设备的处理器执行时,使得计算机设备能够执行第一方面所述的数据解码方法。
根据本公开实施例的第十方面,提供一种计算机程序产品,当所述计算机程序产品中的指令由计算机设备的处理器执行时,使得计算机设备能够执行第二方面所述的数据解码方法。
本公开实施例提供的数据解码方法、装置、计算机设备及存储介质,由计算机设备对包括指定数据类型的Protobuf文件进行编译后同步至指定目录,则将指定目录下的Class文件动态加载到内存中,即可基于Class文件对计算机设备提供的流数据进行解码,得到符合指定数据类型的原始数据。如果计算机设备对Protobuf文件进行了更新,无需重新进行编译,即可获取到计算机设备同步到指定目录的Class文件,而且采用动态加载Class文件的方式,无需进行重启即可加载更新后的Class文件,节省了消耗的时长,提高了操作效率,避免由于重启而影响业务的正常运行,提高了服务可用性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种实施环境的结构示意图。
图2是根据一示例性实施例示出的一种数据解码方法的流程图。
图3是根据一示例性实施例示出的一种数据解码方法的流程图。
图4是根据一示例性实施例示出的一种数据解码方法的流程图。
图5是根据一示例性实施例示出的一种数据解码装置的框图。
图6是根据一示例性实施例示出的一种数据解码装置的框图。
图7是根据一示例性实施例示出的一种计算机设备的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的设备和方法的例子。
图1是根据一示例性实施例示出的一种实施环境的结构示意图,如图1所示,该实施环境包括第一计算机设备101和第二计算机设备102,第一计算机设备101和第二计算机设备102通过网络连接。
其中,第一计算机设备101和第二计算机设备102可以为手机、计算机、个人电脑等具有数据存储能力和数据处理能力的设备。
第一计算机设备101用于对包括指定数据类型的Protobuf文件进行编译,得到Class文件,同步至第二计算机设备102的指定目录下,还用于对符合该指定数据类型的原始数据进行编码,得到流数据,存储该流数据。
第二计算机设备102用于将指定目录下的Class文件动态加载到内存中,当获取到第一计算机设备102存储的流数据时,基于该Class文件进行解码,得到原始数据。
在一种可能实现方式中,该实施环境还包括存储系统103,第一计算机设备101和第二计算机设备102均与存储系统103通过网络连接。
其中,该存储系统103可以为一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。
第一计算机设备101获取到流数据后,存储于该存储系统103中。而第二计算机设备102可以访问存储系统103,获取存储系统103中存储的流数据。
需要说明的是,本实施环境中以第一计算机设备101作为存储方的计算机设备,第二计算机设备102作为使用方的计算机设备为例进行说明。在另一实施例中,该实施环境包括多个计算机设备,其中的任一计算机设备均可作为存储方的计算机设备,任一个或多个计算机设备也可作为使用方的计算机设备。
图2是根据一示例性实施例示出的一种数据解码方法的流程图,如图2所示,该数据解码方法用于计算机设备中,包括以下步骤:
在步骤201中,将指定目录下的Class文件动态加载到内存中,Class文件由计算机设备对Protobuf文件进行编译得到后同步至指定目录,Protobuf文件包括指定数据类型。
在步骤202中,获取流数据,流数据由计算机设备对符合指定数据类型的原始数据进行编码得到。
在步骤203中,基于内存中的Class文件,对流数据进行解码,得到原始数据。
本公开实施例提供的方法,由计算机设备对包括指定数据类型的Protobuf文件进行编译后同步至指定目录,则将指定目录下的Class文件动态加载到内存中,即可基于Class文件对计算机设备提供的流数据进行解码,得到符合指定数据类型的原始数据。如果计算机设备对Protobuf文件进行了更新,无需重新进行编译,即可获取到计算机设备同步到指定目录的Class文件,而且采用动态加载Class文件的方式,无需进行重启即可加载更新后的Class文件,节省了消耗的时长,提高了操作效率,避免由于重启而影响业务的正常运行,提高了服务可用性。
在一种可能实现的方式中,将指定目录下的Class文件动态加载到内存中,包括:
创建类加载器;
通过类加载器将指定目录下的Class文件动态加载到内存中。
在另一种可能实现的方式中,基于内存中的Class文件,对流数据进行解码,得到原始数据,包括:
基于Class文件实例化指定数据类型,得到指定数据类型对应的对象;
调用对象中的解析parse方法,对流数据进行解码,得到原始数据。
图3是根据一示例性实施例示出的一种数据解码方法的流程图,如图3所示,该数据解码方法用于计算机设备中,包括以下步骤:
在步骤301中,获取Protobuf文件,Protobuf文件包括指定数据类型。
在步骤302中,对Protobuf文件进行编译,得到Class文件。
在步骤303中,将Class文件同步至计算机设备的指定目录中,计算机设备用于将指定目录下的Class文件动态加载到内存中,基于内存中的Class文件对流数据进行解码,得到符合指定数据类型的原始数据。
本公开实施例提供的方法,获取Protobuf文件,对Protobuf文件进行编译,得到Class文件,将Class文件同步至计算机设备的指定目录中,计算机设备即可将指定目录下的Class文件动态加载到内存中,基于内存中的Class文件对流数据进行解码,得到符合指定数据类型的原始数据。如果对Protobuf文件进行了更新,也无需计算机设备重新进行编译,而且计算机设备采用动态加载Class文件的方式,无需进行重启即可加载更新后的Class文件,节省了消耗的时长,提高了操作效率,避免由于重启而影响业务的正常运行,提高了服务可用性。
在一种可能实现的方式中,方法还包括:
获取符合指定数据类型的原始数据;
对原始数据进行编码,得到流数据,存储流数据。
在另一种可能实现的方式中,对原始数据进行编码,得到流数据,包括:
获取指定数据类型包括的至少一个属性;
根据原始数据,为至少一个属性分别进行赋予数值的操作;
根据为至少一个属性赋予的数值生成流数据。
图4是根据一示例性实施例示出的一种数据解码方法的流程图,如图4所示,该数据解码方法的交互主体为图1所示的第一计算机设备和第二计算机设备,该方法包括以下步骤:
在步骤401中,第一计算机设备获取Protobuf文件。
本公开实施例中,为了节省存储空间以及保证数据存储和读取的一致性,基于Protobuf协议定义了指定数据类型,存储方可以将符合指定数据类型的数据转换为流数据进行存储,使用方可以将流数据解码为符合指定数据类型的数据。
其中,Protobuf文件包括指定数据类型,也即是基于Protobuf协议定义了指定数据类型。
Protobuf协议是一种混合语言数据标准,是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化。且Protobuf协议与语言无关,适用于C++(一种面向对象的计算机程序设计语言)、Java(一种面向对象的编程语言)、Python(一种面向对象的解释型计算机程序设计语言)等多种语言。
第一计算机设备的数据可以采用指定数据类型。该指定数据类型可以由用户进行设置,或者由第一计算机设备进行设置,或者由第一计算机设备与第二计算机设备协商确定。
例如,第一计算机设备定义了Protobuf文件“example.proto”,该Protobuf文件中定义了两个数据类型:
第一个:数据类型Score,用于记录id(identification,身份标识号码)和id对应的分数。例如,符合数据类型Score的数据可以如下:
在步骤402中,第一计算机设备对Protobuf文件进行编译,得到Class文件。
在一种可能实现方式中,第一计算机设备配置有指定API(ApplicationProgramming Interface,应用程序编程接口),该指定API用于执行编译操作,则第一计算机设备基于Protobuf文件调用指定API,从而对Protobuf文件进行编译,得到Class文件。
例如,第一计算机设备调用protobuf-maven-plugin(协议缓冲区专家插件)对Protobuf文件进行编译,得到Class文件。或者还可以采用其他编译工具进行编译。
另外,在调用指定API进行编译时,还可以生成与Class文件对应的Java文件。Java文件与Class文件包含着相同的信息,区别在于Java文件具有可读性和可编辑性,可以供用户进行查看或编辑,而Class文件为可执行文件,可以由计算机设备识别并执行。
基于上述步骤401的举例,Protobuf文件包括两个数据类型Score和Feature,则编译得到的Java文件可以包括Score类和Feature类。
Score类包括自定义属性、辅助属性及构造方法。其中,自定义的Score类的属性包括ID和SCORE,,辅助属性是编译插件自动填充的。且在编译过程中还会创建Score类的多种构造方法,该多种构造方法的区别在于传入的参数类型不同,后续构造Score类的对象时,可以根据已有的参数类型,调用对应的构造方法,即可构造出满足要求的对象。
例如,构造方法Score()不限制传入的参数类型,而Score(CodedInputStreaminput,ExtensionRegistryLite extensionRegistry)传入的参数类型为CodedInputStream input和ExtensionRegistryLite extensionRegistry。
除构造方法之外,在编译过程中还会创建针对Score类的对象的多种常用方法,例如hashcode(哈希码)方法或parse(解析)方法等,后续通过调用hashcode方法可以返回Score类对象的哈希码值,通过调用parse方法可以对Score类对象进行解析。且parse方法可以包括多种,该多种parse方法的区别在于传入的参数类型不同,后续对Score类的对象进行解析时,可以根据已有的参数类型,调用对应的parse方法,这些parse方法可用于后续将数据转换成响应的实体类。
例如,parse方法parseFrom(ByteBuffer data)传入的参数类型为ByteBufferdata,而parseFrom(ByteBuffer data,ExtensionRegistryLite extensionRegistry)传入的参数类型包括ByteBuffer data和ExtensionRegistryLite extensionRegistry。
同理地,Feature类也包括自定义属性、辅助属性及构造方法。
在步骤403中,第一计算机设备将Class文件同步至第二计算机设备的指定目录中。
第二计算机设备配置有指定目录,该指定目录用于存储第二计算机设备获取到的Class文件。当第一计算机设备编译得到Class文件时,将Class文件同步至第二计算机设备配置的指定目录中,从而使第二计算机设备获知第一计算机设备采用的指定数据类型。
同步Class文件的过程可以采用多种方式,例如,用户可以将第一计算机设备的Class文件手动拷贝至第二计算机设备,或者,第一计算机设备可以将Class文件上传至第一存储空间,由第二计算机设备访问第一存储空间,获取Class文件,存储于第二计算机设备的指定目录下。其中,该第一存储空间可以位于第一计算机设备,或者位于第二计算机设备,或者位于存储系统中,第一计算机设备和第二计算机设备均可访问该存储系统,进行数据存储操作或数据读取操作。该存储系统可以为分布式文件系统或其他类型的存储系统,可以用于存储数据。
或者,第一计算机设备确定第二计算机设备的指定目录,触发对该指定目录的数据存储请求,从而将Class文件存储于该指定目录中。其中,该第二计算机设备可以向第一计算机设备发送指定目录,以便第一计算机设备确定该指定目录,或者该指定目录由第一计算机设备和第二计算机设备协商确定,或者第一计算机设备采用其他方式确定该指定目录。
在一种可能实现方式中,第一计算机设备采用SCP(Secure Copy,安全拷贝)的方式将Class文件拷贝到第二计算机设备的指定目录中。或者,将Class文件在Git(一种开源的分布式系统)中进行托管,由第二计算机设备从Git中,将该Class文件下载到指定目录中。
需要说明的是,上述步骤401-403中,Protobuf文件可以为第一计算机设备初次获取到的Protobuf文件,也可以为对初次获取到的Protobuf文件进行一次或多次更新后得到的Protobuf文件。则Class文件可以为初次获取到的Protobuf文件编译得到的Class文件,也可以为更新后的Protobuf文件编译得到的Class文件。例如,第一计算机设备可以对原始的Protobuf文件中的数据类型进行增加、删除、修改等操作,从而得到更新后的Protobuf文件,对更新后的Protobuf文件进行编译,得到更新后的Class文件。当第二计算机设备初次获取到Class文件,或者获取到更新后的Class文件时,均可将Class文件同步至第二计算机设备的指定目录中。
在步骤404中,第二计算机设备将指定目录下的Class文件动态加载到内存中。
第二计算机设备安装有虚拟机,会将指定目录下的Class文件动态加载到虚拟机的内存中,在第二计算机设备的运行过程中会基于内存中的Class文件进行数据解析。
在一种可能实现方式中,第二计算机设备可以采用Java类加载机制,创建类加载器,通过类加载器将指定目录下的Class文件动态加载到内存中,通过调用Java语言自带的defineClass方法能够获取到Class文件中的指定数据类型。
需要说明的是,由于第二计算机设备采用了动态加载的方式,因此每次指定目录中更新了Class文件时,无需进行重启,即可将更新的Class文件动态加载到内存中。
在步骤405中,第一计算机设备获取符合指定数据类型的原始数据。
在步骤406中,第一计算机设备对原始数据进行编码,得到流数据,存储流数据。
当第一计算机设备获取到符合指定数据类型的原始数据,需要对原始数据进行存储时,先对原始数据进行编码,得到流数据,再存储流数据。其中,该流数据可以为原始数据对应的字节流数据,或字符流数据或者其他数据等。
在一种可能实现方式中,该指定数据类型中包括至少一个属性,则符合该指定数据类型的原始数据中会包括该至少一个属性对应的数值。第一计算机设备对原始数据进行编码时,获取指定数据类型包括的至少一个属性,根据原始数据,为至少一个属性分别进行赋予数值的操作,从而为每个属性赋予一个数值,根据为至少一个属性赋予的数值即可获取二进制编码,即为流数据。
其中,获取指定数据类型包括的属性时,可以通过Java类的反射机制,通过指定数据类型的名称获取到类中所包含的所有属性及其数据类型。获取到了类的所有属性之后,遍历每一个属性,同样通过Java类的反射机制,调用类中的set方法或者builder方法,便实现了为属性赋值的目的。
在步骤407中,第二计算机设备获取第一计算机设备存储的流数据。
第一计算机设备可以将流数据存储于第二存储空间中,第一计算机设备可以访问该第二存储空间,获取该流数据。
其中,该第二存储空间可以位于第一计算机设备,或者位于第二计算机设备,或者位于存储系统中,第一计算机设备和第二计算机设备均可访问该存储系统,进行数据存储操作或数据读取操作。
其中,该存储系统可以为分布式文件系统或其他类型的存储系统,可以用于存储数据。
在步骤408中,第二计算机设备基于内存中的Class文件,对流数据进行解码,得到原始数据。
第二计算机设备已经将Class文件加载到内存中,可以基于该Class文件,通过Java反射机制进行解码。
在一种可能实现方式中,基于Class文件实例化指定数据类型,得到指定数据类型对应的对象,调用该对象中的parse方法,对流数据进行解码,得到原始数据。其中,实例化是指按照指定好的数据类型,创建出符合该数据类型的对象,从而使对象具有该数据类型要求的各个属性。
本公开实施例提供的方法,由计算机设备对包括指定数据类型的Protobuf文件进行编译后同步至指定目录,则将指定目录下的Class文件动态加载到内存中,即可基于Class文件对计算机设备提供的流数据进行解码,得到符合指定数据类型的原始数据。如果计算机设备对Protobuf文件进行了更新,无需重新进行编译,即可获取到计算机设备同步到指定目录的Class文件,而且采用动态加载Class文件的方式,无需进行重启即可加载更新后的Class文件,节省了消耗的时长,提高了操作效率,避免由于重启而影响业务的正常运行,提高了服务可用性。
需要说明的是,本公开实施例仅是以第一计算机设备作为存储方,第二计算机设备作为使用方为例进行说明。而在其他的实施例中,可以包括多个存储方的计算机设备,以及多个使用方的计算机设备。则每个存储方的计算机设备均可对Protobuf文件进行编译得到Class文件,同步至各个使用方的计算机设备的指定目录中,分享给多个使用方,从而减小了不同的使用方的计算机设备均需要重新进行编译的缓解,有效地降低了流程的复杂性和不确定性。
而且,即使在对Protobuf文件和对应的Class文件进行了更新的情况下,无需使用方的计算机设备进行重启,也可以动态加载更新后的Class文件,实现了代码热部署,不会影响到业务的正常运行,提高了服务可用性。而且这种方式支持多种数据类型,在更新之后指定数据类型发生变化时,也无需使用方的计算机设备修改原有的代码,提高了服务可用性。
图5是根据一示例性实施例示出的一种数据解码装置的框图。参见图5,该装置包括加载单元501、数据获取单元502和解码单元503。
加载单元501,被配置为将指定目录下的类Class文件动态加载到内存中,Class文件由计算机设备对协议缓冲区Protobuf文件进行编译得到后同步至指定目录,Protobuf文件包括指定数据类型;
数据获取单元502,被配置为获取流数据,流数据由计算机设备对符合指定数据类型的原始数据进行编码得到;
解码单元503,被配置为基于内存中的Class文件,对流数据进行解码,得到原始数据。
在一种可能实现的方式中,加载单元501,包括:
创建子单元,被配置为创建类加载器;
加载子单元,被配置为通过类加载器将指定目录下的Class文件动态加载到内存中。
在另一种可能实现的方式中,解码单元503,包括:
实例化子单元,被配置为基于Class文件实例化指定数据类型,得到指定数据类型对应的对象;
解码子单元,被配置为调用对象中的解析parse方法,对流数据进行解码,得到原始数据。
图6是根据一示例性实施例示出的一种数据解码装置的框图。参见图6,该装置包括文件获取单元601、编译单元602和同步单元603。
文件获取单元601,被配置为获取协议缓冲区Protobuf文件,Protobuf文件包括指定数据类型;
编译单元602,被配置为对Protobuf文件进行编译,得到类Class文件;
同步单元603,被配置为将Class文件同步至计算机设备的指定目录中,计算机设备用于将指定目录下的Class文件动态加载到内存中,基于内存中的Class文件对流数据进行解码,得到符合指定数据类型的原始数据。
在一种可能实现的方式中,装置还包括:
数据获取单元,被配置为获取符合指定数据类型的原始数据;
编码单元,被配置为对原始数据进行编码,得到流数据,存储流数据。
在另一种可能实现的方式中,编码单元,包括:
属性获取子单元,被配置为获取指定数据类型包括的至少一个属性;
赋值子单元,被配置为根据原始数据,为至少一个属性分别进行赋予数值的操作;
数据生成子单元,被配置为根据为至少一个属性赋予的数值生成流数据。
关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图7是根据一示例性实施例示出的一种计算机设备700的框图。该计算机设备700用于执行上述数据解码方法中的第一计算机设备或第二计算机设备所执行的步骤,可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(Moving Picture Experts GroupAudio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture ExpertsGroup Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端700还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端700包括有:处理器701和存储器702。
处理器701可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器701可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器701也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器701可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器701还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器702可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器702还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器702中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器701所具有以实现本申请中方法实施例提供的数据解码方法。
在一些实施例中,终端700还可选包括有:外围设备接口703和至少一个外围设备。处理器701、存储器702和外围设备接口703之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口703相连。具体地,外围设备包括:射频电路704、触摸显示屏705、摄像头706、音频电路707、定位组件708和电源709中的至少一种。
外围设备接口703可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器701和存储器702。在一些实施例中,处理器701、存储器702和外围设备接口703被集成在同一芯片或电路板上;在一些其他实施例中,处理器701、存储器702和外围设备接口703中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路704用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路704通过电磁信号与通信网络以及其他通信设备进行通信。射频电路704将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路704包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路704可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及13G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路704还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏705用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏705是触摸显示屏时,显示屏705还具有采集在显示屏705的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器701进行处理。此时,显示屏705还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏705可以为一个,设置终端700的前面板;在另一些实施例中,显示屏705可以为至少两个,分别设置在终端700的不同表面或呈折叠设计;在再一些实施例中,显示屏705可以是柔性显示屏,设置在终端700的弯曲表面上或折叠面上。甚至,显示屏705还可以设置成非矩形的不规则图形,也即异形屏。显示屏705可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件706用于采集图像或视频。可选地,摄像头组件706包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件706还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路707可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器701进行处理,或者输入至射频电路704以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端700的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器701或射频电路704的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路707还可以包括耳机插孔。
定位组件708用于定位终端700的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件708可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源709用于为终端700中的各个组件进行供电。电源709可以是交流电、直流电、一次性电池或可充电电池。当电源709包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端700还包括有一个或多个传感器710。该一个或多个传感器710包括但不限于:加速度传感器711、陀螺仪传感器712、压力传感器713、指纹传感器714、光学传感器715以及接近传感器716。
加速度传感器711可以检测以终端700建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器711可以用于检测重力加速度在三个坐标轴上的分量。处理器701可以根据加速度传感器711采集的重力加速度信号,控制触摸显示屏705以横向视图或纵向视图进行用户界面的显示。加速度传感器711还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器712可以检测终端700的机体方向及转动角度,陀螺仪传感器712可以与加速度传感器711协同采集用户对终端700的3D动作。处理器701根据陀螺仪传感器712采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器713可以设置在终端700的侧边框和/或触摸显示屏705的下层。当压力传感器713设置在终端700的侧边框时,可以检测用户对终端700的握持信号,由处理器701根据压力传感器713采集的握持信号进行左右手识别或快捷操作。当压力传感器713设置在触摸显示屏705的下层时,由处理器701根据用户对触摸显示屏705的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器714用于采集用户的指纹,由处理器701根据指纹传感器714采集到的指纹识别用户的身份,或者,由指纹传感器714根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器701授权该用户具有相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器714可以被设置终端700的正面、背面或侧面。当终端700上设置有物理按键或厂商Logo时,指纹传感器714可以与物理按键或厂商标志集成在一起。
光学传感器715用于采集环境光强度。在一个实施例中,处理器701可以根据光学传感器715采集的环境光强度,控制触摸显示屏705的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏705的显示亮度;当环境光强度较低时,调低触摸显示屏705的显示亮度。在另一个实施例中,处理器701还可以根据光学传感器715采集的环境光强度,动态调整摄像头组件706的拍摄参数。
接近传感器716,也称距离传感器,通常设置在终端700的前面板。接近传感器716用于采集用户与终端700的正面之间的距离。在一个实施例中,当接近传感器716检测到用户与终端700的正面之间的距离逐渐变小时,由处理器701控制触摸显示屏705从亮屏状态切换为息屏状态;当接近传感器716检测到用户与终端700的正面之间的距离逐渐变大时,由处理器701控制触摸显示屏705从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图7中示出的结构并不构成对终端700的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种非临时性计算机可读存储介质,当存储介质中的指令由计算机设备的处理器执行时,使得计算机设备能够执行一种数据解码方法,方法包括:
将指定目录下的类Class文件动态加载到内存中,Class文件由计算机设备对协议缓冲区Protobuf文件进行编译得到后同步至指定目录,Protobuf文件包括指定数据类型;
获取流数据,流数据由计算机设备对符合指定数据类型的原始数据进行编码得到;
基于内存中的Class文件,对流数据进行解码,得到原始数据。
在示例性实施例中,还提供了一种计算机程序产品,当计算机程序产品中的指令由计算机设备的处理器执行时,使得计算机设备能够执行一种数据解码方法,方法包括:
将指定目录下的类Class文件动态加载到内存中,Class文件由计算机设备对协议缓冲区Protobuf文件进行编译得到后同步至指定目录,Protobuf文件包括指定数据类型;
获取流数据,流数据由计算机设备对符合指定数据类型的原始数据进行编码得到;
基于内存中的Class文件,对流数据进行解码,得到原始数据。
在示例性实施例中,还提供了一种非临时性计算机可读存储介质,当存储介质中的指令由计算机设备的处理器执行时,使得计算机设备能够执行一种数据解码方法,方法包括:
获取协议缓冲区Protobuf文件,Protobuf文件包括指定数据类型;
对Protobuf文件进行编译,得到类Class文件;
将Class文件同步至计算机设备的指定目录中,计算机设备用于将指定目录下的Class文件动态加载到内存中,基于内存中的Class文件对流数据进行解码,得到符合指定数据类型的原始数据。
在示例性实施例中,还提供了一种计算机程序产品,当计算机程序产品中的指令由计算机设备的处理器执行时,使得计算机设备能够执行一种数据解码方法,方法包括:
获取协议缓冲区Protobuf文件,Protobuf文件包括指定数据类型;
对Protobuf文件进行编译,得到类Class文件;
将Class文件同步至计算机设备的指定目录中,计算机设备用于将指定目录下的Class文件动态加载到内存中,基于内存中的Class文件对流数据进行解码,得到符合指定数据类型的原始数据。
本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (12)
1.一种数据解码方法,其特征在于,所述方法包括:
将指定目录下的类Class文件动态加载到内存中,所述Class文件由计算机设备对协议缓冲区Protobuf文件进行编译得到后同步至所述指定目录,所述Protobuf文件包括指定数据类型,其中,由所述计算机设备对所述Protobuf文件进行编译还会得到与所述Class文件对应的Java文件、所述Class文件中包括的类的多种构造方法以及所述类的对象的多种解析parse方法,所述Java文件与所述Class文件包含的信息相同,所述Java文件用于供用户进行查看或编辑,每种所述构造方法对应于不同的参数类型,所述构造方法用于根据对应类型的参数构造所述类的对象,每种所述parse方法对应于不同的参数类型,所述parse方法用于将数据转换成相应的实体类;
获取流数据,所述流数据由所述计算机设备对符合所述指定数据类型的原始数据进行编码得到;
基于所述Class文件,调用对应的所述构造方法,创建与所述指定数据类型对应的对象;
调用所述对象中与所述流数据对应的所述parse方法,对所述流数据进行解码,得到所述原始数据。
2.根据权利要求1所述的方法,其特征在于,所述将指定目录下的Class文件动态加载到内存中,包括:
创建类加载器;
通过所述类加载器将所述指定目录下的所述Class文件动态加载到所述内存中。
3.一种数据解码方法,其特征在于,所述方法包括:
获取协议缓冲区Protobuf文件,所述Protobuf文件包括指定数据类型;
对所述Protobuf文件进行编译,得到类Class文件、与所述Class文件对应的Java文件、所述Class文件中包括的类的多种构造方法以及所述类的对象的多种解析parse方法,所述Java文件与所述Class文件包含的信息相同,所述Java文件用于供用户进行查看或编辑,每种所述构造方法对应于不同的参数类型,所述构造方法用于根据对应类型的参数构造所述类的对象,每种所述parse方法对应于不同的参数类型,所述parse方法用于将数据转换成相应的实体类;
将所述Class文件同步至计算机设备的指定目录中,所述计算机设备用于将所述指定目录下的所述Class文件动态加载到内存中,基于所述Class文件,调用对应的所述构造方法,创建与所述指定数据类型对应的对象,调用所述对象中与流数据对应的所述parse方法,对流数据进行解码,得到原始数据。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
获取所述指定数据类型包括的至少一个属性;
根据所述原始数据,为所述至少一个属性分别进行赋予数值的操作;
根据为所述至少一个属性赋予的数值生成所述流数据。
5.一种数据解码装置,其特征在于,所述装置包括:
加载单元,被配置为将指定目录下的类Class文件动态加载到内存中,所述Class文件由计算机设备对协议缓冲区Protobuf文件进行编译得到后同步至所述指定目录,所述Protobuf文件包括指定数据类型,其中,由所述计算机设备对所述Protobuf文件进行编译还会得到与所述Class文件对应的Java文件、所述Class文件中包括的类的多种构造方法以及所述类的对象的多种解析parse方法,所述Java文件与所述Class文件包含的信息相同,所述Java文件用于供用户进行查看或编辑,每种所述构造方法对应于不同的参数类型,所述构造方法用于根据对应类型的参数构造所述类的对象,每种所述parse方法对应于不同的参数类型,所述parse方法用于将数据转换成相应的实体类;
数据获取单元,被配置为获取流数据,所述流数据由所述计算机设备对符合所述指定数据类型的原始数据进行编码得到;
解码单元,包括实例化子单元和解码子单元;
所述实例化子单元,被配置为基于所述Class文件实例化所述指定数据类型,得到所述指定数据类型对应的对象;
所述解码子单元,被配置为调用所述对象中的解析parse方法,对所述流数据进行解码,得到所述原始数据。
6.根据权利要求5所述的装置,其特征在于,所述加载单元,包括:
创建子单元,被配置为创建类加载器;
加载子单元,被配置为通过所述类加载器将所述指定目录下的所述Class文件动态加载到所述内存中。
7.一种数据解码装置,其特征在于,所述装置包括:
文件获取单元,被配置为获取协议缓冲区Protobuf文件,所述Protobuf文件包括指定数据类型;
编译单元,被配置为对所述Protobuf文件进行编译,得到类Class文件、与所述Class文件对应的Java文件、所述Class文件中包括的类的多种构造方法以及所述类的对象的多种解析parse方法,所述Java文件与所述Class文件包含的信息相同,所述Java文件用于供用户进行查看或编辑,每种所述构造方法对应于不同的参数类型,所述构造方法用于根据对应类型的参数构造所述类的对象,每种所述parse方法对应于不同的参数类型,所述parse方法用于将数据转换成相应的实体类;
同步单元,被配置为将所述Class文件同步至计算机设备的指定目录中,所述计算机设备用于将所述指定目录下的所述Class文件动态加载到内存中,基于所述Class文件,调用对应的所述构造方法,创建与所述指定数据类型对应的对象,调用所述对象中与流数据对应的所述parse方法,对所述流数据进行解码,得到原始数据。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
属性获取子单元,被配置为获取所述指定数据类型包括的至少一个属性;
赋值子单元,被配置为根据所述原始数据,为所述至少一个属性分别进行赋予数值的操作;
数据生成子单元,被配置为根据为所述至少一个属性赋予的数值生成所述流数据。
9.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
用于存储所述一个或多个处理器可执行命令的一个或多个存储器;
其中,所述一个或多个处理器被配置为执行权利要求1至权利要求2任一项所述的数据解码方法。
10.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
用于存储所述一个或多个处理器可执行命令的一个或多个存储器;
其中,所述一个或多个处理器被配置为执行权利要求3至权利要求4任一项所述的数据解码方法。
11.一种非临时性计算机可读存储介质,其特征在于,当所述存储介质中的指令由计算机设备的处理器执行时,使得所述计算机设备能够执行权利要求1至权利要求2任一项所述的数据解码方法。
12.一种非临时性计算机可读存储介质,其特征在于,当所述存储介质中的指令由计算机设备的处理器执行时,使得所述计算机设备能够执行权利要求3至权利要求4任一项所述的数据解码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910364178.7A CN111866047B (zh) | 2019-04-30 | 2019-04-30 | 数据解码方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910364178.7A CN111866047B (zh) | 2019-04-30 | 2019-04-30 | 数据解码方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111866047A CN111866047A (zh) | 2020-10-30 |
CN111866047B true CN111866047B (zh) | 2023-07-07 |
Family
ID=72965142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910364178.7A Active CN111866047B (zh) | 2019-04-30 | 2019-04-30 | 数据解码方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111866047B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015027689A1 (zh) * | 2013-08-26 | 2015-03-05 | 小米科技有限责任公司 | 虚拟目录建立方法、装置及电子设备 |
CN108595226A (zh) * | 2018-05-09 | 2018-09-28 | 腾讯科技(深圳)有限公司 | 动态加载方法、装置及计算机可读存储介质 |
CN108614776A (zh) * | 2018-05-04 | 2018-10-02 | 艺龙网信息技术(北京)有限公司 | 跨语言协议测试请求的动态构建方法和系统 |
CN109308224A (zh) * | 2017-07-27 | 2019-02-05 | 阿里巴巴集团控股有限公司 | 跨平台数据通信、跨平台数据处理的方法、装置及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102402427B (zh) * | 2010-09-09 | 2015-09-02 | 阿里巴巴集团控股有限公司 | 一种Java应用程序的更新方法及装置 |
US9736271B2 (en) * | 2012-12-21 | 2017-08-15 | Akamai Technologies, Inc. | Scalable content delivery network request handling mechanism with usage-based billing |
US9892131B2 (en) * | 2013-08-26 | 2018-02-13 | Xiaomi Inc. | Method, electronic device, and storage medium for creating virtual directory |
US10031766B2 (en) * | 2016-03-08 | 2018-07-24 | Mastercard International Incorporated | Systems and methods for processing extensible markup language data during runtime |
CN106452879A (zh) * | 2016-10-20 | 2017-02-22 | 国网青海省电力公司电力科学研究院 | 一种基于pb的scd跨平台解析方法 |
US11036539B2 (en) * | 2017-10-18 | 2021-06-15 | Electronics And Telecommunications Research Institute | Workflow engine framework |
-
2019
- 2019-04-30 CN CN201910364178.7A patent/CN111866047B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015027689A1 (zh) * | 2013-08-26 | 2015-03-05 | 小米科技有限责任公司 | 虚拟目录建立方法、装置及电子设备 |
CN109308224A (zh) * | 2017-07-27 | 2019-02-05 | 阿里巴巴集团控股有限公司 | 跨平台数据通信、跨平台数据处理的方法、装置及系统 |
CN108614776A (zh) * | 2018-05-04 | 2018-10-02 | 艺龙网信息技术(北京)有限公司 | 跨语言协议测试请求的动态构建方法和系统 |
CN108595226A (zh) * | 2018-05-09 | 2018-09-28 | 腾讯科技(深圳)有限公司 | 动态加载方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111866047A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110290146B (zh) | 分享口令的生成方法、装置、服务器及存储介质 | |
CN108363569B (zh) | 应用中的图像帧生成方法、装置、设备及存储介质 | |
CN108093307B (zh) | 获取播放文件的方法和系统 | |
CN111752666B (zh) | 窗口显示方法、装置和终端 | |
CN108717365B (zh) | 在应用程序中执行功能的方法和装置 | |
CN110851823B (zh) | 数据访问方法、装置、终端及存储介质 | |
CN112749362B (zh) | 控件创建方法、装置、设备及存储介质 | |
CN113190362B (zh) | 服务调用方法、装置、计算机设备及存储介质 | |
US20230368710A1 (en) | Vr display control method, electronic device, and computer-readable storage medium | |
CN111459466B (zh) | 代码生成方法、装置、设备及存储介质 | |
CN111125602B (zh) | 页面构建方法、装置、设备和存储介质 | |
CN113867848A (zh) | 图形接口的调用方法、装置、设备及可读存储介质 | |
CN110677713B (zh) | 视频图像处理方法及装置、存储介质 | |
CN111083554A (zh) | 直播礼物显示的方法和装置 | |
CN112612539B (zh) | 数据模型卸载方法、装置、电子设备及存储介质 | |
CN108492339B (zh) | 获取资源压缩包的方法、装置、电子设备及存储介质 | |
CN111580892B (zh) | 一种业务组件调用的方法、装置、终端和存储介质 | |
CN117215990A (zh) | 多核芯片的核间通信方法、设备及多核芯片 | |
CN113538633B (zh) | 动画播放方法、装置、电子设备及计算机可读存储介质 | |
CN113051015B (zh) | 页面渲染方法、装置、电子设备及存储介质 | |
CN112612540B (zh) | 数据模型配置方法、装置、电子设备及存储介质 | |
CN111866047B (zh) | 数据解码方法、装置、计算机设备及存储介质 | |
CN112163677B (zh) | 应用机器学习模型的方法、装置及设备 | |
CN112783533A (zh) | 版本信息更新方法、装置、终端及存储介质 | |
CN113076452A (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 |