资源文件的访问方法及装置的制作方法

文档序号:6429527阅读:184来源:国知局
专利名称:资源文件的访问方法及装置的制作方法
技术领域
本发明实施例涉及移动终端技术领域,尤其涉及一种资源文件的访问方法及装置。
背景技术
随着3G(3rt Generation)网络的逐渐推广,移动终端(如手机)功能越来越丰富,如彩信、多媒体、网页浏览、视频电话、电子地图等等。这些功能可以通过在移动终端上运行相应的功能模块(即应用程序)来实现。其中,应用程序可以通过如下方式被安装到移动终端上移动终端通过有线或者无线的方式获得该应用程序的安装包,在移动终端上运行该应用程序的安装包,将安装包内的各个文件(如图片/声音文件等)创建到移动终端的存储器上。 为了能在手机上使用新的程序,一般需要安装适用于该手机的程序安装包。用户目前一般通过从电脑复制/直接手机网络下载等方式获取程序安装包后安装。比如要将应用程序application, exe安装到手机上,首先获取如图Ia所示的安装包,这个安装包是一个单独的文件,这个单独的文件在安装到手机上以后,如图Ib所示的安装包解压后的组成示意图,这几个文件包括一个application, exe的运行文件,还包括多个资源文件。那么手机在运行application这个应用程序时,可以访问上述多个资源文件中的一个或多个。在相应的应用程序运行过程中,需要分别访问上述创建到移动终端的各个资源文件,进行大量的文件打开/关闭的操作,影响应用程序的运行速度,耗费移动终端的电能。

