一种应用处理方法及装置与流程

文档序号:11233841阅读:260来源:国知局
一种应用处理方法及装置与流程

本申请涉及计算机技术领域,特别是涉及一种应用处理方法及装置。



背景技术:

随着计算机技术的发展,在安卓、ios等操作系统平台上开发的客户端应用程序,称为app(应用程序,application)。目前的app通常有以下三种开发模式:native(原生)app开发、web(网页)app开发和hybrid(混合型)app开发。

hybridapp是指介于webapp和nativeapp这两者之间的app,其原理为:底层依赖于native提供的容器,上层使用html(超文本标记语言,hypertextmarkuplanguage)、css(层叠样式表,cascadingstylesheets)、或者js(javascript)做业务开发,具有底层透明化、上层多多样化的优点。对于一个移动终端hybridapp产品,从开发到最终用户使用一般需要经过如下过程:将hybridapp的原生代码打包成一个满足发布要求的app安装包;将app安装包发布到各种渠道,供用户下载安装;用户到某一渠道下载app安装包,并将hybridapp安装到自己的移动终端上以使用。

发明人在实施本申请实施例的过程中发现,hybridapp每增加一个原生功能都要重新发版,还需要经过应用市场审核,而且审核周期一般都是多个工作日,这导致更新周期较长。



技术实现要素:

鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的应用处理方法及装置,可以能够缩短应用的更新周期,提高app的更新效率,且可以大大节省用户的下载成本。

为了解决上述问题,本申请实施例公开了一种应用处理方法,包括:

获取与应用新增的原生功能相应的java文件;

动态编译所述java文件以得到对应的java代码;

将所述java代码注入当前运行的应用中。

可选地,所述获取与应用新增的原生功能相应的java文件,包括:

从服务器获取所述应用的第一配置文件;

依据所述第一配置文件,从服务器获取需要动态编译的java文件。

可选地,所述依据所述第一配置文件,从服务器获取需要动态编译的java文件,包括:

当所述第一配置文件中记录有预置标识时,依据所述第一配置文件中记录的java文件的下载地址,从服务器下载需要动态编译的java文件。

可选地,所述获取与应用新增的原生功能相应的java文件,包括:

按照预置周期从服务器获取需要动态编译的java文件;或者

接收服务器下发的需要动态编译的java文件。

可选地,所述方法还包括:

获取用户对于目标页面的页面加载请求;

基于所述页面加载请求,从本地获取对应的目标页面资源;

依据所述目标页面资源,加载所述目标页面。

可选地,所述方法还包括:

从服务器获取所述应用的第二配置文件;所述第二配置文件用于记录资源文件的信息与最新版本之间的映射关系,所述资源文件用于记录所述应用的页面资源;

依据所述第二配置文件,判断是否存在资源文件的更新;

当判断结果为是时,从服务器获取最新的资源文件。

可选地,所述依据所述第二配置文件,判断是否存在资源文件的更新,包括:

将所述第二配置文件中记录的最新版本与本地保存的资源文件的版本进行比对;

在比对结果为不一致时,确定存在资源文件的更新。

可选地,所述从服务器获取最新的资源文件,包括:

依据所述第二配置文件中记录的最新版本的下载地址,从服务器下载最新版本的资源文件。

另一方面,本申请实施例公开了一种应用处理装置,所述装置包括:

java文件获取模块,用于获取与应用新增的原生功能相应的java文件;

动态编译模块,用于动态编译所述java文件以得到对应的java代码;以及

代码注入模块,用于将所述java代码注入当前运行的应用中。

可选地,所述java文件获取模块包括:

第一配置文件获取子模块,用于从服务器获取所述应用的第一配置文件;

java文件获取子模块,用于依据所述第一配置文件,从服务器获取需要动态编译的java文件。

可选地,所述java文件获取子模块包括:

java文件下载单元,用于当所述第一配置文件中记录有预置标识时,依据所述第一配置文件中记录的java文件的下载地址,从服务器下载需要动态编译的java文件。

可选地,所述装置还包括:

请求获取模块,用于获取用户对于目标页面的页面加载请求;

资源获取模块,用于基于所述页面加载请求,从本地获取对应的目标页面资源;

