智能设备的APP加载方法及应用该方法的智能设备、系统与流程

文档序号:12119877阅读:338来源:国知局
智能设备的APP加载方法及应用该方法的智能设备、系统与流程

本发明涉及软件应用程序加载技术领域,尤其涉及一种智能设备的APP加载方法及应用该方法的智能设备、系统。



背景技术:

可穿戴智能设备因其体积小巧,功能多样,应用也越来越广泛。可穿戴智能设备各种功能的实现,大多依赖于运行不同的App来实现。在现有的技术中,用户一般通过如下步骤来实现在可穿戴智能设备上安装、运行App,首先,用户选择要在设备上运行的App,并通过网络将该App的安装包下载到设备本地的外部存储器,等待下载完成后,再点击安装,将安装包中的文件部署到本地的外部存储器,安装完成后,在需要运行该App时,再点击该App,将App的程序代码加载到设备的内存中,并进行重定位,通过App的入口函数地址,启动App的运行。

用户从选择App到实现该App在设备上的运行,需要依次经过下载、安装、运行三个过程,且每一个过程的开始均需依赖前一过程的完成,用户等待时间长。同时随着可穿戴智能设备的小微、微型化,可穿戴智能设备的显示、操作界面越来越小,直接在可穿戴智能设备上进行相关操作比较困难。并且,由于受设备体积、功耗等的限制,可穿戴智能设备能够提供的存储空间也有限,因此,能够在设备上安装、运行的App也受到限制。



技术实现要素:

(一)要解决的技术问题

本发明要解决的技术问题是提供了一种智能设备的APP加载方法及应用该方法的智能设备、系统,能有效缩短智能设备上的APP运行等待时间,且节约智能设备的本地存储空间。

(二)技术方案

为了解决上述技术问题,本发明提供了一种智能设备的APP加载方法,包括以下步骤:

智能设备在接收到目标APP的运行指令后,向服务端发送第一请求消息,以使所述服务端反馈所述目标APP中的头文件信息;

所述智能设备在接收到所述头文件信息后,根据所述头文件信息确定目标存储空间,所述目标存储空间用于存储所述目标APP的代码信息;

所述智能设备在确定目标存储空间后,向所述服务端发送第二请求消息,以使所述服务端反馈所述目标APP的代码信息;

所述智能设备将接收到的所述代码信息存储到所述目标存储空间中;

所述智能设备基于所述代码信息运行所述目标APP,得到所述目标APP的资源调用信息;

所述智能设备向所述服务端发送携带有所述资源调用信息的第三请求消息,以使所述服务端反馈所述资源调用信息对应的资源信息,从而实现所述目标APP的加载。

进一步的,所述智能设备在接收到目标APP的运行指令后,向服务端发送第一请求消息,以使所述服务端反馈所述目标APP中的头文件信息之前,进一步包括:

所述智能设备在接收到目标APP的运行指令后,判断所述目标APP是否正在运行;

若是,则终止所述目标APP的运行指令;

若否,则向服务端发送第一请求消息。

进一步的,所述智能设备在接收到所述头文件信息后,根据所述头文件信息确定目标存储空间,所述目标存储空间用于存储所述目标APP的代码信息,进一步包括:

所述智能设备在接收到所述头文件信息后,判断所述目标存储空间是否足够,若是,则根据所述头文件信息确定目标存储空间,否则终止所述目标APP的运行指令。

进一步的,所述智能设备在接收到所述头文件信息后,根据所述头文件信息确定目标存储空间,所述目标存储空间用于存储所述目标APP的代码信息,进一步包括:

所述目标APP的代码信息包括只读代码信息和读写代码信息。

进一步的,所述目标存储空间为所述智能设备的内存空间,所述只读代码信息和读写代码信息均存储于所述智能设备的内存空间内。

进一步的,所述目标存储空间包括所述智能设备的闪存空间和内存空间,所述只读代码信息存储于所述智能设备的闪存空间内,所述读写代码信息存储于所述智能设备的内存空间内。

进一步的,所述智能设备将接收到的所述代码信息存储到所述目标存储空间中之后,进一步包括:

所述智能设备为存储于所述目标存储空间中的代码信息进行重定位。

进一步的,所述智能设备为存储于所述目标存储空间中的代码信息进行重定位,进一步包括:

所述智能设备根据所述代码信息在目标存储空间中的存储位置,将所述代码信息中的相对地址修改为绝对地址。

进一步的,所述智能设备向所述服务端发送携带有所述资源调用信息的第三请求消息,以使所述服务端反馈所述资源调用信息对应的资源信息,从而实现所述目标APP的加载,进一步包括:

所述智能设备根据所述目标app的资源调用信息,判断所述资源调用信息对应的资源信息是否存储于本地存储空间中;

