CN108132816A - 应用中实现本地框架层调用的方法和装置 - Google Patents
应用中实现本地框架层调用的方法和装置 Download PDFInfo
- Publication number
- CN108132816A CN108132816A CN201611091154.1A CN201611091154A CN108132816A CN 108132816 A CN108132816 A CN 108132816A CN 201611091154 A CN201611091154 A CN 201611091154A CN 108132816 A CN108132816 A CN 108132816A
- Authority
- CN
- China
- Prior art keywords
- data
- layer
- local
- ccf layer
- local ccf
- 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
Landscapes
- Stored Programmes (AREA)
- Telephonic Communication Services (AREA)
Abstract
本公开揭示了一种应用中实现本地框架层调用的方法和装置。所述方法包括:根据应用中触发调用本地框架层处理数据的操作,向应用框架层请求数据指针;接收应用框架层返回的数据指针;根据数据指针控制本地框架层进行操作对应数据的写入,并接收本地框架层待处理数据指针;按照本地框架层待处理数据指针控制本地框架层访问应用框架层分配的数据存储空间,以执行本地框架层的数据处理过程;在此之后触发本地框架层向应用框架层通知应用中本地框架层的调用结束。由此使得本地框架层和应用框架层之间的二次数据交互并并不需要进行内存分配和数据拷贝,本地框架层直接进行数据访问,从而能够节省内存资源,避免内存资源的浪费,并且也提高了处理效率。
Description
技术领域
本公开涉及计算机应用技术领域,特别涉及一种应用中实现本地框架层调用的方法和装置。
背景技术
随着计算机应用技术的发展,为终端设备而开发的应用,往往需要通过本地框架层调用本地方法,以保证应用的高效运行。
应用运行中进行的本地框架层调用,除了包括本地框架层本身的调用之外,还往往包括了本地框架层反调用到应用框架层的过程。
而在本地框架层反调用应用框架层的过程中往往需要进行数据交互,每一次数据交互过程都将需要分配新的内存,并将数据拷贝至新的内存。例如,应用中本地框架层调用的实现,首先需要本地框架层创建对象并分配为此对象存储数据的内存,根据相应的对象指针进行数据的拷贝。
此时,在本地框架层获得对象数据并将其传递至应用框架层,以便应用框架层对该对象数据进行处理,至此便完成了本地框架层反调用到应用框架层的过程,进而通过应用框架层进行对象数据的处理。
本地框架层等待应用框架层处理完之后获取相应的数据指针,根据此数据指针将应用框架层处理好的数据拷贝到本地框架层的数据中,以便于执行本地框架层的操作。
由此过程可知,应用中本地框架层调用的实现,都需要在本地框架层创建对象和相应分配新的内存,以在此基础上实现两层之间的数据交互。具体而言,每一次数据交互的实现,都需要进行内存分配和数据拷贝。
此数据交互过程的存在浪费了内存资源,并且也造成了应用中处理效率的降低。
发明内容
为了解决相关技术中本地框架层调用所存在的由于与应用框架层之间每次数据交互都需要进行内存分配和数据拷贝,进而造成内存资源浪费和处理效率低下的技术问题,本公开提供了一种应用中实现本地框架层调用的方法和装置。
一种应用中实现本地框架层调用的方法,所述方法包括:
根据应用中触发调用本地框架层处理数据的操作,向应用框架层请求数据指针,所述数据指针用于指示调用所述本地框架层处理的数据所在存储地址;
接收所述应用框架层返回的所述数据指针;
根据所述数据指针控制所述本地框架层进行所述操作对应数据的写入;
在所述操作对应数据完成应用框架层处理之后,接收本地框架层待处理数据指针;
按照所述本地框架层待处理数据指针控制所述本地框架层访问所述应用框架层分配的数据存储空间,以执行所述本地框架层的数据处理过程;
在所述数据处理完毕时,触发所述本地框架层向所述应用框架层通知所述应用中本地框架层的调用结束。
一种应用中实现本地框架层调用的装置,所述装置包括:
指针请求模块,根据应用中触发调用本地框架层处理数据的操作,向应用框架层请求数据指针,所述数据指针用于指示调用所述本地框架层处理的数据所在存储地址;
写入指针接收模块,用于接收所述应用框架层返回的所述数据指针;
数据写入模块,用于根据所述数据指针控制所述本地框架层进行所述操作对应数据的写入;
访问指针接收模块,用于在所述操作对应数据完成应用框架层处理之后,接收本地框架层待处理数据指针;
本地框架层执行模块,用于按照所述本地框架层待处理数据指针控制所述本地框架层访问所述应用框架层分配的数据存储空间,以执行所述本地框架层的数据处理过程;
通知模块,用于在所述数据处理完毕时,触发所述本地框架层向所述应用框架层通知所述应用中本地框架层的调用结束。
本公开的实施例提供的技术方案可以包括以下有益效果:
应用运行中,为实现本地框架层的调用,将根据触发调用本地框架层处理数据的操作,向应用框架层请求数据指针,数据指针用于指示调用本地框架层处理的数据所在存储地址,此时,本地框架层将随之接收应用框架层返回的数据指针,根据数据指针控制本地框架层进行操作对应数据的写入,至此便实现本地框架层和应用框架层之间的一次数据交互,而在操作对应数据完成应用框架层处理之后,接收本地框架层待处理数据指针,按照本地框架层待处理数据指针控制本地框架层访问应用框架层分配的数据存储空间以执行本地框架层的数据处理过程,由此便实现了本地框架层和应用框架层之间的二次数据交互,此二次数据交互中并不需要进行内存分配和数据拷贝,本地框架层直接进行数据访问,从而能够节省内存资源,避免内存资源的浪费,并且也提高了处理效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。
图1是根据本公开所涉及的实施环境的示意图;
图2是根据一示例性实施例示出的一种装置的框图;
图3是根据一示例性实施例示出的一种应用中实现本地框架层调用的方法的流程图;
图4是根据图3对应实施例示出的根据应用中触发调用本地框架层处理数据的操作,向应用框架层请求数据指针步骤的细节进行描述流程图;
图5是另一示例性实施例示出的一种应用中实现本地框架层调用的方法的流程图;
图6是根据另一示例性实施例示出的一种应用中实现本地框架层调用的方法的流程图;
图7是根据一示例性实施例示出的一种应用中实现本地框架层调用的流程图;
图8是根据一示例性实施例示出的一种应用中实现本地框架层调用的装置的框图;
图9是根据图8对应实施例示出的对指针请求模块的细节进行描述的框图;
图10是根据一示例性实施例示出的一种应用中实现本地框架层调用的装置的框图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据本公开的实施环境的示意图。该实施环境包括实现应用中功能的应用框架层110和本地框架层130,应用在应用框架层110通过本地调用接口(Jni接口,Javanative interface)调用本地实现方法,以使得应用能够借助于本地实现方法而高效实现其功能。
图2是根据一示例性实施例示出的一种装置200的框图。例如,装置200可以是图1所示实施环境中的运行应用的终端设备。终端设备比如可以是智能手机、平板电脑。
参照图2,装置200可以包括以下一个或多个组件:处理组件202,存储器204,电源组件206,多媒体组件208,音频组件210,传感器组件214以及通信组件216。
处理组件202通常控制装置200的整体操作,诸如与显示,电话呼叫,数据通信,相机操作以及记录操作相关联的操作等。处理组件202可以包括一个或多个处理器218来执行指令,以完成下述的方法的全部或部分步骤。此外,处理组件202可以包括一个或多个模块,便于处理组件202和其他组件之间的交互。例如,处理组件202可以包括多媒体模块,以方便多媒体组件208和处理组件202之间的交互。
存储器204被配置为存储各种类型的数据以支持在装置200的操作。这些数据的示例包括用于在装置200上操作的任何应用程序或方法的指令。存储器204可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储器204中还存储有一个或多个模块,该一个或多个模块被配置成由该一个或多个处理器218执行,以完成下述图3、图4、图5和图6任一所示方法中的全部或者部分步骤。
电源组件206为装置200的各种组件提供电力。电源组件206可以包括电源管理系统,一个或多个电源,及其他与为装置200生成、管理和分配电力相关联的组件。
多媒体组件208包括在所述装置200和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
音频组件210被配置为输出和/或输入音频信号。例如,音频组件210包括一个麦克风(MIC),当装置200处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器204或经由通信组件216发送。在一些实施例中,音频组件210还包括一个扬声器,用于输出音频信号。
传感器组件214包括一个或多个传感器,用于为装置200提供各个方面的状态评估。例如,传感器组件214可以检测到装置200的打开/关闭状态,组件的相对定位,传感器组件214还可以检测装置200或装置200一个组件的位置改变以及装置200的温度变化。在一些实施例中,该传感器组件214还可以包括磁传感器,压力传感器或温度传感器。
通信组件216被配置为便于装置200和其他设备之间有线或无线方式的通信。装置200可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件216经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件216还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置200可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行下述方法。
图3是根据一示例性实施例示出的一种应用中实现本地框架层调用的方法的流程图。该应用中实现本地框架层调用的方法适用于图1所示实施环境,用于实现应用中应用框架层向本地框架层的调用,并且调用中存在本地框架层的反调用。如图3所示,该应用中实现本地框架层调用的方法,可以包括以下步骤。
在步骤310中,根据应用中触发调用本地框架层处理数据的操作,向应用框架层请求数据指针,数据指针用于指示调用本地框架层处理的数据所在存储地址。
其中,首先应当说明的是,应用框架层,基于终端设备中虚拟机的宿主环境运行的代码实现,包括各种安装的应用。例如,在Android系统(安卓系统)中,应用框架层为Java层,在软件结构上即为应用和应用框架,包括任意的由Java代码形成的方法。当然,应用框架层也可以是其它任意类型的基于虚拟机的宿主环境运行的代码实现。在一个示例性实施例中,应用框架层即为Java层。
本地框架层,由终端设备中的本地代码实现,例如,包括由C/C++代码实现的内核和库文件。在一个示例性实施例中,本地框架层即为Native层。
运行的应用中,如果需要调用本地实现方法,此本地实现方法可以是C系实现的方法,例如,C语言或者C++语言实现的方法,则会在应用中触发调用本地框架层处理数据的操作。
具体而言,本地框架层处理数据的操作是指应用中触发的需要本地框架层处理某些数据的操作,例如,触发对视频数据进行解码的操作,在此操作的实现中,所需要本地框架层实现的处理,即为解码,而视频数据即为需要本地框架层处理的某些数据。
根据应用中触发调用本地框架层处理数据的操作,即可获知当前需要调用本地框架层处理数据,此时,首先向应用框架层请求数据指针。
在此需要说明的是,应用所运行的终端设备,其操作系统为Android操作系统,Android操作系统被分为四层,这四层分别为:应用、应用框架层、本地框架层和内核空间。应用,即为运行于终端设备中的各种应用,例如,步骤310所述的应用;应用框架层是Java框架层,用于为应用提供支持,进而使得应用的代码信息能够正确识别和执行;本地框架层用于提供本地服务和链接库所对应的本地实现方法,一方面能够与上层,即应用框架层的代码信息通信,另一方面与底层的硬件交互,保障终端设备的正常运行。
调用本地框架层而实现的数据处理,包括本地框架层本身对数据的处理过程,而在此之前,包括应用框架层为本地框架层提供处理的数据的过程。此过程实质是本地框架层反调用应用框架层的过程,因此,对于本地框架层处理数据的操作,将需要在应用框架层预处理数据,进而再交由本地框架层处理。因此,需要首先向应用框架层请求数据指针。所请求的数据指针,为调用本地框架层处理的数据提供了存储地址,其是应用框架层进行内存分配后生成的。
由此可知,本公开所指的应用,即为本地框架层需要向应用框架层传输数据并请求处理,而后获取处理后数据的应用。
在步骤320中,接收应用框架层返回的数据指针。
其中,随着应用中本地框架层的触发调用,本地框架层将会接收到由应用框架层返回的数据指针。
此应用框架层返回的数据指针用于为应用框架层即将执行的数据处理过程提供数据的数据存储空间,此数据存储空间用于实现应用框架层为本地框架层传入的数据进行的存储,并且此数据存储空间唯一对应了由应用框架层定义的数据指针,换而言之,数据指针是指向这一数据存储空间的存储地址的。
在步骤330中,根据数据指针控制本地框架层进行操作对应数据的写入。
其中,如前所述的,数据指针指示了应用框架层为数据所分配的数据存储空间,其是通过应用框架层中分配内存实现的。
本地框架层在接收到应用框架层返回的数据指针之后,便相应进行操作对应数据的写入,以将操作对应数据写入此数据指针对应的数据存储空间,即此,实现了本地框架层和应用框架层二者之间的首次数据交互。
需要说明的是,操作对应数据,即为应用中触发调用本地框架层时需要操作的数据。
根据数据操作数据完成了操作对应数据在应用框架层的写入之后,便完成了应用中调用本地框架层处理数据的一次数据交互。
在步骤340中,在操作对应数据完成应用框架层处理之后,接收本地框架层待处理数据指针。
其中,操作对应数据被传入应用框架层分配的数据存储空间之后,应用框架层访问分配的数据存储空间,对其存储的操作对应数据执行应用框架层的处理过程,进而是得到本地框架层待处理数据。
可以理解的,本地框架层待处理数据,在应用框架层也被存储于一数据存储空间,即唯一对应了一个数据指针,此数据指针是步骤430所述的本地框架层待处理数据指针,将被应用框架层向本地框架层返回。
与之相对应的,本地框架层会接收到由应用框架层返回的本地框架层待处理数据指针,以用于发起应用中本地框架层调用的二次数据交互过程。
在步骤350中,按照本地框架层待处理数据指针控制本地框架层访问应用框架层分配的数据存储空间,以执行本地框架层的数据处理过程。
其中,本地框架层待处理数据指针指示了本地框架层待处理数据在应用框架层实现存储的数据存储空间,因此,本地框架层可以通过应用框架层直接访问数据存储空间中的本地框架层待处理数据,进而向本地框架层待处理数据执行本地框架层的数据处理过程。
通过此过程,便完成了应用中本地框架层应用的二次数据交互过程,二次数据交互过程的实现,并没有再进行内存,即数据存储空间的重新分配,也没有再进行数据拷贝,因此,避免产生内存资源浪费的同时,也由于数据拷贝的不需要进行而提高了应用的处理效率和运行速度。
在步骤360中,在数据处理完毕时,触发本地框架层向应用框架层通知应用中本地框架层的调用结束。
其中,在本地框架层访问应用框架层的数据存储空间,进而数据处理过程执行完毕时,向应用框架层通知应用中本地框架层的调用结束,应用中触发进行的本地框架层数据处理被执行完毕。
通过如上所述的过程,实现了应用中本地框架层的调用,在两次数据交互中,将所需要进行内存分配和数据拷贝的数据交互变换为一次,而另一次数据交互,即二次数据交互的过程,则不再需要做此处理,大大提高内存利用与应用运行效率。
图4是根据图3对应实施例示出的对步骤310的细节进行描述流程图。该步骤310,如图4所示,可以包括以下步骤。
在步骤311中,接收应用中触发调用本地框架层处理数据的操作。
在步骤313中,根据该操作向应用框架层请求获取操作对应数据的数据指针。
其中,应用中触发调用本地框架层处理数据的操作,是指随着应用的运行而指示调用本地框架层处理数据的任一操作。
在接收到该操作之后,本地框架层便获知当前需要进行数据交互,在此数据交互中需要将操作对应数据拷贝至一分配的数据存储空间,因此,将向应用框架层请求此数据存储空间对应的数据指针。
图5是另一示例性实施例示出的一种应用中实现本地框架层调用的方法的流程图。如图5所示,该应用中实现本地框架层调用的方法,在步骤320之前,还可以包括以下步骤。
在步骤410中,应用框架层判断本地框架层请求的数据指针是否存在,如果为是,则执行步骤430,如果为否,则执行步骤450。
在步骤430中,向本地框架层返回数据指针。
在步骤450中,为本地框架层的数据处理分配数据存储空间,并根据数据存储空间的存储地址向本地框架层返回数据指针。
其中,对于本地框架层触发被触发调用而向应用框架层请求数据指针之后,对于本地框架层所发起的用于获取操作对应数据所在存储地址的请求,将首先判断此请求是否对应于首次进行的数据交互,如果为是,则说明应用框架层中并不存在相应的数据指针,而需要为此创建对象,并为此对象的数据承载配置数据存储空间。
此时,通过数据存储空间的分配,为本地框架层到应用框架层的数据交互提供了具体实现,进而保障了应用框架层新的数据存储空间分配的执行。
在应用框架层判断本地框架层请求的数据指针存在,则说明此数据已经被应用框架层存储至分配的内存,即一数据存储空间,此时,直接向本地框架层返回相应的数据指针即可。
通过如上所述的过程,为本地框架层请求进行的数据指针的获得提供具体实现,进而在此基础上即可以得到本地框架层向应用框架层反调用的发起,进而为应用中本地框架层调用的奠定基础。
图6是根据另一示例性实施例示出的一种应用中实现本地框架层调用的方法的流程图。该应用中实现本地框架层调用的方法,在步骤340之前,还可以包括以下步骤。
在步骤341中,通过应用框架层预处理写入的操作对应数据,得到操作的本地框架层待处理数据。
其中,在图3对应实施例完成了本地框架层调用中的首次数据交互之后,在应用框架层,将对写入的操作对应数据进行预处理,预处理所得到的数据,即为后续执行本地框架层中处理过程的数据,即操作的本地框架层待处理数据。
在步骤343中,根据本地框架层待处理数据所在存储地址向本地框架层下发本地框架层待处理数据指针。
其中,在通过前述步骤得到操作的本地框架层待处理数据之后,即可由此直接获得本地框架层待处理数据所在存储地址,进而是获得指向此存储地址的本地框架层待处理数据指针,并向本地框架层下发。
通过此过程,为应用的本地框架层调用中,应用框架层中的处理过程提供了在一个示例性实施例的具体实现,在此过程的作用下,使得本地框架层能够获得本地框架层待处理数据指针,由此方能够使得后续本地框架层执行的数据处理过程是通过直接访问应用框架层分配的数据存储空间实现的,不再需要额外分配内存,也不需要再次进行数据拷贝,本地框架层只需要获取本地框架层待处理数据指针,大大的提高了数据存储空间,即内存的使用率。
综上所述的,通过如上所述的过程,避免了常规应用中本地框架层反调用应用框架层中频繁分配拷贝内存的状况,将内存分配的职责交由应用框架层,而本地框架层只负责数据处理的框架结构,将原本需要进行的多次数据交互化解为一次,从而解决了应用频率分配内存的缺陷,使应用的内存使用率、运行效率达到更好。
以一应用,在此应用的实现中本地框架层为Native层,应用框架层为Java层为例,结合具体应用场景来描述该应用中实现本地框架层调用的方法的整体实现。
图7是根据一示例性实施例示出的一种应用中实现Native层调用的流程图。在应用的运行中需要通过Jni接口调用本地实现方法,比如C语言或C++语言实现的方法,则开始执行图7所示的过程。
具体的,Native层首先通过接口获取需要的对象指针,即执行步骤510。在具体实现中,内存,即数据存储空间的分配,将伴随着相应Java对象的创建,此Java对象,用于存储分配的数据存储空间对应的存储地址,因此,对象指针是指向这一存储地址的,用于指示数据交互中写入操作对应数据的地址。
通过执行步骤510所得到的对象指针,即为应用中触发Native层处理数据的操作时向Java层所请求的数据指针,Java层在完成其内存分配过程之后便会向Native层下发。
如图7所示的步骤520,Java层判断相应的Java对象是否存在,如果不存在,则执行步骤530进行Java对象的创建,进而随之完成内存的分配过程。
在获得Java对象之后,即可得到指向一存储地址的对象指针,并向Native层返回,如图540所示的。
Native层获取该对象指针,并将需要操作的数据拷贝到该Java对象,所分配的内存,即为此数据的载体。此时,便完成了Native层至Java层之间的数据交互,进而Native层将通知Java层处理数据,即执行步骤560。
Java层根据所收到的通知而对数据进行处理,并在处理完毕之后返回Native层待处理数据指针,使得Native层能够直接使用该Native层待处理数据指针操作数据,并通知Java层数据处理完毕,至此便完成了应用中的一次Native层调用,可继续进行Java层对数据的其它处理,例如,对于通过本次Native层调用而实现视频数据解码的视频终端而言,Java层对数据的其它处理可以是数据美化、渲染和保存文件。
下述为本公开装置实施例,可以用于执行本公开应用中实现本地框架层调用的方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开的应用中实现本地框架层调用的方法实施例
图8是根据一示例性实施例示出的一种应用中实现本地框架层调用的装置的框图。该应用中实现本地框架层调用的装置,如图8所示,包括但不限于:指针请求模块710、写入指针接收模块720、数据写入模块730、访问指针接收模块740、本地框架层执行模块750和通知模块760。
指针请求模块710,根据应用中触发调用本地框架层处理数据的操作,向应用框架层请求数据指针,数据指针用于指示调用本地框架层处理的数据所在存储地址。
写入指针接收模块720,用于接收应用框架层返回的数据指针。
数据写入模块730,用于根据数据指针控制本地框架层进行操作对应数据的写入。
访问指针接收模块740,用于在操作对应数据完成应用框架层处理之后,接收本地框架层待处理数据指针。
本地框架层执行模块750,用于按照本地框架层待处理数据指针控制本地框架层访问应用框架层分配的数据存储空间,以执行本地框架层的数据处理过程。
通知模块760,用于在数据处理完毕时,触发所本地框架层向所应用框架层通知应用中本地框架层的调用结束。
图9是根据图8对应实施例示出的对指针请求模块的细节进行描述的框图。该指针请求模块710,如图9所示,可以包括但不限于:操作接收单元711和数据指针获取单元713。
操作接收单元711,用于接收应用中触发调用本地框架层处理数据的操作。
数据指针获取单元713,用于根据操作向应用框架层请求获取操作对应数据的数据指针。
在一个示例性实施例中,该应用中实现本地框架层调用的装置,还包括存储分配模块。
该存储分配模块用于应用框架层判断本地框架层请求的数据指针是否存在,如果为是,则向本地框架层返回数据指针。
在另一个示例性实施例中,该应用中实现本地框架层调用的装置中,存储分配模块还用于如果本地框架层请求的数据指针不存在,则为本地框架层的数据处理分配数据存储空间,并根据数据存储空间的存储地址向本地框架层返回数据指针。
图10是根据一示例性实施例示出的一种应用中实现本地框架层调用的装置的框图。该应用中实现本地框架层调用的装置,如图10所示,还包括但不限于:应用框架层处理模块910和指针下发模块930。
应用框架层处理模块910,用于通过应用框架层预处理写入的操作对应数据,得到操作的本地框架层待处理数据。
指针下发模块930,用于根据本地框架层待处理数据所在存储地址向本地框架层下发本地框架层待处理数据指针。
可选的,本公开还提供一种终端,该终端以用于图1所示实施环境中,执行图3、图4、图5和图6任一所示的应用中实现本地框架层调用的方法的全部或者部分步骤。所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行:
根据应用中触发调用本地框架层处理数据的操作,向应用框架层请求数据指针,所述数据指针用于指示调用所述本地框架层处理的数据所在存储地址;
接收所述应用框架层返回的所述数据指针;
根据所述数据指针控制所述本地框架层进行所述操作对应数据的写入;
在所述操作对应数据完成应用框架层处理之后,接收本地框架层待处理数据指针;
按照所述本地框架层待处理数据指针控制所述本地框架层访问所述应用框架层分配的数据存储空间,以执行所述本地框架层的数据处理过程;
在所述数据处理完毕时,触发所述本地框架层向所述应用框架层通知所述应用中本地框架层的调用结束。
在示例性实施例中,还提供了一种存储介质,该存储介质为计算机可读存储介质,例如可以为包括指令的临时性和非临时性计算机可读存储介质。该存储介质,例如包括指令的存储器204,上述指令可由装置200的处理器218执行以完成上述应用中实现本地框架层调用的方法。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种应用中实现本地框架层调用的方法,用于实现应用中应用框架层向所述本地框架层的调用,并且所述调用中存在所述本地框架层的反调用,其特征在于,所述方法包括:
根据应用中触发调用本地框架层处理数据的操作,向应用框架层请求数据指针,所述数据指针用于指示调用所述本地框架层处理的数据所在存储地址;
接收所述应用框架层返回的所述数据指针;
根据所述数据指针控制所述本地框架层进行所述操作对应数据的写入;
在所述操作对应数据完成应用框架层处理之后,接收本地框架层待处理数据指针;
按照所述本地框架层待处理数据指针控制所述本地框架层访问所述应用框架层分配的数据存储空间,以执行所述本地框架层的数据处理过程;
在所述数据处理完毕时,触发所述本地框架层向所述应用框架层通知所述应用中本地框架层的调用结束。
2.根据权利要求1所述的方法,其特征在于,所述根据应用中触发调用本地框架层处理数据的操作,向应用框架层请求数据指针,包括:
接收应用中触发调用本地框架层处理数据的操作;
根据所述操作向所述应用框架层请求获取所述操作对应数据的数据指针。
3.根据权利要求2所述的方法,其特征在于,所述接收所述应用框架层返回的所述数据指针之前,所述方法还包括:
应用框架层判断所述本地框架层请求的数据指针是否存在,如果为是,则向所述本地框架层返回所述数据指针。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
如果所述本地框架层请求的数据指针不存在,则为所述本地框架层的数据处理分配数据存储空间,并根据所述数据存储空间的存储地址向所述本地框架层返回所述数据指针。
5.根据权利要求1所述的方法,其特征在于,所述在所述操作对应数据完成应用框架层处理之后,接收本地框架层待处理数据指针之前,所述方法还包括:
通过所述应用框架层预处理写入的所述操作对应数据,得到所述操作的本地框架层待处理数据;
根据所述本地框架层待处理数据所在存储地址向所述本地框架层下发所述本地框架层待处理数据指针。
6.一种应用中实现本地框架层调用的装置,用于实现应用中应用框架层向所述本地框架层的调用,并且所述调用中存在所述本地框架层的反调用,其特征在于,所述装置包括:
指针请求模块,根据应用中触发调用本地框架层处理数据的操作,向应用框架层请求数据指针,所述数据指针用于指示调用所述本地框架层处理的数据所在存储地址;
写入指针接收模块,用于接收所述应用框架层返回的所述数据指针;
数据写入模块,用于根据所述数据指针控制所述本地框架层进行所述操作对应数据的写入;
访问指针接收模块,用于在所述操作对应数据完成应用框架层处理之后,接收本地框架层待处理数据指针;
本地框架层执行模块,用于按照所述本地框架层待处理数据指针控制所述本地框架层访问所述应用框架层分配的数据存储空间,以执行所述本地框架层的数据处理过程;
通知模块,用于在所述数据处理完毕时,触发所述本地框架层向所述应用框架层通知所述应用中本地框架层的调用结束。
7.根据权利要求6所述的装置,其特征在于,所述指针请求模块包括:
操作接收单元,用于接收应用中触发调用本地框架层处理数据的操作;
数据指针获取单元,用于根据所述操作向所述应用框架层请求获取所述操作对应数据的数据指针。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
存储分配模块,用于应用框架层判断所述本地框架层请求的数据指针是否存在,如果为是,则向所述本地框架层返回所述数据指针。
9.根据权利要求8所述的装置,其特征在于,所述存储分配模块还用于如果所述本地框架层请求的数据指针不存在,则为所述本地框架层的数据处理分配数据存储空间,并根据所述数据存储空间的存储地址向所述本地框架层返回所述数据指针。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
应用框架层处理模块,用于通过所述应用框架层预处理写入的所述操作对应数据,得到所述操作的本地框架层待处理数据;
指针下发模块,用于根据所述本地框架层待处理数据所在存储地址向所述本地框架层下发所述本地框架层待处理数据指针。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611091154.1A CN108132816B (zh) | 2016-12-01 | 2016-12-01 | 应用中实现本地框架层调用的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611091154.1A CN108132816B (zh) | 2016-12-01 | 2016-12-01 | 应用中实现本地框架层调用的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108132816A true CN108132816A (zh) | 2018-06-08 |
CN108132816B CN108132816B (zh) | 2020-12-18 |
Family
ID=62387646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611091154.1A Active CN108132816B (zh) | 2016-12-01 | 2016-12-01 | 应用中实现本地框架层调用的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108132816B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111007932A (zh) * | 2019-12-09 | 2020-04-14 | Oppo广东移动通信有限公司 | 温控系统、基于温控系统的温控方法及电子设备 |
CN113378166A (zh) * | 2021-06-25 | 2021-09-10 | 北京百度网讯科技有限公司 | 调用操作系统的应用程序接口api的方法和装置 |
CN114218593A (zh) * | 2021-12-20 | 2022-03-22 | 南京宁铎科技有限公司 | 基于办公设备的信息安全检测方法 |
CN113378166B (zh) * | 2021-06-25 | 2024-05-31 | 北京百度网讯科技有限公司 | 调用操作系统的应用程序接口api的方法和装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6304924B1 (en) * | 1999-02-02 | 2001-10-16 | International Business Machines Corporation | Two lock-free, constant-space, multiple-(impure)-reader, single-writer structures |
CN1731360A (zh) * | 2005-08-26 | 2006-02-08 | 北京中星微电子有限公司 | 一种不同运行平台间的函数调用的方法 |
CN101819526A (zh) * | 2009-09-18 | 2010-09-01 | 华为技术有限公司 | 调用底层软件的方法、装置和嵌入式系统 |
CN101968876A (zh) * | 2010-09-17 | 2011-02-09 | 航天恒星科技有限公司 | 一种地面系统遥感图像的自适应实时处理方法 |
US20140013430A1 (en) * | 2009-07-31 | 2014-01-09 | Google Inc. | Native Code Module Security for Arm Instruction Set Architectures |
CN104243144A (zh) * | 2013-06-08 | 2014-12-24 | 安徽量子通信技术有限公司 | 一种基于Android智能移动终端的通信密钥分配方法 |
CN105204848A (zh) * | 2015-08-27 | 2015-12-30 | 深圳创维-Rgb电子有限公司 | 使用二进制程序进行功能固化并提供服务的方法及系统 |
CN105530479A (zh) * | 2015-12-28 | 2016-04-27 | 深圳市科漫达智能管理科技有限公司 | 一种基于移动终端的视频数据处理方法及系统 |
CN105808219A (zh) * | 2014-12-29 | 2016-07-27 | 中国移动通信集团公司 | 一种内存空间分配方法及装置 |
-
2016
- 2016-12-01 CN CN201611091154.1A patent/CN108132816B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6304924B1 (en) * | 1999-02-02 | 2001-10-16 | International Business Machines Corporation | Two lock-free, constant-space, multiple-(impure)-reader, single-writer structures |
CN1731360A (zh) * | 2005-08-26 | 2006-02-08 | 北京中星微电子有限公司 | 一种不同运行平台间的函数调用的方法 |
US20140013430A1 (en) * | 2009-07-31 | 2014-01-09 | Google Inc. | Native Code Module Security for Arm Instruction Set Architectures |
CN101819526A (zh) * | 2009-09-18 | 2010-09-01 | 华为技术有限公司 | 调用底层软件的方法、装置和嵌入式系统 |
CN101968876A (zh) * | 2010-09-17 | 2011-02-09 | 航天恒星科技有限公司 | 一种地面系统遥感图像的自适应实时处理方法 |
CN104243144A (zh) * | 2013-06-08 | 2014-12-24 | 安徽量子通信技术有限公司 | 一种基于Android智能移动终端的通信密钥分配方法 |
CN105808219A (zh) * | 2014-12-29 | 2016-07-27 | 中国移动通信集团公司 | 一种内存空间分配方法及装置 |
CN105204848A (zh) * | 2015-08-27 | 2015-12-30 | 深圳创维-Rgb电子有限公司 | 使用二进制程序进行功能固化并提供服务的方法及系统 |
CN105530479A (zh) * | 2015-12-28 | 2016-04-27 | 深圳市科漫达智能管理科技有限公司 | 一种基于移动终端的视频数据处理方法及系统 |
Non-Patent Citations (3)
Title |
---|
BO LIANG: "A native Android application development based on watercolor stylized image", 《2015 6TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING AND SERVICE SCIENCE (ICSESS)》 * |
朱龙超: "基于J2EE框架的数据库性能优化的研究与设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
杨钊: "基于Android的视频采集系统的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111007932A (zh) * | 2019-12-09 | 2020-04-14 | Oppo广东移动通信有限公司 | 温控系统、基于温控系统的温控方法及电子设备 |
CN113378166A (zh) * | 2021-06-25 | 2021-09-10 | 北京百度网讯科技有限公司 | 调用操作系统的应用程序接口api的方法和装置 |
CN113378166B (zh) * | 2021-06-25 | 2024-05-31 | 北京百度网讯科技有限公司 | 调用操作系统的应用程序接口api的方法和装置 |
CN114218593A (zh) * | 2021-12-20 | 2022-03-22 | 南京宁铎科技有限公司 | 基于办公设备的信息安全检测方法 |
CN114218593B (zh) * | 2021-12-20 | 2024-01-09 | 南京宁铎科技有限公司 | 基于办公设备的信息安全检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108132816B (zh) | 2020-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101919788B1 (ko) | 이동 단말기 및 그 제어방법 | |
CN109460373A (zh) | 一种数据共享方法、终端设备和存储介质 | |
CN105094508A (zh) | 一种移动终端应用程序进行窗口控制的方法和装置 | |
CN108605100A (zh) | 用于处理图像的方法和用于支持该方法的电子装置 | |
EP3309676B1 (en) | Method and apparatus for providing screenshot service on terminal device and storage medium and device | |
CN104281478B (zh) | 更新应用程序的方法及装置 | |
WO2021110133A1 (zh) | 一种控件的操作方法及电子设备 | |
CN103916468B (zh) | 系统升级方法、终端、服务器及升级系统 | |
CN105409160A (zh) | 远程控制电子设备的系统及其操作方法 | |
CN104461726A (zh) | 操作系统的显示方法、操作系统的显示装置和终端 | |
CN109949795A (zh) | 一种控制智能设备交互的方法及装置 | |
US20140361991A1 (en) | Method and electronic device for controlling mouse module | |
CN107526605A (zh) | 实现应用程序加载服务组件的方法和装置 | |
JP2017518718A (ja) | 無線アクセスポイントの制御方法、装置、プログラムおよび記録媒体 | |
CN105094830B (zh) | 一种执行目标功能的方法和装置 | |
CN110874657A (zh) | 资源预约方法、设备、系统及存储介质 | |
CN105468410A (zh) | 系统升级方法及装置 | |
CN108132816A (zh) | 应用中实现本地框架层调用的方法和装置 | |
CN105335200A (zh) | 系统升级方法及装置 | |
CN107895120A (zh) | 跨平台应用中数据处理方法、装置、电子设备和存储介质 | |
CN107239236A (zh) | 数据写入方法及装置 | |
CN104778082B (zh) | 开放式图形库操作的处理方法和装置 | |
CN106933111A (zh) | 一种控制设备的方法及装置 | |
KR20140108858A (ko) | Nfc 태그를 이용한 액세스 포인트 정보 제공 방법 및 이를 위한 장치 | |
CN112651012B (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 |