页面加载模块,用于依据所述目标页面资源,加载所述目标页面。

再一方面,本申请实施例公开了一种计算设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现以下步骤:

获取与应用新增的原生功能相应的java文件;

动态编译所述java文件以得到对应的java代码;

将所述java代码注入当前运行的应用中。

又一方面,本申请实施例公开了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现以下步骤:

获取与应用新增的原生功能相应的java文件;

动态编译所述java文件以得到对应的java代码;

将所述java代码注入当前运行的应用中。

本申请实施例包括以下优点:

本申请实施例通过java文件的动态编译实现应用新增的原生功能,这样,可以直接将动态编译的java代码注入应用中,故可以在节省应用发版和审核的情况下,实现新增的原生功能,因此能够缩短应用的更新周期,提高app的更新效率。并且,本申请实施例可以使用户通过下载与新增的原生功能相应的java文件实现新增的原生功能,这相对于现有方案中用户从渠道下载最新版本的整个hybridapp的app安装包,本申请实施例能够大大节省用户的下载成本,进而可以节省移动终端的流量和耗电量,提高移动终端的性能。

附图说明

图1是本申请其中一个实施例的一种应用处理方法的步骤流程图;

图2是本申请另一实施例的一种应用处理方法的步骤流程图;

图3是本申请再一实施例的一种应用处理方法的步骤流程图;

图4是本申请其中一个实施例的一种应用处理装置的结构框图;

图5是本申请另一实施例的一种应用处理装置的结构框图;以及

图6是本申请的一种计算设备1500的结构示意图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。

参照图1,示出了本申请其中一个实施例的一种应用处理方法的步骤流程图,该方法具体可以包括如下步骤:

步骤101、获取与应用新增的原生功能相应的java文件;

步骤102、动态编译所述java文件以得到对应的java代码;

步骤103、将所述java代码注入当前运行的应用中。

本申请实施例的应用可以为具有任意功能的app,例如,应用的功能可以包括:电商、即时通讯、搜索、浏览等。本申请实施例的应用可以作为客户端运行在移动终端上。可选地,上述移动终端可以包括但不限于:智能手机、平板电脑、电子书阅读器、mp3(动态影像专家压缩标准音频层面3,movingpictureexpertsgroupaudiolayeriii)播放器、mp4(动态影像专家压缩标准音频层面4,movingpictureexpertsgroupaudiolayeriv)播放器、车载电脑、台式计算机、机顶盒、可穿戴设备等等。另外,本申请实施例的应用类型可以包括:nativeapp、webapp和hybridapp中的任一,本申请实施例主要以hybridapp为例对应用处理方法进行说明,其他应用对应的应用处理方法相互参照即可。

本申请实施例中,原生功能是指移动终端内置的功能,原生功能可以的例子可以包括:扬声器、摄像头、gps(全球定位系统,globalpositioningsystem)、加速传感器等对应的功能等。

现有方案中,hybridapp每增加一个原生功能都要重新发版,还需要经过应用市场审核,而且审核周期一般都是多个工作日,这导致更新周期较长。并且,用户在更新hybridapp时,需要从渠道下载最新版本的整个hybridapp的app安装包,这无疑增加了用户的下载成本,耗费了移动终端的流量。

本申请实施例通过java文件的动态编译实现应用新增的原生功能,这样,可以直接将动态编译的java代码注入应用中,故可以在节省app发版和审核的情况下,实现新增的原生功能,因此能够缩短hybridapp的更新周期,提高hybridapp的更新效率。

并且,本申请实施例通过java文件的动态编译实现新增的原生功能,用户可以通过下载与新增的原生功能相应的java文件实现新增的原生功能,这相对于现有方案中用户从渠道下载最新版本的整个hybridapp的app安装包,本申请实施例能够大大节省用户的下载成本,进而可以节省移动终端的流量和耗电量,提高移动终端的性能。

在实际应用中,本申请实施例可以获取与应用新增的原生功能相应的java文件,动态编译所述java文件以得到对应的java代码,并将动态编译得到的java代码注入当前运行的应用中,也即,可以将动态编译得到的java代码注入应用的已有原生代码中。可选地,可以将该java代码注入已有原生代码的预设位置。由于本申请实施例可以直接将动态编译的java代码注入当前运行的应用中,故可以在节省应用发版和审核的情况下,实现新增的原生功能,因此能够缩短应用的更新周期,提高应用的更新效率。

