CN103793245B - 一种嵌入式系统更新中增量文件的生成方法 - Google Patents
一种嵌入式系统更新中增量文件的生成方法 Download PDFInfo
- Publication number
- CN103793245B CN103793245B CN201410026559.1A CN201410026559A CN103793245B CN 103793245 B CN103793245 B CN 103793245B CN 201410026559 A CN201410026559 A CN 201410026559A CN 103793245 B CN103793245 B CN 103793245B
- Authority
- CN
- China
- Prior art keywords
- subcode
- suffix
- code
- instruction
- sequence
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种嵌入式系统更新中增量文件的生成方法,包括以下步骤:第一步:连接新版本重定位代码和旧版本代码,生成合成代码;第二步:对合成代码的所有后缀子代码按字典顺序从小到大排序,其中,所述后缀子代码是指从任意一个字节开始到整个代码末尾结束的子代码;第三步:利用排序后的后缀子代码,计算生成新版本重定位代码相对旧版本代码的增量文件。本发明加快了增量文件的生成速度,减小了生成过程中的存储开销,并保证生成的增量文件理论最小。
Description
技术领域
本发明属于嵌入式系统更新领域,涉及一种增量文件生成方法,用于实时对嵌入式系统中的程序进行更新。
背景技术
随着通信、传感器制造、嵌入式计算的日益成熟,嵌入式技术迅速发展并被广泛应用到环境、国防、救灾抢险、城市管理等诸多领域。例如,无线传感网络是一种典型的嵌入式系统。典型的无线传感器网络由大量微型传感器节点组成,它们能够在恶劣及危险环境中迅速展开,并通过无线自组成网,不受现有有线网络基础设施的限制。感知数据通过无线通信以多跳中继方式汇集到数据处理中心。
目前已经有大量研究工作致力于如何对嵌入式系统进行程序更新。然而当前的更新技术并不令人满意。串行更新方法由于需要将所有的部署的嵌入式设备回收,逐个写入新版本软件然后重新部署,人工方法存在工作效率低的问题,使得这种代码更新方法不能应用到大规模的网络中去。因此提出了无线重编程技术来使得嵌入式设备可以通过无线通信来自动进行代码更新。但是已有的方法没有考虑到新旧代码之间的相关性,导致向网络发送的数据量增加的问题,不适用于资源受限的嵌入式设备。
发明内容
本发明的目的在于设计一种嵌入式系统更新中增量文件的生成方法,以克服现有技术的全部或部分缺陷。
为实现上述目的,本发明所采取的技术方案是,本发明嵌入式系统更新中增量文件的生成方法包括以下步骤:
第一步:连接新版本重定位代码和旧版本代码,生成合成代码;
第二步:对合成代码的所有后缀子代码按字典顺序从小到大进行排序,其中,所述后缀子代码是指从任意一个字节开始到整个代码末尾结束的子代码;
第三步:利用排序后的后缀子代码,计算生成新版本重定位代码相对旧版本代码的增量文件。
进一步地,本发明在所述第一步中,所述合成代码由第一至第四部分按先后顺序连接而成,其中,第一部分为旧版本代码按照字节顺序逆序排列,第二部分为字节“#”,第三部分为新版本代码按照字节顺序逆序排列,第四部分为字节“$”。
进一步地,本发明在所述第二步中,采用倍增算法对后缀子代码进行排序。
进一步地,本发明在所述第三步中,所述增量文件的计算方法包括如下步骤:
步骤A:复制所述合成代码的从倒数第i个字节开始至末尾为止的i个字节作为子代码,i的初始值设置为1;
步骤B:计算所述子代码的最终指令为增加指令的最优增量文件的长度,并记录所述子代码的最终指令为增加指令的最优增量指令及其顺序;计算所述子代码的最终指令为复制指令的最优增量文件的长度,并记录所述子代码的最终指令为复制指令的最优增量指令及其顺序;
步骤C:判断i是否等于新版本代码的字节数,如果是,则将步骤B中所得的长度最小的最优增量文件指令输出,否则,i加1,并返回执行步骤A。
进一步地,本发明所述步骤B中,“计算所述子代码的最终指令为复制指令的最优增量文件的长度,并记录所述子代码的最终指令为复制指令的最优增量指令及其顺序”的方法包括如下步骤:
①查找与步骤A中子代码相同的后缀子代码在排序后的后缀子代码中的序号;
②在排序后的后缀子代码中,以步骤①所述的序号为起点,以序号增大顺序搜索排序后的后缀子代码,计算所搜索的后缀子代码与所述步骤A中所述子代码的最长公共前缀长度,直到出现以下情形之一时结束该搜索:
情形a:搜索到的后缀子代码与所述步骤A中所述子代码的最长公共前缀长度为0,
情形b:搜索到的后缀子代码中包含字节“#”,
情形c:搜索到的后缀子代码的序号等于排序后的后缀子代码的序号的最大值;
然后记录搜索过程中获得的最大的最长公共前缀长度和达到最大的最长公共前缀长度时所搜索到的后缀子代码的序号;
接着,在排序后的后缀子代码中,以步骤①所述的序号为起点,以序号减小顺序搜索排序后的后缀子代码,计算所搜索的后缀子代码与所述步骤A中所述子代码的最长公共前缀长度,直到出现以下情形之一时结束该搜索:
情形d:搜索到的后缀子代码与所述步骤A中所述子代码的最长公共前缀长度为0,
情形e:搜索到的后缀子代码中包含字节“#”,
情形f:搜索到的后缀子代码的序号等于排序后的后缀子代码的序号的最小值;
③如果步骤②中以序号增大顺序搜索得到的最大的最长公共前缀长度和以序号减小顺序搜索得到的最大的最长公共前缀长度均为0,则执行步骤④,否则,对比步骤②中以序号增大顺序搜索得到的最大的最长公共前缀长度和以序号减小顺序搜索得到的最大的最长公共前缀长度,选择较大的最长公共前缀长度以及达到该较大的最长公共前缀长度时所搜索到的对应的后缀子代码的序号,然后根据该序号在排序后的后缀子代码中查找对应的后缀子代码,并执行步骤⑤;
④将步骤A中子代码的最终指令为复制指令的最优增量文件长度记录为不存在,将步骤A中子代码的最终指令为复制指令的最优增量指令及其顺序记录为空;
⑤根据步骤③中所述的较大的最长公共前缀长度、达到该较大的最长公共前缀长度时所搜索到的对应的后缀子代码的序号及其查找得到的对应后缀子代码,计算步骤A中子代码的最终指令为复制指令的最优增量文件长度,并记录步骤A中子代码的最终指令为复制指令的最优增量指令及其顺序。
与现有技术相比,本发明的有益效果如下:
(1)本发明在计算增量文件时,采用后缀子代码计算得到,与现有方法相比,减少了计算时间,并且降低了计算存储空间开销。
(2)本发明中设计了一个最优化的增量文件生成算法,确保生成的增量文件达到最小。
(3)本发明中利用后缀子代码寻找新旧代码之间的相近片段,利用代码相似片段生成增量文件,与现有方法相比,具有可扩展性,在新旧代码大小差别很大时,依然有较小的计算开销。
附图说明
图1是本发明整个增量文件生成方法的流程图。
图2是计算增量文件方法的流程图。
图3是计算最终指令为复制指令的最优增量文件长度并记录增量指令顺序的流程图。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下结合如图1至3具体说明本发明的具体实施过程:
本发明面向嵌入式系统的增量文件生成方法包括以下步骤:
第一步:连接新版本代码和旧版本代码,生成合成代码;
连接新版本代码和旧版本代码时,合成代码由第一至第四部分按先后顺序连接而成:第一部分为旧版本代码按照字节顺序逆序排列,第二部分为字节“#”,第三部分为新版本代码按照字节顺序逆序排列,第四部分为字节“$”。
第二步:对合成代码的所有后缀子代码按字典顺序从小到大进行排序,其中后缀子代码为指从任意一个字节开始到整个代码末尾结束的子代码;
其中,可采用倍增算法(Doubling Algorithm)对后缀子代码进行排序,也可以采用冒泡排序、插入排序等其他方法对后缀子代码进行字典顺序从小到大排序。
第三步:利用排序后的后缀子代码,计算生成新版本重定位代码相对旧版本代码的增量文件。
增量文件包含两个指令,分别为:
ADD<n><Byte1…Byten>
COPY<n><old_address>
ADD表示增加指令,COPY表示复制指令,n表示需要增加或者复制的代码字节数,Byten代表第n个需要插入的字节,old_address代表复制的源地址。
增量文件生成步骤如下:
步骤A:复制所述合成代码的从倒数第i个字节开始至末尾为止的i个字节作为子代码,i的初始值设置为1;
步骤A中子代码的最终指令为增加指令的最优增量文件长度记为optA[i],步骤A中子代码的最终指令为复制指令的最优增量文件长度记为optC[i]。
步骤B:计算所述子代码的最终指令为增加指令的最优增量文件的长度,并记录所述子代码的最终指令为增加指令的最优增量指令及其顺序;计算所述子代码的最终指令为复制指令的最优增量文件的长度,并记录所述子代码的最终指令为复制指令的最优增量指令及其顺序。其中,计算步骤A中所述子代码的最终指令为增加指令的最优增量文件长度,并记录步骤A中子代码的最终指令为增加指令的最优增量指令及顺序的具体方法为:比较optA[i-1]+1,与optC[i-1]+4的大小,如果optC[i-1]不存在或者optA[i-1]+1较小,则记录步骤A中子代码的最终指令为增加指令的最优增量文件长度optA[i]为optA[i-1]+1,并记录步骤A中子代码的最终指令为增加指令的最优增量指令及顺序,为第i-1次执行步骤B时,得到的步骤A中子代码的最终指令为增加指令的最优增量指令及顺序,并将最后一个指令修改为ADD<n><Byte1…Byten+1>。其中,n为原最后指令的增加字节数加1,Byte1…Byten为原最后指令需要插入的字节,Byten+1为第i次执行步骤A时,步骤A中长度为i的子代码的最后一个字节的数据;如果optC[i-1]+4较小,则记录步骤A中子代码的最终指令为增加指令的最优增量文件长度optA[i]为optC[i-1]+4,并记录步骤A中子代码的最终指令为增加指令的最优增量指令及顺序,为第i-1次执行步骤B时,得到的步骤A中子代码的最终指令为复制指令的最优增量指令及顺序,并在最后添加指令ADD<1><Byte>。其中,Byte为第i次执行步骤A时,步骤A中长度为i的子代码的最后一个字节的数据。
其中,计算步骤A中所述子代码的最终指令为复制指令的最优增量文件长度,并记录步骤A中所述子代码的最终指令为复制指令的最优增量指令及顺序,包括如下步骤:
①:查找与步骤A中子代码相同的后缀子代码在排序后的后缀子代码中的序号;
②:在排序后的后缀子代码中,以步骤①所述的序号为起点,以序号增大顺序搜索排序后的后缀子代码,计算所搜索的后缀子代码与所述步骤A中所述子代码的最长公共前缀长度,直到出现以下情形之一时结束该搜索:
情形a:搜索到的后缀子代码与所述步骤A中所述子代码的最长公共前缀长度为0,
情形b:搜索到的后缀子代码中包含字节“#”,
情形c:搜索到的后缀子代码的序号等于排序后的后缀子代码的序号的最大值;
然后记录搜索过程中获得的最大的最长公共前缀长度和达到最大的最长公共前缀长度时
所搜索到的后缀子代码的序号;
接着,在排序后的后缀子代码中,以步骤①所述的序号为起点,以序号减小顺序搜索排序后的后缀子代码,计算所搜索的后缀子代码与所述步骤A中所述子代码的最长公共前缀长度,直到出现以下情形之一时结束该搜索:
情形d:搜索到的后缀子代码与所述步骤A中所述子代码的最长公共前缀长度为0,
情形e:搜索到的后缀子代码中包含字节“#”,
情形f:搜索到的后缀子代码的序号等于排序后的后缀子代码的序号的最小值;
其中,最长公共前缀长度计算方法如下:
对于两个代码A和B,设定最长公共前缀长度的初始值为0。从A和B的首字节开始按字节依次比对,如果相同则最长公共前缀长度加1,如果出现不同的字节,计算停止。
③:如果步骤②中以序号增大顺序搜索得到的最大的最长公共前缀长度和以序号减小顺序搜索得到的最大的最长公共前缀长度均为0,则执行步骤④,否则,对比步骤②中以序号增大顺序搜索得到的最大的最长公共前缀长度和以序号减小顺序搜索得到的最大的最长公共前缀长度,选择较大的最长公共前缀长度以及达到该较大的最长公共前缀长度时所搜索到的对应的后缀子代码的序号,然后根据该序号在排序后的后缀子代码中查找对应的后缀子代码,并执行步骤⑤;
④:将步骤A中子代码的最终指令为复制指令的最优增量文件长度optC[i]记录为不存在,将步骤A中子代码的最终指令为复制指令的最优增量指令及其顺序记录为空;
⑤:根据步骤③中所述的较大的最长公共前缀长度、达到该较大的最长公共前缀长度时所搜索到的对应的后缀子代码的序号及其查找得到的对应后缀子代码,计算步骤A中子代码的最终指令为复制指令的最优增量文件长度,并记录步骤A中子代码的最终指令为复制指令的最优增量指令及其顺序。
所述的较大的最长公共前缀长度记为k,所述后缀子代码的字节数记为s。
其中,计算步骤A中子代码的最终指令为复制指令的最优增量文件长度,并记录步骤A中子代码的最终指令为复制指令的最优增量指令及其顺序的具体方法为:如果optA[i-k]比optC[i-k]小,记录步骤A中子代码的最终指令为复制指令的最优增量文件长度optC[i]为optA[i-k]+5,并记录步骤A中子代码的最终指令为复制指令的最优增量指令及顺序,为第i-k次执行步骤B时,得到的步骤A中子代码的最终指令为增加指令的最优增量指令及顺序,并在最后添加指令COPY<k><old_address>;否则,记录步骤A中子代码的最终指令为复制指令的最优增量文件长度optC[i]为optC[i-k]+5,并记录步骤A中子代码的最终指令为复制指令的最优增量指令及顺序,为第i-k次执行步骤B时,得到的步骤A中子代码的最终指令为复制指令的最优增量指令及顺序,并在最后添加指令COPY<k><old_address>。其中,old_address为旧版本代码第s-k-nsize字节的地址,nsize为新版本代码的字节数。
步骤C:判断i是否等于新版本代码的字节数,如果是,则将步骤B中所得的长度最小的最优增量文件指令输出,否则,i加1,并返回执行步骤A。
由此,本发明提供了一种面向嵌入式系统更新的增量文件生成方法,通过向嵌入式系统传输新版本代码相对于旧版本代码的增量文件,从而达到程序更新的目的。本发明加快了增量文件的生成速度,减小了生成过程中的存储开销,并保证生成的增量文件理论最小。
以上通过具体的和优选的实施例详细的描述了本发明,但本领域技术人员应该明白,本发明并不局限于以上所述实施例,凡在本发明的精神和原则之内,所作的任何修改、等同替换等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种嵌入式系统更新中增量文件的生成方法,其特征在于,包括以下步骤:
第一步:连接新版本重定位代码和旧版本代码,生成合成代码;
第二步:对合成代码的所有后缀子代码按字典顺序从小到大进行排序,其中,所述后缀子代码是指从任意一个字节开始到整个代码末尾结束的子代码;
第三步:利用排序后的后缀子代码,计算生成新版本重定位代码相对旧版本代码的增量文件;所述增量文件的计算方法包括如下步骤:
步骤A:复制所述合成代码的从倒数第i个字节开始至末尾为止的i个字节作为子代码,i的初始值设置为1;
步骤B:计算所述子代码的最终指令为增加指令的最优增量文件的长度,并记录所述子代码的最终指令为增加指令的最优增量指令及其顺序;计算所述子代码的最终指令为复制指令的最优增量文件的长度,并记录所述子代码的最终指令为复制指令的最优增量指令及其顺序;
步骤C:判断i是否等于新版本代码的字节数,如果是,则将步骤B中所得的长度最小的最优增量文件指令输出,否则,i加1,并返回执行步骤A。
2.根据权利要求1所述的嵌入式系统更新中增量文件的生成方法,其特征在于:在所述第一步中,所述合成代码由第一至第四部分按先后顺序连接而成,其中,第一部分为旧版本代码按照字节顺序逆序排列,第二部分为字节“#”,第三部分为新版本代码按照字节顺序逆序排列,第四部分为字节“$”。
3.根据权利要求1或2所述的嵌入式系统更新中增量文件的生成方法,其特征在于:在所述第二步中,采用倍增算法对后缀子代码进行排序。
4.根据权利要求1所述的嵌入式系统更新中增量文件的生成方法,其特征在于,所述步骤B中,“计算所述子代码的最终指令为复制指令的最优增量文件的长度,并记录所述子代码的最终指令为复制指令的最优增量指令及其顺序”的方法包括如下步骤:
①查找与步骤A中子代码相同的后缀子代码在排序后的后缀子代码中的序号;
②在排序后的后缀子代码中,以步骤①所述的序号为起点,以序号增大顺序搜索排序后的后缀子代码,计算所搜索的后缀子代码与所述步骤A中所述子代码的最长公共前缀长度,直到出现以下情形之一时结束该搜索:
情形a:搜索到的后缀子代码与所述步骤A中所述子代码的最长公共前缀长度为0,
情形b:搜索到的后缀子代码中包含字节“#”,
情形c:搜索到的后缀子代码的序号等于排序后的后缀子代码的序号的最大值;
然后记录搜索过程中获得的最大的最长公共前缀长度和达到最大的最长公共前缀长度时所搜索到的后缀子代码的序号;
接着,在排序后的后缀子代码中,以步骤①所述的序号为起点,以序号减小顺序搜索排序后的后缀子代码,计算所搜索的后缀子代码与所述步骤A中所述子代码的最长公共前缀长度,直到出现以下情形之一时结束该搜索:
情形d:搜索到的后缀子代码与所述步骤A中所述子代码的最长公共前缀长度为0,
情形e:搜索到的后缀子代码中包含字节“#”,
情形f:搜索到的后缀子代码的序号等于排序后的后缀子代码的序号的最小值;
③如果步骤②中以序号增大顺序搜索得到的最大的最长公共前缀长度和以序号减小顺序搜索得到的最大的最长公共前缀长度均为0,则执行步骤④,否则,对比步骤②中以序号增大顺序搜索得到的最大的最长公共前缀长度和以序号减小顺序搜索得到的最大的最长公共前缀长度,选择较大的最长公共前缀长度以及达到该较大的最长公共前缀长度时所搜索到的对应的后缀子代码的序号,然后根据该序号在排序后的后缀子代码中查找对应的后缀子代码,并执行步骤⑤;
④将步骤A中子代码的最终指令为复制指令的最优增量文件长度记录为不存在,将步骤A中子代码的最终指令为复制指令的最优增量指令及其顺序记录为空;
⑤根据步骤③中所述的较大的最长公共前缀长度、达到该较大的最长公共前缀长度时所搜索到的对应的后缀子代码的序号及其查找得到的对应后缀子代码,计算步骤A中子代码的最终指令为复制指令的最优增量文件长度,并记录步骤A中子代码的最终指令为复制指令的最优增量指令及其顺序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410026559.1A CN103793245B (zh) | 2014-01-21 | 2014-01-21 | 一种嵌入式系统更新中增量文件的生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410026559.1A CN103793245B (zh) | 2014-01-21 | 2014-01-21 | 一种嵌入式系统更新中增量文件的生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103793245A CN103793245A (zh) | 2014-05-14 |
CN103793245B true CN103793245B (zh) | 2016-08-17 |
Family
ID=50668960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410026559.1A Active CN103793245B (zh) | 2014-01-21 | 2014-01-21 | 一种嵌入式系统更新中增量文件的生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103793245B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111176704B (zh) * | 2018-11-09 | 2022-08-23 | 中移(杭州)信息技术有限公司 | 一种差分包文件生成方法、中断恢复方法和相关装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101042295A (zh) * | 2007-01-23 | 2007-09-26 | 浙江工业大学 | 一种可全局索引编码序列的产生方法及其应用 |
CN102722386A (zh) * | 2012-05-28 | 2012-10-10 | 华为终端有限公司 | 生成无线固件升级包的方法和装置 |
CN102799502A (zh) * | 2012-06-28 | 2012-11-28 | 航天恒星科技有限公司 | 一种星载嵌入式软件在轨维护方法 |
CN103098056A (zh) * | 2012-10-26 | 2013-05-08 | 华为技术有限公司 | 一种排序的方法、装置与终端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7529779B2 (en) * | 2004-06-10 | 2009-05-05 | Samsung Electronics Co., Ltd. | Apparatus and method for efficient generation of delta files for over-the-air upgrades in a wireless network |
-
2014
- 2014-01-21 CN CN201410026559.1A patent/CN103793245B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101042295A (zh) * | 2007-01-23 | 2007-09-26 | 浙江工业大学 | 一种可全局索引编码序列的产生方法及其应用 |
CN102722386A (zh) * | 2012-05-28 | 2012-10-10 | 华为终端有限公司 | 生成无线固件升级包的方法和装置 |
CN102799502A (zh) * | 2012-06-28 | 2012-11-28 | 航天恒星科技有限公司 | 一种星载嵌入式软件在轨维护方法 |
CN103098056A (zh) * | 2012-10-26 | 2013-05-08 | 华为技术有限公司 | 一种排序的方法、装置与终端 |
Also Published As
Publication number | Publication date |
---|---|
CN103793245A (zh) | 2014-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11948075B2 (en) | Generating discrete latent representations of input data items | |
CN110023963A (zh) | 使用神经网络处理文本序列 | |
US8055096B2 (en) | Method and system for incremental patching of binary files | |
CN102981884B (zh) | 序列化装置和序列化方法 | |
JP2007534087A (ja) | 部分的クエリーキャッシング | |
CN107590139B (zh) | 一种基于循环矩阵翻译的知识图谱表示学习方法 | |
CN103488759A (zh) | 一种根据关键词搜索应用程序的方法和装置 | |
US11341415B2 (en) | Method and apparatus for compressing neural network | |
CN110837393A (zh) | 一种固件差分升级包的制作方法及装置、可读存储介质 | |
CN103995854A (zh) | 一种设备跨版本升级方法和装置 | |
CN104904167A (zh) | 通信网络中对于分组处理的高性能基于哈希的查找 | |
CN105677686A (zh) | 一种道路编码方法及装置 | |
US20230409921A1 (en) | Multi-node distributed training method and apparatus, device and readable medium | |
CN106664101A (zh) | 自适应速率压缩散列处理装置 | |
CN103793245B (zh) | 一种嵌入式系统更新中增量文件的生成方法 | |
CN109408682A (zh) | 一种正则表达式匹配的方法、系统及设备 | |
CA2588001A1 (en) | Method and system for incremental patching of binary files | |
CN103780263B (zh) | 数据压缩装置、数据压缩方法及记录介质 | |
US20120066465A1 (en) | Techniques for resolving read-after-write (raw) conflicts using backup area | |
CN108667875B (zh) | 信息更新方法和装置 | |
CN106569986B (zh) | 字符串替换方法和装置 | |
CN104317950B (zh) | 代码的合规检查方法及装置 | |
CN114025024B (zh) | 一种数据传输方法及装置 | |
CN110955712A (zh) | 基于多数据源的开发api处理方法及装置 | |
CN106202523A (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 |