若是,则直接实现所述目标APP的加载;

若否,则向所述服务端发送携带有所述资源调用信息的第三请求消息,以使所述服务端反馈所述资源调用信息对应的资源信息,从而实现所述目标APP的加载。

本发明还提供了一种智能设备,包括:

第一信息处理模块,用于在接收到目标APP的运行指令后,向服务端发送第一请求消息,以使所述服务端反馈所述目标APP中的头文件信息;

第一空间分配模块,用于在接收到所述头文件信息后,根据所述头文件信息确定目标存储空间,所述目标存储空间用于存储所述目标APP的代码信息;

第二信息处理模块,用于在确定目标存储空间后,向所述服务端发送第二请求消息,以使所述服务端反馈所述目标APP的代码信息;

第二空间分配模块,用于将接收到的所述代码信息存储到所述目标存储空间中;

资源调用模块,用于基于所述代码信息运行所述目标APP,得到所述目标APP的资源调用信息;

第三信息处理模块,用于向所述服务端发送携带有所述资源调用信息的第三请求消息,以使所述服务端反馈所述资源调用信息对应的资源信息,从而实现所述目标APP的加载。

本发明还提供了一种系统,包括服务端和如上所述的智能设备,所述智能设备应用如上所述的加载方法。

(三)有益效果

本发明的上述技术方案具有以下有益效果:

1、本发明的智能设备的APP加载方法中,APP不需单独安装、直接加载运行即可,且在APP加载过程中,无需用户按照顺序依次执行下载、安装、运行三个过程,并依次等待前一个过程的完成,而是只需要在发出App的运行指令后,通过智能设备直接加载APP,即可立即在可穿戴智能设备上运行该App,使得用户操作更为简洁,等待时间更短,并且整个加载过程对用户来说是透明的,用户无需改变操作习惯。

2、本发明的APP的加载方法采用块式加载,可以有效缩短用户等待服务时间,本发明的家在方法通过将目标APP的安装文件切割成块,优先下载、加载安装文件中首先需要的块,即头文件信息和代码信息,而资源信息在程序运行之后再按需下载、加载,缩短了用户应用程序启动的时间,在一定的网络条件下,应用程序启动过程近乎不可感知,对用户而言是透明的。

3、本发明通过在App的运行过程中动态的加载资源文件,节约了存储空间,降低了App对可穿戴智能设备存储空间的需求。

附图说明

图1为本发明实施例的智能设备的APP加载方法的流程框架示意图;

图2为本发明实施例的智能设备的APP加载方法的流程图;

图3为本发明实施例的目标APP的区块划分及数据格式示意图;

图4为本发明实施例的智能设备与服务端之间的通信框架示意图;

图5为本发明实施例的智能设备的模块示意图。

其中,1、第一信息处理模块;2、第一空间分配模块;3、第二信息处理模块;4、第二空间分配模块;5、资源调用模块;6、第三信息处理模块。

具体实施方式

下面结合附图和实施例对本发明的实施方式作进一步详细描述。以下实施例用于说明本发明,但不能用来限制本发明的范围。

如图1和图2所示,本实施例提供的智能设备的APP加载方法,包括以下步骤:

S1、智能设备在接收到目标APP的运行指令后,向服务端发送第一请求消息,以使服务端反馈目标APP中的头文件信息。

其中,在智能设备在接收到目标APP的运行指令后,向服务端发送第一请求消息,以使服务端反馈目标APP中的头文件信息之前,进一步包括:

S101、智能设备在接收到目标APP的运行指令后,判断目标APP是否正在运行;若是,则终止目标APP的运行指令;若否,则向服务端发送第一请求消息。

S2、智能设备在接收到头文件信息后,根据头文件信息确定目标存储空间,目标存储空间用于存储目标APP的代码信息。

其中,为了对后续需要加载的代码信息的可靠存储进行预判,智能设备在接收到头文件信息后,根据头文件信息确定目标存储空间,目标存储空间用于存储目标APP的代码信息,进一步包括:

S201、智能设备在接收到头文件信息后,判断目标存储空间是否足够,若是,则根据头文件信息确定目标存储空间,否则终止目标APP的运行指令。

本实施例中,智能设备在接收到头文件信息后,根据头文件信息确定目标存储空间,目标存储空间用于存储目标APP的代码信息,进一步包括:目标APP的代码信息包括只读代码信息和读写代码信息。

当目标存储空间为智能设备的内存空间,只读代码信息和读写代码信息均存储于智能设备的内存空间内。

当目标存储空间包括智能设备的闪存空间和内存空间,只读代码信息存储于智能设备的闪存空间内,读写代码信息存储于智能设备的内存空间内。

