CN106547631A - 基于安卓平台的跨进程通信方法和装置 - Google Patents
基于安卓平台的跨进程通信方法和装置 Download PDFInfo
- Publication number
- CN106547631A CN106547631A CN201610852726.7A CN201610852726A CN106547631A CN 106547631 A CN106547631 A CN 106547631A CN 201610852726 A CN201610852726 A CN 201610852726A CN 106547631 A CN106547631 A CN 106547631A
- Authority
- CN
- China
- Prior art keywords
- striding course
- primary
- data
- target
- call
- 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.)
- Granted
Links
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
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于安卓平台的跨进程通信方法和装置,包括:第一进程的第一统一接入层中的第一统一方法响应于业务层发出的对任意一个原生跨进程方法的调用指令,生成跨进程调用请求,并将其向与请求调用的目标原生跨进程方法对应的第二进程发送;第二进程的第二统一接入层中的第二统一方法根据该请求获取目标原生跨进程方法的标识和入参;第二统一方法根据目标原生跨进程方法的标识和入参从第二进程中确定出对应的目标原生跨进程方法,根据目标原生跨进程方法获取对应调用数据,并将调用数据返回至第一统一方法;第一统一方法将调用数据返回至业务层,根据第一统一方法进行与调用数据相关处理操作。提高了跨进程方法的可扩展性和扩展效率。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种基于安卓平台的跨进程通信方法和装置。
背景技术
对于安卓***而言,当一个应用存在多个进程时,由于操作***的限制,各个进程之间的内存数据是不互通的。当进程之间需要访问彼此的数据时,就需要通过跨进程通信的方式,比如,通过调用跨进程方法,来进行跨进程数据调用。
然而,安卓原生定义一个跨进程方法时,是需要在AIDL(Android Interfacedefinition language,是一种接口描述语言,用于生成可以在Android设备上两个进程之间进行进程间通信(interprocess communication,IPC)的代码)文件中声明函数,然后通过编译器把AIDL文件里的函数声明按照固定的模板生成对应的代码。这样一来,由于安卓***原生模板是固定的,如果想对安卓原生定义的所有跨进程方法进行统一修改(比如,统一新增一个缓存功能、或者统一新增一个调用测速功能)时,就需要一一修改各个跨进程方法的具体实现逻辑,显然,传统的跨进程方法很不容易扩展。
发明内容
基于此,有必要针对上述问题,提供一种能够便于扩展的基于安卓平台的跨进程通信方法和装置。
一种基于安卓平台的跨进程通信方法,所述方法包括以下步骤:
第一进程的第一统一接入层中的第一统一方法响应于业务层发出的对任意一个原生跨进程方法的调用指令,生成跨进程调用请求,将所述跨进程调用请求向与所请求调用的目标原生跨进程方法对应的第二进程进行发送;
所述第二进程的第二统一接入层中的第二统一方法根据所述跨进程调用请求获取所述目标原生跨进程方法的标识和所述目标原生跨进程方法的入参;
所述第二统一方法根据所述目标原生跨进程方法的标识和所述目标原生跨进程方法的入参从所述第二进程中确定出对应的所述目标原生跨进程方法,根据所述确定出的目标原生跨进程方法获取对应的调用数据,并将所述调用数据返回至所述第一统一方法;
所述第一统一方法将所述调用数据返回至所述业务层,以及根据所述第一统一方法进行与所述调用数据相关的处理操作。
一种基于安卓平台的跨进程通信装置,所述装置包括:
跨进程调用请求模块,用于通过第一进程的第一统一接入层中的第一统一方法响应于业务层发出的对任意一个原生跨进程方法的调用指令,生成跨进程调用请求,将所述跨进程调用请求向与所请求调用的目标原生跨进程方法对应的第二进程进行发送;
原生方法数据获取模块,用于通过所述第二进程的第二统一接入层中的第二统一方法根据所述跨进程调用请求获取所述目标原生跨进程方法的标识和所述目标原生跨进程方法的入参;
调用数据获取模块,用于通过所述第二统一方法根据所述目标原生跨进程方法的标识和所述目标原生跨进程方法的入参从所述第二进程中确定出对应的所述目标原生跨进程方法,根据所述确定出的目标原生跨进程方法获取对应的调用数据,并将所述调用数据返回至所述第一统一方法;
统一方法处理模块,用于通过所述第一统一方法将所述调用数据返回至所述业务层,以及根据所述第一统一方法进行与所述调用数据相关的处理操作。
上述基于安卓平台的跨进程通信方法和装置,第一进程的第一统一接入层中的第一统一方法响应于业务层发出的对任意一个原生跨进程方法的调用指令,生成跨进程调用请求,将跨进程调用请求向与所请求调用的目标原生跨进程方法对应的第二进程进行发送;第二进程的第二统一接入层中的第二统一方法根据跨进程调用请求获取目标原生跨进程方法的标识和目标原生跨进程方法的入参;第二统一方法根据目标原生跨进程方法的标识和目标原生跨进程方法的入参从第二进程中确定出对应的目标原生跨进程方法,根据确定出的目标原生跨进程方法获取对应的调用数据,并将调用数据返回至第一统一方法;第一统一方法将调用数据返回至业务层,以及根据第一统一方法进行与调用数据相关的处理操作。即相当于在进程中增加了一个统一接入层,在统一接入层中设置统一方法,通过统一方法来完成原生跨进程方法的调用的同时,也能够使用该统一方法来对调用数据进行别的对应处理。而不需要一一修改各个跨进程方法来加入新的方法和功能,提高了跨进程方法的可扩展性,以及提高了扩展效率。
附图说明
图1为一个实施例中终端的内部结构示意图;
图2为一个实施例中基于安卓平台的跨进程通信方法的流程示意图;
图3为一个实施例中进程间通信的架构图;
图4为一个实施例中跨进程调用请求方法的流程示意图;
图5为一个实施例中缓存检测方法的流程示意图;
图6为一个实施例中调用数据状态监听方法的流程示意图;
图7为一个实施例中基于安卓平台的跨进程通信装置的结构示意图;
图8为一个实施例中跨进程调用请求模块的结构示意图;
图9为另一个实施例中基于安卓平台的跨进程通信装置的结构示意图;
图10为又一个实施例中基于安卓平台的跨进程通信装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在一个实施例中,提供了一种终端,该终端的内部结构如图1所示,包括通过***总线连接的处理器、内存储器、非易失性存储介质、网络接口、显示屏和输入装置。其中,该终端的非易失性存储介质存储有操作***,还包括一种基于安卓平台的跨进程通信装置,该基于安卓平台的跨进程通信装置用于实现一种基于安卓平台的跨进程通信方法。该处理器用于提供计算和控制能力,支撑整个终端的运行。终端中的内存储器为非易失性存储介质中的基于安卓平台的跨进程通信装置的运行提供环境,该内存储器中存有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种基于安卓平台的跨进程通信方法。网络接口用于连接到网络进行通信。终端的显示屏可以是液晶显示屏或者电子墨水显示屏等,输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,也可以是外接的键盘、触控板或鼠标等。该终端可以是手机、平板电脑、笔记本电脑、台式计算机等。本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
如图2所示,提供了一种基于安卓平台的跨进程通信方法,现以该方法应用于上述图1中的终端来举例说明。该方法具体包括如下步骤:
步骤202,第一进程的第一统一接入层中的第一统一方法响应于业务层发出的对任意一个原生跨进程方法的调用指令,生成跨进程调用请求,将该跨进程调用请求向与所请求调用的目标原生跨进程方法对应的第二进程进行发送。
可以理解,方法指封装在类里面的函数,它主要强调这个类的对象封装了一些变量和函数,并向外提供服务。
跨进程方法,指在一个进程中声明了的一个方法,调用这个方法能够直接/间接地调用到另一个进程的方法,从而能够访问到另一个进程中的内存数据。
可以理解,一个进程中的跨进程方法即相当于另一个进程中对应的跨进程方法的代理。当对一个进程中的跨进程方法进行调用时,实际上是调用另一个进程中与该跨进程方法相同的一个方法。比如,进程A中有跨进程方法1和方法2,进程B中有跨进程方法1和方法2,进程A调用其自身的方法1时,会实际调用到进程B中对应的方法1,即进程A中的跨进程方法1相当于进程B中的方法1的代理。
进一步,本实施例中,跨进程方法包含原生跨进程方法和统一方法。
原生跨进程方法,指根据安卓的原生定义,在AIDL(Android Interfacedefinition language,是一种接口描述语言,用于生成可以在Android设备上两个进程之间进行进程间通信(interprocess communication,IPC)的代码)文件中声明函数,然后通过编译器把AIDL文件里的函数声明按照固定的模板生成对应的代码。即由安卓原生定义的方法,需要通过AIDL语言来描述,并进一步编译生成。
本实施例中,在进程中新增了一个统一接入层,并于统一接入层中设置了统一方法。这里的统一方法,是指直接通过JAVA语言定义得到的函数代码,在业务层调用任意一个原生跨进程方法时,统一方法都会被触发调用。即该统一方法中所实现的处理及功能,在对任何一个原生跨进程方法进行调用处理时,都会适用。进一步,统一方法可以具备调用测速、缓存调用数据等功能。显然,统一方法的定义与扩展,相较于原生跨进程方法的需要通过AIDL文件声明函数,然后再通过编译器将其按固定模板进行编译来生成JAVA代码这种复杂、繁琐的步骤而言,大大提高了跨进程方法扩展的效率。
需要说明的是,新增的统一接入层和统一方法对上层的业务层是透明的。当终端中的第一进程需要获取第二进程中的内存数据时,第一进程的业务层始终是对原生跨进程方法发出调用指令,对于统一方法中所进行的后续跨进程通信处理,对业务层而言是透明而不可知的,业务层以为后续的操作仍然是由调用原生跨进程方法直接实现的。
如图3所示,为一个实施例中进程间通信的架构图。第一进程A中的业务层请求调用原生跨进程方法f1时,会通过调用第一统一接入层310A中的第一统一方法fa通过Binder跨进程传输来发送跨进程调用请求至第二进程B。第二进程B的第二统一接入层310B中的第二统一方法b将跨进程调用请求分配至对应的目标原生跨进程方法f1。在获取调用数据后,第二进程B会通过第二统一接入层310B中的第二统一方法fb将调用数据返回至第一进程A的第一统一接入层310A中的第一统一方法fa。其中,第一统一方法fa或第二统一方法fb可以具备调用测速、缓存调用数据等功能。
本实施例中,当第一进程的业务层对任意一个原生跨进程方法发出调用指令时,第一进程的第一统一接入层中的第一统一方法响应于该调用指令,生成跨进程调用请求。
进一步,第一统一方法将所生成的跨进程调用请求向与所请求调用的目标原生跨进程方法对应的第二进程进行发送。
可以理解,结合前文所述,当一个进程调用自身的原生跨进程方法时,会实际调用到另一个进程中的该跨进程方法。所以与所调用的目标原生跨进程方法对应的第二进程中包含与该目标原生跨进程方法相同的一个方法。
在一个实施例中,可以是,第一统一方法是根据目标原生跨进程方法的标识和目标原生跨进程方法的入参生成跨进程调用请求。
在另一个实施例中,也可以是,第一统一方法将目标原生跨进程方法的标识和目标原生跨进程方法的入参写入磁盘的文件中,根据该文件的存储路径生成跨进程调用请求。
在又一个实施例中,还可以是,第一统一方法先根据目标原生跨进程方法的标识和目标原生跨进程方法的入参生成第一跨进程调用请求,将第一跨进程调用请求进行发送,当数据量大于预设阈值或发送失败时,再将目标原生跨进程方法的标识和目标原生跨进程方法的入参写入磁盘的文件中,根据该文件的存储路径生成第二跨进程调用请求。
步骤204,第二进程的第二统一接入层中的第二统一方法根据跨进程调用请求获取目标原生跨进程方法的标识和目标原生跨进程方法的入参。
本实施例中,第二进程的第二统一接入层中的第二统一方法在接收到跨进程调用请求后,会根据该跨进程调用请求获取所请求调用的目标原生跨进程方法的标识和目标原生跨进程方法的入参。
其中,目标原生跨进程方法的标识,可以是该方法的名称,也可以是唯一标识该方法的其他标识。目标原生跨进程方法的入参,包括函数的数量和类型等参数。可以理解,根据方法的标识和方法的入参用于唯一确定一个方法。
具体地,可以是,第二统一方法获取跨进程调用请求中包含的目标原生跨进程方法的标识和目标原生跨进程方法的入参。也可以是,第二统一方法获取跨进程调用请求中包含的文件的存储路径,根据该存储路径查找到对应文件,从文件中获取所写入的目标原生跨进程方法的标识和目标原生跨进程方法的入参。
本发明实施例对第二统一方法如何根据跨进程调用请求获取目标原生跨进程方法的标识和目标原生跨进程方法的入参不做限定。
步骤206,第二统一方法根据目标原生跨进程方法的标识和目标原生跨进程方法的入参从第二进程中确定出对应的目标原生跨进程方法,根据确定出的目标原生跨进程方法获取对应的调用数据,并将调用数据返回至第一统一方法。
本实施例中,第二统一方法根据获取的目标原生跨进程方法的标识和目标原生跨进程方法的入参,从第二进程中确定出对应的目标原生跨进程方法。即根据反射机制从第二进程中确定出实际调用的目标原生跨进程方法。
可以理解,结合前文论述,第一进程在调用自身的目标原生跨进程方法的时候,实际上是会调用第二进程中的该目标原生跨进程方法。
进一步,根据确定出的目标原生跨进程方法获取对应的调用数据,并将调用数据返回至第一统一方法。
步骤208,第一统一方法将调用数据返回至业务层,以及根据第一统一方法进行与调用数据相关的处理操作。
本实施例中,第一统一方法将第二统一方法返回的调用数据返回至业务层。并进一步,根据第一统一方法进行与调用数据相关的处理操作。
需要说明的是,与该调用数据相关的处理操作,包含对调用数据本身进行处理,以及与调用数据具有关联关系的处理操作。
进一步,可以是根据第一统一方法将调用数据缓存至第一统一接入层中。也可以是,根据第一统一方法计算获取该调用数据所花费的时长。还可以是进行其他的与调用数据相关的处理操作。本发明实施例对此不做限定。
需要说明的是,第一进程用于表示发起跨进程调用的请求进程,第二进程用于表示响应跨进程调用的响应进程。
现举例对上述步骤进行说明。比如,进程A负责在终端界面上显示当前正在播放的歌曲名称,进程B负责播放歌曲,进程A和进程B中分别都有一个统一接入层,统一接入层中都设置有统一方法,分别为统一方法a和统一方法b。进程A就需要跨进程调用进程B中正在播放的歌曲的名称,那么进程A就会调用其自身的一个原生跨进程方法getSongName(),进程A的统一接入层中的统一方法a就会生成跨进程调用请求向进程B进行发送,进程B中的统一方法b会根据跨进程调用请求获取统一方法a实际所请求调用的原生跨进程方法的名称和入参,然后根据名称和入参确定统一方法a实际所请求调用的是原生跨进程方法getSongName()。则进程B根据getSongName()获取当前正在播放的歌曲名称,然后通过统一方法b将播放的歌曲名称返回至统一方法a。统一方法a将歌曲名称返回至业务层进行歌曲名称的显示。此外,会根据统一方法a进行与该歌曲名称相关的处理操作,比如,将该歌曲名称缓存至进程A的统一接入层中,或者计算此次调用该歌曲名称所花费的时间等等处理操作。
本实施例中,相当于在进程中增加了一个统一接入层,在统一接入层中设置统一方法,通过统一方法来完成原生跨进程方法的调用的同时,也能够使用该统一方法来进行其他的与调用数据相关的处理操作。而不需要一一修改各个原生跨进程方法来加入新的方法和功能,提高了跨进程方法的可扩展性。
如图4所示,在一个实施例中,生成跨进程调用请求,将跨进程调用请求向与所请求调用的目标原生跨进程方法对应的第二进程进行发送的步骤(简称跨进程调用请求的步骤),包括以下步骤:
步骤402,根据所请求调用的目标原生跨进程方法的标识和目标原生跨进程方法的入参生成第一跨进程调用请求。
步骤404,当第一跨进程调用请求的数据量大于预设数据量阈值时或当在发送第一跨进程调用请求的过程中触发生成传输数据量过大的异常错误时,第一统一方法则将第一跨进程调用请求中的目标原生跨进程方法的标识和目标原生跨进程方法的入参写入位于磁盘的文件中。
本实施例中,第一统一方法根据所请求调用的目标原生跨进程方法的标识和目标原生跨进程方法的入参生成第一跨进程调用请求。
在一个实施例中,预先设置了一个数据量阈值。可以将所生成的第一跨进程调用请求的数据量与预设数据量阈值进行比较,当第一跨进程调用请求的数据量大于预设数据量阈值时,第一统一方法会将第一跨进程调用请求中的目标原生跨进程方法的标识和目标原生跨进程方法的入参写入位于磁盘的文件中。
进一步,当第一跨进程调用请求的数据量小于或等于预设数据量阈值时,则将第一跨进程调用操作请求直接通过Binder跨进程传输方式向第二进程进行发送。
在另一个实施例中,可以是将生成的第一跨进程调用请求通过Binder跨进程传输方式(是android***中实现跨进程传输的一种方式)向第二进程进行发送,当在发送过程中,触发生成传输数据量过大的异常错误(TTLE,Transact Too Large Exception,使用Binder跨进程传输的过程中数据量过大而导致的通信错误时抛出的异常错误)时,第一统一方法会将第一跨进程调用请求中的目标原生跨进程方法的标识和目标原生跨进程方法的入参写入位于磁盘的文件中。
步骤406,第一统一方法根据文件的存储路径生成第二跨进程调用请求,将第二跨进程调用请求发送至与目标原生跨进程方法对应的第二进程。
进一步,第一统一方法根据文件的存储路径生成第二跨进程调用请求,并将第二跨进程调用请求发送至与目标原生跨进程方法对应的第二进程。
本实施例中,第二进程的第二统一接入层中的第二统一方法根据跨进程调用请求获取目标原生跨进程方法的标识和目标原生跨进程方法的入参的步骤,包括:第二进程的第二统一接入层中的第二统一方法根据文件的存储路径查找对应的文件,从文件中读取所写入的目标原生跨进程方法的标识和目标原生跨进程方法的入参的步骤。
具体地,第二进程中的第二统一接入层中的第二统一方法在接收到第二跨进程调用请求时,会获取第二跨进程调用请求中包含的文件的存储路径,并根据该文件的存储路径查找对应的文件。进一步,从查找到的文件中读取所写入的目标原生跨进程方法的标识和目标原生跨进程方法的入参。
本实施例中,通过统一方法在发送跨进程调用请求时,针对数据量过大的第一跨进程调用请求,采取将其中用于确定跨进程方法的关键数据写入文件中,将该文件路径传送给与目标原生跨进程方法对应的第二进程,避免了数据量过大而造成的跨进程通信失败。提高了跨进程通信的成功率。
在一个实施例中,在生成跨进程调用请求的步骤之前,还包括检测第一统一接入层中是否缓存有与所请求调用的目标原生跨进程方法对应的调用数据,若是,则直接获取缓存的调用数据作为与目标原生跨进程方法对应的调用数据,若否,则再执行生成跨进程调用请求的步骤。
本实施例中,可以将与所调用的原生跨进程方法对应的调用数据缓存到第一统一接入层中。那么,在生成跨进程调用请求之前,第一统一方法会检测第一统一接入层中是否缓存有与所请求调用的目标原生跨进程方法对应的调用数据。
当第一统一接入层中缓存有与目标原生跨进程方法对应的调用数据时,则直接获取缓存的调用数据作为与此次调用的目标原生跨进程方法对应的调用数据。
当第一统一接入层中没有缓存与目标原生跨进程方法对应的调用数据时,则再执行生成跨进程调用请求的步骤。
结合上述例子,进程A中的统一方法a在生成跨进程调用请求之前,会检测进程A中的统一接入层中是否缓存有歌曲名称,若是,则获取该缓存的歌曲名称作为与此次调用getSongName()方法对应的歌曲名称。若否,则生成跨进程调用请求。
本实施例中,可以对调用数据进行缓存,在生成跨进程调用请求之前,会检测是否缓存了需要获取的调用数据,如果有,则直接获取该缓存的调用数据,如果没有,则再生成跨进程调用请求。即通过调用数据的缓存以及缓存的检测,可以减少跨进程调用的次数,从而节省了资源,且提高了调用数据获取的效率。
如图5所示,在一个实施例中,在生成跨进程调用请求的步骤之前,还包括缓存检测步骤,具体包括以下步骤:
步骤502,检测第一统一接入层中是否缓存有与所请求调用的目标原生跨进程方法对应的调用数据。若是,则进入步骤504,若否,则进入步骤506。
步骤504,检测缓存的调用数据是否已过期。若是,则进入步骤506,若否,则进入步骤508。
步骤506,生成跨进程调用请求。
步骤508,获取缓存的调用数据作为与该目标原生跨进程方法对应的调用数据。
本实施例中,可以将与所调用的原生跨进程方法对应的调用数据缓存到第一统一接入层中。那么,在生成跨进程调用请求之前,第一统一方法会检测第一统一接入层中是否缓存有与所请求调用的目标原生跨进程方法对应的调用数据。
当第一统一接入层中缓存有与目标原生跨进程方法对应的调用数据时,则进一步检测该缓存的调用数据是否已过期。当第一统一接入层中没有缓存与目标原生跨进程方法对应的调用数据时,则执行生成跨进程调用请求的步骤。
具体地,可以通过检测该调用数据的标记状态来检测该缓存的调用数据是否已过期。
当该缓存的调用数据已过期时,则执行生成跨进程调用请求的步骤。当该缓存的调用数据未过期时,则获取该缓存的调用数据作为与该目标原生跨进程方法对应的调用数据。
同样结合上述例子,进程A中的统一方法a在生成跨进程调用请求之前,会检测进程A中的统一接入层中是否缓存有歌曲名称,若是,则进一步检测缓存的歌曲名称是否已过期,若否,则生成跨进程调用请求。当缓存的歌曲名称未过期,则获取该缓存的歌曲名称作为与此次调用getSongName()方法对应的歌曲名称。当缓存的歌曲名称已过期,则生成跨进程调用请求。
本实施例中,可以对调用数据进行缓存,在生成跨进程调用请求之前,会检测是否缓存了需要获取的调用数据,如果有,则进一步检测该缓存的调用数据是否已过期,若未过期,则直接获取该缓存的调用数据,若过期,则再生成跨进程调用请求。即通过调用数据的缓存以及缓存的检测,可以减少跨进程调用的次数,从而节省了资源,提高了调用数据获取的效率。此外,对缓存的调用数据进行过期与否的判断,进一步提高了调用结果的准确性。
如图6所示,在一个实施例中,该方法还包括调用数据状态监听步骤,具体包括以下步骤:
步骤602,第二统一方法监听第二进程中返回至第一进程的调用数据的更新状态。
步骤604,当调用数据发生更新时,第二进程发送更新通知至第一进程。
本实施例中,第二进程在将调用数据返回给第一进程之后,会通过第二方法监听第二进程自身内存中的所返回的该调用数据的更新状态。
当监听到调用数据发生更新时,第二进程会发送更新通知给第一进程。具体地,可以通过第二统一方法发送更新通知给第一进程的第一统一方法。
步骤606,第一进程的第一统一方法根据更新通知将缓存于第一统一接入层中的对应的调用数据标记为已过期状态。
第一进程的第一统一方法在接收到更新通知后,会根据更新通知将缓存于第一统一接入层中的对应的调用数据标记为已过期状态。
进一步,第一进程在检测到该调用数据是已过期状态时,就不会从缓存中获取该调用数据,而是重新生成跨进程调用请求,以获取最新的调用数据。从而提高了获取的调用结果的准确性。
继续结合上述例子,进行举例说明。比如返回给进程A的歌曲名称为SN1,那么,进程B会通过统一方法b监听进程B中歌曲名称SN1的更新状态,当进程B中播放另一首歌曲时,歌曲名称就会由SN1更新为另一首歌曲名称SN2,即返回给进程A的歌曲名称SN1发生了更新。此时,进程B会发送更新通知至进程A。进程A则会通过统一方法a根据该更新通知将缓存于进程A的统一接入层在的歌曲名称SN1标记为已过期状态。
在一个实施例中,当调用数据发生更新时,第二进程发送更新通知至第一进程的步骤,包括:当调用数据发生更新时,第二进程检测调用数据是否处于激活状态,当调用数据处于激活状态时,第二进程发送更新通知至第一进程,当调用数据处于非激活状态时,第二进程不发送更新通知至第一进程的步骤。
本实施例中,当监听到第二进程中返回至第一进程的调用数据发生更新时,第二进程会检测自身内存中的调用数据是否处于激活状态。若是,则发生更新通知至第一进程。若否,则不发送更新通知至第一进程。
其中,调用数据是否处于激活状态,指第一进程是否关心该调用数据的状态变化,当第一进程关心该调用数据的状态变化,则第二进程中的该调用数据处于激活状态。比如,第一进程通过调用目标原生跨进程方法来获取第二进程中的调用数据时,说明第一进程关心该调用数据的状态。
当第一进程不关心该调用数据的状态变化,则第二进程中的该调用数据处于非激活状态。比如,当第二进程接收到第一进程发送的不关心该调用数据状态的通知时,第二进程会将该调用数据标记为非激活状态。
本实施例中,第二进程在向第一进程发送更新通知之前,检测调用数据的激活状态,只有在该调用数据处于激活状态时再发送更新通知给第一进程,而不用每次更新就发送更新通知,避免发送不必要的通知,节省了通信资源。
如图7所示,在一个实施例中,提供了一种基于安卓平台的跨进程通信装置,该装置包括跨进程调用请求模块702、原生方法数据获取模块704、调用数据获取模块706以及统一方法处理模块708,其中:
跨进程调用请求模块702,用于通过第一进程的第一统一接入层中的第一统一方法响应于业务层发出的对任意一个原生跨进程方法的调用指令,生成跨进程调用请求,将跨进程调用请求向与所请求调用的目标原生跨进程方法对应的第二进程进行发送。
原生方法数据获取模块704,用于通过第二进程的第二统一接入层中的第二统一方法根据跨进程调用请求获取目标原生跨进程方法的标识和目标原生跨进程方法的入参。
调用数据获取模块706,用于通过第二统一方法根据目标原生跨进程方法的标识和目标原生跨进程方法的入参从第二进程中确定出对应的目标原生跨进程方法,根据确定出的目标原生跨进程方法获取对应的调用数据,并将调用数据返回至第一统一方法。
统一方法处理模块708,用于通过第一统一方法将调用数据返回至业务层,以及根据第一统一方法进行与调用数据相关的处理操作。
在一个实施例中,统一方法处理模块708还用于根据所述第一统一方法将所述调用数据缓存至所述第一统一接入层中。
如图8所示,在一个实施例中,跨进程调用请求模块702包括:
跨进程调用请求生成模块702a,用于根据所请求调用的目标原生跨进程方法的标识和目标原生跨进程方法的入参生成第一跨进程调用请求。
文件写入模块702b,用于当第一跨进程调用请求的数据量大于预设数据量阈值时或当在发送第一跨进程调用请求的过程中触发生成传输数据量过大的异常错误时,第一统一方法则将第一跨进程调用请求中的目标原生跨进程方法的标识和目标原生跨进程方法的入参写入位于磁盘的文件中。
跨进程调用请求生成模块702a还用于通过第一统一方法根据文件的存储路径生成第二跨进程调用请求,将第二跨进程调用请求发送至与目标原生跨进程方法对应的第二进程。
本实施例中,原生方法数据获取模块704还用于通过第二进程的第二统一接入层中的第二统一方法根据文件的存储路径查找对应的文件,从文件中读取所写入的目标原生跨进程方法的标识和目标原生跨进程方法的入参。
在一个实施例中,原生方法数据获取模块704还用于通过第二进程的第二统一接入层中的第二统一方法获取跨进程调用请求中包含的目标原生跨进程方法的标识和目标原生跨进程方法的入参。
如图9所示,在一个实施例中,该装置还包括:
检测模块701,用于检测第一统一接入层中是否缓存有与所请求调用的目标原生跨进程方法对应的调用数据;当第一统一接入层中缓存有调用数据时,则检测缓存的调用数据是否已过期;当缓存的调用数据已过期时,则再通知跨进程调用请求模块702执行生成跨进程调用请求的步骤。
在一个实施例中,检测模块701还用于当缓存的调用数据未过期时,则获取缓存的调用数据作为与目标原生跨进程方法对应的调用数据。
如图10所示,在一个实施例中,该装置还包括:
通知模块710,用于通过第二统一方法监听第二进程中返回至第一进程的调用数据的更新状态;当调用数据发生更新时,通过第二进程发送更新通知至第一进程。
标记模块712,用于通过第一进程的第一统一方法根据通知模块发送的更新通知将缓存于第一统一接入层中的对应的调用数据标记为已过期状态。
在一个实施例中,通知模块710还用于当调用数据发生更新时,通过第二进程检测调用数据是否处于激活状态;当调用数据处于激活状态时,通过第二进程发送更新通知至第一进程,当调用数据处于非激活状态时,则不发送更新通知至第一进程。
在一个实施例中,跨进程调用请求生成模块702a还用于当第一跨进程调用请求的数据量小于或等于预设数据量阈值时,则将第一跨进程调用操作请求直接通过Binder跨进程传输方式向第二进程进行发送。
需要说明的是,本发明各个实施例中的第一、第二仅用作区分作用,并不用于顺序等方面的限定。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (18)
1.一种基于安卓平台的跨进程通信方法,所述方法包括以下步骤:
第一进程的第一统一接入层中的第一统一方法响应于业务层发出的对任意一个原生跨进程方法的调用指令,生成跨进程调用请求,将所述跨进程调用请求向与所请求调用的目标原生跨进程方法对应的第二进程进行发送;
所述第二进程的第二统一接入层中的第二统一方法根据所述跨进程调用请求获取所述目标原生跨进程方法的标识和所述目标原生跨进程方法的入参;
所述第二统一方法根据所述目标原生跨进程方法的标识和所述目标原生跨进程方法的入参从所述第二进程中确定出对应的所述目标原生跨进程方法,根据所述确定出的目标原生跨进程方法获取对应的调用数据,并将所述调用数据返回至所述第一统一方法;
所述第一统一方法将所述调用数据返回至所述业务层,以及根据所述第一统一方法进行与所述调用数据相关的处理操作。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一统一方法进行与所述调用数据相关的处理操作的步骤,包括:
根据所述第一统一方法将所述调用数据缓存至所述第一统一接入层中。
3.根据权利要求1所述的方法,其特征在于,所述生成跨进程调用请求,将所述跨进程调用请求向与所请求调用的目标原生跨进程方法对应的第二进程进行发送的步骤,包括:
根据所请求调用的目标原生跨进程方法的标识和所述目标原生跨进程方法的入参生成第一跨进程调用请求;
当所述第一跨进程调用请求的数据量大于预设数据量阈值时或当在发送所述第一跨进程调用请求的过程中触发生成传输数据量过大的异常错误时,所述第一统一方法则将所述第一跨进程调用请求中的所述目标原生跨进程方法的标识和所述目标原生跨进程方法的入参写入位于磁盘的文件中;
所述第一统一方法根据所述文件的存储路径生成第二跨进程调用请求,将所述第二跨进程调用请求发送至与所述目标原生跨进程方法对应的第二进程;
所述第二进程的第二统一接入层中的第二统一方法根据所述跨进程调用请求获取所述目标原生跨进程方法的标识和所述目标原生跨进程方法的入参的步骤,包括:
所述第二进程的第二统一接入层中的第二统一方法根据所述文件的存储路径查找对应的所述文件,从所述文件中读取所写入的所述目标原生跨进程方法的标识和所述目标原生跨进程方法的入参。
4.根据权利要求1所述的方法,其特征在于,所述第二进程的第二统一接入层中的第二统一方法根据所述跨进程调用请求获取所述目标原生跨进程方法的标识和所述目标原生跨进程方法的入参的步骤,包括:
所述第二进程的第二统一接入层中的第二统一方法获取所述跨进程调用请求中包含的所述目标原生跨进程方法的标识和所述目标原生跨进程方法的入参。
5.根据权利要求1所述的方法,其特征在于,在所述生成跨进程调用请求的步骤之前,所述方法还包括:
检测所述第一统一接入层中是否缓存有与所请求调用的目标原生跨进程方法对应的调用数据;
当所述第一统一接入层中缓存有所述调用数据时,则检测缓存的所述调用数据是否已过期;
当缓存的所述调用数据已过期时,则再执行所述生成跨进程调用请求的步骤。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
当缓存的所述调用数据未过期时,则获取缓存的所述调用数据作为与所述目标原生跨进程方法对应的调用数据。
7.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述第二统一方法监听所述第二进程中返回至第一进程的所述调用数据的更新状态;
当所述调用数据发生更新时,所述第二进程发送更新通知至所述第一进程;
所述第一进程的所述第一统一方法根据所述更新通知将缓存于所述第一统一接入层中的对应的所述调用数据标记为已过期状态。
8.根据权利要求7所述的方法,其特征在于,所述当所述调用数据发生更新时,所述第二进程发送更新通知至所述第一进程的步骤,包括:
当所述调用数据发生更新时,所述第二进程检测所述调用数据是否处于激活状态;
当所述调用数据处于激活状态时,所述第二进程发送更新通知至所述第一进程,当所述调用数据处于非激活状态时,所述第二进程不发送所述更新通知至所述第一进程。
9.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当所述第一跨进程调用请求的数据量小于或等于预设数据量阈值时,则将所述第一跨进程调用操作请求直接通过Binder跨进程传输方式向所述第二进程进行发送。
10.一种基于安卓平台的跨进程通信装置,其特征在于,所述装置包括:
跨进程调用请求模块,用于通过第一进程的第一统一接入层中的第一统一方法响应于业务层发出的对任意一个原生跨进程方法的调用指令,生成跨进程调用请求,将所述跨进程调用请求向与所请求调用的目标原生跨进程方法对应的第二进程进行发送;
原生方法数据获取模块,用于通过所述第二进程的第二统一接入层中的第二统一方法根据所述跨进程调用请求获取所述目标原生跨进程方法的标识和所述目标原生跨进程方法的入参;
调用数据获取模块,用于通过所述第二统一方法根据所述目标原生跨进程方法的标识和所述目标原生跨进程方法的入参从所述第二进程中确定出对应的所述目标原生跨进程方法,根据所述确定出的目标原生跨进程方法获取对应的调用数据,并将所述调用数据返回至所述第一统一方法;
统一方法处理模块,用于通过所述第一统一方法将所述调用数据返回至所述业务层,以及根据所述第一统一方法进行与所述调用数据相关的处理操作。
11.根据权利要求10所述的装置,其特征在于,所述统一方法处理模块还用于根据所述第一统一方法将所述调用数据缓存至所述第一统一接入层中。
12.根据权利要求10所述的装置,其特征在于,所述跨进程调用请求模块包括:
跨进程调用请求生成模块,用于根据所请求调用的目标原生跨进程方法的标识和所述目标原生跨进程方法的入参生成第一跨进程调用请求;
文件写入模块,用于当所述第一跨进程调用请求的数据量大于预设数据量阈值时或当在发送所述第一跨进程调用请求的过程中触发生成传输数据量过大的异常错误时,所述第一统一方法则将所述第一跨进程调用请求中的所述目标原生跨进程方法的标识和所述目标原生跨进程方法的入参写入位于磁盘的文件中;
所述跨进程调用请求生成模块还用于通过所述第一统一方法根据所述文件的存储路径生成第二跨进程调用请求,将所述第二跨进程调用请求发送至与所述目标原生跨进程方法对应的第二进程;
所述原生方法数据获取模块还用于通过所述第二进程的第二统一接入层中的第二统一方法根据所述文件的存储路径查找对应的所述文件,从所述文件中读取所写入的所述目标原生跨进程方法的标识和所述目标原生跨进程方法的入参。
13.根据权利要求10所述的装置,其特征在于,所述原生方法数据获取模块还用于通过所述第二进程的第二统一接入层中的第二统一方法获取所述跨进程调用请求中包含的所述目标原生跨进程方法的标识和所述目标原生跨进程方法的入参。
14.根据权利要求10所述的装置,其特征在于,所述装置还包括:
检测模块,用于检测所述第一统一接入层中是否缓存有与所请求调用的目标原生跨进程方法对应的调用数据;当所述第一统一接入层中缓存有所述调用数据时,则检测缓存的所述调用数据是否已过期;当缓存的所述调用数据已过期时,则再通知所述跨进程调用请求模块执行所述生成跨进程调用请求的步骤。
15.根据权利要求14所述的装置,其特征在于,所述检测模块还用于当缓存的所述调用数据未过期时,则获取缓存的所述调用数据作为与所述目标原生跨进程方法对应的调用数据。
16.根据权利要求11所述的装置,其特征在于,所述装置还包括:
通知模块,用于通过所述第二统一方法监听所述第二进程中返回至第一进程的所述调用数据的更新状态;当所述调用数据发生更新时,通过所述第二进程发送更新通知至所述第一进程;
标记模块,用于通过所述第一进程的所述第一统一方法根据所述通知模块发送的更新通知将缓存于所述第一统一接入层中的对应的所述调用数据标记为已过期状态。
17.根据权利要求16所述的装置,其特征在于,所述通知模块还用于当所述调用数据发生更新时,通过所述第二进程检测所述调用数据是否处于激活状态;当所述调用数据处于激活状态时,通过所述第二进程发送更新通知至所述第一进程,当所述调用数据处于非激活状态时,则不发送所述更新通知至所述第一进程。
18.根据权利要求12所述的装置,其特征在于,所述跨进程调用请求生成模块还用于当所述第一跨进程调用请求的数据量小于或等于预设数据量阈值时,则将所述第一跨进程调用操作请求直接通过Binder跨进程传输方式向所述第二进程进行发送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610852726.7A CN106547631B (zh) | 2016-09-26 | 2016-09-26 | 基于安卓平台的跨进程通信方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610852726.7A CN106547631B (zh) | 2016-09-26 | 2016-09-26 | 基于安卓平台的跨进程通信方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106547631A true CN106547631A (zh) | 2017-03-29 |
CN106547631B CN106547631B (zh) | 2021-04-20 |
Family
ID=58368076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610852726.7A Active CN106547631B (zh) | 2016-09-26 | 2016-09-26 | 基于安卓平台的跨进程通信方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106547631B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107479958A (zh) * | 2017-08-16 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种基于多核***的进程调度方法及装置 |
CN108021459A (zh) * | 2017-12-01 | 2018-05-11 | 北京麒麟合盛网络技术有限公司 | 跨进程发送打点日志的方法及装置 |
CN108984317A (zh) * | 2018-06-21 | 2018-12-11 | 北京奇虎科技有限公司 | 进程间通信ipc的实现方法和装置 |
CN109002381A (zh) * | 2018-06-29 | 2018-12-14 | Oppo(重庆)智能科技有限公司 | 进程通信监控方法、电子装置及计算机可读存储介质 |
CN109117278A (zh) * | 2018-06-29 | 2019-01-01 | Oppo(重庆)智能科技有限公司 | 一种移动终端及其进程间通信的限制方法、存储介质 |
CN109426570A (zh) * | 2017-08-29 | 2019-03-05 | 阿里巴巴集团控股有限公司 | 一种数据的获取方法、装置及设备 |
CN109815033A (zh) * | 2019-01-24 | 2019-05-28 | 努比亚技术有限公司 | 一种跨进程数据共享方法 |
CN110532045A (zh) * | 2019-09-04 | 2019-12-03 | 深圳市迅雷网络技术有限公司 | 一种跨进程调用方法及相关装置 |
WO2023198103A1 (zh) * | 2022-04-14 | 2023-10-19 | 华为技术有限公司 | 进程间通信方法和电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102624765A (zh) * | 2011-01-28 | 2012-08-01 | 腾讯科技(深圳)有限公司 | 一种智能终端的共享服务调用***和方法 |
CN103645904A (zh) * | 2013-12-20 | 2014-03-19 | 北京京东尚科信息技术有限公司 | 一种接口调用的缓存实现方法 |
CN103902390A (zh) * | 2014-03-12 | 2014-07-02 | 深圳创维-Rgb电子有限公司 | 基于Android的应用层的进程间通信方法及基础应用通信*** |
CN103970601A (zh) * | 2013-02-06 | 2014-08-06 | 北京壹人壹本信息科技有限公司 | 执行操作指令方法和装置 |
CN104268025A (zh) * | 2014-09-30 | 2015-01-07 | 珠海市君天电子科技有限公司 | 一种进程间通信的方法及***、服务器 |
US20150074684A1 (en) * | 2013-09-11 | 2015-03-12 | Cellrox, Ltd. | Techniques for enabling inter-process communication (ipc) among multiple personas in a mobile technology platform |
CN105354081A (zh) * | 2015-11-26 | 2016-02-24 | 北京奇虎科技有限公司 | 同步绑定服务的方法及装置 |
-
2016
- 2016-09-26 CN CN201610852726.7A patent/CN106547631B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102624765A (zh) * | 2011-01-28 | 2012-08-01 | 腾讯科技(深圳)有限公司 | 一种智能终端的共享服务调用***和方法 |
CN103970601A (zh) * | 2013-02-06 | 2014-08-06 | 北京壹人壹本信息科技有限公司 | 执行操作指令方法和装置 |
US20150074684A1 (en) * | 2013-09-11 | 2015-03-12 | Cellrox, Ltd. | Techniques for enabling inter-process communication (ipc) among multiple personas in a mobile technology platform |
CN103645904A (zh) * | 2013-12-20 | 2014-03-19 | 北京京东尚科信息技术有限公司 | 一种接口调用的缓存实现方法 |
CN103902390A (zh) * | 2014-03-12 | 2014-07-02 | 深圳创维-Rgb电子有限公司 | 基于Android的应用层的进程间通信方法及基础应用通信*** |
CN104268025A (zh) * | 2014-09-30 | 2015-01-07 | 珠海市君天电子科技有限公司 | 一种进程间通信的方法及***、服务器 |
CN105354081A (zh) * | 2015-11-26 | 2016-02-24 | 北京奇虎科技有限公司 | 同步绑定服务的方法及装置 |
Non-Patent Citations (3)
Title |
---|
OATHEVIL: "Android中不使用AIDL实现Service的远程调用", 《HTTPS://BLOG.CSDN.NET/OATHEVIL/ARTICLE/DETAILS/39180615》 * |
UNIVERSUS: "Android Bander设计与实现", 《HTTPS://BLOG.CSDN.NET/UNIVERSUS/ARTICLE/DETAILS/6211589》 * |
VENSCOR: "Android Binder机制实现进程间数据交换(不使用aidl实现)", 《HTTPS://BLOG.CSDN.NET/U010651541/ARTICLE/DETAILS/46844327》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107479958A (zh) * | 2017-08-16 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种基于多核***的进程调度方法及装置 |
CN109426570A (zh) * | 2017-08-29 | 2019-03-05 | 阿里巴巴集团控股有限公司 | 一种数据的获取方法、装置及设备 |
CN108021459A (zh) * | 2017-12-01 | 2018-05-11 | 北京麒麟合盛网络技术有限公司 | 跨进程发送打点日志的方法及装置 |
CN108021459B (zh) * | 2017-12-01 | 2022-03-04 | 麒麟合盛网络技术股份有限公司 | 跨进程发送打点日志的方法及装置 |
CN108984317A (zh) * | 2018-06-21 | 2018-12-11 | 北京奇虎科技有限公司 | 进程间通信ipc的实现方法和装置 |
CN108984317B (zh) * | 2018-06-21 | 2021-07-13 | 北京奇虎科技有限公司 | 进程间通信ipc的实现方法和装置 |
CN109002381A (zh) * | 2018-06-29 | 2018-12-14 | Oppo(重庆)智能科技有限公司 | 进程通信监控方法、电子装置及计算机可读存储介质 |
CN109117278A (zh) * | 2018-06-29 | 2019-01-01 | Oppo(重庆)智能科技有限公司 | 一种移动终端及其进程间通信的限制方法、存储介质 |
CN109002381B (zh) * | 2018-06-29 | 2022-01-18 | Oppo(重庆)智能科技有限公司 | 进程通信监控方法、电子装置及计算机可读存储介质 |
CN109815033A (zh) * | 2019-01-24 | 2019-05-28 | 努比亚技术有限公司 | 一种跨进程数据共享方法 |
CN110532045A (zh) * | 2019-09-04 | 2019-12-03 | 深圳市迅雷网络技术有限公司 | 一种跨进程调用方法及相关装置 |
WO2023198103A1 (zh) * | 2022-04-14 | 2023-10-19 | 华为技术有限公司 | 进程间通信方法和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN106547631B (zh) | 2021-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106547631A (zh) | 基于安卓平台的跨进程通信方法和装置 | |
US11157393B2 (en) | Performance testing platform that enables reuse of automation scripts and performance testing scalability | |
CN113110941B (zh) | 使用应用容器管理代码和依赖性数据的传递 | |
CN108027722B (zh) | 在编译和部署中动态更新应用 | |
US11853820B2 (en) | Cross-process communication method, apparatus, and device | |
US20210173665A1 (en) | Bootstrapping Profile-Guided Compilation and Verification | |
CN105683924A (zh) | 通过从在本机模式中执行转变为在经解释的模式中执行来调试本机代码 | |
US20100115495A1 (en) | Intelligent engine for dynamic and rule based instrumentation of software | |
US9715440B2 (en) | Test scope determination based on code change(s) | |
Liu et al. | Diagnosing energy efficiency and performance for mobile internetware applications | |
US20100313182A1 (en) | Extensible user interface generation | |
CN101645020A (zh) | 虚拟操作***创建方法 | |
CN109634490A (zh) | 一种列表显示方法、装置、设备及存储介质 | |
CN111796799B (zh) | 子应用开发方法、装置、计算机设备及存储介质 | |
CN111966491B (zh) | 统计占用内存的方法及终端设备 | |
CN109710396A (zh) | 一种信息采集及内存释放的方法及装置 | |
WO2022247301A1 (zh) | 检测方法、图形界面及相关装置 | |
CN104199714A (zh) | 在安卓***和苹果***上实现移动终端gis平台的方法 | |
CN110597552B (zh) | 项目持续集成流水线的配置方法、装置、设备及存储介质 | |
CN114329366B (zh) | 网盘文件控制方法、装置、网盘及存储介质 | |
CN110674026B (zh) | 导航轨迹模拟的方法、装置、存储介质和终端设备 | |
CN110232018A (zh) | 接口测试方法、装置、计算机设备 | |
CN116339818B (zh) | 代码变更类型的筛选方法、电子设备及可读存储介质 | |
US9009666B1 (en) | Systems and methods for testing software and for storing and tracking test assets with the software | |
US20180157478A1 (en) | Deployment of immutable web application builds |
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 |