一种通用开发平台的数据存储方法及装置的制作方法

文档序号:6431918阅读:135来源:国知局
专利名称:一种通用开发平台的数据存储方法及装置的制作方法
技术领域
本发明属于多媒体技术领域,尤其涉及一种通用开发平台的数据存储方法及装置。
背景技术
随着移动终端应用产品线的日益丰富、各种新的应用平台持续开发,如何提炼和总结各个开发平台与产品之间的通用部分,以减少重复劳动,力争做到通用各种开发平台变得尤为重要。在这种大背景下,各种通用于各开发平台的应用框架就应运而生。这些应用框架可对各开发平台的上层应用程序提供统一的编程接口、功能模块和应用框架,能够运行于目前较流行的几款主流平台之上,包括MTK、WIN32、展讯、MMar等。现有技术中,通常使用C语言作为上述应用框架中用于程序开发的汇编语言,C语言虽然通用,但是由于机制的不完善性,也给程序开发带来了一些问题。例如,对于数组类型库的建立以及数据类型的实现而言,基于c语言的通用移动终端开发平台无法实现动态的数组类型,从而给内存空间的分配带来了诸多问题为程序数据分配空间过大,会造成内存空间的浪费,而分配空间过小,则又使得程序数据得不到内存空间的支持,从而需要重新进行分配或是编程,因此,如何基于C语言在通用移动终端应用开发框架中实现动的态数组类型,便显得尤为重要。

发明内容
本发明提供了一种通用开发平台的数据存储方法及装置,旨在解决现有技术中基于c语言的通用移动终端开发平台无法实现动态数组类型,影响内存空间分配的问题。本发明是这样实现的,一种通用开发平台的数据存储方法,包括步骤a:建立一定容量的数组,并判断数组的容量是否已满,如果数组的容量已满,执行步骤b ;如果数组的容量没满,执行步骤c ;步骤b 设置数组增量值对数组的容量进行扩容;步骤c 将待添加元素增添到数组中。本发明的技术方案还包括所述步骤a还包括创建数组的数据结构,根据数组的容量值申请一块连续的内存空间,并对数组中的相关数据元素进行赋值。本发明的技术方案还包括在所述步骤a中,所述数组的数据结构参数包括数组的总容量、当前容量以及每次自增的增量值。本发明的技术方案还包括在所述步骤a中,所述判断数组的容量是否已满的判断依据为判断数组的当前容量是否大于或等于总容量,如果当前容量大于或等于总容量, 表示数组的容量已满;如果当前容量小于总容量,则表示数组还有空余容量来存储新的元
ο本发明的技术方案还包括所述步骤c还包括将新添加元素的大小加入数组的
当前容量值中。
本发明的技术方案还包括所述步骤c还包括判断待添加元素是否已全部增添到数组中,如果待添加元素没有全部增添到数组中,重新执行步骤a;如果待添加元素已全部增添到数组中,结束本次数据添加。本发明的另一技术方案一种通用开发平台的数据存储装置,包括数组创建模块、 容量判断模块、容量扩容模块和数据增加模块,所述数组创建模块用于建立一定容量的数组,创建数组的数据结构,所述容量判断模块用于判断数组的容量是否已满,如果数组的容量已满,通过容量扩容模块对数组容量进行扩容;如果数组的容量没满,通过数据增加模块将待添加元素增添到数组中;所述容量扩容模块用于对数组的容量进行扩容,所述数据增加模块用于将待添加元素增添到数组中。本发明的技术方案还包括还包括数据赋值模块,所述数据赋值模块用于对数组中的相关数据元素进行赋值。本发明的技术方案还包括所述数组的数据结构参数包括数组的总容量、当前容量以及每次自增的增量值,所述容量判断模块判断数组的当前容量是否大于或等于总容量,如果当前容量大于或等于总容量,表示数组的容量已满;如果当前容量小于总容量,则表示数组还有空余容量来存储新的元素。本发明的技术方案还包括还包括容量增加模块和元素判断模块,所述容量增加模块用于将新添加元素的大小加入数组的当前容量值中,所述元素判断模块用于判断待添加元素是否已全部增添到数组中,如果待添加元素没有全部增添到数组中,通过容量判断模块重新判断数组容量是否已满;如果待添加元素已全部增添到数组中,则结束本次数据添加。本发明的技术方案具有如下优点或有益效果本发明通用开发平台的数据存储方法及装置通过在数组类型中定义自增量参数,当数组的容量不足,需要在数组中插入新元素时,按照设置的自增量值逐步的对数组容量进行扩容,直至能够将新元素插入至数组为止,从而在基于C语言的通用开发平台中实现了通用的动态数组类型,屏蔽了不同开发平台之间的差异,提高了内存空间的使用效率。