发明内容
本发明实施例提供一种资源文件的访问方法及装置,用以解决现有技术中存在的技术问题。本发明实施例提供了一种资源文件的访问方法,包括获得待访问的资源文件的文件名,并根据所述待访问的资源文件的文件名读取资源包文件的索引区和文件名区,所述资源包文件包括索引区、文件名区和文件内容区;从所述文件名区获得所述待访问的资源文件在所述文件内容区的存储路径,从所述索引区获得所述待访问的资源文件的偏移量信息;根据所述存储路径和所述偏移量信息,在所述文件内容区获得所述待访问的资源文件的内容。本发明实施例还提供了一种资源文件的访问装置,包括读取模块,用于获得待访问的资源文件的文件名,并根据所述待访问的资源文件的文件名读取资源包文件的索引区和文件名区,所述资源包文件包括索引区、文件名区和文件内容区;处理器,用于从所述文件名区获得所述待访问的资源文件在所述文件内容区的存储路径,从所述索引区获得所述待访问的资源文件的偏移量信息;根据所述存储路径和所述偏移量信息,在所述文件内容区获得所述待访问的资源文件的内容。本发明实施例的资源文件的访问方法及装置,通过将全部的资源文件制作成一个资源包文件,资源包文件分为索引区、文件名区和文件内容区,读取资源包文件时,根据待访问的资源文件名从文件名区获得待访问的资源文件在文件内容区的存储路径,从索引区获得待访问的资源文件的偏移量信息,根据存储路径和偏移量信息在文件内容区获得待访问的资源文件的内容,避免了大量的文件 打开/关闭的操作,提升了移动终端的运行速度,节约了移动终端的电能损耗。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图Ia为现有技术中提供的安装包的示意图;图Ib为图Ia中的安装包解压后的组成示意图;图2为本发明一个实施例提供的资源文件的访问方法流程图;图3为本发明还一个实施例提供的资源文件的访问方法流程图;图4为本发明再一个实施例提供的资源文件的访问方法流程图;图5为本发明一个实施例提供的资源文件的访问装置结构示意图;图6为本发明又一个实施例提供的资源文件的访问装置结构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图2为本发明一个实施例提供的资源文件的访问方法流程图,如图2所示,该方法包括步骤201 :获得待访问的资源文件的文件名,根据获得的待访问的资源文件的文件名读取资源包文件的索引区和文件名区,该资源包文件包括索引区、文件名区和文件内容区。其中,程序在运行时需要访问到的资源文件可以称之为待访问的资源文件,程序根据待访问的资源文件的文件名访问资源文件。现有技术中的程序安装包中包含的资源文件为一个一个零散的资源文件,本发明实施例提供的资源包文件为一个二进制文件,该二进制文件中包括了索引区,用于记录资源文件的类型、资源文件的文件名的偏移量、资源文件名的长度、资源文件的文件内容在资源包文件中的偏移量,以及资源文件的文件内容的长度。索引区用于保存该资源包文件中所有资源文件的偏移量信息,其中可以包括多个索引结构。该二进制文件中还包括了文件名区,用于记录资源文件的文件名和资源文件在资源包文件中的存储路径,文件名区中可以包括多个文件名结构。该二进制文件还包括了文件内容区,用于记录资源文件的文件内容,每一个资源文件的文件内容都是以二进制表示的,其中包括多个文件内容结构。对于上述资源文件在资源包文件中的存储路径需要说明的是,该存储路径实际上是一个相对路径,该相对路径可以理解为从资源文件所在根目录获得资源文件的一个路径,这个路径指的并不是资源文件存储在手机上的哪个磁盘或者哪个扇区,而是指从资源包文件中该资源文件所在的根目录如何找到资源文件的路径,因此是一个相对路径。步骤202 :从文件名区获得该待访问的资源文件在文件内容区的存储路径,从索引区获得该待访问的资源文件的偏移量信息,根据存储路径和偏移量信息在文件内容区获得待访问的资源文件的内容。其中的偏移量信息指的是当获得了某一个资源文件在资源包文件中的存储路径时,该资源文件有可能并不是从第一位数据开始的,而是存在一个偏移量,只有获得了偏移量,才能从资源文件的起始位置开始访问资源文件。在上述实施方式的基础上,该资源包文件还可以包括文件头部区,用于记录上述 索引区、文件名区和文件内容区的大小,以及在资源包文件内各自的偏移量。相应的,步骤201之前还可以包括访问资源包文件的文件头部区,获得索引区、文件名区和文件内容区的大小和偏移量。进一步的,该文件头部区还可以用于记录至少一个资源包文件的文件头部的长度、资源包文件的版本、资源包文件的大小以及资源包文件中资源文件的总数。如图3所示的本发明还一个实施例提供的资源文件的访问方法流程图,在上述实施方式的基础上,为了加快获得资源文件的存储路径以及偏移量信息,本发明实施例提供的方法可以包括步骤300 :读取资源包文件中索引区和文件名区中记录的内容,根据读取到的索引区和文件名区中记录的内容,建立资源文件的索引表,该索引表中包括该资源包文件中资源文件的名称、大小、偏移量和存储路径。其中,内容至少可以包括索引区记录的资源文件名的偏移量、资源文件名的长度、资源文件的文件内容在资源包文件中的偏移量、以及资源文件的文件内容的长度,文件名区记录的资源文件名和存储路径。步骤301 :获得待访问的资源文件的文件名,根据该获得的文件名,读取索引表。其中,该索引表可以以Hashmap (哈希表)的形式存在。步骤302 :根据索引表中读取到的存储路径和偏移量信息在文件内容区获得待访问的资源文件的内容。在本发明的另一资源文件的访问方法实施例中,该方法还可以包括保持资源包文件的打开状态,以便于移动终端等的程序访问该资源包文件。该步骤优选发生在资源包文件被访问一次之后。图4为本发明再一个实施例提供的资源文件的访问方法流程图,如图4所示,该方法以手机视频程序访问其资源文件为例进行说明,该方法不仅介绍了手机视频程序客户端在手机上的工作时如何对其所需要的资源进行访问,而且还进一步交代了如何制作手机视频程序的资源包文件、如何制作手机视频程序的程序安装包、如何在手机上安装手机视频程序、以及如何将手机视频程序进行卸载的方法。下面依照上述各部分之间最优的发生顺序进行介绍,但并不用以限制本发明要求保护的范围。包括步骤401 :制作手机视频程序的资源包文件。
其中,具体的手机视频程序的资源包文件的制作过程可以包括遍历并获取手机视频程序所需的全部的资源文件的信息,其中,资源文件的信息包括资源文件的名称、大小、内容等,上述信息保存在本地列表中;根据获取的资源文件的信息构建资源包文件的文件头部区结构、索引区结构、文件名区结构和文件内容区结构;将构建的文件打包成单一的二进制文件。所述构建的二进制文件可以包括了文件头部区结构、索引区结构、文件名区结构和文件内容区结构等结构信息。具体的,构建资源包文件可以包括但不限于如下所示的结构信息I. I)文件格式I文件头部区,保存该资源包文件的一般信息,内部资源文件数目等I索引区,保存所有资源文件的偏移量信息,其中包括多个索引结构
I文件名区,保存所有资源文件的文件名和存储路径,其中包括多个文件名结构I文件内容区,保存所有资源文件的二进制内容,其中包括多个文件内容结构I. 2)文件头部区结构
typedef struct {
ulongmiHeaderLen;Il文件头邵的长度
ulongmi Versi on;//资源包的版本
ulongmiResFileLen;//资源包的总大小
ulongm_iF sObj Count;//资源包中的资源总数
ulongm ilndexSecOffset;//索引区在整个资源包中的
偏移量
ulongmilndexSecLen;//索引区的大小
ulongm iNameSecOffset;//文件名区在资源包中的偏移

ulongmiNameSecLen;//文件名区的大小
ulongmiDataSecOffset;//资源文件内容区的偏移量
ulongmiDataSecLen;//文件内容区的大小 } TResF ileHeader;I. 3)索引区结构typedef struct{
ulong miFsoType;//资源文件的类型
ulong m_sF soNameOffset;//该资源文件文件名的偏移量
ulong m_iFsoNameLen;//文件名的长度 ulong m_iF soDataOffset; //文件内容的偏移量
ulong m_iF soDataLen;//文件内容的长度 } TResF ilelndex;I. 4)文件名区结构
typedef struct{
uchar m_sF soNameBuff[N]; //文件名
}T—ResFileNameSec;I. 5)文件内容区结构
typedef struct {
uchar m_sF soDataBuff[N];//文件内容
}T—ResFileDataSec;步骤402 :制作手机视频程序安装包。将步骤401中制作的单一的二进制资源包文件包含在程序安装包中,即将制作的单一的二进制资源包文件与程序执行文件(如后缀为.exe的文件)制作成一个程序安装包,降低了制作安装包的难度,且减少了程序安装在手机上以后占用的磁盘空间。步骤403 :在手机上安装手机视频程序。安装过程可以包括将程序安装包中的单一的二进制资源包文件和程序执行文件加载到手机的指定位置,由于只有一个资源包文件,而不是多个资源文件,避免了重复多次的读取程序安装包的操作,大大提高了程序安装速度。一般而言,采用该单一的二进制资源包文件后,客户端的安装速度能提高10 20倍。步骤404 :手机视频程序启动,索引资源包文件。具体包括手机视频程序的执行文件启动运行时,读取资源包文件的文件头部区,从资源包文件的文件头部区中获得索引区、文件名区和文件内容区的大小以及在资源包文件内的偏移量。根据索引区和文件名区各自的大小及偏移量,读取索引区中的信息内容,获得资源包文件中包含的各资源文件的类型、资源文件名的偏移量、资源文件名的长度、资源文件的文件内容在资源包文件中的偏移量、以及资源文件的文件内容的长度,读取文件名区中的信息内容,获得资源包文件中包含的各资源文件的资源文件名以及各资源文件在资源包文件中的存储路径,从而建立资源文件的索引表,该索引表中至少包含资源文件的名称、大小、偏移量和存储路径,并将该索引表以哈希表的方式保存,以便后续的快速索引。保持该资源包文件的打开状态,以有效减少打开、关闭资源包文件的次数。步骤405 :手机视频程序运行,检索资源文件。具体包括手机视频程序可以根据需要的资源文件名检索在步骤404中建立的资源文件的索引表,并找到对应的资源文件在资源包文件中的存储路径和偏移位置,到相应路径中的相应偏移位置处读取所需的资源文件。通过上述方法,有效避免了打开和关闭零碎的小文件,提升了程序的运行速度,降低了手机性能的消耗。
步骤406 :卸载手机视频程序。当卸载手机视频程序时,将安装到手机的资源包文件全部物理删除,因为本发明实施例中提供的资源包文件以单一的二进制文件形式存在,避免了重复多次的删除操作,大大提升了程序的卸载速度。本发明实施例提供的资源文件的访问方法,通过将全部的资源文件制作成一个资源包文件,资源包文件分为索引区、文件名区和文件内容区,读取资源包文件时,根据待访问的资源文件名从文件名区获得待访问的资源文件在文件内容区的存储路径,从索引区获得待访问的资源文件的偏移量信息,根据存储路径和偏移量信息在文件内容区获得待访问的资源文件的内容,避免了大量的文件打开/关闭的操作,提升了移动终端的运行速度,节约了移动终端的电能损耗。图5为本发明一个实施例提供的资源文件的访问装置结构示意图,如图5所示,所述资源文件的访问装置用于实现上述方法实施例的,所述资源文件的访问装置包括读取模块501和处理器502。其中,读取模块501用于获得待访问的资源文件的文件名,并根据待访问的资源文件的文件名读取资源包文件的索引区和文件名区,该资源包文件包括索引区、文件名区和文件内容区。处理器502用于从文件名区获得待访问的资源文件在文件内容区的存储路径,从索引区获得待访问的资源文件的偏移量信息,根据存储路径和偏移量信息,在文件内容区获得待访问的资源文件的内容。其中,本发明实施例提供的资源包文件为一个二进制文件,该二进制文件中包括了索引区,用于记录资源文件的类型、资源文件的文件名的偏移量、资源文件名的长度、资源文件的文件内容在资源包文件中的偏移量,以及资源文件的文件内容的长度。索引区用于保存该资源包文件中所有资源文件的偏移量信息,其中可以包括多个索引结构。该二进制文件中还包括了文件名区,用于记录资源文件的文件名和资源文件在资源包文件中的存储路径,文件名区中可以包括多个文件名结构。该二进制文件还包括了文件内容区,用于记录资源文件的文件内容,每一个资源文件的文件内容都是以二进制表示的,其中包括多个文件内容结构。对于上述资源文件在资源包文件中的存储路径需要说明的是,该存储路径实际上是一个相对路径,该相对路径可以理解为从资源文件所在根目录获得资源文件的一个路径,这个路径指的并不是资源文件存储在手机上的哪个磁盘或者哪个扇区,而是指从资源包文件中该资源文件所在的根目录如何获得找到资源文件的路径,因此是一个相对路径。在本发明另一实施例中,资源包文件还可以包括文件头部区,用于记录索引区、文件名区和文件内容区的大小,以及在资源包文件内的偏移量。相应的,读取模块501还用于在根据待访问的资源文件的文件名读取资源包文件的索引区和文件名区之前,访问资源包文件的文件头部区,获得索引区、文件名区和文件内容区的大小和在资源包文件中的
偏移量。图6为本发明又一个实施例提供的资源文件的访问装置结构示意图,如图6所示,相比较于图5所示的访问装置,该资源文件的访问装置不仅包括读取模块601和处理器602,还包括建立模块600,用于在读取模块601获得待访问的资源文件的文件名之前,读取资源包文件中的索引区和文件名区记录的内容;根据读取到的索引区和文件名区记录的内容,建立资源文件的索引表,该索引表中包括资源文件的名称、大小、偏移量和存储路径。 其中,内容至少可以包括索引区记录的资源文件名的偏移量、资源文件名的长度、资源文件的文件内容在资源包文件中的偏移量、以及资源文件的文件内容的长度,文件名区记录的资源文件名和存储路径。相应的,读取模块601用于获得待访问的资源文件的文件名,根据获得的文件名,读取建立模块600建立的索引表。处理器602用于根据索弓I表中读取到的存储路径和偏移量信息在文件内容区获得待访问的资源文件的内容。本发明实施例提供的资源文件的访问装置,通过将全部的资源文件制作成一个资源包文件,资源包文件分为索引区、文件名区和文件内容区,读取资源包文件时,根据待访问的资源文件名从文件名区获得待访问的资源文件在文件内容区的存储路径,从索引区获得待访问的资源文件的偏移量信息,根据存储路径和偏移量信息在文件内容区获得待访问的资源文件的内容,避免了大量的文件打开/关闭的操作,提升了移动终端的运行速度,节约了移动终端的电能损耗。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
权利要求
1.一种资源文件的访问方法,其特征在于,包括 获得待访问的资源文件的文件名,并根据所述待访问的资源文件的文件名读取资源包文件的索引区和文件名区,所述资源包文件包括索引区、文件名区和文件内容区; 从所述文件名区获得所述待访问的资源文件在所述文件内容区的存储路径,从所述索引区获得所述待访问的资源文件的偏移量信息; 根据所述存储路径和所述偏移量信息,在所述文件内容区获得所述待访问的资源文件的内容。
2.根据权利要求I所述的方法,其特征在于,所述资源包文件还包括文件头部区,用于记录所述索引区、文件名区和文件内容区的大小,以及在所述资源包文件内的偏移量; 所述读取资源包文件的索引区和文件名区之前,所述方法还包括 访问所述资源包文件的文件头部区,获得索引区、文件名区和文件内容区的大小和在所述资源包文件中的偏移量。
3.根据权利要求2所述的方法,其特征在于,所述文件头部区还用于记录至少一个文件头部的长度、所述资源包文件的版本、所述资源包文件的大小以及所述资源包文件中的资源文件总数。
4.根据权利要求I至3中任一项所述的方法,其特征在于 所述索引区用于记录各资源文件的类型、资源文件名的偏移量、资源文件名的长度、资源文件的文件内容在所述资源包文件中的偏移量、以及资源文件的文件内容的长度;所述文件名区用于记录各资源文件名和存储路径; 所述文件内容区用于记录各资源文件的文件内容。
5.根据权利要求4所述的方法,其特征在于,所述获得待访问的资源文件的文件名之前,所述方法还包括 读取所述资源包文件的索引区和所述文件名区记录的内容; 根据读取到所述资源包文件的索引区和所述文件名区记录的内容,建立资源文件的索引表,所述索引表中包括资源文件的名称、大小、偏移量和存储路径; 所述根据所述待访问的资源文件的文件名读取资源包文件的索引区和文件名区,包括 根据所述获得的待访问的资源文件的文件名,读取所述索引表。
6.根据权利要求5所述的方法,其特征在于,所述索引表以哈希表的形式存在。
7.根据权利要求I或2所述的方法,其特征在于,所述方法还包括 保持所述资源包文件的打开状态。
8.一种资源文件的访问装置,其特征在于,包括 读取模块,用于获得待访问的资源文件的文件名,并根据所述待访问的资源文件的文件名读取资源包文件的索引区和文件名区,所述资源包文件包括索引区、文件名区和文件内容区; 处理器,从所述文件名区获得所述待访问的资源文件在所述文件内容区的存储路径,从所述索引区获得所述待访问的资源文件的偏移量信息;根据所述存储路径和所述偏移量信息,在所述文件内容区获得所述待访问的资源文件的内容。
9.根据权利要求8所述的装置,其特征在于,所述资源包文件还包括文件头部区,用于记录所述索引区、文件名区和文件内容区的大小,以及在所述资源包文件内的偏移量;所述读取模块还用于在根据所述待访问的资源文件的文件名读取资源包文件的索引区和文件名区之前,访问所述资源包文件的文件头部区,获得索引区、文件名区和文件内容区的大小和在所述资源包文件中的偏移量。
10.根据权利要求8或9所述的装置,其特征在于,所述装置还包括 建立模块,用于在所述读取模块获得待访问的资源文件的文件名之前,读取所述资源包文件中的索引区和所述文件名区记录的内容;根据读取到所述资源包文件中的索引区和所述文件名区记录的内容,建立资源文件的索引表,所述索引表中包括资源文件的名称、大小、偏移量和存储路径; 所述读取模块用于获得待访问的资源文件的文件名,并根据所述获得的待访问的资源文件的文件名,读取所述索引表。
全文摘要
本发明提供一种资源文件的访问方法及装置。方法包括获得待访问的资源文件的文件名,并根据所述待访问的资源文件的文件名读取资源包文件的索引区和文件名区,所述资源包文件包括索引区、文件名区和文件内容区;从所述文件名区获得所述待访问的资源文件在所述文件内容区的存储路径,从所述索引区获得所述待访问的资源文件的偏移量信息;根据所述存储路径和所述偏移量信息,在所述文件内容区获得所述待访问的资源文件的内容。装置包括读取模块和处理器。
文档编号G06F17/30GK102902687SQ20111021199
公开日2013年1月30日 申请日期2011年7月27日 优先权日2011年7月27日
发明者郑昕, 孙健 申请人:华为软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1