CN104407864B - 一种jni层的算法进行多实例调用的封装方法和系统 - Google Patents
一种jni层的算法进行多实例调用的封装方法和系统 Download PDFInfo
- Publication number
- CN104407864B CN104407864B CN201410691198.2A CN201410691198A CN104407864B CN 104407864 B CN104407864 B CN 104407864B CN 201410691198 A CN201410691198 A CN 201410691198A CN 104407864 B CN104407864 B CN 104407864B
- Authority
- CN
- China
- Prior art keywords
- layers
- class
- jni
- pointer
- java
- 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.)
- Expired - Fee Related
Links
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 95
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000012856 packing Methods 0.000 title claims abstract description 14
- 238000005538 encapsulation Methods 0.000 claims abstract description 17
- 230000003068 static effect Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 6
- 238000010276 construction Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 238000004321 preservation Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- BBEAQIROQSPTKN-UHFFFAOYSA-N pyrene Chemical compound C1=CC=C2C=CC3=CC=CC4=CC=C1C2=C43 BBEAQIROQSPTKN-UHFFFAOYSA-N 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- GVEPBJHOBDJJJI-UHFFFAOYSA-N fluoranthrene Natural products C1=CC(C2=CC=CC=C22)=C3C2=CC=CC3=C1 GVEPBJHOBDJJJI-UHFFFAOYSA-N 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000003340 mental effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Landscapes
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种JNI层的算法进行多实例调用的封装方法和系统。该方法包括:JAVA层创建用于与JNI层通信的接口类;JNI层创建算法库的对象,并为所述对象赋予指针;根据所述指针创建所述接口类的类对象;将所述类对象返回到JAVA层保存。通过在JAVA层创建接口类,在JNI层创建算法库及算法库中的对象,为对象赋予指针,并将指针反馈到JAVA层对应的接口类;在JAVA层调用该对象时,直接获取该对象在算法库中的对象指针即可。该封装方式很方便地实现了JNI多实例的创建与调用,封装简单实用。
Description
技术领域
本发明涉及数据调用领域,尤其涉及一种JNI层的算法进行多实例调用的封装方法和系统。
背景技术
Android系统有时候需要提升执行速度及效率,有些核心的算法,或者在JAVA层执行比较耗时的地方,一般会通过C或者C++来实现部分核心的算法,然后把结果提供给JAVA层,比如对图片进行某些效果处理,在效果处理方面如果能用C++来实现效率和速度都会更快,这样就不可避免地会使用到JNI调用。
在某些场合下可能同时调用JNI的某个算法,这种场景比较多,比如采用JNI实现人脸识别的算法,在图片快速滑动过种中需要进行人脸检测,如果此时检测到人脸的同时此时又去进行人脸编辑(比如美妆)等效果的处理(因为也需要对人脸进行检测),此时就会碰到,如果JNI的算法对象只有单实例时,就会出现只有等第一次人脸检测算法的实例跑完并且销毁该对象时才能进行下一次的人脸识别的算法调用,这样局限性大大提高了。
发明内容
本发明提出了一种JNI层的算法进行多实例调用的封装方法和系统,其通过在JAVA层创建接口类,在JNI层创建算法库及算法库中的对象,为对象赋予指针,并将指针反馈到JAVA层对应的接口类;在JAVA层调用该对象时,直接获取该对象在算法库中的对象指针即可。该封装方式很方便地实现了JNI多实例的创建与调用,封装简单实用。
为实现上述设计,本发明采用以下技术方案:
一方面采用一种JNI层的算法进行多实例调用的封装方法,包括:
JAVA层创建用于与JNI层通信的接口类;
JNI层创建算法库的对象,并为所述对象赋予指针;
根据所述指针创建所述接口类的类对象;
将所述类对象返回到JAVA层保存。
其中,所述接口类中包括一个带参数的构造函数;
所述根据所述指针创建所述接口类的类对象,包括:
通过JNI环境查找到JAVA层中的接口类,获取所述接口类的构造函数;
获取所述对象的指针,将所述指针传到所述构造函数的参数创建一个接口类的类对象。
其中,还包括:
JAVA层调用所述算法库的对象时,基于所述指针通过JNI环境调用算法库中的对象。
其中,所述构造函数的参数的类型为INT型参数。
其中,所述JAVA层的初始化方法为静态方法。
另一方面采用一种JNI层的算法进行多实例调用的封装系统,包括:
接口类创建单元,用于JAVA层创建用于与JNI层通信的接口类;
算法库创建单元,用于JNI层创建算法库的对象,并为所述对象赋予指针;
类对象创建单元,用于根据所述指针创建所述接口类的类对象;
保存封装单元,用于将所述将所述类对象返回到JAVA层保存。
其中,所述接口类中包括一个带参数的构造函数;
所述类对象创建单元,包括:
接口通信模块,用于通过JNI环境查找到JAVA层中的接口类,获取所述接口类的构造函数;
类对象创建模块,用于获取所述对象的指针,将所述指针传到所述构造函数的参数创建一个接口类的类对象。
其中,还包括:
算法调用单元,用于JAVA层调用所述算法库的对象时,基于所述指针通过JNI环境调用算法库中的对象。
其中,所述构造函数的参数的类型为INT型参数。
其中,所述JAVA层的初始化方法为静态方法。
本发明的有益效果在于:通过在JAVA层创建接口类,在JNI层创建算法库及算法库中的对象,为对象赋予指针,并将指针反馈到JAVA层对应的接口类;在JAVA层调用该对象时,直接获取该对象在算法库中的对象指针即可。该封装方式很方便地实现了JNI多实例的创建与调用,封装简单实用。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据本发明实施例的内容和这些附图获得其他的附图。
图1是本发明实施例提供的一种JNI层的算法进行多实例调用的封装方法的第一实施例的方法流程图。
图2是本发明实施例提供的一种JNI层的算法进行多实例调用的封装方法的第二实施例的方法流程图。
图3是本发明实施例提供的一种JNI层的算法进行多实例调用的封装系统的第一实施例的结构方框图。
图4是本发明实施例提供的一种JNI层的算法进行多实例调用的封装系统的第二实施例的结构方框图。
具体实施方式
为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将结合附图对本发明实施例的技术方案作进一步的详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,其是本发明实施例提供的一种JNI层的算法进行多实例调用的封装方法的第一实施例的方法流程图,本方案中的封装方法主要用于计算机程序中的跨语言调用,以实现降低对不同语言的优势利用,提高程序运行的速度和效率。如图所示,该JNI层的算法进行多实例调用的封装方法,包括:
步骤S101:JAVA层创建用于与JNI层通信的接口类。
接口类与对象通过JNI环境实现跨语言的通信。
步骤S102:JNI层创建算法库的对象,并为所述对象赋予指针。
在JNI层创建一个核心算法的对象,例如人脸识别及相关效果处理的算法库,在算法库中的对象会赋予指针以作为JAVA的调用的索引。
步骤S103:根据所述指针创建所述接口类的类对象。
通过JNI环境查找到JAVA层中的接口类,确认该对象即为接口类的目标对象,获取该对象的指针,以备将该指针返回到JAVA层中保存。
步骤S104:将所述类对象返回到JAVA层保存。
JAVA层在接收到该指针之后,将指针与接口类对应保存,在需要调用该对象时,直接通过指针调用即可。
综上所述,通过在JAVA层创建接口类,在JNI层创建算法库及算法库中的对象,为对象赋予指针,并将指针反馈到JAVA层对应的接口类;在JAVA层调用该对象时,直接获取该对象在算法库中的对象指针即可。该封装方式很方便地实现了JNI多实例的创建与调用,封装简单实用。
请参考图2,其是本发明实施例提供的一种JNI层的算法进行多实例调用的封装方法的第二实施例的方法流程图。如图所示,该JNI层的算法进行多实例调用的封装方法,包括:
步骤S201:JAVA层创建用于与JNI层通信的接口类。
所述接口类中包括一个带参数的构造函数。所述接口类中包括一个带参数的构造函数;所述构造函数的参数的类型为INT型参数。所述JAVA层的初始化方法为静态方法。
步骤S202:JNI层创建算法库的对象,并为所述对象赋予指针。
步骤S203:通过JNI环境查找到JAVA层中的接口类,获取所述接口类的构造函数。
步骤S204:获取所述对象的指针,将所述指针传到所述构造函数的参数创建一个接口类的类对象。
步骤S205:将所述类对象返回到JAVA层保存。
步骤S206:JAVA层调用所述算法库的对象时,基于所述指针通过JNI环境调用算法库中的对象。
以下对上述步骤的具体实现方式进行进一步阐述。
1.在JAVA层创建一个接口类,例如类名为BeauFb,此类用于与JNI通信的一些接口,其中有一个初始化接口,也就是INIT接口,返回值是BeauFb的这个类对象,
public static native BeauFb init();
从上面可以看到初始化方法是一个静态方法,类名可以直接调用init这个方法,并且从JNI层会返回一个BeauFb对象。
在JAVA层中为了实现指针的反馈,设计了一个带参数的构造方法,
mNativeFbmain此处定义的类变量就是算法库中对象的指针,具体在本实施例中就是后文中的Fbmain类对象的指针。
2.在JNI层可以会看到init是如何实现创建一个对象并且返回给JAVA层一个BeauFb对象的。在JNI层会先创建一个核心算法的对象,比如人脸识别及相关效果处理的算法库,在init中创建一个这样的对象,如下:
Fbmain*fbmain=new Fbmain(env,clazz);
其实现了创建一个算法库的对象,并把指针赋值给fbmain。
3.以下是实现本方案的关键步骤。在步骤2中的init方法中,会通过JNI环境先去查找到JAVA层的取名为BeauFb的这个类:
gBeauFb_class=env->FindClass("com/beau/BeauFbProcess/BeauFb");
然后获取到BeauFb的类的构造方法:
gBeauFb_constructorMethodID=env->GetMethodID(gBeauFb_class,"<init>","(I)V");
参数的最后一个"(I)V"表示传入一个INT型的变量和Void的返回类型,所以之前在JAVA层的BeauFb中需要创建一个带INT型参数的构造方法,这个很重要,因为带INT型参数的构造函数中,这个INT型参数就是用于记录创建每个人脸识别及效果处理的算法库Fbmain类对象的指针。
再获取构造方法中的成员变量,也就是步骤1中创建的用于保存算法库中的一个对象的指针的mNativeFbmain:
gBeauFb_nativeInstanceID=env->GetFieldID(gBeauFb_class,"mNativeFbmain","I")。
最后将算法库的对象指针用来进行BeauFb类的构造函数的创建:
env->NewObject(gBeauFb_class,gBeauFb_constructorMethodID,static_cast<jint>(reinterpret_cast<uintptr_t>(fbmain)))
这样就构建一个BeauFb类对象,并且传的参数为fbmain指针,这样就可以创建了一个BeauFb类对象,并且与人脸识别的核心算法库的对象指针fbmain有联系了。
JNI层的init方法会返回这个BeauFb类对象到JAVA层,JAVA层可以以这个类对象实现算法库的JNI调用了。
4.在JNI层,可以通过BeauFb类对象实现,通过gBeauFb_nativeInstanceID来获取到当前该BeauFb所管理的Fbmain人脸识别的算心算法库的对象指针,借此就可以操作算法库的人脸识别的一些其它方法了,代码如下,
这样就可以实现JNI多实例的人脸识别算法库的对象了,多实例的关键步骤3,因为步骤3在创建BeauFb这个JAVA类对象时,会把之前创建一个人脸核心算法库的对象的指针传入到JAVA层,这样每个BeauFb JAVA类对象实例时就与同时JNI层创建的人脸核心算法库联系在一起了,这样就可以通过BeauFb对象实例操作JNI层的人脸核心算法库的实例了。
综上所述,通过在JAVA层创建接口类,在JNI层创建算法库及算法库中的对象,为对象赋予指针,并将指针反馈到JAVA层对应的接口类;在JAVA层调用该对象时,直接获取该对象在算法库中的对象指针即可。该封装方式很方便地实现了JNI多实例的创建与调用,封装简单实用。而在具体的指针返回的过程中,通过构造函数基于指针生成接口类的类对象,实现了JAVA层和JNI层之间的对象的关联,封装方便。
以下为本方案一种JNI层的算法进行多实例调用的封装系统的实施例,封装系统的实施例基于封装方法的实施例实现,在封装系统的实施例中未尽的描述,请参考封装方法的实施例。
请参考图3,其是本发明实施例提供的一种JNI层的算法进行多实例调用的封装系统的第一实施例的结构方框图。如图所示,该封装系统包括:
接口类创建单元310,用于JAVA层创建用于与JNI层通信的接口类;
算法库创建单元320,用于JNI层创建算法库的对象,并为所述对象赋予指针;
类对象创建单元330,用于根据所述指针创建所述接口类的类对象;
保存封装单元340,用于将所述将所述类对象返回到JAVA层保存。
综上所述,上述各单元的协同工作,通过在JAVA层创建接口类,在JNI层创建算法库及算法库中的对象,为对象赋予指针,并将指针反馈到JAVA层对应的接口类;在JAVA层调用该对象时,直接获取该对象在算法库中的对象指针即可。该封装方式很方便地实现了JNI多实例的创建与调用,封装简单实用。
请参考图4,其是本发明实施例提供的一种JNI层的算法进行多实例调用的封装系统的第二实施例的结构方框图。如图所示,该封装系统包括:
接口类创建单元310,用于JAVA层创建用于与JNI层通信的接口类;
算法库创建单元320,用于JNI层创建算法库的对象,并为所述对象赋予指针;
类对象创建单元330,用于根据所述指针创建所述接口类的类对象;
保存封装单元340,用于将所述将所述类对象返回到JAVA层保存。
其中,所述接口类中包括一个带参数的构造函数;
所述类对象创建单元330,包括:
接口通信模块331,用于通过JNI环境查找到JAVA层中的接口类,获取所述接口类的构造函数;
类对象创建模块332,用于获取所述对象的指针,将所述指针传到所述构造函数的参数创建一个接口类的类对象。
其中,还包括:
算法调用单元350,用于JAVA层调用所述算法库的对象时,基于所述指针通过JNI环境调用算法库中的对象。
其中,所述构造函数的参数的类型为INT型参数。
其中,所述JAVA层的初始化方法为静态方法。
综上所述,各个单元的协同工作,通过在JAVA层创建接口类,在JNI层创建算法库及算法库中的对象,为对象赋予指针,并将指针反馈到JAVA层对应的接口类;在JAVA层调用该对象时,直接获取该对象在算法库中的对象指针即可。该封装方式很方便地实现了JNI多实例的创建与调用,封装简单实用。而在具体的指针返回的过程中,通过构造函数基于指针生成接口类的类对象,实现了JAVA层和JNI层之间的对象的关联,封装方便。
以上内容仅为本发明的较佳实施例,对于本领域的普通技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种JNI层的算法进行多实例调用的封装方法,其特征在于,包括:
JAVA层创建用于与JNI层通信的接口类;
JNI层创建算法库的对象,并为所述对象赋予指针,其中,所述接口类与所述对象通过JNI环境实现跨语言的通信,所述指针作为JAVA层调用所述对象的索引;
根据所述指针创建所述接口类的类对象;
将所述类对象返回到JAVA层保存;
其中,所述接口类中包括一个带参数的构造函数;
根据所述指针创建所述接口类的类对象,包括:
通过JNI环境查找到JAVA层中的接口类,获取所述接口类的构造函数,所述构造函数的参数的类型为INT型参数;
获取所述对象的指针,将所述指针传到所述构造函数的参数创建一个接口类的类对象。
2.根据权利要求1所述的一种JNI层的算法进行多实例调用的封装方法,其特征在于,还包括:
JAVA层调用所述算法库的对象时,基于所述指针通过JNI环境调用算法库中的对象。
3.根据权利要求1所述的一种JNI层的算法进行多实例调用的封装方法,其特征在于,所述JAVA层的初始化方法为静态方法。
4.一种JNI层的算法进行多实例调用的封装系统,其特征在于,包括:
接口类创建单元,用于JAVA层创建用于与JNI层通信的接口类;
算法库创建单元,用于JNI层创建算法库的对象,并为所述对象赋予指针,其中,所述接口类与所述对象通过JNI环境实现跨语言的通信,所述指针作为JAVA层调用所述对象的索引;
类对象创建单元,用于根据所述指针创建所述接口类的类对象;
保存封装单元,用于将所述类对象返回到JAVA层保存;
其中,所述接口类中包含一个带参数的构造函数;
所述类对象创建单元,包括:
接口通信模块,用于通过JNI环境查找到JAVA层中的接口类,获取所述接口类的构造函数,所述构造函数的参数的类型为INT型参数;
类对象创建模块,用于获取所述对象的指针,将所述指针传到所述构造函数的参数创建一个接口类的类对象。
5.根据权利要求4所述的一种JNI层的算法进行多实例调用的封装系统,其特征在于,还包括:
算法调用单元,用于JAVA层调用所述算法库的对象时,基于所述指针通过JNI环境调用算法库中的对象。
6.根据权利要求4所述的一种JNI层的算法进行多实例调用的封装系统,其特征在于,所述JAVA层的初始化方法为静态方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410691198.2A CN104407864B (zh) | 2014-11-25 | 2014-11-25 | 一种jni层的算法进行多实例调用的封装方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410691198.2A CN104407864B (zh) | 2014-11-25 | 2014-11-25 | 一种jni层的算法进行多实例调用的封装方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104407864A CN104407864A (zh) | 2015-03-11 |
CN104407864B true CN104407864B (zh) | 2018-02-02 |
Family
ID=52645497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410691198.2A Expired - Fee Related CN104407864B (zh) | 2014-11-25 | 2014-11-25 | 一种jni层的算法进行多实例调用的封装方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104407864B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109800057A (zh) * | 2019-01-18 | 2019-05-24 | 杭州复杂美科技有限公司 | 对象调用方法、设备和存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109373524B (zh) * | 2018-11-30 | 2020-11-24 | 青岛海信日立空调系统有限公司 | 空调接入云端的协议转换方法、系统及空调系统 |
CN112416312B (zh) * | 2019-08-22 | 2024-06-07 | 腾讯科技(深圳)有限公司 | 一种对象获取方法、装置及电子设备、存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103093136A (zh) * | 2012-12-27 | 2013-05-08 | 飞天诚信科技股份有限公司 | 一种java应用访问智能密钥装置的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7350197B2 (en) * | 2003-08-19 | 2008-03-25 | Toshiba Corporation | Method and apparatus for object-to-object Java Native Interface mapping |
-
2014
- 2014-11-25 CN CN201410691198.2A patent/CN104407864B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103093136A (zh) * | 2012-12-27 | 2013-05-08 | 飞天诚信科技股份有限公司 | 一种java应用访问智能密钥装置的方法 |
Non-Patent Citations (1)
Title |
---|
《JNI学习积累之三 ---- 操作JNI函数以及复杂对象传递》;qinjuning;《http://blog.csdn.net/qinjuning/article/details/7607214》;20120527;第1-9页 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109800057A (zh) * | 2019-01-18 | 2019-05-24 | 杭州复杂美科技有限公司 | 对象调用方法、设备和存储介质 |
CN109800057B (zh) * | 2019-01-18 | 2021-06-01 | 杭州复杂美科技有限公司 | 对象调用方法、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104407864A (zh) | 2015-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9183032B2 (en) | Method and system for migration of multi-tier virtual application across different clouds hypervisor platforms | |
EP3449618B1 (en) | Service graph based serverless cloud platform | |
US8694777B2 (en) | Securely identifying host systems | |
US10698791B2 (en) | Handling request data with type safety in a remote service | |
CN104407864B (zh) | 一种jni层的算法进行多实例调用的封装方法和系统 | |
CN110727504B (zh) | 代码执行方法、装置和渲染设备 | |
CN110058864A (zh) | 微服务的部署方法及装置 | |
WO2020248383A1 (zh) | 基于跨平台的数据处理方法、装置及计算机设备 | |
WO2023165471A1 (zh) | 一种云平台应用部署方法、装置、电子设备及存储介质 | |
CN105975277A (zh) | 一种基于模板的混合云弹性伸缩组构建方法 | |
CN107888673A (zh) | 一种适用于异构云平台的统一管理实现方法 | |
CN112181542A (zh) | 功能调用方法、装置、电子设备及存储介质 | |
CN106462569A (zh) | 结构化的自然语言表示 | |
CN112540805B (zh) | 集成项目打包方法、装置、设备、存储介质以及程序产品 | |
CN110764779B (zh) | 封装方法、注册方法、装置和渲染设备 | |
CN112947916A (zh) | 用于实现在线画布的方法、装置、设备以及存储介质 | |
CN112905270B (zh) | 工作流实现方法、装置、平台、电子设备以及存储介质 | |
CN113157281B (zh) | 开发环境的创建方法、装置、电子设备和存储介质 | |
US11221861B2 (en) | Systems and methods for facilitating real-time analytics | |
CN113360407B (zh) | 函数的定位方法、装置、电子设备及可读存储介质 | |
CN113590086B (zh) | 快速开发软件的方法、计算机设备、及存储介质 | |
CN113378166B (zh) | 调用操作系统的应用程序接口api的方法和装置 | |
CN107402565A (zh) | 一种用于规范物联网硬件感知层反馈信息的方法及装置 | |
EP4030735A1 (en) | Method of data interaction, data interaction apparatus, electronic device and non-transitory computer readable storage medium | |
CN117591145A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18 Patentee after: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd. Address before: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18 Patentee before: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd. |
|
CP01 | Change in the name or title of a patent holder | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180202 |
|
CF01 | Termination of patent right due to non-payment of annual fee |