附图1是本发明第一实施例的通用开发平台的数据存储方法的流程图;附图2是本发明第二实施例的通用开发平台的数据存储方法的流程图;附图3是本发明第一实施例的通用开发平台的数据存储装置的结构示意图;附图4是是本发明第二实施例的通用开发平台的数据存储装置的结构示意图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。请参阅图1,是本发明第一实施例的通用开发平台的数据存储方法的流程图。本发明第一实施例的通用开发平台的数据存储方法包括以下步骤步骤100 建立一定容量的数组,判断数组的容量是否已满,如果数组的容量已满,执行步骤110 ;如果数组的容量没满,执行步骤120 ;在步骤100中,数组的容量大小可根据初始的实际需求来设定。步骤110 设置数组增量值对数组的容量进行扩容;在步骤110中,当数组的容量不足时,数组会进行自动的扩容,而每次扩容的大小值即为设置的数组增量值,因而数组增量值的大小应该根据实际需求来设定和/或调节, 不能太大也不能太小。即这个参数的数值大小设置是开放给使用者的,对于实际应用而言具有重要的意义设置合适的数组增量值,可以确保系统存储空间的利用率,数组增量值不可设置的过大,以免每次扩容太大,待增加元素相对太小,浪费了存储空间;数组增量值也不可设置的过小,以免在每次增加元素时,需要频繁地对数组进行扩容的操作。步骤120 将待添加元素增添到数组中。请参阅图2,是本发明第二实施例的通用开发平台的数据存储方法的流程图。本发明第二实施例的通用开发平台的数据存储方法包括以下步骤步骤200 建立一定容量的数组;在步骤200中,数组的容量大小可根据初始的实际需求来设定。步骤210 创建数组的数据结构,根据数组的容量值(cap)申请一块连续的内存空间;在步骤210中,数组的数据存储方法为顺序存储方法,可提高存储空间的利用率,
并支持数据的随机访问,具体数据结构为
typedef struct {
GUI 6 capacity; //数组的总容量 GUI6 size; //数组的当前容量,即当前已存元素个数 GUI6 capacity_inc; Il数组每次自增的增量值 void** data; Il数组内部元素指针 } Array t即在本发明实施方式中,为Array_t数组定义了 3个基本参数capacity :Array_t数组的总容量,其初始大小值为根据需求而初始申请的大小值,随着数据结构内数据元素的不断增加该总容量的大小也按照一定的增长规律不断地增加;size :Array_t数组的当前容量,为当前已存元素的大小值,数据结构内每一次增加的数据元素的大小也会加入到当前容量值中;capacity_inc :Array_t数组每次自增的增量值,当Array_t的总容量capacity 不足时,Array_t会进行自动的扩容,而每次扩容的大小值即为设置的capacityjnc的数值,因而capacityjnc数值的大小应该根据实际需求来设定和/或调节,不能太大也不能太小。即capacityjnc数值大小的设置是开放给使用者的,对于实际应用而言具有重要的意义设置合适的capacityjnc数值,可以确保系统存储空间的利用率,capacity_inc的数值不可设置的过大,以免每次扩容太大,待增加元素相对太小,浪费了存储空间;同时,在确保存储空间利用率的基础上,capacity_inc的数值也不可设置的过小,以免在每次增加元素时,需要频繁地对Arrayj进行扩容的操作;void** data :Array_t数组的数据指针类型为“无类型指针”,代表Array_t数组中可以容纳任何类型的数据。步骤220 对数组中的相关数据元素进行赋值;在步骤220中,赋值即将某一数值赋给某个变量的过程,完成数据元素赋值后,当需要在该数组中增添元素时,数组的当前容量大小size可以随着增添元素的大小而自动的增加。步骤230 向数组中增添新的待添加元素;步骤MO 判断数组的容量是否已满,如果数组的容量已满,执行步骤250 ;如果数组的容量没满,执行步骤260;在步骤MO中,判断数组的容量是否已满的判断依据为判断Array_t数组的当前容量size是否大于或等于总容量capacity,如果当前容量size大于或等于总容量 capacity,表示数组的容量已满;如果当前容量size小于总容量capacity,则表示数组还有空余容量来存储新的元素。步骤250 设置数组增量值对数组的容量进行扩容;在步骤250中,对数组的容量进行扩容即在初始总容量capacity的基础上增加 capacity_inc, capacity_inc数值的大小可根据实际需求来设定,直至能够将新元素插入至数组为止;capacityjnc的数值不可设置的过大,以免每次扩容太大,待增加元素相对太小,浪费了存储空间;capacityjnc的数值也不可设置的过小,以免在每次增加元素时, 需要频繁地对Array_t进行扩容的操作;另外,在本发明实施方式中,还可以对々!·!·对3数组中的数据元素进行删除、查找和替换的操作,而对于元素删除的操作而言,并不需要动态地对々!·!·对_丨数组进行减容,因为随时都有可能会有新的数据元素重新加入到Array_t中。步骤沈0 将待添加元素增添到数组中;步骤270 将新添加元素的大小加入数组的当前容量值中;在步骤270中,即将新添加元素的个数增加到数组的size值中。步骤观0 判断待添加元素是否已全部增添到数组中,如果待添加元素没有全部增添到数组中,重新执行步骤MO ;如果待添加元素已全部增添到数组中,执行步骤四0 ;步骤四0 返回内存的起始地址,结束本次数据添加。请参阅图3,是本发明第一实施例的通用开发平台的数据存储装置的结构示意图。 本发明第一实施例的通用开发平台的数据存储装置包括数组创建模块、容量判断模块、容量扩容模块和数据增加模块,其中数组创建模块用于建立一定容量的数组,创建数组的数据结构;其中,数组的容量大小可根据初始的实际需求来设定。容量判断模块用于判断数组的容量是否已满,如果数组的容量已满,通过容量扩容模块对数组容量进行扩容;如果数组的容量没满,通过数据增加模块将待添加元素增添到数组中;容量扩容模块用于设置数组增量值对数组的容量进行扩容;其中,当数组的容量不足时,数组会进行自动的扩容,而每次扩容的大小值即为设置的数组增量值,因而数组增量值的大小应该根据实际需求来设定和/或调节,不能太大也不能太小,即这个参数的数值大小设置是开放给使用者的,对于实际应用而言具有重要的意义设置合适的数组增量值,可以确保系统存储空间的利用率,数组增量值不可设置的过大,以免每次扩容太大,待增加元素相对太小,浪费了存储空间;数组增量值也不可设置的过小,以免在每次增加元素时,需要频繁地对数组进行扩容的操作。数据增加模块用于将待添加元素增添到数组中。请参阅图4,是本发明第二实施例的通用开发平台的数据存储装置的结构示意图。 本发明第二实施例的通用开发平台的数据存储装置包括数组创建模块、数据赋值模块、元素添加模块、容量判断模块、数据增加模块、容量扩容模块、容量增加模块和元素判断模块, 其中数组创建模块用于建立一定容量的数组,并创建数组的数据结构,根据数组的容量值(cap)申请一块连续的内存空间;其中,数组的容量可根据初始的实际需求来设定,数组的数据存储方法为顺序存储方法,可提高存储空间的利用率,并支持数据的随机访问,具体数据结构为
typedef struct
{
GUI 6 capacity; //数组的总容量 GUI6 size; //数组的当前容量,即当前已存元素个数 GUI6 capacity_inc; Il数组每次自增的增量值 void** data; Il数组内部元素指针 } Array t即在本发明实施方式中,为Array_t数组定义了 3个基本参数capacity :Array_t数组的总容量,其初始大小值为根据需求而初始申请的大小值,随着数据结构内数据元素的不断增加该总容量的大小也按照一定的增长规律不断地增加;size :Array_t数组的当前容量,为当前已存元素的大小值,数据结构内每一次增加的数据元素的大小也会加入到当前容量值中;capacity_inc :Array_t数组每次自增的增量值,当Array_t的总容量capacity 不足时,Array_t会进行自动的扩容,而每次扩容的大小值即为设置的capacityjnc的数值,因而capacityjnc数值的大小应该根据实际需求来设定和/或调节,不能太大也不能太小。即这个参数的数值大小设置是开放给使用者的,对于实际应用而言具有重要的意义 设置合适的capacityjnc数值,可以确保系统存储空间的利用率,capacityjnc的数值不可设置的过大,以免每次扩容太大,待增加元素相对太小,浪费了存储空间;同时,在确保存储空间利用率的基础上,capacityjnc的数值也不可设置的过小,以免在每次增加元素时, 需要频繁地对Array_t进行扩容的操作;
void** data :Array_t数组的数据指针类型为“无类型指针”,代表Array_t数组中可以容纳任何类型的数据。数据赋值模块用于对数组中的相关数据元素进行赋值;其中,赋值即将某一数值赋给某个变量的过程,完成数据元素赋值后,当需要在该数组中增添元素时,数组的当前容量大小随着增添元素的大小而自动的增加。元素添加模块用于向数组中增添新的待添加元素;容量判断模块用于判断数组的容量是否已满,如果数组的容量已满,通过容量扩容模块对数组容量进行扩容;如果数组的容量没满,则通过数据增加模块将待添加元素增添到数组中;其中,判断数组的容量是否已满的判断依据为判断Arrayj数组的当前容量 size是否大于或等于总容量capacity,如果当前容量size大于或等于总容量capacity,则表示数组的容量已满;如果当前容量size小于总容量capacity,表示数组还有空余容量来存储新的元素。容量扩容模块用于设置数组增量值对数组的容量进行扩容,并通过数据增加模块将待添加元素增添到扩容后的数组中;其中,对数组的容量进行扩容即在初始总容量 capacity的基础上增加capacity_inc,capacity_inc数值的大小可根据实际需求来设定, 直至能够将新元素插入至数组为止;另外,在本发明实施方式中,还可以对Arrayj数组中的数据元素进行删除、查找和替换的操作,而对于元素删除的操作而言,并不需要动态地对 Array_t进行减容,因为随时都有可能会有新的数据元素重新加入到Array_t中。数据增加模块用于将待添加元素增添到数组中;容量增加模块用于将新添加元素的大小加入数组的当前容量值中;即将新添加元素的个数增加到数组的size值中。元素判断模块用于判断待添加元素是否已全部增添到数组中,如果待添加元素没有全部增添到数组中,通过容量判断模块重新判断数组容量是否已满;如果待添加元素已全部增添到数组中,则返回内存的起始地址,结束本次数据添加。本发明通用开发平台的数据存储方法及装置通过在数组类型中定义自增量参数, 当数组的容量不足,需要在数组中插入新元素时,按照设置的自增量值逐步的对数组容量进行扩容,直至能够将新元素插入至数组为止,从而在基于C语言的通用开发平台中实现了通用的动态数组类型,屏蔽了不同开发平台之间的差异,提高了内存空间的使用效率。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种通用开发平台的数据存储方法,包括步骤a 建立一定容量的数组,并判断数组的容量是否已满,如果数组的容量已满,执行步骤b ;如果数组的容量没满,执行步骤c ;步骤b 设置数组增量值对数组的容量进行扩容;步骤c 将待添加元素增添到数组中。
2.根据权利要求1所述的通用开发平台的数据存储方法,其特征在于,所述步骤a还包括创建数组的数据结构,根据数组的容量值申请一块连续的内存空间,并对数组中的相关数据元素进行赋值。
3.根据权利要求2所述的通用开发平台的数据存储方法,其特征在于,在所述步骤a 中,所述数组的数据结构参数包括数组的总容量、当前容量以及每次自增的增量值。
4.根据权利要求3所述的通用开发平台的数据存储方法,其特征在于,在所述步骤a 中,所述判断数组的容量是否已满的判断依据为判断数组的当前容量是否大于或等于总容量,如果当前容量大于或等于总容量,表示数组的容量已满;如果当前容量小于总容量, 则表示数组还有空余容量来存储新的元素。
5.根据权利要求3所述的通用开发平台的数据存储方法,其特征在于,所述步骤c还包括将新添加元素的大小加入数组的当前容量值中。
6.根据权利要求5所述的通用开发平台的数据存储方法,其特征在于,所述步骤c还包括判断待添加元素是否已全部增添到数组中,如果待添加元素没有全部增添到数组中,重新执行步骤a ;如果待添加元素已全部增添到数组中,结束本次数据添加。
7.一种通用开发平台的数据存储装置,其特征在于,包括数组创建模块、容量判断模块、容量扩容模块和数据增加模块,所述数组创建模块用于建立一定容量的数组,创建数组的数据结构,所述容量判断模块用于判断数组的容量是否已满,如果数组的容量已满,通过容量扩容模块对数组容量进行扩容;如果数组的容量没满,通过数据增加模块将待添加元素增添到数组中;所述容量扩容模块用于设置数组增量值对数组的容量进行扩容,所述数据增加模块用于将待添加元素增添到数组中。
8.根据权利要求7所述的通用开发平台的数据存储装置,其特征在于,还包括数据赋值模块,所述数据赋值模块用于对数组中的相关数据元素进行赋值。
9.根据权利要求7所述的通用开发平台的数据存储装置,其特征在于,所述数组的数据结构参数包括数组的总容量、当前容量以及每次自增的增量值,所述容量判断模块判断数组的当前容量是否大于或等于总容量,如果当前容量大于或等于总容量,表示数组的容量已满;如果当前容量小于总容量,则表示数组还有空余容量来存储新的元素。
10.根据权利要求9所述的通用开发平台的数据存储装置,其特征在于,还包括容量增加模块和元素判断模块,所述容量增加模块用于将新添加元素的大小加入数组的当前容量值中,所述元素判断模块用于判断待添加元素是否已全部增添到数组中,如果待添加元素没有全部增添到数组中,通过容量判断模块重新判断数组容量是否已满;如果待添加元素已全部增添到数组中,则结束本次数据添加。
全文摘要
本发明属于多媒体技术领域,尤其涉及一种通用开发平台的数据存储方法及装置。本发明通用开发平台的数据存储方法包括步骤a建立一定容量的数组,并判断数组的容量是否已满,如果数组的容量已满,执行步骤b;如果数组的容量没满,执行步骤c;步骤b设置数组增量值对数组的容量进行扩容;步骤c将待添加元素增添到数组中。本发明通用开发平台的数据存储方法及装置在基于C语言的通用开发平台中实现了通用的动态数组类型,屏蔽了不同开发平台之间的差异,提高了内存空间的使用效率。
文档编号G06F9/44GK102279751SQ20111025320
公开日2011年12月14日 申请日期2011年8月30日 优先权日2011年8月30日
发明者张田博 申请人:深圳市五巨科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1