CN112835727B - 一种基于aop的跨进程通信的方法及装置 - Google Patents
一种基于aop的跨进程通信的方法及装置 Download PDFInfo
- Publication number
- CN112835727B CN112835727B CN202110125095.XA CN202110125095A CN112835727B CN 112835727 B CN112835727 B CN 112835727B CN 202110125095 A CN202110125095 A CN 202110125095A CN 112835727 B CN112835727 B CN 112835727B
- Authority
- CN
- China
- Prior art keywords
- aop
- cross
- process communication
- return value
- point surrounding
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- 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
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephone Function (AREA)
- Mobile Radio Communication Systems (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供的一种基于AOP的跨进程通信的方法及装置,通过将所有需要跨进程通信的方法使用注解进行标记,并设置AOP切点环绕通知,用于收集需要跨进程通信的方法对应的方法信息,废弃原本繁琐的实现方式,只需要在对应方法上使用注解的方式,即可使该方法拥有跨进程通信的能力,不仅实现了非入侵式跨进程,还简化了跨进程通信的实现过程,提高跨进程通信的效率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种基于AOP的跨进程通信的方法及装置。
背景技术
常规的跨进程方式是每遇到一个方法,编写一套AIDL的跨进程方法,然后修改原方法的结构,插入跨进程的处理逻辑。这种方式遇到有大量方法需要进行跨进程处理的时候就显得十分繁琐、费时、不友好,属于侵入式的跨进程通信方法。
发明内容
(一)要解决的技术问题
为了解决现有技术的上述问题,本发明提供一种基于AOP的跨进程通信的方法及装置,能够实现非入侵式跨进程,并简化跨进程通信的实现过程,提高跨进程通信的效率。
(二)技术方案
为了达到上述目的,本发明采用的一种技术方案为:
一种基于AOP的跨进程通信的方法,包括步骤:
S1、将所有需要跨进程通信的方法使用注解进行标记,并设置AOP切点环绕通知,用于收集需要跨进程通信的方法对应的方法信息;
S2、当被标记的方法被调用,AOP切点环绕通知收到回调时,将判断当前被调用的方法所处进程是否为主进程,若否,则将收集到的方法对应的方法信息进行组装转换后,并将转换后的数据传递至主进程;
S3、所述主进程对接收到的数据进行解析,得到返回值,并将所述返回值传递至所述AOP切点环绕通知中;
S4、所述AOP切点环绕通知根据接收到的返回值进行相应的处理,完成跨进程通信。
为了达到上述目的,本发明采用的另一种技术方案为:
一种基于AOP的跨进程通信的装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
S1、将所有需要跨进程通信的方法使用注解进行标记,并设置AOP切点环绕通知,用于收集需要跨进程通信的方法对应的方法信息;
S2、当被标记的方法被调用,AOP切点环绕通知收到回调时,将判断当前被调用的方法所处进程是否为主进程,若否,则将收集到的方法对应的方法信息进行组装转换后,并将转换后的数据传递至主进程;
S3、所述主进程对接收到的数据进行解析,得到返回值,并将所述返回值传递至所述AOP切点环绕通知中;
S4、所述AOP切点环绕通知根据接收到的返回值进行相应的处理,完成跨进程通信。
(三)有益效果
本发明的有益效果在于:通过将所有需要跨进程通信的方法使用注解进行标记,并设置AOP切点环绕通知,用于收集需要跨进程通信的方法对应的方法信息,废弃原本繁琐的实现方式,只需要在对应方法上使用注解的方式,即可使该方法拥有跨进程通信的能力,不仅实现了非入侵式跨进程,还简化了跨进程通信的实现过程,提高跨进程通信的效率。
附图说明
图1为本发明实施例的基于AOP的跨进程通信的方法流程图;
图2为本发明实施例的基于AOP的跨进程通信的装置的整体结构示意图。
【附图标记说明】
1:基于AOP的跨进程通信的装置;
2:存储器;
3:处理器。
具体实施方式
为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
实施例一
请参照图1,一种基于AOP的跨进程通信的方法,包括步骤:
S1、将所有需要跨进程通信的方法使用注解进行标记,并设置AOP切点环绕通知,用于收集需要跨进程通信的方法对应的方法信息;
所述需要跨进程通信的方法包括静态方法和单例方法。
S2、当被标记的方法被调用,AOP切点环绕通知收到回调时,将判断当前被调用的方法所处进程是否为主进程,若否,则将收集到的方法对应的方法信息进行组装转换后,并将转换后的数据传递至主进程;
所述的将收集到的方法对应的方法信息进行组装转换后,并将转换后的数据传递至主进程具体为:
先将收集到的方法对应的方法信息组装成MethodItem对象,再将该对象转换成JSON字符串,并所述JSON字符串传递至主进程。
S3、所述主进程对接收到的数据进行解析,得到返回值,并将所述返回值传递至所述AOP切点环绕通知中;
步骤S3具体为:
所述主进程将接收到的JSON字符串转换为相应的MethodItem对象,并根据该MethodItem对象中保存的方法信息,使用反射执行相应的对应方法,同时得到返回值,并将所述返回值传递至所述AOP切点环绕通知中。
S4、所述AOP切点环绕通知根据接收到的返回值进行相应的处理,完成跨进程通信。
步骤S4具体为:
所述AOP切点环绕通知接收到返回值后,判断当前被调用方法的返回类型,若返回类型为“viod”类型或返回值为空,则返回空值到当前被调用的方法,完成跨进程通信,否则,将所述主进程解析得到的返回值,返回至当前被调用的方法,完成跨进程通信。
实施例二
本实施例和实施例一的区别在于,本实施例将结合具体的应用场景,进一步说明本发明上述基于AOP的跨进程通信的方法是如何实现的:
1、将所有需要跨进程通信的静态方法和单例方法使用注解进行标记,如果是单例方法,则需要将单例的实例获取方法名传递给注解参数instance;
2、引入适合Android的AOP框架AspectJ;
3、新建切面类,并且标注切面注解@Aspect;
4、设置AOP切点环绕通知@Around,用于收集需要跨进程通信的方法对应的方法信息;
具体地,本发明中的注解本身跟AOP没有关联,AOP设置切点环绕通知的时候可以设置切入规则(也就是拦截规则),而切入规则设置成上述定义的注解所标注的所有方法,最终达到只拦截注解所标注的方法的目的。
5、当被标记的方法被调用,AOP切点环绕通知收到回调时,将判断当前被调用的方法所处进程是否为主进程,若否,则先将收集到的方法对应的方法信息组装成MethodItem对象,再将该对象转换成JSON字符串。
如果是主进程,则调用ProceedingJoinPoint对象的proceed方法,结束本次流程。
6、将所述JSON字符串通过ContentProvider传递至主进程;
ContentProvider为跨进程通信的通道。
7、所述主进程将接收到的JSON字符串转换为相应的MethodItem对象,并根据该MethodItem对象中保存的方法信息,使用反射执行相应的对应方法,同时得到返回值,并将所述返回值传递至所述AOP切点环绕通知中。
具体地,该MethodItem对象中保存的方法信息包括类名、单例获取方式、方法名、参数、参数类型;
8、所述AOP切点环绕通知接收到返回值后,判断当前被调用方法的返回类型,若返回类型为“viod”类型或返回值为空,则返回空值到当前被调用的方法,完成跨进程通信,否则,将所述主进程解析得到的返回值,返回至当前被调用的方法,完成跨进程通信。
实施例三
请参照图2,一种基于AOP的跨进程通信的装置1,包括存储器2、处理器3及存储在存储器2上并可在处理器3上运行的计算机程序,所述处理器3执行所述程序时实现实施例一中的各个步骤。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (4)
1.一种基于AOP的跨进程通信的方法,其特征在于,包括步骤:
S1、将所有需要跨进程通信的方法使用注解进行标记,并设置AOP切点环绕通知,用于收集需要跨进程通信的方法对应的方法信息;
S2、当被标记的方法被调用,AOP切点环绕通知收到回调时,将判断当前被调用的方法所处进程是否为主进程,若否,则将收集到的方法对应的方法信息进行组装转换后,并将转换后的数据传递至主进程;
S3、所述主进程对接收到的数据进行解析,得到返回值,并将所述返回值传递至所述AOP切点环绕通知中;
S4、所述AOP切点环绕通知根据接收到的返回值进行相应的处理,完成跨进程通信;
所述的将收集到的方法对应的方法信息进行组装转换后,并将转换后的数据传递至主进程具体为:
先将收集到的方法对应的方法信息组装成MethodItem对象,再将该对象转换成JSON字符串,并所述JSON字符串传递至主进程;
步骤S3具体为:
所述主进程将接收到的JSON字符串转换为相应的MethodItem对象,并根据该MethodItem对象中保存的方法信息,使用反射执行相应的对应方法,同时得到返回值,并将所述返回值传递至所述AOP切点环绕通知中;
步骤S4具体为:
所述AOP切点环绕通知接收到返回值后,判断当前被调用方法的返回类型,若返回类型为“viod”类型或返回值为空,则返回空值到当前被调用的方法,完成跨进程通信,否则,将所述主进程解析得到的返回值,返回至当前被调用的方法,完成跨进程通信。
2.根据权利要求1所述的基于AOP的跨进程通信的方法,其特征在于,所述需要跨进程通信的方法包括静态方法和单例方法。
3.一种基于AOP的跨进程通信的装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现以下步骤:
S1、将所有需要跨进程通信的方法使用注解进行标记,并设置AOP切点环绕通知,用于收集需要跨进程通信的方法对应的方法信息;
S2、当被标记的方法被调用,AOP切点环绕通知收到回调时,将判断当前被调用的方法所处进程是否为主进程,若否,则将收集到的方法对应的方法信息进行组装转换后,并将转换后的数据传递至主进程;
S3、所述主进程对接收到的数据进行解析,得到返回值,并将所述返回值传递至所述AOP切点环绕通知中;
S4、所述AOP切点环绕通知根据接收到的返回值进行相应的处理,完成跨进程通信;
所述的将收集到的方法对应的方法信息进行组装转换后,并将转换后的数据传递至主进程具体为:
先将收集到的方法对应的方法信息组装成MethodItem对象,再将该对象转换成JSON字符串,并所述JSON字符串传递至主进程;
步骤S3具体为:
所述主进程将接收到的JSON字符串转换为相应的MethodItem对象,并根据该MethodItem对象中保存的方法信息,使用反射执行相应的对应方法,同时得到返回值,并将所述返回值传递至所述AOP切点环绕通知中;
步骤S4具体为:
所述AOP切点环绕通知接收到返回值后,判断当前被调用方法的返回类型,若返回类型为“viod”类型或返回值为空,则返回空值到当前被调用的方法,完成跨进程通信,否则,将所述主进程解析得到的返回值,返回至当前被调用的方法,完成跨进程通信。
4.根据权利要求3所述的基于AOP的跨进程通信的装置,其特征在于,所述需要跨进程通信的方法包括静态方法和单例方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110125095.XA CN112835727B (zh) | 2021-01-29 | 2021-01-29 | 一种基于aop的跨进程通信的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110125095.XA CN112835727B (zh) | 2021-01-29 | 2021-01-29 | 一种基于aop的跨进程通信的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112835727A CN112835727A (zh) | 2021-05-25 |
CN112835727B true CN112835727B (zh) | 2023-05-30 |
Family
ID=75931068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110125095.XA Active CN112835727B (zh) | 2021-01-29 | 2021-01-29 | 一种基于aop的跨进程通信的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112835727B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678135A (zh) * | 2013-12-25 | 2014-03-26 | 普元信息技术股份有限公司 | 大数据环境下实现跨进程与跨线程调试的系统与方法 |
CN103853621A (zh) * | 2012-12-05 | 2014-06-11 | 腾讯科技(深圳)有限公司 | 一种跨进程交互方法及相关终端设备 |
CN106775970A (zh) * | 2016-12-01 | 2017-05-31 | 掌阅科技股份有限公司 | 跨进程的窗口操作同步方法、装置及电子设备 |
CN109032825A (zh) * | 2018-06-06 | 2018-12-18 | 阿里巴巴集团控股有限公司 | 一种故障注入方法、装置及设备 |
CN111880866A (zh) * | 2020-07-30 | 2020-11-03 | 广州华多网络科技有限公司 | 跨进程回调执行方法、装置、设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102469035B (zh) * | 2010-11-05 | 2016-01-20 | 腾讯科技(深圳)有限公司 | 跨进程通信的方法和装置 |
US9213571B2 (en) * | 2012-06-06 | 2015-12-15 | 2236008 Ontario Inc. | System and method for changing abilities of a process |
US10582051B2 (en) * | 2018-07-31 | 2020-03-03 | At&T Intellectual Property I, L.P. | Communications network for screening and selectively blocking private calls |
-
2021
- 2021-01-29 CN CN202110125095.XA patent/CN112835727B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103853621A (zh) * | 2012-12-05 | 2014-06-11 | 腾讯科技(深圳)有限公司 | 一种跨进程交互方法及相关终端设备 |
CN103678135A (zh) * | 2013-12-25 | 2014-03-26 | 普元信息技术股份有限公司 | 大数据环境下实现跨进程与跨线程调试的系统与方法 |
CN106775970A (zh) * | 2016-12-01 | 2017-05-31 | 掌阅科技股份有限公司 | 跨进程的窗口操作同步方法、装置及电子设备 |
CN109032825A (zh) * | 2018-06-06 | 2018-12-18 | 阿里巴巴集团控股有限公司 | 一种故障注入方法、装置及设备 |
CN111880866A (zh) * | 2020-07-30 | 2020-11-03 | 广州华多网络科技有限公司 | 跨进程回调执行方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112835727A (zh) | 2021-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20130081001A1 (en) | Immediate delay tracker tool | |
CN107239392B (zh) | 一种测试方法、装置、终端及存储介质 | |
CN108418874B (zh) | 跨广域网数据回导方法、装置、计算机设备及存储介质 | |
CN106341444A (zh) | 数据访问方法和装置 | |
TW200404225A (en) | Dynamic wizard interface system and method | |
CN103150155B (zh) | 数据拦截方法和装置 | |
WO2021036684A1 (zh) | 分布式数据同步方法、装置、设备及可读存储介质 | |
CN112269576A (zh) | 一种组件展示方法、装置、服务器和存储介质 | |
CN115794437A (zh) | 微服务的调用方法、装置、计算机设备及存储介质 | |
CN107885675B (zh) | 一种多功能测量仪器程控命令处理方法 | |
US20090049459A1 (en) | Dynamically converting symbolic links | |
CN112835727B (zh) | 一种基于aop的跨进程通信的方法及装置 | |
CN104239121A (zh) | 显卡重定向系统和利用该系统实现图形显示的方法 | |
CN105740478A (zh) | 一种无刷新实现分页排序表格的方法及装置 | |
CN112883088B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN101819524B (zh) | Rfid阅读器的访问方法及其接口驱动设备 | |
CN109960590A (zh) | 一种优化嵌入式系统诊断打印的方法 | |
WO2024031881A1 (zh) | 一种操作行为识别方法及装置 | |
CN111190587A (zh) | 一种基于jdbc自动生成工程化前端代码的方法及系统 | |
CN115561620A (zh) | 基于grpc的芯片测试方法、芯片测试装置及存储介质 | |
CN110471918A (zh) | 一种关系型数据库同步到区块链的方法及装置 | |
CN110515993B (zh) | 税务数据转换方法及系统 | |
CN107483399A (zh) | 一种在远程过程调用中的信息封装方法及装置 | |
CN114461712A (zh) | 一种多源异构数据源与图数据库导入导出的方法及装置 | |
CN103902895A (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 |