一种数据交互方法、装置、存储介质及移动终端制造方法及图纸

技术编号:19543004 阅读:27 留言:0更新日期:2018-11-24 20:29
本发明专利技术公开了一种数据交互方法、装置、存储介质及移动终端,应用于基于混合开发模式所开发的应用程序中,方法包括:原生语言组件通过预定多核编程方式在主线程中创建一个子线程;原生语言组件在子线程中创建一个与第一预定语言组件交互的作用域;原生语言组件通过作用域调用通过第一预定语言编写的功能函数。本发明专利技术实施例原生语言组件先在主线程创建一个子线程,并在创建该子线程后再创建与第一预定语言组件交互的作用域,进而通过该作用域来进行交互操作。该方法与现有技术的构建机制不同,所以可以让JS的方法在子线程运行,不会对主线程造成影响,不影响用户操作,用户体验较好。

A Data Interaction Method, Device, Storage Media and Mobile Terminal

The invention discloses a data interaction method, device, storage medium and mobile terminal, which are applied to applications developed based on hybrid development mode. The method includes: a native language component creates a sub-thread in the main thread by predefined multi-core programming; and a native language component creates a sub-thread in the sub-thread and a sub-thread in the sub-thread. The scope of interaction of the first predefined language component; the function function written by the first predefined language component is invoked by the scope of the native language component. The native language component of the embodiment of the present invention first creates a sub-thread in the main thread, and then creates a scope to interact with the first predefined language component after creating the sub-thread, and then interacts through the scope. This method is different from the existing technology in the construction mechanism, so it can let the JS method run in sub-threads without affecting the main thread, user operation and user experience.

【技术实现步骤摘要】
一种数据交互方法、装置、存储介质及移动终端
本专利技术涉及数据处理领域,特别是涉及一种数据交互方法、装置、存储介质及移动终端。
技术介绍
本方案应用于移动终端的APP中,在手机的APP中,动态更新及热修复已经成为潮流,而在iOS平台多采用JavaScriptCore(运行环境)来在JS和Native(原生语言组件)之间进行交互,在开发过程中,避免不了的要使用多线程来解决耗时任务。随着业务的不断增多,多线程的需求越来越大,而JS是单线程的,所有的JS方法只能串行执行,对应到JavaScriptCore里,JSContext(作用域)也是在主线程创建,实现过程如图1所示。由于JSContext是在主线程中创建的,Native和JS发生交互也都是在主线程中,调用JS的方法也会在主线程执行,所以,在JS方法(即功能函数)执行耗时操作时,主线程将会被卡住,用户将操作不了界面,用户体验较差。
技术实现思路
本专利技术实施例提供一种数据交互方法、装置、存储介质及移动终端,用以解决现有技术的如下问题:现有Native和JS交互时,如果JS方法执行耗时操作,则主线程将会被卡住,用户将操作不了界面,用户体验较差。为解决上述技术问题,一方面,本专利技术实施例提供一种数据交互方法,应用于基于混合开发模式所开发的应用程序中,包括:原生语言组件通过预定多核编程方式在主线程中创建一个子线程;所述原生语言组件在所述子线程中创建一个与第一预定语言组件交互的作用域;所述原生语言组件通过所述作用域调用通过第一预定语言编写的功能函数。可选的,在所述原生语言组件通过预定多核编程方式在主线程中创建一个子线程之前,还包括:所述原生语言组件将预定应用程序编程接口分享给所述第一预定语言组件;所述第一预定语言组件通过所述预定应用程序编程接口调用所述原生语言组件的逻辑。可选的,所述原生语言组件通过所述作用域调用通过第一预定语言编写的功能函数,包括:所述原生语言组件获取待调用的功能函数的索引,其中,所述功能函数为:在所述混合开发模式下,通过第一预定语言编写的非原生功能函数;所述原生语言组件根据所述功能函数的索引通过所述作用域调用所述功能函数的索引对应的功能函数。可选的,所述预定多核编程方式为核心中央调度(GCD,GrandCentralDispatch)。另一方面,本专利技术实施例还提供一种数据交互装置,设置在基于混合开发模式所开发的应用程序中,包括:第一创建模块,用于使用原生语言组件通过预定多核编程方式在主线程中创建一个子线程;第二创建模块,用于使用所述原生语言组件在所述子线程中创建一个与第一预定语言组件交互的作用域;第一调用模块,用于使用所述原生语言组件通过所述作用域调用通过第一预定语言编写的功能函数。可选的,还包括:分享模块,用于使用所述原生语言组件将预定应用程序编程接口分享给所述第一预定语言组件;第二调用模块,用于使用所述第一预定语言组件通过所述预定应用程序编程接口调用所述原生语言组件的逻辑。可选的,所述第一调用模块具体用于:使用所述原生语言组件获取待调用的功能函数的索引,根据所述功能函数的索引通过所述作用域调用所述功能函数的索引对应的功能函数,其中,所述功能函数为:在所述混合开发模式下,通过第一预定语言编写的非原生功能函数。可选的,所述预定多核编程方式为GCD。另一方面,本专利技术实施例还提供一种存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述数据交互方法的步骤。另一方面,本专利技术实施例还提供一种移动终端,至少包括存储器、处理器,所述存储器上存储有计算机程序,所述处理器在执行所述存储器上的计算机程序时实现上述数据交互方法的步骤。本专利技术实施例原生语言组件先在主线程创建一个子线程,并在创建该子线程后再创建与第一预定语言组件交互的作用域,进而通过该作用域来进行交互操作。该方法与现有技术的构建机制不同,所以可以让JS的方法在子线程运行,不会对主线程造成影响,不影响用户操作,用户体验较好,解决了现有技术的如下问题:现有Native和JS交互时,如果JS方法执行耗时操作,则主线程将会被卡住,用户将操作不了界面,用户体验较差。附图说明图1是现有技术数据调用示意图;图2是本专利技术第一实施例中数据交互方法的流程图;图3是本专利技术第二实施例中数据交互方法的流程图;图4是本专利技术第三实施例中数据交互装置的结构示意图;图5是本专利技术第四实施例中数据交互装置的结构示意图;图6是本专利技术第五实施例中存储介质内程序的实现过程示意图。具体实施方式为了解决现有技术的如下问题:现有Native和JS交互时,如果JS方法执行耗时操作,则主线程将会被卡住,用户将操作不了界面,用户体验较差;本专利技术提供了一种数据交互方法、装置、存储介质及移动终端,以下结合附图以及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不限定本专利技术。本专利技术第一实施例提供了一种数据交互方法,应用于基于混合开发模式所开发的应用程序中,该方法的流程如图2所示,包括步骤S201至S203:S201,原生语言组件通过预定多核编程方式在主线程中创建一个子线程。实现时,上述的预定多核编程方式通常采用GCD,本领域技术人员可以根据实际需求使用GCD。S202,原生语言组件在子线程中创建一个与第一预定语言组件交互的作用域。实现时,本专利技术实施例是先在主线程创建一个子线程,随后才在该子线程中创建作用域,该过程由于是由原生语言组件创建子线程后才创建作用域,因此,作用域是在该子线程下的,后续使用该作用域交互也是在该子线程下进行的。S203,原生语言组件通过作用域调用通过第一预定语言编写的功能函数。具体实现的过程中,先使用原生语言组件获取待调用的功能函数的索引,其中,功能函数为通过第一预定语言编写的;随后,原生语言组件根据功能函数的索引通过作用域调用功能函数的索引对应的功能函数。本专利技术实施例原生语言组件先在主线程创建一个子线程,并在创建该子线程后再创建与第一预定语言组件交互的作用域,进而通过该作用域来进行交互操作。该方法与现有技术的构建机制不同,所以可以让JS的方法在子线程运行,不会对主线程造成影响,不影响用户操作,用户体验较好,解决了现有技术的如下问题:现有Native和JS交互时,如果JS方法执行耗时操作,则主线程将会被卡住,用户将操作不了界面,用户体验较差。本专利技术第二实施例提供了一种数据交互方法,应用于基于混合开发模式所开发的应用程序中,该方法的流程如图3所示,包括步骤S301至S305:S301,原生语言组件将预定应用程序编程接口分享给第一预定语言组件。S302,第一预定语言组件通过预定应用程序编程接口调用原生语言组件的逻辑。S303,原生语言组件通过预定多核编程方式在主线程中创建一个子线程。实现时,上述的预定多核编程方式通常采用GCD,本领域技术人员可以根据实际需求使用GCD。S304,原生语言组件在子线程中创建一个与第一预定语言组件交互的作用域。实现时,本专利技术实施例是先在主线程创建一个子线程,随后才在该子线程中创建作用域,该过程由于是由原生语言组件创建子线程后才创建作用域,因此,作用域是在该子线程下的,后续使用该作用域交互也是在该子线程下进行的。S305,原生语言组件通过作用域调用通过第一预定语本文档来自技高网...

