一种基于Android系统的缩略图存储方法和装置的制造方法_2

文档序号:9921814阅读:来源:国知局
找到的第N个位置记录的缩略图字节流的存储位置信息,在缩略图字节流存储文件中获取缩略图字节流并返回。
[0030]可选地,索引文件中每条记录占用九个字节的存储空间,其中第一个字节的存储空间中存储Byte字节型数据,第二至九个字节的存储空间中存储Long长整型数据;或者,索引文件中每条记录占用八个字节的存储空间,该八个字节的存储空间中存储Long长整型数据。
[0031]可选地,当索引文件中每条记录占用九个字节的存储空间时,将九个字节的存储空间中的第一个字节的存储空间的数据作为标志位,用于标记该条记录是否存储了缩略图字节流的存储位置信息;是则,表明九个字节的存储空间中的第二至第九个字节的存储空间存放的是缩略图字节流的存储位置信息,否则,表明九个字节的存储空间中的第二至第九个字节的存储空间存放的是无效数据。
[0032]本发明的有益效果是:与Android系统现有存储方案相比,本发明实施例的技术方案通过增加一个非常节省存储空间的索引文件,将缩略图字节流的存储位置记录到该增加的索引文件中,后续通过索引文件中记录的存储位置信息再去查找缩略图字节流存储文件中缩略图字节流的真正位置。如此,通过改变根据图片对应的数据库ID的存储方式,使得缩略图字节流存储文件中所有位置保存的都是有效数据,省略了无效数据的填充,解决了Android系统存储缩略图时存储空间严重浪费的问题,节省了系统存储空间,提高了数据查找速度和系统性能。
【附图说明】
[0033I图1是Android设备对本地数据管理的流程示意图;
[0034]图2是通过SQLite可视化工具打开的Android本地数据库ID从18到28的数据库片段示意图;
[0035]图3是thumbdata文件的数据存储结构示意图;
[0036]图4是本发明一个实施例的一种基于Android系统的缩略图存储方法的流程示意图;
[0037]图5是应用本发明一个实施例的一种基于Android系统的缩略图存储方法存储和查找的流程示意图;
[0038]图6是本发明一个实施例的索引文件和缩略图字节流存储文件的存储结构以及两者对应关系的不意图;
[0039]图7是本发明一个实施例的索引文件中一项索引记录的结构示意图;
[0040]图8是本发明另一个实施例的索引文件中一项索引记录的结构示意图;
[0041 ]图9本发明一个实施例的一种基于Android系统的缩略图存储装置的结构程示意图。
【具体实施方式】
[0042]本发明的核心思想是:针对现有技术中Android系统存储缩略图时根据缩略图对应的图片在本地数据库中的ID存储时,需要用大量的无效数据占位(以保证可以根据缩略图对应的图片在数据库中的ID直接查找到缩略图字节流在thumbdata文件中的位置),极大的浪费了存储空间的问题,通过增加一个非常节省存储空间的索引文件thumbindex,利用索引文件thumbindex再去查找缩略图字节流存储文件thumbdata中的缩略图字节流的,使得thumbdata文件中所有位置保存的数据都是有效的,省略了填充无效数据到thumbdata文件中造成的空间浪费,从而节省了系统存储空间。
[0043]图4是本发明一个实施例的一种基于Android系统的缩略图存储方法的流程示意图,参见图4,该基于Android系统的缩略图存储方法包括下列步骤:
[0044]步骤S41,在缩略图字节流存储文件所属的文件夹中新建索引文件;
[0045]步骤S42,当所述Android系统的数据库中新增图片时,生成所述新增图片对应的缩略图,将所述缩略图转换为缩略图字节流;
[0046]步骤S43,查找所述缩略图字节流存储文件的尾部位置,将转换后的缩略图字节流存储到所述缩略图字节流存储文件的尾部位置,使得缩略图字节流存储文件中每个位置存储的都是有效数据;
[0047]步骤S44,将缩略图字节流的存储位置信息记录到所述索引文件中。
[0048]经过图4所示的步骤,本发明实施例的Androi d系统的缩略图存储方法通过在缩略图字节流存储文件所属的文件夹中新建索引文件,并当缩略图字节流存储文件中新增缩略图字节流时,将该新增字节流的存储位置信息记录到该索引文件中相应位置,如此,后续可以根据索引文件中相应位置的索引记录查找去缩略图字节流存储文件,获取缩略图字节流。这样,缩略图字节流存储文件中就可以只存缩略图字节流这样的有效数据,而无需填充无效数据占位,从而节省了存储空间。
[0049]需要说明的是,本实施例中,索引文件中的有效数据是指,指示了缩略图字节流在缩略图字节流存储文件中的位置信息的数据,而无效数据则是没有指示缩略图字节流在缩略图字节流存储文件中的位置信息的数据,本实施例中,索引文件中无效数据用O来表示。缩略图字节流存储文件中的有效数据是指缩略图字节流,而无效数据是用O来表示。
[0050]图5是应用本发明一个实施例的一种基于Android系统的缩略图存储方法存储和查找的流程示意图,图6是本发明一个实施例的索引文件和缩略图字节流存储文件的存储结构以及两者对应关系的示意图,图7是本发明一个实施例的索引文件中一项索引记录的结构示意图;以下结合图5至图7对本实施例的这种基于Android系统的缩略图存储方法的实现步骤进行详细说明。
[0051]在图5中,步骤S51至步骤S53是在增加了索引文件后,缩略图字节流的存储流程。参见图5,步骤S51,查找thumbdata文件最末尾的位置。
[0052]这里是当Android系统数据库中新增了一张图片(包括照片)并被分配了数据库ID,转换成缩略图字节流而等待保存到缩略图字节流存储文件(即thumbdata文件)中时,需要查找thumbdata文件最末尾的位置以将新增图片对应的缩略图字节流存储到该位置。需要说明的是,生成新增图片对应的缩略图并将缩略图转换为缩略图字节流是现有技术,可以采用现有技术手段来实现,这里不再赘述。
[0053]步骤S52,在找到最末尾的位置后,将缩略图字节流存到thumbdata文件最末尾的位置,并将这个位置信息记录到索引文件thumbindex中对应的位置,将该位置之前的无效位置用O填充占位,这里对应的位置由该缩略图字节流对应的数据库ID确定。
[°°54] 具体的,本实施例中通过Java的File.length()函数,直接取thumbdata文件的大小(length)来获取thumbdata文件末尾的位置。由于thumbdata文件中每条记录的大小为10kb,该1Kb数据的数据头部包含有此缩略图字节流的真实长度信息,当通过File, length()函数得到当前thumbdata文件的长度时,即可得thumbdata文件最末尾的位置。
[0055]参见图6,61表示的是索引文件(thumbindex文件),62表示缩略图字节流的存储文件(即thumbdata文件)。在本实施例中,将缩略图字节流的存储位置信息记录到索引文件中包括:利用新增图片在Android系统的数据库中的唯一标识ID,将缩略图字节流的存储位置信息记录到索引文件中第N个位置,N等于唯一标识ID;以及,将索引文件中第N个位置之前且没有记录缩略图字节流存储位置信息的位置用无效数据填充。
[0056]具体的,结合图2,例如,当前新增的图片在数据库中分配的ID为27(假设ID为27的图片是数据库中的第一张图片),在存储时,系统生成该新增图片的缩略图,并将该缩略图转换为缩略图字节流。通过Fi le.length O函数取thumbdata文件最末尾的位置(由于这时thumbdat
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1