S3、智能设备在确定目标存储空间后,向服务端发送第二请求消息,以使服务端反馈目标APP的代码信息。

S4、智能设备将接收到的代码信息存储到目标存储空间中。

其中,智能设备将接收到的代码信息存储到目标存储空间中之后,进一步包括:

S401、智能设备为存储于目标存储空间中的代码信息进行重定位。

在步骤S401的智能设备为存储于目标存储空间中的代码信息进行重定位中,进一步包括:

S4011、智能设备根据代码信息在目标存储空间中的存储位置,将代码信息中的相对地址修改为绝对地址。

S5、智能设备基于代码信息运行目标APP,得到目标APP的资源调用信息。

S6、智能设备向服务端发送携带有资源调用信息的第三请求消息,以使服务端反馈资源调用信息对应的资源信息,从而实现目标APP的加载。

其中,为了确保资源调用的顺畅,在智能设备向服务端发送携带有资源调用信息的第三请求消息,以使服务端反馈资源调用信息对应的资源信息,从而实现目标APP的加载中,进一步包括:

S601、智能设备根据目标app的资源调用信息,判断资源调用信息对应的资源信息是否存储于本地存储空间中;若是,则直接实现目标APP的加载;若否,则向服务端发送携带有资源调用信息的第三请求消息,以使服务端反馈资源调用信息对应的资源信息,从而实现目标APP的加载。

具体的,如图3和图4所示,本实施例的智能设备以可穿戴智能设备为例,对本发明的APP加载方法中的具体细节进行详细说明。

本实施例的可穿戴智能设备上不用完全存储目标App程序包,而是将目标App程序包全部存储在服务端,并且,服务端将目标App程序包划分为头文件信息、代码信息和资源信息。用户通过服务端或者智能设备的操作界面上点击目标App图标等方式,向智能设备发送目标App的运行指令,智能设备根据该目标App的运行指令,首先判断该目标App是否已在智能设备上运行,是则不再执行该运行指令,否则向服务端申请该目标App的头文件信息,根据该头文件信息中的代码大小,判断本地运行的目标存储空间是否满足该目标App的运行需求,满足则为该目标App分配运行的目标存储空间,否则向用户返回运行存储空间不足的信息,并终止执行目标App的运行指令;可穿戴智能设备为目标App分配运行用的目标存储空间后,从服务端下载该目标App的代码信息,并将该代码信息存储至所分配的目标存储空间内;然后通过对代码信息进行重定位,即将代码细腻些的相对地址修改为绝对地址,并根据代码信息的入口地址,启动该目标App的运行程序;在目标App的运行过程中,根据目标App对资源的调用需求,从服务端按需下载资源信息并提供给目标App调用,从而实现目标APP的加载。

在本实施例中,服务端将代码信息进一步划分为只读代码信息和读写代码信息,只读代码信息包括.ro段(只读数据段)和.text段(代码段),读写代码信息包括.zi段(可读可写未初始化变量段)和.rw段(可读可写已初始化变量段)。

如图3所示,在本实施例中,根据目标App的文件标准,将目标App软件划分为头文件信息、代码信息和资源信息。头文件信息包括目标App的头文件信息段和应用本身信息段,头文件信息段包括目标App软件的protocol_version(App文件协议标识)、CRC_check(循环冗余校验码,保证App文件传输的正确性和完整性)、universal_identifier(应用程序全局通用唯一标识符,用于与服务器之间通信),应用本身信息包括用App_os_identifier(应用程序在操作系统中的唯一标识符)、sdk_identifier(应用程序所采用软件开发工具包标识)、App_category(应用程序类型)、object_type(目标文件类型(整型))、App_version(App版本信息)、App_name(App名字,采用utf-8编码)、resource_len(资源文件大小)、object_len(目标文件大小)等信息;代码部分为App软件的目标代码信息,包括字段object_file,由.zi段、.rw段、.ro段和.text段组成;资源文件块包括用于记录资源结构体数量的resource_num(资源数量)、App_os_identifier(应用程序在操作系统中的唯一标识符),resource_node(资源结点)、和res_node_data(资源结点数据)等。

在本实施例中,目标存储空间的分配包括两种分配方式:第一种目标存储空间的分配方式为:智能设备在内存中为目标App分配空间,目标App的整个代码信息全部加载至内存中,目标App在内存中运行;第二种目标存储空间的分配方式为:根据代码信息的特征,只读代码信息的.ro段(只读数据段)和.text段(代码段)在进行地址重定位后,在软件运行过程中,只需要读取,而不需要写入内存。而在现有的硬件条件下,闪存的读取速度与RAM内存的读取速度相当,因此,可将只读部分存储在闪存。对于代码信息的读写代码信息的.zi段(可读可写未初始化变量段)和.rw段(可读可写已初始化变量段),因在目标App运行过程中需要频繁的读写,将代码信息的读写代码信息存储至智能设备的RAM内存中。本实施例优选采用第二种目标存储空间分配方式,其优势在于:一是目标App在运行过程中不受闪存读写速度的影响,保证了目标App的顺利运行;二是进一步降低了目标App对内存资源的需求;三是闪存具有长期存储特性,对于存储在闪存中的数据,智能设备无需每次都从服务端下载,降低了智能设备与服务端的通讯强度。