本申请实施例中,与新增的原生功能相应的java代码可以与应用的硬件特性相关,如该硬件特性可以包括:摄像头特性、重力感应特性、地理位置特性等。或者,与新增的原生功能相应的该java代码可以涉及与上层的资源文件的交互,可选地,上述交互具体可以包括:原有代码调用资源文件的js方法,或者通过资源文件中js调用原生代码提供的接口等等,例如,某页面中的某控件新增了地理位置功能的跳转功能,则需要通过java代码提供相应的地理位置功能的接口。

在本申请的一种可选实施例中,上述步骤101获取与应用新增的原生功能相应的java文件的过程,具体可以包括:按照预置周期从服务器获取需要动态编译的java文件;或者接收服务器下发的需要动态编译的java文件。其中,上述预置周期可由本领域技术人员依据实际应用需求确定,例如,上述预置周期可以为1小时、2小时甚至24小时等,可以理解,本申请实施例对于具体的预置周期不加以限制。或者,服务器在生成需要动态编辑的java文件后,可以向客户端下发该需要动态编译的java文件。可选地,服务器可以针对新增的原生功能生成对应的java文件,例如,可由作为开发人员的用户针对新增的原生功能生成对应的java文件,可以理解,本申请实施例对于需要动态编译的java文件的具体生成过程不加以限制。

在本申请的一种可选实施例中,上述步骤101获取与应用新增的原生功能相应的java文件的过程,具体可以包括:从服务器获取应用的第一配置文件;依据所述第一配置文件,从服务器获取需要动态编译的java文件。可选地,第一配置文件中可以记录有java文件的下载地址,以使客户端依据该下载地址从服务器获取需要动态编译的java文件。

在实际应用中,服务器可以建立并维护上述第一配置文件,例如,当存在需要动态编译的java文件时,可以将对应的信息记录在第一配置文件。

进一步,所述依据所述第一配置文件,从服务器获取需要动态编译的java文件的过程,具体可以包括:当所述第一配置文件中记录有预置标识时,依据所述第一配置文件中记录的java文件的下载地址,从服务器获取需要动态编译的java文件。其中,该预置标识可用于标识是否存在java文件。可选地,该预置标识可以为预置字段的预设值,例如,当预置字段的值为1时,表明存在需要动态编译的java文件,当预置字段的值为0时,表明不存在需要动态编译的java文件。或者,该预置标识可以为预设指示符,例如,当第一配置文件中记录有预设指示符“###”时,表明存在需要动态编译的java文件,当第一配置文件中未记录预设指示符“###”时,表明不存在需要动态编译的java文件等等。

综上,本申请实施例的应用处理方法,通过java文件的动态编译实现应用新增的原生功能,这样,可以直接将动态编译的java代码注入应用中,故可以在节省应用发版和审核的情况下,实现新增的原生功能,因此能够缩短应用的更新周期,提高app的更新效率。并且,本申请实施例可以使用户通过下载与新增的原生功能相应的java文件实现新增的原生功能,这相对于现有方案中用户从渠道下载最新版本的整个hybridapp的app安装包,本申请实施例能够大大节省用户的下载成本,进而可以节省移动终端的流量和耗电量,提高移动终端的性能。

参照图2,示出了本申请另一实施例的一种应用处理方法的步骤流程图,该方法具体可以包括如下步骤:

步骤201、获取与应用新增的原生功能相应的java文件;

步骤202、动态编译所述java文件以得到对应的java代码;

步骤203、将所述java代码注入当前运行的应用中;

相对于图1所示实施例,本实施例还可以实现应用对应目标页面的加载,相应的加载过程可以包括:

步骤204、获取用户对于目标页面的页面加载请求;

步骤205、基于所述页面加载请求,从本地获取对应的目标页面资源;

步骤206、依据所述目标页面资源,加载所述目标页面。

由于本申请实施例可以基于页面加载请求从本地获取对应的目标页面资源,因此即使在断网情况下也能够加载页面加载请求对应的目标页面(需要加载的页面),也即能够在断网情况下向用户提供所需的页面信息,提升用户的使用体验。

进一步,相对于现有方案从服务器请求页面数据,本申请实施例能够较快地基于页面加载请求从本地获取对应的目标页面资源,因此能够提高应用的页面加载速度。

以hybirdapp为例,在实际应用中,上述步骤204获取用户对于目标页面的页面加载请求的过程具体可以为,检测用户通过hybirdapp产生的网页视图webview请求;上述步骤205基于所述页面加载请求,从本地获取对应的目标页面资源具体可以为,在本地保存的资源文件中进行查找,以得到与所述webview请求对应页面相匹配的目标资源文件;其中,所述资源文件与所述hybirdapp的页面相应,用于记录所述hybirdapp的页面资源;上述步骤206依据所述目标页面资源,加载所述目标页面具体可以为,通过所述hybirdapp对应的webview组件加载所述目标资源文件对应的页面。

本申请实施例将与hybirdapp的页面相应的资源文件保存在移动终端的本地,这样,在用户使用hybirdapp的过程中,若产生webview请求,则本申请实施例可以在本地保存的资源文件中进行查找,以得到与所述webview请求对应页面相匹配的目标资源文件,并通过hybirdapp对应的webview组件加载所述目标资源文件对应的页面;由于本申请实施例可以从本地获取与webview请求对应页面相匹配的目标资源文件,因此即使在断网情况下也能够加载webview请求对应的页面,也即能够在断网情况下向用户提供所需的页面信息,进而提升用户的使用体验。并且,相对于现有方案从服务器请求页面数据,本申请实施例能够较快地从本地获取与webview请求对应页面相匹配的目标资源文件,因此能够提高hybirdapp的页面加载速度。

在用户使用hybirdapp的过程中,可以通过hybirdapp的客户端加载hybirdapp的主页面,并通过该主页面上的内容触发webview请求。例如,若hybirdapp为电商类app,其主页面的内容可以包括:商品、活动等对象的内容,若用户点击某商品,则可以认为用户触发了相应的webview请求。在实际应用中,hybirdapp对应的webview组件可以检测得到用户通过hybirdapp产生的webview请求。可选地,该webview组件可以内嵌于hybird的客户端中,或者该webview组件可以位于hybird的布局文件中。可以理解,本申请实施例对于用户通过hybirdapp产生的webview请求的具体检测方式不加以限制。

本申请实施例的资源文件可用于记录应用的页面资源,且该资源文件是与页面相应的,因此当存在某页面的更新需求时,可以仅仅对该页面相应的资源文件进行更新,而可以不更新其他页面的资源文件,因此可以节省用户更新资源文件所需的下载成本,节省移动终端的流量。

在实际应用中,对于一个页面而言,可以针对其包括的每种页面资源设置对应的一个资源文件,假设一个页面包括n种页面资源,则其对应的资源文件可以为n个。可选地,上述资源文件记录的页面资源具体可以包括:html、css、或者js等。其中,html为页面的基础资源,其对应的资源文件可以为html文件;css可用于涉及页面的样式,其对应的资源文件可以为css文件;js用于实现页面的特效,其对应的资源文件可以为js文件。则可以理解,例如hybirdapp的应用的开发者可以依据实际应用需求确定一个页面所对应的页面资源,本申请实施例对于页面的具体页面资源不加以限制。

对于本申请实施例的资源文件而言,其对应的页面地址也即其所属页面的地址,可选地,本申请实施例可以预先针对资源文件确定对应的页面地址。则上述在本地保存的资源文件中进行查找的查找过程可以为,对本地保存的多个资源文件进行遍历,并将所述webview请求对应页面的地址与当前资源文件对应的页面地址进行匹配,若匹配成功,则可以得到与所述webview请求对应页面相匹配的目标资源文件,并结束查找;若匹配失败,则可以将所述webview请求对应页面的地址与下一资源文件对应的页面地址进行匹配,直至得到与所述webview请求对应页面相匹配的目标资源。

在实际应用中,可以预先建立应用的页面地址与资源文件之间的映射关系,则在本地保存的资源文件中进行查找的过程可以包括:通过该映射关系获取本地保存的各资源文件对应的页面地址;或者,可以在各资源文件的文件名中记录对应的页面地址,则在本地保存的资源文件中进行查找的过程可以包括:通过该文件名获取本地保存的各资源文件对应的页面地址。可以理解,本申请实施例对于本地保存的各资源文件对应的页面地址的具体获取方式不加以限制。

在本申请的一种可选实施例中,上述资源文件对应的页面地址可以为应用的页面地址对应的完整字符串或者部分字符串,由此步骤102可以基于完整字符串或者部分字符串进行资源文件的查找。例如,某电商类应用的页面地址为https://item.jd.com/1231690.html,则该资源文件对应的页面地址可以为完整字符串https://item.jd.com/1231690.html,或者,该资源文件对应的页面地址可以为部分字符串1231690等等。可以理解,本领域技术人员可以根据实际应用需求,采用资源文件对应的页面地址的形式,本申请实施例对于资源文件对应的页面地址的形式的具体形式不加以限制。

在本申请的另一种可选实施例中,本申请实施例的页面地址可以为url(统一资源定位符,uniformresourelocator)、或者自定义页面地址等,本申请实施例对于页面地址的具体形式不加以限制。

步骤206可以依据步骤205得到的目标页面资源,通过所述hybirdapp对应的webview组件加载对应的页面。例如,某商品详情页包括:html文件、css文件和js文件3个资源文件,则可以通过hybirdapp对应的webview组件加载该3个资源文件,以显示对应的页面。

需要说明的是,步骤201至步骤203与步骤204至步骤206分别用于实现相互独立的功能:应用新增的原生功能和应用对应目标页面的加载功能,本申请实施例对于步骤201至步骤203与步骤204至步骤206之间的执行顺序不加以限制,本领域技术人员可以根据实际应用需求,在所需的执行时机下执行步骤201至步骤203或者步骤204至步骤206。

综上,本申请实施例的应用处理方法,可以基于页面加载请求从本地获取对应的目标页面资源,因此即使在断网情况下也能够加载页面加载请求对应的页面,也即能够在断网情况下向用户提供所需的页面信息,提升用户的使用体验。并且,相对于现有方案从服务器请求页面数据,本申请实施例能够较快地基于页面加载请求从本地获取对应的目标页面资源,因此能够提高应用的页面加载速度。

另外,本申请实施例的页面资源可以是与页面相应的,因此当存在某页面的更新需求时,可以仅仅对该页面相应的页面资源进行更新,而可以不更新其他页面的页面资源,因此可以节省用户更新页面资源所需的下载成本,节省移动终端的流量。

参照图3,示出了本申请再一实施例的一种应用处理方法的步骤流程图,该方法具体可以包括如下步骤:

步骤301、获取与应用新增的原生功能相应的java文件;

步骤302、动态编译所述java文件以得到对应的java代码;

步骤303、将所述java代码注入当前运行的应用中;

步骤304、获取用户对于目标页面的页面加载请求;

步骤305、基于所述页面加载请求,从本地获取对应的目标页面资源;

步骤306、依据所述目标页面资源,加载所述目标页面;

相对于图2所示实施例,本实施例还可以对本地保存的资源文件进行更新,以满足资源文件对应页面的更新需求,相应的更新过程具体可以包括:

步骤307、从服务器获取所述应用的第二配置文件;所述第二配置文件用于记录资源文件的信息与最新版本之间的映射关系,所述资源文件用于记录所述应用的页面资源;

步骤308、依据所述第二配置文件,判断是否存在资源文件的更新;

步骤309、当判断结果为是时,从服务器获取最新的资源文件。

本申请实施例中,应用的第二配置文件用于记录资源文件的信息与最新版本之间的映射关系,这样,可以依据该第二配置文件判断是否存在资源文件的更新,若是,则可以从服务器获取最新的资源文件,由此实现本地保存的资源文件的更新。需要说明的是,本申请实施例的资源文件可以是与页面相应的,因此当存在某页面的更新需求时,可以仅仅对该页面相应的资源文件进行更新,也即本申请实施例可以仅仅对需要更新(存在更新需求的页面)的一部分资源文件进行更新,而可以不更新不需要更新的资源文件,这相对于对应用的所有页面的资源文件进行更新,能够有效节省用户更新资源文件所需的下载成本,节省移动终端的流量。

在本申请的一种应用示例中,以电商类应用为例,其通常包括多个商品、或者多个活动的页面,其中,对于大多数商品而言,其页面相应的资源文件基本不发生变化,只有少数商品的页面相应的资源文件需要更新,则本申请实施例可以仅仅更新少数商品的页面相应的资源文件。同理,本申请实施例可以仅仅更新存在更新需求的少数活动的页面相应的资源文件。

在实际应用中,服务器可以建立并维护上述第二配置文件,例如,当存在需要更新的资源文件时,可以将对应的更新信息记录在第二配置文件。客户端可以按照预设周期,从服务器获取应用的第二配置文件,例如,该预设周期可以为1分钟、2分钟、10分钟等;或者,客户端可以在启动后、或者用户加载应用的一个页面后,从服务器获取hybirdapp的第二配置文件;或者,服务器当存在更新的资源文件时,可以将对应的更新信息记录在第二配置文件,并向客户端发送第二配置文件的推送通知,以使客户端从服务器获取第二配置文件。可以理解,本申请实施例对于步骤307从服务器获取应用的第二配置文件的具体执行时机不加以限制。

在本申请的一种可选实施例中,步骤308依据所述第二配置文件,判断是否存在资源文件的更新的过程,具体可以包括:将所述第二配置文件中记录的最新版本与本地保存的资源文件的版本进行比对;在比对结果为不一致时,确定存在资源文件的更新。其中,为了便于比对,可以依据资源文件的文件名、编号等资源文件的信息,获取信息相同的、需要比对的两个资源文件,然后将两个资源文件的版本进行比对。假设资源文件的信息为文件名,则可以按照文件名获取文件名相同的两个资源文件,然后将两个资源文件的版本进行比对。

在本申请的另一种可选实施例中,步骤308依据所述第二配置文件,判断是否存在资源文件的更新的过程,具体可以包括:当本地不存在所述第二配置文件中记录的资源文件时,确定存在资源文件的更新。例如,当电商类应用发布新活动时,本地可能不存在新活动页面对应的资源文件,则需要从服务器获取新活动页面对应的资源文件。

在本申请的再一种可选实施例中,步骤309从服务器获取最新的资源文件的过程,具体可以包括:依据所述第二配置文件中记录的最新版本的下载地址,从服务器下载最新版本的资源文件。其中,第二配置文件可以记录有资源文件的信息、最新版本与下载地址之间的映射关系,则当确定存在资源文件的更新时,可以依据对应的下载地址,从服务器下载最新版本的资源文件,并使用该最新版本的资源文件替换原有的资源文件。

综上,本申请实施例的应用处理方法,依据第二配置文件中记录的资源文件的信息与最新版本之间的映射关系进行本地保存的资源文件的更新,因此能够从服务器获取最新的资源文件,使得本地保存的资源文件能够满足对应页面的更新需求,进而保持资源文件与页面的同步性。

为使本领域技术人员更好地理解本申请实施例,在此以电商类hybirdapp为例,说明本申请的应用处理流程。

在实际应用中,用户可以从渠道下载一个版本的hybridapp的app安装包,该安装包中可以包括安装文件和资源文件,则运行该安装文件即可得到对应的原生代码以完成hybridapp的安装;其中,该原生代码在底层可以提供例如webview组件的容器,该资源文件在上层可以基于页面提供相应的业务数据,该资源文件与hybirdapp的页面相应,用于记录所述hybirdapp的页面资源;可选地,本地可以存储有hybirdapp的多个页面的多个资源文件。

在启动已安装hybridapp后,hybridapp的客户端可以向用户呈现hybirdapp的主页面,以使用户通过该主页面上的内容触发webview请求;本申请实施例可以通过webview组件检测得到上述webview请求,并在本地保存的资源文件中进行查找,以得到与所述webview请求对应页面相匹配的目标资源文件,并通过所述hybirdapp对应的webview组件加载所述目标资源文件对应的页面;这样,相对于从服务器获取页面数据,本申请实施例不仅可以提高页面加载速度,而且可以在断网的情况下向用户提供所需的页面信息。

需要说明的是,本申请实施例的资源文件是与页面相应的,因此当存在某页面的更新需求时,可以对该页面相应的资源文件进行更新,由此实现资源文件与页面的同步。例如,当电商类hybird的某商品详情页发生变化时,可以对该商品详情页相应的资源文件进行更新。又如,当电商类hybird新增了某商品或活动时,可以新增相应的资源文件等等。

另外,当需要为hybridapp增加原生功能时,客户端可以从服务器获取与新增的原生功能相应的java文件,对该java文件进行动态编译,并将动态编译得到的java代码注入当前运行的hybirdapp中,也即,可以将动态编译得到的java代码注入hybirdapp的已有原生代码中。可见,本申请实施例可以在无需重新发版和审核的情况下、实现新增的原生功能,故能够缩短新增原生功能的周期;另外,本申请实施例通过与新增的原生功能相应的java文件实现新增的原生功能,客户端仅需下载java文件,这相对于下载完整的app安装包,能够大大降低下载成本。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。

参照图4,示出了本申请其中一个实施例的一种应用处理装置的结构框图,该装置具体可以包括:

java文件获取模块401,用于获取与应用新增的原生功能相应的java文件;

动态编译模块402,用于动态编译所述java文件以得到对应的java代码;以及

代码注入模块403,用于将所述java代码注入当前运行的应用中。

可选地,所述java文件获取模块401可以包括:

第一配置文件获取子模块,用于从服务器获取所述应用的第一配置文件;

java文件获取子模块,用于依据所述第一配置文件,从服务器获取需要动态编译的java文件。

可选地,所述java文件获取子模块可以包括:

java文件下载单元,用于当所述第一配置文件中记录有预置标识时,依据所述第一配置文件中记录的java文件的下载地址,从服务器下载需要动态编译的java文件。

所述java文件获取模块401可以包括:

第一获取子模块,用于按照预置周期从服务器获取需要动态编译的java文件;或者

第二获取子模块,用于接收服务器下发的需要动态编译的java文件。

本申请实施例的应用处理装置,通过java文件的动态编译实现应用新增的原生功能,这样,可以直接将动态编译的java代码注入应用中,故可以在节省应用发版和审核的情况下,实现新增的原生功能,因此能够缩短应用的更新周期,提高app的更新效率。并且,本申请实施例可以使用户通过下载与新增的原生功能相应的java文件实现新增的原生功能,这相对于现有方案中用户从渠道下载最新版本的整个hybridapp的app安装包,本申请实施例能够大大节省用户的下载成本,进而可以节省移动终端的流量和耗电量,提高移动终端的性能。

参照图5,示出了本申请另一实施例的一种应用处理装置的结构框图,该装置具体可以包括:

java文件获取模块501,用于获取与应用新增的原生功能相应的java文件;

动态编译模块502,用于动态编译所述java文件以得到对应的java代码;

代码注入模块503,用于将所述java代码注入当前运行的应用中。

请求获取模块504,用于获取用户对于目标页面的页面加载请求;

资源获取模块505,用于基于所述页面加载请求,从本地获取对应的目标页面资源;

页面加载模块505,用于依据所述目标页面资源,加载所述目标页面。

可选地,上述装置还可以包括:

第二配置文件获取模块,用于从服务器获取所述应用的第二配置文件;所述第二配置文件用于记录资源文件的信息与最新版本之间的映射关系,所述资源文件用于记录所述应用的页面资源;

更新判断模块,用于依据所述第二配置文件,判断是否存在资源文件的更新;

资源文件获取模块,用于当判断结果为是时,从服务器获取最新的资源文件。

可选地,所述更新判断模块具体可以包括:

版本比对子模块,用于将所述第二配置文件中记录的最新版本与本地保存的资源文件的版本进行比对;

确定子模块,用于在比对结果为不一致时,确定存在资源文件的更新。

可选地,所述资源文件获取模块具体可以包括:

资源文件下载子模块,用于依据所述第二配置文件中记录的最新版本的下载地址,从服务器下载最新版本的资源文件。

本申请实施例的应用处理装置,可以基于页面加载请求从本地获取对应的目标页面资源,因此即使在断网情况下也能够加载页面加载请求对应的页面,也即能够在断网情况下向用户提供所需的页面信息,提升用户的使用体验。并且,相对于现有方案从服务器请求页面数据,本申请实施例能够较快地基于页面加载请求从本地获取对应的目标页面资源,因此能够提高应用的页面加载速度。

并且,本申请实施例可以依据第二配置文件中记录的资源文件的信息与最新版本之间的映射关系进行本地保存的资源文件的更新,因此能够从服务器获取最新的资源文件,使得本地保存的资源文件能够满足对应页面的更新需求,进而保持资源文件与页面的同步性。

对于装置实施例而言,由于其与方法实施例基本相似,故描述的比较简单,相似的地方请相互参照即可。

参照图6,示出了本申请的一种计算设备1500的结构示意图,具体可以包括:至少一个处理器1501、存储器1502、至少一个网络接口1504和用户接口1503。计算设备1500中的各个组件通过总线系统1505耦合在一起。可理解,总线系统1505用于实现这些组件之间的连接通信。总线系统1505除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将各种总线都标为总线系统1505,计算设备1500还可以包括拍照组件1506,拍照组件1506包括摄像头。

其中,用户接口1503可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。

可以理解,本申请实施例中的存储器1502可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(randomaccessmemory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(staticram,sram)、动态随机存取存储器(dynamicram,dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)和直接内存总线随机存取存储器(directrambusram,drram)。本申请实施例描述的系统和方法的存储器1502旨在包括但不限于这些和任意其它适合类型的存储器。

在一些实施方式中,存储器1502存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统15021和应用程序15022。

其中,操作系统15021,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序15022,包含各种应用程序,例如媒体播放器(mediaplayer)、浏览器(browser)等,用于实现各种应用业务。实现本申请实施例方法的程序可以包含在应用程序15022中。

在本申请实施例中,通过调用存储器1502存储的程序或指令,具体的,可以是应用程序15022中存储的程序或指令,处理器1501用于获取与应用新增的原生功能相应的java文件;动态编译所述java文件以得到对应的java代码;将所述java代码注入当前运行的应用中。

上述本申请实施例揭示的方法可以应用于处理器1501中,或者由处理器1501实现。处理器1501可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1501中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1501可以是通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1502,处理器1501读取存储器1502中的信息,结合其硬件完成上述方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现以下步骤:获取与应用新增的原生功能相应的java文件;动态编译所述java文件以得到对应的java代码;将所述java代码注入当前运行的应用中。

可以理解的是,本申请实施例描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(applicationspecificintegratedcircuits,asic)、数字信号处理器(digitalsignalprocessing,dsp)、数字信号处理设备(dspdevice,dspd)、可编程逻辑设备(programmablelogicdevice,pld)、现场可编程门阵列(field-programmablegatearray,fpga)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。

对于软件实现,可通过执行本申请实施例中所述功能的模块(例如过程、函数等)来实现本申请实施例中所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。

可选地,处理器1501还用于:从服务器获取所述应用的第一配置文件;依据所述第一配置文件,从服务器获取需要动态编译的java文件。

可选地,处理器1501还用于:当所述第一配置文件中记录有预置标识时,依据所述第一配置文件中记录的java文件的下载地址,从服务器下载需要动态编译的java文件。

可选地,处理器1501还用于:按照预置周期从服务器获取需要动态编译的java文件;或者接收服务器下发的需要动态编译的java文件。

可选地,处理器1501还用于:获取用户对于目标页面的页面加载请求;基于所述页面加载请求,从本地获取对应的目标页面资源;依据所述目标页面资源,加载所述目标页面。

可选地,处理器1501还用于:从服务器获取所述应用的第二配置文件;所述第二配置文件用于记录资源文件的信息与最新版本之间的映射关系,所述资源文件用于记录所述应用的页面资源;依据所述第二配置文件,判断是否存在资源文件的更新;当判断结果为是时,从服务器获取最新的资源文件。

可选地,处理器1501还用于:将所述第二配置文件中记录的最新版本与本地保存的资源文件的版本进行比对;在比对结果为不一致时,确定存在资源文件的更新。

可选地,处理器1501还用于:依据所述第二配置文件中记录的最新版本的下载地址,从服务器下载最新版本的资源文件。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制

以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

以上对本申请所提供的一种应用处理方法、以及一种应用处理装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1