一种智能终端的程序流式执行方法

文档序号:9929413阅读:432来源:国知局
一种智能终端的程序流式执行方法
【技术领域】
[0001]本发明涉及一种软件执行领域,尤其涉及一种智能终端的程序流式执行方法。
【背景技术】
[0002]随着技术的不断进步,智能终端从手持设备到通用的可穿戴式设备也在不断发展。智能终端通常包括一个或多个低功耗CPU/MQJ(Central Processing Unit,中央处理器/ Micro Control Unit,微控单元),内存及周边设备。CPU/MCU是主要负责运行操作系统或设备的固件软件。智能终端通常配备有一个几千或几兆字节的闪存和一个几千字节的内存(RAM),在一般情况下,正在运行的操作系统或应用程序的变量必须存储在内存(RAM,Random Access Memory,随机存取存储器)中,而如图片、字体等资源数据通常存储在闪存中,以降低操作系统或应用程序对内存的依赖。
[0003]用户通过在智能终端加载操作系统或应用程序来实现智能终端某一功能上的应用,为了更多更好的实现智能终端的应用功能,用户往往需要在智能终端上安装许多个不同的应用程序,并且还需要不定时的更新操作系统和应用程序。而在现有技术中,智能终端的操作系统往往是以固件形式存储在闪存中,对操作系统的升级,往往需要通过第三方的程序模块,下载整个操作系统升级包,并擦除整个闪存中的数据内容,再将新的操作系统升级包写入到闪存中,如现有技术中的空间下载技术(0TA,0ver-the-Air Technology)。虽然升级整个系统和应用程序可以让用户在智能终端上获得更多的服务,但升级过程可能需要很长的时间和稳定的网络。
[0004]在智能终端上存储大量的应用程序,对智能终端的存储空间具有很高的要求,随着应用程序的运行,智能终端上需要的存储空间也将会进一步增大,使智能终端变得更加臃肿。并且,随着操作系统和应用程序的功能越来越全面,操作系统和应用程序也越来越大,对智能终端的硬件设备也提出了越来越高的要求,特别是操作系统和应用程序对智能终端的内存空间的需求尤为突出。因此,一种既能够有效提高智能终端的扩展性,方便地获取新的操作系统和应用程序,又能够降低应用程序对智能终端硬件要求、实现应用程序在智能终端有效执行的方法具有显著的意义。

【发明内容】