在本实施例中,可穿戴智能设备进行地址重定位的步骤为:首先,智能设备提取代码信息中需要修改地址的符号名称,判断符号名称是否在目标App的代码信息的符号表中,是则直接计算符号名称在内存中的地址偏移量,并修改.text段中对应符号的地址,否则从智能设备的系统符号中查询符号名称,并计算符号名称在内存中的地址偏移量,并修改.text段中对应符号的地址;可穿戴智能设备根据代码信息中符号表在目标存储空间中的地址,计算.ro段中所定义常量的地址,并写入到.text段中;可穿戴智能设备根据代码信息中.rw段和.zi段在内存中的地址,修改.text段中需要重定位的机器码的地址。完成地址重定位后,即可根据代码部分的入口函数,启动该目标App的运行。

在本实施例中,智能设备基于代码信息运行目标APP,得到目标APP的资源调用信息,当目标App所请求的资源信息存储在可穿戴智能设备本地的外部存储器中时,则直接将资源信息提供给目标App,从而直接实现目标APP的加载;否则可穿戴智能设备根据目标App的app_id(用户应用内部ID)、file_key(文件关键字)、type(文件类型)和offset(相对资源文件起始位置偏移)等信息向服务端申请调用对应的资源信息,服务端根据可穿戴智能设备的申请将资源信息通过网络发送至可穿戴智能设备,由可穿戴智能设备将资源信息提供给目标App。

因此,在本实施例的目标App启动时,可穿戴智能设备仅仅下载了目标App的代码信息,并没有下载并加载资源信息,因此,对于目标App运行过程需要使用的资源信息,将随时根据目标App的使用需求,从服务端下载,即目标App的运行与资源信息的下载是同步进行的,对用户来说,下载资源信息的过程是透明的,进一步降低了目标App对可穿戴智能设备本地存储空间的需求,也进一步缩短了用户等待的时间。

本实施例提供的服务端是包括但不限于PC机、平板电脑、智能手机等在内的,向可穿戴设备提供下载服务支持的设备。

本实施例提供的智能设备包括:第一信息处理模块1、第一空间分配模块2、第二信息处理模块3、第二空间分配模块4、资源调用模块5和第三信息处理模块6。

第一信息处理模块1用于在接收到目标APP的运行指令后,向服务端发送第一请求消息,以使服务端反馈目标APP中的头文件信息;第一空间分配模块2用于在接收到头文件信息后,根据头文件信息确定目标存储空间,目标存储空间用于存储目标APP的代码信息;第二信息处理模块3用于在确定目标存储空间后,向服务端发送第二请求消息,以使服务端反馈目标APP的代码信息;第二空间分配模块4用于将接收到的代码信息存储到目标存储空间中;资源调用模块5用于基于代码信息运行目标APP,得到目标APP的资源调用信息;第三信息处理模块6用于向服务端发送携带有资源调用信息的第三请求消息,以使服务端反馈资源调用信息对应的资源信息,从而实现目标APP的加载。

本实施例的系统包括上述的服务端和如上所述的智能设备,智能设备应用如上所述的APP加载方法。

综上,本实施例所述的智能设备的APP加载方法及应用该方法的智能设备、系统具有以下有益效果:

1、该智能设备的APP加载方法中,APP不需单独安装、直接加载运行即可,且在APP加载过程中,无需用户按照顺序依次执行下载、安装、运行三个过程,并依次等待前一个过程的完成,而是只需要在发出App的运行指令后,通过智能设备直接加载APP,即可立即在可穿戴智能设备上运行该App,使得用户操作更为简洁,等待时间更短,并且整个加载过程对用户来说是透明的,用户无需改变操作习惯。

2、该APP的加载方法采用块式加载,可以有效缩短用户等待服务时间,本发明的家在方法通过将目标APP的安装文件切割成块,优先下载、加载安装文件中首先需要的块,即头文件信息和代码信息,而资源信息在程序运行之后再按需下载、加载,缩短了用户应用程序启动的时间,在一定的网络条件下,应用程序启动过程近乎不可感知,对用户而言是透明的。

3、通过在目标App的运行过程中动态的加载资源文件,节约了目标存储空间,降低了目标App对智能设备的存储空间的需求。

本发明的实施例是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

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