【技术保护点】
1.一种数据交互方法,应用于基于混合开发模式所开发的应用程序中,其特征在于,包括:原生语言组件通过预定多核编程方式在主线程中创建一个子线程;所述原生语言组件在所述子线程中创建一个与第一预定语言组件交互的作用域;所述原生语言组件通过所述作用域调用通过第一预定语言编写的功能函数。

【技术特征摘要】
1.一种数据交互方法,应用于基于混合开发模式所开发的应用程序中,其特征在于,包括:原生语言组件通过预定多核编程方式在主线程中创建一个子线程;所述原生语言组件在所述子线程中创建一个与第一预定语言组件交互的作用域;所述原生语言组件通过所述作用域调用通过第一预定语言编写的功能函数。2.如权利要求1所述的数据交互方法,其特征在于,在所述原生语言组件通过预定多核编程方式在主线程中创建一个子线程之前,还包括:所述原生语言组件将预定应用程序编程接口分享给所述第一预定语言组件;所述第一预定语言组件通过所述预定应用程序编程接口调用所述原生语言组件的逻辑。3.如权利要求1所述的数据交互方法,其特征在于,所述原生语言组件通过所述作用域调用通过第一预定语言编写的功能函数,包括:所述原生语言组件获取待调用的功能函数的索引,其中,所述功能函数为:在所述混合开发模式下,通过第一预定语言编写的非原生功能函数;所述原生语言组件根据所述功能函数的索引通过所述作用域调用所述功能函数的索引对应的功能函数。4.如权利要求1至3中任一项所述的数据交互方法,其特征在于,所述预定多核编程方式为核心中央调度GCD。5.一种数据交互装置,设置在基于混合开发模式所开发的应用程序中,其特征在于,包括:第一创建模块,用于使用原生语言组件通过预定多核编程方式在主线...

【专利技术属性】
技术研发人员:郭鹏
申请(专利权)人:北京五八信息技术有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1