CN108121543B - 一种软件代码编译处理方法及装置 - Google Patents
一种软件代码编译处理方法及装置 Download PDFInfo
- Publication number
- CN108121543B CN108121543B CN201711239713.3A CN201711239713A CN108121543B CN 108121543 B CN108121543 B CN 108121543B CN 201711239713 A CN201711239713 A CN 201711239713A CN 108121543 B CN108121543 B CN 108121543B
- Authority
- CN
- China
- Prior art keywords
- compiling
- environment
- basic system
- cloud
- parameters
- 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
-
- 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
Abstract
本发明实施例公开了一种软件代码编译处理方法及装置,方法包括:云服务器接收终端发送的软件代码的编译请求,编译请求包括基础系统参数和编译环境参数;根据编译请求中的基础系统参数和编译环境参数,确定对应的云主机;向云主机发送启动编译环境参数对应的目标编译环境的启动指令,以使目标编译环境启动后对软件代码进行编译;其中,每个云主机上部署一个基础系统,每个基础系统包括若干个编译环境。本发明实施例通过在每个云主机上部署一个基础系统,每个基础系统配置有若干个编译环境,能够提升编译环境的使用效率;当云服务器接收到编译请求时,根据编译请求确定对应的云主机进行软件代码编译,实现云服务器对编译环境的有效管理和维护。
Description
技术领域
本发明实施例涉及计算机技术领域,具体涉及一种软件代码编译处理方法及装置。
背景技术
随着计算机技术的发展,通过计算机软件实现各种自动化操作越来越普遍。在软件开发中,当发布应用程序或者驱动时,都需要将源代码编译成指定的文件,才能正式发布供用户使用。然而不同语言、发布到不同平台依赖的编译环境各不相同,使得编译不同软件代码时,需要采用不同的编译环境。
现有技术中为了方便进行软件代码编译并保证不同编译环境相互之间不影响,在每一台云主机中部署并配置不同的编译环境,编译软件代码时,自主选择需要的编译环境进行编译。
但是现有方法虽然解决了每个开发单独维护不同编译环境的繁琐工作,但是导致云主机无限增加,难以维护,同时云主机使用效率低下。
发明内容
由于现有方法存在上述问题,本发明实施例提出一种软件代码编译处理方法及装置。
第一方面,本发明实施例提出一种软件代码编译处理方法,包括:
云服务器接收终端发送的软件代码的编译请求,所述编译请求包括基础系统参数和编译环境参数;
根据所述编译请求中的所述基础系统参数和所述编译环境参数,确定对应的云主机;
向所述云主机发送启动所述编译环境参数对应的目标编译环境的启动指令,以使所述目标编译环境启动后对所述软件代码进行编译;
其中,每个云主机上部署一个基础系统,每个基础系统包括若干个编译环境。
可选地,所述根据所述编译请求中的所述基础系统参数和所述编译环境参数,确定对应的云主机,具体包括:
根据所述编译请求中的所述基础系统参数和所述编译环境参数,在空闲的云主机中确定对应的云主机。
可选地,所述方法还包括:
接收所述云主机发送的编译结果;
若根据所述编译结果判断获知所述软件代码编译成功,则销毁当前的编译环境。
可选地,所述方法还包括:
若根据所述编译结果判断获知所述软件代码编译失败,则生成当前的编译环境对应的快照,并将所述快照发送至所述终端。
可选地,所述方法还包括:
若判断获知当前所有的云主机均不空闲,或所有空闲的云主机中无所述基础系统参数和所述编译环境参数对应的云主机,则等待预设时间后,继续判断当前所有的云主机是否不空闲,或所有空闲的云主机中有无所述基础系统参数和所述编译环境参数对应的云主机。
第二方面,本发明实施例还提出一种软件代码编译处理装置,包括:
请求接收模块,用于接收终端发送的软件代码的编译请求,所述编译请求包括基础系统参数和编译环境参数;
云主机确定模块,用于根据所述编译请求中的所述基础系统参数和所述编译环境参数,确定对应的云主机;
启动指令发送模块,用于向所述云主机发送启动所述编译环境参数对应的目标编译环境的启动指令,以使所述目标编译环境启动后对所述软件代码进行编译;
其中,每个云主机上部署一个基础系统,每个基础系统包括若干个编译环境。
可选地,所述云主机确定模块具体包括:
根据所述编译请求中的所述基础系统参数和所述编译环境参数,在空闲的云主机中确定对应的云主机。
可选地,所述装置还包括:
结果接收模块,用于接收所述云主机发送的编译结果;
环境销毁模块,用于若根据所述编译结果判断获知所述软件代码编译成功,则销毁当前的编译环境。
可选地,所述装置还包括:
快照生成模块,用于若根据所述编译结果判断获知所述软件代码编译失败,则生成当前的编译环境对应的快照,并将所述快照发送至所述终端。
可选地,所述装置还包括:
等待模块,用于若判断获知当前所有的云主机均不空闲,或所有空闲的云主机中无所述基础系统参数和所述编译环境参数对应的云主机,则等待预设时间后,继续判断当前所有的云主机是否不空闲,或所有空闲的云主机中有无所述基础系统参数和所述编译环境参数对应的云主机。
第三方面,本发明实施例还提出一种电子设备,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述方法。
第四方面,本发明实施例还提出一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述方法。
由上述技术方案可知,本发明实施例通过在每个云主机上部署一个基础系统,每个基础系统配置有若干个编译环境,能够提升编译环境的使用效率;当云服务器接收到编译请求时,根据所述编译请求确定对应的云主机进行软件代码编译,实现云服务器对编译环境的有效管理和维护。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。
图1为本发明一实施例提供的一种软件代码编译处理方法的流程示意图;
图2为本发明一实施例提供的一种云主机的连接示意图;
图3为本发明另一实施例提供的一种软件代码编译处理方法的流程示意图;
图4为本发明一实施例提供的一种软件代码编译处理装置的结构示意图;
图5为本发明一实施例提供的电子设备的逻辑框图。
具体实施方式
下面结合附图,对本发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
图1示出了本实施例提供的一种软件代码编译处理方法的流程示意图,包括:
S101、云服务器接收终端发送的软件代码的编译请求,所述编译请求包括基础系统参数和编译环境参数。
其中,如图2所示,所述云服务器(图2中最右侧服务器)与若干个云主机(图2中示出了6个并排排列的云主机,与云服务连接)连接,所述云服务器用于接收并处理编译请求,而各云主机用于存储和运行各个编译环境。
所述基础系统参数为对应的基础系统的参数,例如名称和版本号。所述基础系统为云服务器中运行的操作系统,例如win7、windows2008等等。每种基础系统也可以是一个虚拟机,比如给win7、windows2008各配置一个虚拟机。
所述编译环境参数为编译环境对应的具体参数,例如编译环境中各变量的参数值。在编译过程中,编译环境中各变量的参数值会发生变化,即不同的参数值对应不同的编译环境。当确定编译环境中各变量的参数值时,则确定了编译环境。编译请求中未包含的参数可采用默认参数值。
具体地,在记录编译环境中各变量的参数值时,可以使用vmware的快照技术,为每个编译环境配置一个快照。
S102、根据所述编译请求中的所述基础系统参数和所述编译环境参数,确定对应的云主机。
其中,每个云主机上部署一个基础系统,每个基础系统包括若干个编译环境。
具体地,根据所述编译请求中的所述基础系统参数和所述编译环境参数可确定目标编译环境,根据目标编译环境可确定配置了所述目标编译环境的云主机。
需要说明的是,当基础系统部署在虚拟机中时,可以基于vmware提供的pyvmomi(VMware vSphere API Python Bindings)进行开发来实现获取对应快照的空闲虚拟机。
S103、向所述云主机发送启动所述编译环境参数对应的目标编译环境的启动指令,以使所述目标编译环境启动后对所述软件代码进行编译。
具体地,同一种基础系统下,不同工具或者版本可以使用快照实现,由于基础系统是有限的,所以能保障云主机数量不会无限增加;而同一种基础系统的编译环境,可以配置多套,实现多并发编译,提升编译效率和编译机使用效率。需要说明的是,为了避免不同编译环境的相互影响,同一个虚拟机中同时只运行一个编译环境。
本实施例通过在每个云主机上部署一个基础系统,每个基础系统配置有若干个编译环境,能够提升编译环境的使用效率;当云服务器接收到编译请求时,根据所述编译请求确定对应的云主机进行软件代码编译,实现云服务器对编译环境的有效管理和维护。
进一步地,在上述方法实施例的基础上,S102具体包括:
根据所述编译请求中的所述基础系统参数和所述编译环境参数,在空闲的云主机中确定对应的云主机。
通过查找空闲的云主机,提高命中编译请求对应的云主机的概率。
进一步地,在上述方法实施例的基础上,所述方法还包括:
S104、接收所述云主机发送的编译结果。
S105、若根据所述编译结果判断获知所述软件代码编译成功,则销毁当前的编译环境。
S106、若根据所述编译结果判断获知所述软件代码编译失败,则生成当前的编译环境对应的快照,并将所述快照发送至所述终端。
通过将编译环境按需启动,编译完成自动销毁;编译失败后,自动将当前环境做成内存快照,供开发人员分析;编译时,恢复到指定环境快照,保证编译环境的一致性。
进一步地,在上述方法实施例的基础上,所述方法还包括:
S107、若判断获知当前所有的云主机均不空闲,或所有空闲的云主机中无所述基础系统参数和所述编译环境参数对应的云主机,则等待预设时间后,继续判断当前所有的云主机是否不空闲,或所有空闲的云主机中有无所述基础系统参数和所述编译环境参数对应的云主机。
为了保证不同编译环境之间相互不影响,当不存在满足条件的空闲的编译云主机时,云服务器等待预设时间,例如等待1分钟后继续判断。
具体地,如图3所示,云服务器根据编译请求中的参数选择编译环境,并获取由对应快照的空闲云主机;如果获取失败,则继续获取;如果获取成功,则控制所述空闲云主机拉取代码开始编译,编译完成后,回传编译结果至云服务器;云服务器根据编译结果判断编译成功,则制作内存快照;若编译失败则销毁编译环境。
图4示出了本实施例提供的一种软件代码编译处理装置的结构示意图,所述装置包括:请求接收模块401、云主机确定模块402和启动指令发送模块403,其中:
所述请求接收模块401用于接收终端发送的软件代码的编译请求,所述编译请求包括基础系统参数和编译环境参数;
所述云主机确定模块402用于根据所述编译请求中的所述基础系统参数和所述编译环境参数,确定对应的云主机;
所述启动指令发送模块403用于向所述云主机发送启动所述编译环境参数对应的目标编译环境的启动指令,以使所述目标编译环境启动后对所述软件代码进行编译;
其中,每个云主机上部署一个基础系统,每个基础系统包括若干个编译环境。
具体地,所述请求接收模块401接收终端发送的软件代码的编译请求,所述编译请求包括基础系统参数和编译环境参数;所述云主机确定模块402根据所述编译请求中的所述基础系统参数和所述编译环境参数,确定对应的云主机;所述启动指令发送模块403向所述云主机发送启动所述编译环境参数对应的目标编译环境的启动指令,以使所述目标编译环境启动后对所述软件代码进行编译。
本实施例通过在每个云主机上部署一个基础系统,每个基础系统配置有若干个编译环境,能够提升编译环境的使用效率;当云服务器接收到编译请求时,根据所述编译请求确定对应的云主机进行软件代码编译,实现云服务器对编译环境的有效管理和维护。
进一步地,在上述装置实施例的基础上,所述云主机确定模块402具体包括:
根据所述编译请求中的所述基础系统参数和所述编译环境参数,在空闲的云主机中确定对应的云主机。
进一步地,在上述装置实施例的基础上,所述装置还包括:
结果接收模块,用于接收所述云主机发送的编译结果;
环境销毁模块,用于若根据所述编译结果判断获知所述软件代码编译成功,则销毁当前的编译环境。
进一步地,在上述装置实施例的基础上,所述装置还包括:
快照生成模块,用于若根据所述编译结果判断获知所述软件代码编译失败,则生成当前的编译环境对应的快照,并将所述快照发送至所述终端。
进一步地,在上述装置实施例的基础上,所述装置还包括:
等待模块,用于若判断获知当前所有的云主机均不空闲,或所有空闲的云主机中无所述基础系统参数和所述编译环境参数对应的云主机,则等待预设时间后,继续判断当前所有的云主机是否不空闲,或所有空闲的云主机中有无所述基础系统参数和所述编译环境参数对应的云主机。
本实施例所述的软件代码编译处理装置可以用于执行上述方法实施例,其原理和技术效果类似,此处不再赘述。
参照图5,所述电子设备,包括:处理器(processor)501、存储器(memory)502和总线503;
其中,
所述处理器501和存储器502通过所述总线503完成相互间的通信;
所述处理器501用于调用所述存储器502中的程序指令,以执行上述各方法实施例所提供的方法。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种软件代码编译处理方法,其特征在于,包括:
云服务器接收终端发送的软件代码的编译请求,所述编译请求包括基础系统参数和编译环境参数;
根据所述编译请求中的所述基础系统参数和所述编译环境参数,确定对应的云主机;
向所述云主机发送启动所述编译环境参数对应的目标编译环境的启动指令,以使所述目标编译环境启动后对所述软件代码进行编译;
接收所述云主机发送的编译结果;
若根据所述编译结果判断获知所述软件代码编译成功,则销毁当前的编译环境;
其中,每个云主机上部署一个基础系统,每个基础系统包括若干个编译环境;
其中,所述根据所述编译请求中的所述基础系统参数和所述编译环境参数,确定对应的云主机,具体包括:
根据所述编译请求中的所述基础系统参数和所述编译环境参数,确定编译环境,获取有所述编译环境对应快照的空闲云主机。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若根据所述编译结果判断获知所述软件代码编译失败,则生成当前的编译环境对应的快照,并将所述快照发送至所述终端。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若判断获知当前所有的云主机均不空闲,或所有空闲的云主机中无所述基础系统参数和所述编译环境参数对应的云主机,则等待预设时间后,继续判断当前所有的云主机是否不空闲,或所有空闲的云主机中有无所述基础系统参数和所述编译环境参数对应的云主机。
4.一种软件代码编译处理装置,其特征在于,包括:
请求接收模块,用于接收终端发送的软件代码的编译请求,所述编译请求包括基础系统参数和编译环境参数;
云主机确定模块,用于根据所述编译请求中的所述基础系统参数和所述编译环境参数,确定对应的云主机;
启动指令发送模块,用于向所述云主机发送启动所述编译环境参数对应的目标编译环境的启动指令,以使所述目标编译环境启动后对所述软件代码进行编译;
结果接收模块,用于接收所述云主机发送的编译结果;
环境销毁模块,用于若根据所述编译结果判断获知所述软件代码编译成功,则销毁当前的编译环境;
其中,每个云主机上部署一个基础系统,每个基础系统包括若干个编译环境;
所述云主机确定模块具体包括:
根据所述编译请求中的所述基础系统参数和所述编译环境参数,确定编译环境,获取有所述编译环境对应快照的空闲云主机。
5.根据权利要求4所述的装置,其特征在于,所述装置还包括:
快照生成模块,用于若根据所述编译结果判断获知所述软件代码编译失败,则生成当前的编译环境对应的快照,并将所述快照发送至所述终端。
6.根据权利要求4所述的装置,其特征在于,所述装置还包括:
等待模块,用于若判断获知当前所有的云主机均不空闲,或所有空闲的云主机中无所述基础系统参数和所述编译环境参数对应的云主机,则等待预设时间后,继续判断当前所有的云主机是否不空闲,或所有空闲的云主机中有无所述基础系统参数和所述编译环境参数对应的云主机。
7.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至3任一所述的方法。
8.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行如权利要求1至3任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711239713.3A CN108121543B (zh) | 2017-11-30 | 2017-11-30 | 一种软件代码编译处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711239713.3A CN108121543B (zh) | 2017-11-30 | 2017-11-30 | 一种软件代码编译处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108121543A CN108121543A (zh) | 2018-06-05 |
CN108121543B true CN108121543B (zh) | 2020-12-01 |
Family
ID=62228746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711239713.3A Active CN108121543B (zh) | 2017-11-30 | 2017-11-30 | 一种软件代码编译处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108121543B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110795103A (zh) * | 2019-09-27 | 2020-02-14 | 北京五八信息技术有限公司 | 一种代码编译方法以及编译机 |
CN111240686B (zh) * | 2020-01-09 | 2022-10-04 | 江苏满运软件科技有限公司 | 云编译方法和系统、终端设备、云端服务器及存储介质 |
CN115552369A (zh) * | 2020-06-04 | 2022-12-30 | 深圳市欢太科技有限公司 | 编译方法、编译装置、编译系统、存储介质与电子设备 |
CN111880802A (zh) * | 2020-07-03 | 2020-11-03 | 深圳市欢太科技有限公司 | 一种编译方法、电子设备及计算机可读存储介质 |
CN112269578A (zh) * | 2020-10-14 | 2021-01-26 | 苏州浪潮智能科技有限公司 | 一种代码编译方法、装置及计算机可读存储介质 |
CN112650500A (zh) * | 2020-12-31 | 2021-04-13 | 中国农业银行股份有限公司 | 一种采用jupyter的自动编译方法及装置 |
CN114157654B (zh) * | 2021-10-28 | 2024-03-19 | 杭州未名信科科技有限公司 | 一种集成电路协同设计系统和方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130073374A (ko) * | 2011-12-23 | 2013-07-03 | 삼성전자주식회사 | 응용 프로그램의 분산형 컴파일 시스템, 장치 및 방법 |
CN103514004B (zh) * | 2012-06-28 | 2016-12-21 | 联想(北京)有限公司 | Windows系统下的系统环境管理方法及装置 |
CN106095522A (zh) * | 2016-06-03 | 2016-11-09 | 北京奇虎科技有限公司 | 一种实现分布式编译的方法和分布式编译系统 |
-
2017
- 2017-11-30 CN CN201711239713.3A patent/CN108121543B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108121543A (zh) | 2018-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108121543B (zh) | 一种软件代码编译处理方法及装置 | |
CN106815031B (zh) | 内核模块加载方法和装置 | |
US10042744B2 (en) | Adopting an existing automation script to a new framework | |
WO2016177341A1 (zh) | 接口调用方法、装置及终端 | |
CN109361542B (zh) | 客户端的故障处理方法、装置、系统、终端和服务器 | |
CN104317618A (zh) | 一种固件分区处理方法和装置 | |
CN111258913A (zh) | 算法自动测试方法、装置、计算机系统及可读存储介质 | |
CN112953983A (zh) | Sftp传输方法及装置 | |
CN110795162B (zh) | 生成容器镜像文件的方法和装置 | |
CN108595178B (zh) | 一种基于hook的数据采集方法、装置及设备 | |
CN110597688A (zh) | 监控信息采集方法及系统 | |
CN109491661B (zh) | 通用交叉编译方法及设备 | |
CN107656739B (zh) | 基于windows系统的代码编译方法及装置 | |
CN114064216A (zh) | 一种虚拟机初始化方法、装置、终端设备及存储介质 | |
CN112422581B (zh) | JVM中的Webshell网页检测方法、装置及设备 | |
CN111433739A (zh) | 程序的升级方法和嵌入式设备 | |
CN112817883A (zh) | 接口平台的适配方法、设备、系统及计算机可读存储介质 | |
CN105045595A (zh) | 一种集成插件的方法和装置 | |
CN110134546B (zh) | 批量重启windows系统方法、电子装置及存储介质 | |
CN110688320A (zh) | 全局变量的检测方法、装置及终端设备 | |
CN105426304A (zh) | 一种重启测试的控制方法及装置 | |
US20180373512A1 (en) | Method and device for simulating synchronous blocking in asynchronous environment, storage medium, server and terminal | |
US20230032581A1 (en) | Method and Apparatus for Processing Virtual Machine Component | |
CN112463140B (zh) | 基于电子积木的编程方法、装置、电子设备及存储介质 | |
CN111158783B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100088 Building 3 332, 102, 28 Xinjiekouwai Street, Xicheng District, Beijing Applicant after: Qianxin Technology Group Co.,Ltd. Address before: 100015 Jiuxianqiao Chaoyang District Beijing Road No. 10, building 15, floor 17, layer 1701-26, 3 Applicant before: Beijing Qi'anxin Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |