CN112035095A - 应用处理方法、应用处理装置、计算机设备和介质 - Google Patents

应用处理方法、应用处理装置、计算机设备和介质 Download PDF

Info

Publication number
CN112035095A
CN112035095A CN201910477239.0A CN201910477239A CN112035095A CN 112035095 A CN112035095 A CN 112035095A CN 201910477239 A CN201910477239 A CN 201910477239A CN 112035095 A CN112035095 A CN 112035095A
Authority
CN
China
Prior art keywords
service
application
resource
resources
display interface
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.)
Pending
Application number
CN201910477239.0A
Other languages
English (en)
Inventor
白宏伟
刘卫程
袁玉敏
马千里
尹国梁
贺浩
孟庆东
周敏
牛之奎
戴风雷
黄珊
袁檀
郭挺
何芊芊
段小秋
苑文斌
杨旭
刘江涛
张栋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Wodong Tianjun Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Wodong Tianjun Information Technology Co Ltd
Priority to CN201910477239.0A priority Critical patent/CN112035095A/zh
Publication of CN112035095A publication Critical patent/CN112035095A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4434Reducing the memory space required by the program code

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本公开提供了一种应用处理方法、应用处理装置、计算机设备和介质,所述应用处理方法包括:确定第一业务,所述第一业务为与启动所述应用相关的至少一个业务,所述应用包括多个业务;如果存在所述第一业务,则确定所述第一业务相关的资源,所述第一业务相关的资源为加载所述第一业务所需的资源;将所述第一业务相关的资源封装在应用包中,并将所述应用包发送至服务器端。

Description

应用处理方法、应用处理装置、计算机设备和介质
技术领域
本公开涉及互联网技术领域,更具体地,涉及一种应用处理方法、应用处理装置、计算机设备和介质。
背景技术
Java本地调用(Java Native Interface,简称JNI),它允许Java代码和其他语言代码(如C语言代码、C++语言代码)进行交互。例如,安卓(Android)的应用层的类通常以Java编写,这些Java类编译为Dex文件(应用(APP)安装时生成的虚拟机可执行二进制文件,.dex格式是专为Dalvik设计的一种压缩格式)之后,需要依靠Dalvik虚拟机(VirtualMachine)来执行,假如在执行Java程序时,需要载入C&C++函数,Dalvik虚拟机就会加载C&C++的库,让Java层能顺利地调用这些本地资源。其中,Dalvik虚拟机可以支持已转换为.dex格式的Java应用程序的运行。
例如,对于图像识别,现有技术中对本地资源的调用,通常是直接通过静态或动态方式加载动态链接库(shared object,也叫shared library,简称so算法代码库或so库,so算法代码库中so文件是Linux的程序函数库),然后在动态链接库的初始化接口中初始化算法模型文件,然后再通过另外的JNI接口传入图像数据,用从动态链接库中获取的算法对图像进行识别,得到识别结果。
在实现本公开构思的过程中,发明人发现现有技术中至少存在如下问题:应用包中通常封装有多个资源以便本地支持多个业务的运行,导致应用包占用过多的存储空间,且初始化用时较长。
发明内容
有鉴于此,本公开提供了一种能有效减少应用包占用的存储空间且缩短初始化用时的应用处理方法、应用处理装置、计算机设备和介质。
本公开的一个方面提供了一种由开发端执行的应用处理方法,包括:首先,确定第一业务,所述第一业务为与启动所述应用相关的至少一个业务,所述应用包括多个业务,如果存在所述第一业务,则确定所述第一业务相关的资源,所述第一业务相关的资源为加载所述第一业务所需的资源,接着,将所述第一业务相关的资源封装在应用包中,并将所述应用包发送至服务器端。
本公开提供的应用处理方法,由于应用运行时可能会切换数个完全不同的业务,用到如人脸快速识别、人脸属性识别、人脸跟踪、手势识别等多种功能,不同的功能需要相应的资源来实现,通过确定与启动所述应用相关的业务,并将加载该相关的业务所需的资源,如所需的算法、算法模型文件等封装在应用包中,这样就无需在应用包中封装该应用的所有业务所需的资源,有效减少应用包占用的存储空间,并且可以在应用运行的过程中再加载其余与启动所述应用不相关的业务,在实现节省存储空间、缩短初始化时间的同时,不会影响其余业务的加载速度,提升用户体验。
根据本公开的实施例,每个业务包括至少一个显示界面,相应地,所述确定所述第一业务相关的资源包括确定所述第一业务包括的至少部分显示界面所需的资源。
根据本公开的实施例,所述应用具有显示界面与业务的资源的对应关系,相应地,所述方法还可以包括如下操作,将所述显示界面和业务的资源的对应关系封装在应用包中,这样便于基于显示界面和业务的资源的对应关系确定当前显示界面所需的资源。
本公开的另一个方面提供了一种由服务器端执行的应用处理方法,所述方法可以包括如下操作,首先,接收来自客户端的应用请求,所述应用请求包括应用包信息,响应于所述应用请求,基于所述应用包信息确定应用包,然后,将所述应用包发送至所述客户端,其中,所述应用包中封装有第一业务相关的资源,所述第一业务为与启动所述应用包的应用相关的至少一个业务,所述第一业务相关的资源为加载所述第一业务所需的资源。
本公开提供的应用处理方法,应用包中封装有与启动所述应用包的应用相关的业务的资源其余资源可以不进行封装,有效减少应用包占用的存储空间,减小信息传输量,且能缩短初始化时间,同时可以在运行应用的过程中加载其余业务的资源,不会影响其余业务的加载速度,提升用户体验。
根据本公开的实施例,所述服务器端至少存储所述应用的第二业务相关的资源,所述第二业务不同于所述第一业务,相应地,所述方法还可以包括如下操作,首先,接收来自所述客户端的第二业务相关的资源请求,响应于所述第二业务相关的资源请求,确定所述第二业务相关的资源,然后,将所述第二业务相关的资源发送至所述客户端。基于客户端的资源请求发送相应的资源,避免安装应用时需要把所有资源封装在应用包中。
本公开的另一个方面提供了一种由客户端执行的应用处理方法,所述方法可以包括如下操作,首先,获取应用包,所述应用包中封装有第一业务相关的资源,然后,安装所述应用包,其中,所述第一业务为与启动所述应用包对应的应用相关的至少一个业务,所述第一业务相关的资源为加载所述第一业务所需的资源。可以有效缩短应用安装用时,且不会影响其余业务的加载用时。
根据本公开的实施例,所述方法还可以包括如下操作,在运行所述应用时,如果接收到加载第二业务的指令,则从服务器端获取所述第二业务相关的资源,所述第二业务不同于所述第一业务,然后,基于所述第二业务相关的资源加载所述第二业务。由于初始化资源比较耗时,为了保证页面间切换的流畅性,在加载第二业务时获取所述第二业务相关的所有资源。
根据本公开的实施例,每个业务包括至少一个显示界面,相应地,所述基于所述第二业务相关的资源加载所述第二业务可以包括如下操作,首先,创建任务列表,每个任务用于调用第二业务相关的一个资源,然后,确定当前显示界面,接着,基于所述当前显示界面以及显示界面与业务的资源的对应关系从所述第二业务相关的资源中确定第一资源,然后,从所述任务列表中确定所述第一资源对应的第一任务,接着,执行所述第一任务。第二业务下所有的显示界面注册所需的资源,并基于此创建任务列表,便于第二业务下各页面以任务的方式调用所需资源。
根据本公开的实施例,所述方法还可以包括如下操作,如果接收到更换新显示界面指令,则基于所述新显示界面以及显示界面与业务的资源的对应关系从所述第二业务相关的资源中确定第二资源,然后,从所述任务列表中确定所述第二资源对应的第二任务,接着,执行所述第二任务。当第二业务从第一显示界面切换到第二显示界面时,激活第二显示界面涉及的任务,这样就可以保证每个页面运行自己需要的任务,且运行效率较高。
根据本公开的实施例,所述方法还可以包括如下操作,首先,以显示界面为单位分别为显示界面对应的每个任务分配指定个数存储空间,其中,对于一个显示界面对应的一个任务,所述指定个数存储空间中至少一个存储空间用于存储所述显示界面对应的一个任务的第一属性,所述指定个数存储空间中其余存储空间用于存储所述显示界面对应的一个任务的第二属性。每个任务有自身属性,当有两个或以上页面共用同一任务时,一个页面修改的配置属性不会影响到其他页面。
根据本公开的实施例,所述方法还可以包括如下操作,进行业务切换时,清空任务列表。便于随时加载或卸载所需资源。
本公开的另一个方面提供了一种应用处理装置,包括业务确定模块、资源确定模块和输出模块,其中,所述业务确定模块用于确定第一业务,所述第一业务为与启动所述应用相关的至少一个业务,所述应用包括多个业务,所述资源确定模块用于如果存在所述第一业务,则确定所述第一业务相关的资源,所述第一业务相关的资源为加载所述第一业务所需的资源,所述输出模块用于将所述第一业务相关的资源封装在应用包中,并将所述应用包发送至服务器端。
根据本公开的实施例,每个业务包括至少一个显示界面,所述资源确定模块具体用于确定所述第一业务包括的至少部分显示界面所需的资源。
根据本公开的实施例,所述应用具有显示界面与业务的资源的对应关系,相应地,所述装置还可以包括关系存储模块,该关系存储模块用于将所述显示界面和业务的资源的对应关系封装在应用包中。
本公开的另一个方面提供了一种应用处理装置,包括应用请求接收模块、应用包确定模块和应用包发送模块,其中,所述应用请求接收模块用于接收来自客户端的应用请求,所述应用请求包括应用包信息,所述应用包确定模块用于响应于所述应用请求,基于所述应用包信息确定应用包,所述应用包发送模块用于将所述应用包发送至所述客户端,其中,所述应用包中封装有第一业务相关的资源,所述第一业务为与启动所述应用包的应用相关的至少一个业务,所述第一业务相关的资源为加载所述第一业务所需的资源。
根据本公开的实施例,所述服务器端至少存储所述应用的第二业务相关的资源,所述第二业务不同于所述第一业务,相应地,所述装置还可以包括资源请求接收模块、资源确定模块和资源发送模块,其中,所述资源请求接收模块用于接收来自所述客户端的第二业务相关的资源请求,所述资源确定模块用于响应于所述第二业务相关的资源请求,确定所述第二业务相关的资源,所述资源发送模块用于将所述第二业务相关的资源发送至所述客户端。
本公开的另一个方面提供了一种应用处理装置,可以包括应用包获取模块和安装模块,其中,所述应用包获取模块用于获取应用包,所述应用包中封装有第一业务相关的资源,所述安装模块用于安装所述应用包,所述第一业务为与启动所述应用包对应的应用相关的至少一个业务,所述第一业务相关的资源为加载所述第一业务所需的资源。
根据本公开的实施例,所述装置还包括:资源获取模块和业务加载模块,其中,所述资源获取模块用于在运行所述应用时,如果接收到加载第二业务的指令,则从服务器端获取所述第二业务相关的资源,所述第二业务不同于所述第一业务,所述业务加载模块用于基于所述第二业务相关的资源加载所述第二业务。
根据本公开的实施例,每个业务包括至少一个显示界面,相应地,所述业务加载模块包括:列表创建单元、界面确定单元、资源确定单元、第一任务确定单元和第一任务执行单元,其中,所述列表创建单元用于创建任务列表,每个任务用于调用第二业务相关的一个资源,所述界面确定单元用于确定当前显示界面,所述资源确定单元用于基于所述当前显示界面以及显示界面与业务的资源的对应关系从所述第二业务相关的资源中确定第一资源,所述第一任务确定单元用于从所述任务列表中确定所述第一资源对应的第一任务,所述第一任务执行单元用于执行所述第一任务。
根据本公开的实施例,所述业务加载模块还可以包括更新接收单元、第二任务确定单元和第二任务执行单元,所述更新接收单元用于如果接收到更换新显示界面指令,则基于所述新显示界面以及显示界面与业务的资源的对应关系从所述第二业务相关的资源中确定第二资源,所述第二任务确定单元用于从所述任务列表中确定所述第二资源对应的第二任务,所述第二任务执行单元用于执行所述第二任务。
根据本公开的实施例,所述业务加载模块还可以包括空间分配单元,其中,所述空间分配单元用于以显示界面为单位分别为显示界面对应的每个任务分配指定个数存储空间,其中,对于一个显示界面对应的一个任务,所述指定个数存储空间中至少一个存储空间用于存储所述显示界面对应的一个任务的第一属性,所述指定个数存储空间中其余存储空间用于存储所述显示界面对应的一个任务的第二属性。
根据本公开的实施例,所述业务加载模块还可以包括任务清空单元,所述任务清空单元用于进行业务切换时,清空任务列表。
本公开的另一方面提供了一种计算机设备,包括一个或多个处理器以及存储装置,其中,所述存储装置用于存储可执行指令,所述可执行指令在被所述处理器执行时,实现如上所述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1A示意性示出了现有技术在一次算法调用过程中涉及的资源;
图1B示意性示出了根据本公开实施例的应用处理方法、应用处理装置、计算机设备和介质的应用场景;
图1C示意性示出了适于本公开实施例的应用处理方法、应用处理装置、计算机设备和介质的系统架构;
图2A示意性示出了根据本公开实施例的由开发端执行的应用处理方法的流程图;
图2B示意性示出了根据本公开实施例的由服务器端执行的应用处理方法;
图2C示意性示出了根据本公开实施例的身份识别过程的时隙设置;
图3A示意性示出了根据本公开实施例的应用处理装置的框图;
图3B示意性示出了根据本公开另一实施例的应用处理装置的框图;
图3C示意性示出了根据本公开另一实施例的应用处理装置的框图;以及
图4示意性示出了根据本公开实施例的计算机设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
图1A示意性示出了现有技术在一次算法调用过程中涉及的资源。
如图1A所示,在一次算法调用过程中,通常涉及三种资源,如Java代码、so算法代码和算法使用的模型文件。例如,在执行Java程序时,需要载入C&C++函数时,Dalvik虚拟就会加载C&C++的so算法代码库,使得Java层能顺利地调用算法模型文件。
现有技术主要包括以下问题。首先,资源调用方式不够精细,开发者对如算法组件所能控制的粒度很大。精细度体现在两方面,一方面是体积(所需占用的存储空间)的精细度,算法模型的体积通常都很大,多则数十兆(MB),少则3Mb至5Mb,这对移动应用开发而言,是很大的体积。另外,so算法代码库的体积也基本在3Mb至10Mb这个量级,例如,一个App,使用了一个人脸识别相关的算法代码库和算法模型文件,这个App包的体积基本就是20Mb以上了。对于一些追求极致的开发者来说,如追求较小的体积的应用包时,这种粗粒度的控制显然不能满足需求。
另一方面,是时间上的精细度,so算法代码库的初始化通常发生在程序启动时,直到程序运行结束。对于具有多个业务的应用来讲,例如,广告机的业务,可能还需要更精细的时间控制。在应用的运行期间可能会切换数个完全不同的广告业务,如广告机可能支持10种不同的广告业务,其中用到了人脸快速识别、人脸属性识别、人脸跟踪、手势识别等多种功能,现有技术中这些业务所能支持的全部功能是一个全集,应用包中需要封装上述全部功能所需的资源。这就导致程序启动时,需要对上述全部功能所需的资源,如上述全部功能对应的so算法代码库进行初始化,导致初始化用时较多。
本公开的实施例提供了一种应用处理方法、应用处理装置、计算机设备和介质。该方法包括资源确定过程和资源封装过程。在资源确定过程中,先从所述应用包括的多个业务中确定与启动所述应用相关的第一业务,如果存在所述第一业务,则确定所述第一业务相关的资源,其中,所述第一业务相关的资源为加载所述第一业务所需的资源。在确定资源之后,进入资源封装过程,将所述第一业务相关的资源封装在应用包中,并将所述应用包发送至服务器端。
例如,广告机启动时,可以先进入智能货架业务(如应用的起始界面上涉及智能货架业务),而智能货架不需要全部功能,只需要人脸快速识别以与用户互动,放大展示对应位置的商品即可。这样,应用包中就不需要封装所有的so算法代码库,也不需要封装所有的算法模型文件,只需要封装人脸快速识别功能所需的资源,如人脸快速识别功能所需的so算法代码库和算法模型文件,有效减小应用包占用的存储空间,并减少应用的功能所需资源的初始化用时。
此外,当用户希望切换到更复杂、运用更多功能的业务时,再去加载所需的so算法代码库和算法模型文件,这样不仅可以使应用包的体积大大减小,也可以节省内存,缩短初始化时间,且不会影响用户的正常使用,给用户带来一系列性能和体验上的提升。
图1B示意性示出了根据本公开实施例的应用处理方法、应用处理装置、计算机设备和介质的应用场景。
如图1B所示,以广告机1为例进行说明,广告机10上设置有图像采集组件110,可以拍摄用户的图像以便于确定用户相对于广告机10的位置。广告机10的应用包括智能货架业务,该智能货架业务需要调用图像采集组件110采集用户图像,进而调用人脸快速识别功能所需的资源,如相应的so算法代码库和算法模型文件以实现人脸快速识别,这样就可以确定用户相对于所述广告机1的位置,来和用户互动。如智能货架业务展示有多个商品,每个商品的初始展示区域相似,如以较小的面积展示多个商品的简要信息(如缩略图、商品的主要参数等),当检测到用户靠近所述广告机1时,通过调用人脸快速识别所需so算法代码库和算法模型文件以确定用户相对于所述广告机1的位置,将用户人脸正对的展示区域的商品的详细信息(相比于简要信息更多的信息)展示给用户,由于所需展示的信息更多,因此,人脸正对的展示区域的商品的展示区域会变大,此外,还可以在该展示区域以滚屏的形式展示更多的详细信息,这样就可以实现与用户的互动,提升用户体验。但是,由于广告机1通常具有多个业务,如还具有商品支付(如需要人脸识别功能)、商品导购(如需要人脸属性识别以推荐男装或女装等)、促销互动游戏(如需要手势识别功能)等,如果应用包中封装所有的so算法代码库和算法模型文件,则会导致应用包的体积过大和初始化用时过长等。此外,如果某个业务需要更新,则需要在增量包中封装所有的so算法代码库和算法模型文件,造成广告机的应用与具体业务耦合度过高。
图1C示意性示出了适于本公开实施例的应用处理方法、应用处理装置、计算机设备和介质的系统架构。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1C所示,根据该实施例的系统架构100可以包括终端设备101、102、103,网络104和服务器105、106。网络104用以在终端设备101、102、103和服务器105、106之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105、106交互,以接收或发送信息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如广告类应用、购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于广告机、智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105、106可以是提供相同服务或分别提供不同服务的服务器,例如对用户利用终端设备101、102、103所浏览的商品信息提供支持的后台处理服务器(仅为示例)。后台处理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取的资源、网页、信息、或数据等)反馈给终端设备。
应该理解,终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图2A示意性示出了根据本公开实施例的由开发端执行的应用处理方法的流程图。
如图2A所示,该方法包括操作S201~操作S205。
在操作S201,确定第一业务,所述第一业务为与启动所述应用相关的至少一个业务,所述应用包括多个业务。
在本实施例中,可以基于应用在启动过程中所涉及到的业务确定第一业务,例如,应用在启动时所涉及到的业务、应用启动后所进入的业务等来确定第一业务。
此外,由于不同的业务需要的功能可能不同,即,业务与功能之间存在对应关系,因此,也可以基于应用在启动过程中所涉及到的功能来确定第一业务,例如,应用开启时需要进行用户登录,而登录的方式可以是人脸识别登录、声纹识别登录等基于生物特征识别进行登录,此时需要调用如人脸识别功能、声纹识别功能等,此外,还需要调用相应的传感器,如图像传感器、麦克风等,因此,可以将需要进行人脸识别功能的业务作为第一业务,如支持人脸识别支付的业务作为第一业务。
在操作S203,如果存在所述第一业务,则确定所述第一业务相关的资源,所述第一业务相关的资源为加载所述第一业务所需的资源。
在本实施例中,一些业务需要使用特定的功能,如上所示的智能货架业务,需要调用图像采集组件以采集用户图像,以及调用人脸快速识别功能所需的资源,如相应的so算法代码库和算法模型文件以对采集的用户图像进行识别,实现人脸快速识别,其中,so算法代码库和算法模型文件即为第一业务相关的资源。以上所示的第一业务和资源仅为示例,不能理解为对本公开的限定,其它涉及到具体功能及该功能所需的资源同样适用。
其中,业务相关的资源可以为对业务进行分析以确定其所需的资源,也可以是专家基于经验设定的业务与资源的对应关系,还可以是基于一定方法确定的资源,如基于业务包括的图形界面来确定所需的资源。
在一个实施例中,每个业务包括至少一个显示界面。相应地,所述确定所述第一业务相关的资源包括确定所述第一业务包括的至少部分显示界面所需的资源。
具体地,一个业务的图形界面(GUII)需要使用的功能中包括人脸快速识别功能,则该第一业务相应的资源可以为人脸快速识别所需的so算法代码库、算法模型文件等。又例如,应用启动后的GUI中至少一个组件(如按钮、语音采集组件等)对应的功能中包括用户性别识别功能,则该第一业务相应的资源可以为人脸属性识别、声音属性识别所需的so算法代码库、算法模型文件等。
在操作S205,将所述第一业务相关的资源封装在应用包中,并将所述应用包发送至服务器端。
通过以上操作即可确定与启动所述应用相关的资源,以便将资源封装在应用包中,并将所述应用包发送至服务器端,以便于用户进行下载、安装及使用。
需要说明的是,在应用包中还可以完全不封装资源,也就是,当不存在与启动所述应用相关的第一业务时,即应用启动过程中不需要加载任何业务时,则可以不在应用包中封装任何资源。应用中所需的除第一业务相关的资源都可以存储在服务器端,当需要这些资源的时候再从服务器端下载。
例如,平台化广告牌的App可以不包含任何软件开发工具包(SoftwareDevelopment Kit,简称SDK)的so算法代码库,也不需要包含任何算法模型文件,在确定需要加载的业务后,App只需要从服务器把需要加载的业务的SDK最小集(包含用到的so算法代码库和算法模型文件)以主题资源的形式下载到本地,然后再加载即可,这样,应用包可以由原来的50Mb左右,减小到10Mb以内。
为了便于确定所需的业务的资源,所述应用可以具有显示界面与业务的资源的对应关系,该对应关系可以通过标定等方式确定,还可以由开发人员提供等。
相应地,所述方法还可以包括如下操作:将所述显示界面和业务的资源的对应关系封装在应用包中。这样便于应用基于当前显示界面或与当前显示界面存在关联的显示界面确定可能需要加载的资源,并进行预加载,可以有效减少用户等待加载资源的等待时长。
图2B示意性示出了根据本公开实施例的由服务器端执行的应用处理方法。
如图2B所示,该应用处理方法可以包括如下操作。
在操作S211,接收来自客户端的应用请求,所述应用请求包括应用包信息。
在本实施例中,应用包可以存储在服务器端,每个应用包具有唯一标识(ID),不同版本的应用包的标识不同,该应用包可以为应用的安装包、增量包等。例如,应用请求可以包括应用包的名称、标识等信息以便于服务器查找该应用包。其中,不同的应用存储在不同的服务器中,也可以由一个服务器给多个应用提供支持,在此不做限定。
在操作S213,响应于所述应用请求,基于所述应用包信息确定应用包。根据所述应用请求中包括的应用包信息来确定用户所需的应用包。
在操作S215,将所述应用包发送至所述客户端,其中,所述应用包中封装有第一业务相关的资源,所述第一业务为与启动所述应用包的应用相关的至少一个业务,所述第一业务相关的资源为加载所述第一业务所需的资源。
需要说明的是,在应用包中还可以完全不封装资源,也就是,当不存在与启动所述应用相关的第一业务时,即应用启动过程中不需要加载任何业务时,则可以不在应用包中封装任何资源。
在应用启动后,为了便于客户端加载第一业务之外的业务,所述服务器端可以存储其它业务相关的资源。
在一个实施例中,所述服务器端至少存储所述应用的第二业务相关的资源,所述第二业务不同于所述第一业务。
相应地,所述方法还可以包括如下操作。
首先,接收来自所述客户端的第二业务相关的资源请求。
例如,所述客户端接收的应用包中没有第二业务相关的资源,如果在运行应用的过程中,需要加载第二业务,则可以向所述服务器端发送第二业务相关的资源请求以便于获取第二业务相关的资源,就可以实现基于第二业务相关的资源加载所述第二业务。
接着,响应于所述第二业务相关的资源请求,确定所述第二业务相关的资源。其中,确定第二业务相关的资源的过程可以参考上文中确定所述第一业务相关的资源的相关说明。
然后,将所述第二业务相关的资源发送至所述客户端。
这样就可以在有效减小应用包的体积和缩短资源初始化的前提下,不会影响应用中其它业务的加载。
图2C示意性示出了根据本公开实施例的身份识别过程的时隙设置。
如图2C所示,本公开还提供了一种由客户端执行的应用处理方法,所述方法可以包括如下操作。
在操作S221,获取应用包,所述应用包中封装有第一业务相关的资源。
在操作S223,安装所述应用包,其中,所述第一业务为与启动所述应用包对应的应用相关的至少一个业务,所述第一业务相关的资源为加载所述第一业务所需的资源。
在本实施例中,客户端获取的应用包中仅包括与启动所述应用相关的第一业务所需的资源,使得应用包的体积较小,减少资源初始化用时,以及降低瞬时的数据传输量。
此外,所述方法还可以包括如下操作。
在运行所述应用时,如果接收到加载第二业务的指令,则从服务器端获取所述第二业务相关的资源,所述第二业务不同于所述第一业务。
此时,可以基于所述第二业务相关的资源加载所述第二业务。
在一个实施例中,每个业务包括至少一个显示界面,相应地,所述基于所述第二业务相关的资源加载所述第二业务可以包括如下操作。
首先,创建任务列表,每个任务用于调用第二业务相关的一个资源。
然后,确定当前显示界面。
接着,基于所述当前显示界面以及显示界面与业务的资源的对应关系从所述第二业务相关的资源中确定第一资源。
然后,从所述任务列表中确定所述第一资源对应的第一任务。
接着,执行所述第一任务。
在一个具体实施例中,以广告机为例进行说明,需要管理广告机所需要使用的所有功能,例如,可以在内存中保存一个以页面为主键(key)的Map结构:Map<页面ID:所使用的功能的信息>,其中,Map结构是Java语言中最常用的一种集合之一,用于存储元素对(称作“键”和“值”),每个键映射到一个值。所使用的功能的信息包括但不限于以下至少一种信息:
1)是否调用组件,如摄像头、指纹识别组件、红外传感器、声音传感器等。
2)软件开发工具包(SDK)任务列表。
其中,SDK任务列表中每个任务可以包括如下信息:
SDK名称,例如,JFace、JHand、JFist、Jdish。
SDK版本,例如,Jface具有:v1.2.x门禁、v1.5.x属性检测等。
任务ID,例如,Jface具有:门禁、门禁带模糊检测、年龄性别、年龄性别+其他属性、跟踪等。
其他默认参数信息,例如,检测区域、帧率、最小目标检测门限、是否活动等。
当然,根据实际使用需求,每个任务可以包括以上信息中的至少一种信息,还可以包括其它信息,以上所列举的信息不能理解为对本公开的限定。
在一个业务被加载时,这个业务下所有的页面可以向SDK管理模块注册以下信息:
1)是否调用组件和资源。
2)需要调用的组件和任务信息,例如,调用摄像头、所需SDK名称、SDK版本、任务ID等。
注册完成后,SDK管理模块会统计所有用到的资源,然后得到一个所需资源的合并集。比如,如果有3个不同的页面,第一个页面只使用人脸快速检测(门禁),第二个页面使用人脸跟踪,第三个页面不使用任何功能。SDK管理模块会自动统计出一个满足所有页面所需的资源的最小集:使用摄像头、使用人脸快速检测所需的so算法代码库和算法模型文件、使用人脸跟踪所需的so算法代码库和算法模型文件。
这样其他的so算法代码库和算法模型文件,例如用于年龄性别识别、属性识别、手势识别的jhand.so,以及年龄性别识别的算法模型、属性识别的算法模型、手势识别的算法模型都不需要加载,有效降低了资源加载和初始化用时。
在这样的功能支持下,平台化广告机的应用包中可以不包含任何资源,如so算法代码库和算法模型文件,在确定需要加载的业务后,应用只需要从服务器端把SDK管理模块统计后的资源的最小集(包含用到的so算法代码库和算法模型文件)以主题资源的形式下载到本地,然后再加载即可。这样,应用包的体积可以从约50Mb减小到10Mb以内。
进一步地,所述方法还可以包括如下操作。
如果接收到更换新显示界面指令,则基于所述新显示界面以及显示界面与业务的资源的对应关系从所述第二业务相关的资源中确定第二资源。
接着,从所述任务列表中确定所述第二资源对应的第二任务。
然后,执行所述第二任务。
在一个具体实施例中,一个业务初始化的时候,广告机的应用会把当前已加载的业务中各页面用到的算法文件模型都加载,例如,在上一个实施例的场景中,在初始化业务时,会初始化用到的所有so算法代码库。由于初始化so算法代码库和初始化算法模型比较耗时,如1秒至5秒,为了保证页面间切换的流畅性,可以在一开始将所有初始化工作做完。
广告机的App也会在当前业务初始化时将所有的任务加入任务列表中,使得所有任务随时处于可以工作的状态。当第一页启动时,SDK管理模块会根据页面ID查询当前页面需要用到的任务ID,然后激活这个任务ID的任务。
当广告从第一页切换到第二页时,SDK管理模块又会激活第二页用到的任务,这样可以根据页面ID激活所需的任务,可以保证每个页面运行各自需要的任务。
需要说明的是,每个任务会有自身的属性,例如,检测区域、帧率、最小目标检测门限等。
这些属性是随时可以更改的,也会提供应用接口(API),使每个页面可以在运行时修改这些属性的参数来实现任务的精细配置。
然而,当有两个或以上页面共用某个任务时,一个页面修改的配置属性也会影响到其他页面,但是,不同的页面即使使用同一个任务,一个页面设置的任务属性也不应受其他页面影响。
具体地,由于同一个任务在不同的显示界面中被执行时,每个显示界面具有各自的显示属性,例如,第一显示界面中需要在第一指定区域显示当前采集的图像信息,而第二显示界面中需要在第二指定区域显示采集的图像信息,或者第二显示界面中不用显示采集的图像信息,只显示识别结果,因此,需要为每个显示界面的任务设置自身属性。
为了实现上述目的,所述方法还可以包括如下操作。
以显示界面为单位分别为显示界面对应的每个任务分配指定个数存储空间,其中,对于一个显示界面对应的一个任务,所述指定个数存储空间中至少一个存储空间用于存储所述显示界面对应的一个任务的第一属性,所述指定个数存储空间中其余存储空间用于存储所述显示界面对应的一个任务的第二属性。
在一个具体实施例中,分别为每个页面中的每个任务建立两个表,一个用于存储默认属性,另一个用于存储页面自定义的配置。这样每次调用到这个界面时,即使任务ID相同,任务的默认属性会有所区分,在激活任务的同时,SDK管理模块也会将该页面的配置属性恢复到默认值、或按照页面的配置修改好。
在本实施例中,以显示界面为单位分别为显示界面对应的每个任务分配指定个数存储空间。每个任务有自身属性,当有两个或以上页面共用同一任务时,一个页面修改的配置属性不会影响到其他页面。
在另一个实施例中,为了保证业务的顺利切换,所述方法还可以包括如下操作,进行业务切换时,清空任务列表。
具体地,在切换整个业务时,所有的任务列表中的任务需要清除掉并重新创建。
其中,对于so算法代码库、算法模型,在切换业务时,如果之前的业务中已经初始化过,就不需要再重复初始化了。SDK管理模块会保存那些初始化过的信息,仅初始化那些没有初始化过的so算法代码库和算法模型文件。
本公开提供的应用处理方法,分别针对应用的体积和使用时间这两个方面提供更加精细化管理的实现方法。例如,可以选择不初始化与启动所述应用不相关的业务的资源,运用这种更小粒度的精细化管理,使得广告机的应用能够与具体广告业务解耦,并做到随时加载或卸载so算法代码库,并且在使用时只加载需要的算法模型文件,可以有效减少安装包和下载增量包的体积,同时也可以大大减少业务的初始化时间。
图3A示意性示出了根据本公开实施例的应用处理装置的框图。
如图3A所示,该应用处理装置300可以包括业务确定模块301、资源确定模块303和输出模块305。
其中,所述业务确定模块301用于确定第一业务,所述第一业务为与启动所述应用相关的至少一个业务,所述应用包括多个业务。
所述资源确定模块303用于如果存在所述第一业务,则确定所述第一业务相关的资源,所述第一业务相关的资源为加载所述第一业务所需的资源。
所述输出模块305用于将所述第一业务相关的资源封装在应用包中,并将所述应用包发送至服务器端。
例如,每个业务包括至少一个显示界面,相应地,所述资源确定模块303具体用于确定所述第一业务包括的至少部分显示界面所需的资源。
此外,所述应用还可以具有显示界面与业务的资源的对应关系,相应地,所述装置300还可以包括关系存储模块307,该关系存储模块307用于将所述显示界面和业务的资源的对应关系封装在应用包中。
图3B示意性示出了根据本公开另一实施例的应用处理装置的框图。
如图3B所示,本公开的另一个方面提供了一种应用处理装置400,包括应用请求接收模块401、应用包确定模块403和应用包发送模块405。
其中,所述应用请求接收模块401用于接收来自客户端的应用请求,所述应用请求包括应用包信息。
所述应用包确定模块403用于响应于所述应用请求,基于所述应用包信息确定应用包。
所述应用包发送模块405用于将所述应用包发送至所述客户端,其中,所述应用包中封装有第一业务相关的资源,所述第一业务为与启动所述应用包的应用相关的至少一个业务,所述第一业务相关的资源为加载所述第一业务所需的资源。
为了便于客户端加载所述第一业务之外的业务,所述服务器端至少存储所述应用的第二业务相关的资源,所述第二业务不同于所述第一业务。
相应地,所述装置400还可以包括资源请求接收模块、资源确定模块和资源发送模块。
其中,所述资源请求接收模块用于接收来自所述客户端的第二业务相关的资源请求。
所述资源确定模块用于响应于所述第二业务相关的资源请求,确定所述第二业务相关的资源。
所述资源发送模块用于将所述第二业务相关的资源发送至所述客户端。
图3C示意性示出了根据本公开另一实施例的应用处理装置的框图。
如图3C所示,本公开的另一个方面提供了一种应用处理装置500,可以包括应用包获取模块501和安装模块503。
其中,所述应用包获取模块501用于获取应用包,所述应用包中封装有第一业务相关的资源。
所述安装模块503用于安装所述应用包,所述第一业务为与启动所述应用包对应的应用相关的至少一个业务,所述第一业务相关的资源为加载所述第一业务所需的资源。
此外,所述装置500还可以包括资源获取模块505和业务加载模块507。
其中,所述资源获取模块505用于在运行所述应用时,如果接收到加载第二业务的指令,则从服务器端获取所述第二业务相关的资源,所述第二业务不同于所述第一业务。
所述业务加载模块507用于基于所述第二业务相关的资源加载所述第二业务。
在一个实施例中,每个业务包括至少一个显示界面,相应地,所述业务加载模507块可以包括:列表创建单元、界面确定单元、资源确定单元、第一任务确定单元和第一任务执行单元。
所述列表创建单元用于创建任务列表,每个任务用于调用第二业务相关的一个资源。
所述界面确定单元用于确定当前显示界面。
所述资源确定单元用于基于所述当前显示界面以及显示界面与业务的资源的对应关系从所述第二业务相关的资源中确定第一资源。
所述第一任务确定单元用于从所述任务列表中确定所述第一资源对应的第一任务。
所述第一任务执行单元用于执行所述第一任务。
另外,所述业务加载模块507还可以包括更新接收单元、第二任务确定单元和第二任务执行单元。
其中,所述更新接收单元用于如果接收到更换新显示界面指令,则基于所述新显示界面以及显示界面与业务的资源的对应关系从所述第二业务相关的资源中确定第二资源。
所述第二任务确定单元用于从所述任务列表中确定所述第二资源对应的第二任务。
所述第二任务执行单元用于执行所述第二任务。
在另一个实施例中,所述业务加载模块507还可以包括空间分配单元,该空间分配单元用于以显示界面为单位分别为显示界面对应的每个任务分配指定个数存储空间,其中,对于一个显示界面对应的一个任务,所述指定个数存储空间中至少一个存储空间用于存储所述显示界面对应的一个任务的第一属性,所述指定个数存储空间中其余存储空间用于存储所述显示界面对应的一个任务的第二属性。
此外,所述业务加载模块507还可以包括任务清空单元,用于进行业务切换时,清空任务列表。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,业务确定模块301、资源确定模块303、输出模块305和关系存储模块307中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,业务确定模块301、资源确定模块303、输出模块305和关系存储模块307中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,业务确定模块301、资源确定模块303、输出模块305和关系存储模块307中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图4示意性示出了根据本公开实施例的计算机设备的框图。图4示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图4所示,根据本公开实施例的计算机设备600包括处理器601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。处理器601例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器601还可以包括用于缓存用途的板载存储器。处理器601可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 603中,存储有设备600操作所需的各种程序和数据。处理器601、ROM 602以及RAM 603通过总线604彼此相连。处理器601通过执行ROM 602和/或RAM 603中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 602和RAM 603以外的一个或多个存储器中。处理器601也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,设备600还可以包括输入/输出(I/O)接口605,输入/输出(I/O)接口605也连接至总线604。设备600还可以包括连接至I/O接口605的以下部件中的一项或多项:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被处理器601执行时,执行本公开实施例的设备中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 602和/或RAM 603和/或ROM 602和RAM 603以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (16)

1.一种由开发端执行的应用处理方法,所述方法包括:
确定第一业务,所述第一业务为与启动所述应用相关的至少一个业务,所述应用包括多个业务;
如果存在所述第一业务,则确定所述第一业务相关的资源,所述第一业务相关的资源为加载所述第一业务所需的资源;以及
将所述第一业务相关的资源封装在应用包中,并将所述应用包发送至服务器端。
2.根据权利要求1所述的方法,其中:
每个业务包括至少一个显示界面;以及
所述确定所述第一业务相关的资源包括确定所述第一业务包括的至少部分显示界面所需的资源。
3.根据权利要求1所述的方法,其中:
所述应用具有显示界面与业务的资源的对应关系;以及
所述方法还包括:
将所述显示界面和业务的资源的对应关系封装在应用包中。
4.一种由服务器端执行的应用处理方法,所述方法包括:
接收来自客户端的应用请求,所述应用请求包括应用包信息;
响应于所述应用请求,基于所述应用包信息确定应用包;以及
将所述应用包发送至所述客户端;
其中,所述应用包中封装有第一业务相关的资源,所述第一业务为与启动所述应用包的应用相关的至少一个业务,所述第一业务相关的资源为加载所述第一业务所需的资源。
5.根据权利要求4所述的方法,其中:
所述服务器端至少存储所述应用的第二业务相关的资源,所述第二业务不同于所述第一业务;
所述方法还包括:
接收来自所述客户端的第二业务相关的资源请求;
响应于所述第二业务相关的资源请求,确定所述第二业务相关的资源;以及
将所述第二业务相关的资源发送至所述客户端。
6.一种由客户端执行的应用处理方法,所述方法包括:
获取应用包,所述应用包中封装有第一业务相关的资源;以及
安装所述应用包;
其中,所述第一业务为与启动所述应用包对应的应用相关的至少一个业务,所述第一业务相关的资源为加载所述第一业务所需的资源。
7.根据权利要求6所述的方法,还包括:
在运行所述应用时,如果接收到加载第二业务的指令,则从服务器端获取所述第二业务相关的资源,所述第二业务不同于所述第一业务;以及
基于所述第二业务相关的资源加载所述第二业务。
8.根据权利要求7所述的方法,其中:
每个业务包括至少一个显示界面;
所述基于所述第二业务相关的资源加载所述第二业务包括:
创建任务列表,每个任务用于调用第二业务相关的一个资源;
确定当前显示界面;
基于所述当前显示界面以及显示界面与业务的资源的对应关系从所述第二业务相关的资源中确定第一资源;
从所述任务列表中确定所述第一资源对应的第一任务;以及
执行所述第一任务。
9.根据权利要求8所述的方法,还包括:
如果接收到更换新显示界面指令,则基于所述新显示界面以及显示界面与业务的资源的对应关系从所述第二业务相关的资源中确定第二资源;
从所述任务列表中确定所述第二资源对应的第二任务;以及
执行所述第二任务。
10.根据权利要求8所述的方法,还包括:
以显示界面为单位分别为显示界面对应的每个任务分配指定个数存储空间;
其中,对于一个显示界面对应的一个任务,所述指定个数存储空间中至少一个存储空间用于存储所述显示界面对应的一个任务的第一属性,所述指定个数存储空间中其余存储空间用于存储所述显示界面对应的一个任务的第二属性。
11.根据权利要求8所述的方法,还包括:
进行业务切换时,清空任务列表。
12.一种应用处理装置,包括:
业务确定模块,用于确定第一业务,所述第一业务为与启动所述应用相关的至少一个业务,所述应用包括多个业务;
资源确定模块,用于如果存在所述第一业务,则确定所述第一业务相关的资源,所述第一业务相关的资源为加载所述第一业务所需的资源;以及
输出模块,用于将所述第一业务相关的资源封装在应用包中,并将所述应用包发送至服务器端。
13.一种应用处理装置,包括:
应用请求接收模块,用于接收来自客户端的应用请求,所述应用请求包括应用包信息;
应用包确定模块,用于响应于所述应用请求,基于所述应用包信息确定应用包;以及
应用包发送模块,用于将所述应用包发送至所述客户端;
其中,所述应用包中封装有第一业务相关的资源,所述第一业务为与启动所述应用包的应用相关的至少一个业务,所述第一业务相关的资源为加载所述第一业务所需的资源。
14.一种应用处理装置,包括:
应用包获取模块,用于获取应用包,所述应用包中封装有第一业务相关的资源;以及
安装模块,用于安装所述应用包;
其中,所述第一业务为与启动所述应用包对应的应用相关的至少一个业务,所述第一业务相关的资源为加载所述第一业务所需的资源。
15.一种计算机设备,包括:
一个或多个处理器;
存储装置,用于存储可执行指令,所述可执行指令在被所述处理器执行时,实现根据权利要求1~11中任一项所述的方法。
16.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时实现根据权利要求1~11中任一项所述的方法。
CN201910477239.0A 2019-06-03 2019-06-03 应用处理方法、应用处理装置、计算机设备和介质 Pending CN112035095A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910477239.0A CN112035095A (zh) 2019-06-03 2019-06-03 应用处理方法、应用处理装置、计算机设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910477239.0A CN112035095A (zh) 2019-06-03 2019-06-03 应用处理方法、应用处理装置、计算机设备和介质