[0005]本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种既能够有效提高智能终端的扩展性,方便地获取新的操作系统和应用程序,又能够降低应用程序对智能终端硬件要求、实现应用程序在智能终端有效执行智能终端的程序流式执行方法。
[0006]为解决上述技术问题,本发明提出的技术方案为:一种智能终端的程序流式执行方法,智能终端在程序执行前不存储有所述程序的程序包;所述程序的程序包由服务端存储和管理,根据ELF文件标准,所述程序包包括代码段(.code段)、只读数据段(.constdata段)、未初始化数据段(.bss段)和可读/写数据段(.data段); 所述智能终端获取程序执行指令,从服务器端下载所述程序包的未初始化数据段和可读/写数据段,和代码段,并加载至本地存储空间,启动程序执行,在执行过程中,根据程序对代码段、只读数据段数据的调用请求,智能终端从服务端下载所请求的代码段、只读数据段数据,并加载至本地存储空间,供所述程序调用。
[0007]作为本发明的进一步改进,所述未初始化数据段和可读/写数据段从服务器端下载,加载至智能终端的内存中;所述代码段、只读数据段从服务器端下载,加载至智能终端的闪存中。
[0008]作为本发明的进一步改进,所述程序包的代码段、只读数据段、未初始化数据段和可读/写数据段从服务端下载,均加载至智能终端的内存中。
[0009]作为本发明的进一步改进,在所述智能终端从服务器端下载所述可执行文件前,还包括智能终端为程序分配本地存储空间的步骤,当智能终端空闲的本地存储空间小于所述程序执行所需存储空间时,终止所述程序的执行,释放程序已占用的资源,否则智能终端为程序分配本地存储空间。
[0010]作为本发明的进一步改进,在所述启动程序执行前,智能终端仅下载所述可执行文件的未初始化数据段和可读/写数据段,以及按照预设的分块方法从服务端下载代码段的第一部分。
[0011]作为本发明的进一步改进,所述程序提出对代码段、只读数据段数据的调用请求时,判断所请求数据是否存储在本地存储空间中,是则直接将本地存储空间中的数据供程序调用,否则,智能终端从服务端下载所请求数据,并加载至本地存储空间,供程序调用。
[0012]作为本发明的进一步改进,所述智能终端将可执行文件的代码段数据加载至本地存储空间还包括重定位的步骤:所述智能终端根据代码段函数单元、未初始化数据段内存单元和可读/写数据段内存单元的绝对地址,将代码段制单元中的相对相址修改为绝对地址。
作为本发明的进一步改进,所述智能终端根据映射元数据表判断程序所请求的数据是否存储在本地存储空间。
[0013]作为本发明的进一步改进,所述映射元数据表包括物理地址、文件代码、和文件偏移;所述映射元数据表的每一条数据对应本地存储空间的一条数据。
[0014]作为本发明的进一步改进,所述智能终端通过传送列表管理向服务端下载的数据;所述智能终端判断向服务端申请下载的数据是否记载在所述传送列表中,是则不再向服务端提出下载申请,等待所述数据下载完成,否则向服务端提所述数据下载申请,将将该数据加入传送列表,从服务端下载所述数据。
[0015]与现有技术相比,本发明的优点在于:本发明能够有效提高智能终端的扩展性,方便地获取新的操作系统和应用程序,又能够降低应用程序对智能终端硬件要求,特别是应用程序对闪存空间和内存空间的需求,能够实现应用程序在仅有较小闪存空间和内存空间的智能终端有效运行。
【附图说明】
[0016]图1为本发明实施例智能终端硬件结构示意图。
[0017]图2为本发明实施例服务端软件部署示意图。
[0018]图3为本发明实施例流程示意图。
[0019]图4为本发明实施例数据下载流程示意图。
[0020]图5为本发明实施例存储空间划分及存储示意图。
[0021]图6为本发明实施例重定位示意图。
[0022]图7为本发明实施例映射元数据表结构示意图。
【具体实施方式】
[0023]以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。
[0024]本实施例一种智能终端的程序流式执行方法,智能终端在程序执行前不存储有程序的程序包;程序的程序包由服务端存储和管理,根据ELF文件标准,程序包包括代码段(.code段)、只读数据段(.constdata段)、未初始化数据段(.bss段)和可读/写数据段(.data段);智能终端获取程序执行指令,从服务器端下载程序包的未初始化数据段和可读/写数据段,和代码段,并加载至本地存储空间,启动程序执行,在执行过程中,根据程序对代码段、只读数据段数据的调用请求,智能终端从服务端下载所请求的代码段、只读数据段数据,并加载至本地存储空间,供程序调用。在本实施例中,需要在智能终端上运行操作系统视为程序。
[0025]在本实施例中,智能终端的硬件结构如图1所示,包括低功率CPU、存储模块、通讯模块和外围设备,该存储模块包括闪存和内存,通讯模块包括蓝牙模块、Wifi(无线传输)模块、GPRS(General Packet Rad1 Service)模块等,通讯模块可以是其中的一个或多个,夕卜围设备包括但不限于GPS(Global Posit1ning System)定位设备、陀螺仪、重力感应设备等,外围设备可以是其中的一个或多个。智能终端包括但不限于智能手表、智能手环等智能便携设备或智能可穿戴设备。
[0026]在本实施例中,服务端存储有智能终端需要运行的程序的程序包。服务端的软件部署结构如图2所示,包括服务器操作系统、存储管理、应用管理和用户界面。服务器操作系统可以是通用的操作每户,如Windows操作系统、Linux操作系统等,或者是在手持设备上运行的Android操作系统或1S操作系统。存储管理负责管理服务端本地存储的数据。应用管理负责管理在智能终端上运行的应用程序。用户界面负责处理用户和服务端之间的交互。服务端可以是服务器、PC机、便携式计算机、平板电脑或智能手机等。
[0027]在本实施例中,以“程序A”为例具体说明本发明程序的流式执行过程。如图3所示,用户选择要启动运行的“程序A”,向智能终端操作系统发送“程序A”执行指令,用户可以通过在智能终端的用户操作界面上选择要启动的“程序A”发送执行指令,也可以通过在服务端选择要启动的“程序A”,通过网络向智能终端发送执行指令。
[0028]智能终端获取“程序A”的执行指令,为“程序A”估算所需要的存储空间大小,当智能终端的空闲存储空间大小小于所估算的存储空间大小时,终止程序的执行,释放程序已占用的资源,否则智能终端为程序分配本地存储空间。该存储空间包括闪存的存储空间和内存中的存储空间。智能终端在闪存中为“程序A”分配代码段存储区、只读数据段存储区、未初始化数据段存储区和可读/写数据段存储区,并在内存为分配未初始化数据段存储区和可读/写数据段存储
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1