Publications (1)

Publication Number Publication Date
CN112035095A true CN112035095A (zh) 2020-12-04

Family

ID=73576613

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910477239.0A Pending CN112035095A (zh) 2019-06-03 2019-06-03 应用处理方法、应用处理装置、计算机设备和介质

Country Status (1)

Country Link
CN (1) CN112035095A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114764352A (zh) * 2021-01-15 2022-07-19 北京猎户星空科技有限公司 一种业务服务提供方法、智能设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060282400A1 (en) * 2005-06-10 2006-12-14 Muralidhar Kalavacharla Apparatus, system, and method for encapsulating logical units of work using business objects
CN103810249A (zh) * 2014-01-20 2014-05-21 中国建设银行股份有限公司 一种兼容多个验印厂商算法的方法和系统
CN103886167A (zh) * 2012-11-15 2014-06-25 上海联影医疗科技有限公司 医学图像处理方法及系统、客户端及服务器
CN108446116A (zh) * 2018-02-26 2018-08-24 平安普惠企业管理有限公司 应用程序页面的生成方法、装置、计算机设备和存储介质
CN109656538A (zh) * 2017-10-11 2019-04-19 阿里巴巴集团控股有限公司 应用程序的生成方法、装置、系统、设备和介质
CN109783744A (zh) * 2018-12-05 2019-05-21 北京奇艺世纪科技有限公司 页面启动方法、装置、终端及计算机可读存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060282400A1 (en) * 2005-06-10 2006-12-14 Muralidhar Kalavacharla Apparatus, system, and method for encapsulating logical units of work using business objects
CN103886167A (zh) * 2012-11-15 2014-06-25 上海联影医疗科技有限公司 医学图像处理方法及系统、客户端及服务器
CN103810249A (zh) * 2014-01-20 2014-05-21 中国建设银行股份有限公司 一种兼容多个验印厂商算法的方法和系统
CN109656538A (zh) * 2017-10-11 2019-04-19 阿里巴巴集团控股有限公司 应用程序的生成方法、装置、系统、设备和介质
CN108446116A (zh) * 2018-02-26 2018-08-24 平安普惠企业管理有限公司 应用程序页面的生成方法、装置、计算机设备和存储介质
CN109783744A (zh) * 2018-12-05 2019-05-21 北京奇艺世纪科技有限公司 页面启动方法、装置、终端及计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张颖慧;李智炜;: "基于元模型的综合资源管理方法", 电信科学, no. 05 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114764352A (zh) * 2021-01-15 2022-07-19 北京猎户星空科技有限公司 一种业务服务提供方法、智能设备及存储介质

Similar Documents

Publication Publication Date Title
CN113110941B (zh) 使用应用容器管理代码和依赖性数据的传递
US20200057660A1 (en) Method and system for rendering user interfaces
US10019298B2 (en) Middleware interface and middleware interface generator
CN108363528B (zh) 应用页面的启动方法、装置、存储介质及电子设备
US11042387B2 (en) Deploying cross-platform applications on mobile devices with native and web components
US8978051B2 (en) Method and apparatus for displaying application image
WO2017166447A1 (zh) 内核模块加载方法和装置
CN108287917B (zh) 文件打开方法、装置、存储介质及电子设备
US11474810B2 (en) Run-time application modification
US9990214B2 (en) Dynamic agent delivery
US10453429B2 (en) Methods and apparatus to provide extended graphics processing capabilities
CN108141378B (zh) Vnfd中的休眠vdu
CN112162753A (zh) 软件部署方法、装置、计算机设备和存储介质
CN108345478B (zh) 应用处理方法、装置、存储介质及电子设备
CN111209122A (zh) 接口调用方法、装置、电子设备及存储介质
CN114443189B (zh) 一种图像处理方法和电子设备
CN111654539B (zh) 基于云原生的物联网操作系统构建方法、系统及电子设备
CN112035095A (zh) 应用处理方法、应用处理装置、计算机设备和介质
CN111240776B (zh) 动态壁纸设置方法、装置、存储介质及电子设备
US10839037B2 (en) Connected application experience
CN113050962B (zh) 移动服务升级方法、装置和终端
CN114968010A (zh) 协处理芯片的启动方法、装置、存储介质及电子装置
CN112181406A (zh) 一种渲染引擎的共享方法和装置
WO2023173896A1 (zh) 通信方法、电子设备及可读存储介质
WO2022143126A1 (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