一种实现高效存取笔记的方法和装置的制造方法

文档序号:9887766阅读:302来源:国知局
一种实现高效存取笔记的方法和装置的制造方法
【技术领域】
[0001 ]本发明涉及一种实现高效存取笔记的方法和装置。
【背景技术】
[0002]电子产品上的笔记功能类似我们读书时在课本上做标记,是与学习内容同步的。在电子产品上实现笔记功能,传统做法是把当前屏幕整屏笔记保存为一张图,这种做法的弊端在于如果学习内容有多屏,在翻屏的时候加载下一张整屏的图片,会有不流畅感(不流畅程度跟电子产品的软硬件配置有关)。为了避免更多的不流畅感,传统做法可能会把加载过的图片常驻内存,而这显然对电子产品的内存有较高的要求。另外,保存的时候即使有一个点的修改也只能对整屏的图片进行保存,资源消耗大,做法不够合理。

【发明内容】

[0003]为了克服现有技术的不足,本发明的目的在于提供一种实现高效存取笔记的方法和装置,使笔记的存取性能得到极大的提升,并且整体存取性能不受笔记内容的长度,以及缓存大小的限制。
[0004]为解决上述问题,本发明所采用的技术方案如下:
[0005]方案一:
[0006]—种实现高效存取笔记的方法,包括以下步骤:
[0007]S1:将笔记视图从顶部到底部平均分为若干个笔记包,对笔记包按顺序进行编号并保存在数据库中;
[0008]S2:接收用户发送的笔记读取指令;
[0009]S3:通过UI线程获取可见视图在笔记视图中的当前位置信息并同步至缓存线程;其中,笔记视图为对全部笔记的一个抽象,可见视图为笔记视图中的一部分笔记区域的呈现;
[0010]S4:通过缓存线程根据当前位置信息判断对应的笔记包是否在缓存线程的缓存区中,若是,则从缓存区中获取对应的笔记包同步至UI线程,若否,则从数据库中加载对应的笔记包至缓存区中再同步至UI线程;
[0011]S5:通过UI线程将接收到的笔记包发送至可见视图中对应的位置进行显示。
[0012]优选的,在步骤S3中,还通过UI线程获取可见视图在笔记视图中的滚动趋势信息并同步至缓存线程;
[0013]所述缓存线程的缓存区中的笔记包通过以下方式获取:根据当前位置信息和滚动趋势信息从数据库中加载对应的笔记包。
[0014]优选的,所述滚动趋势信息包括向前滚动趋势和向后滚动趋势,若为向前滚动趋势,则从数据库中根据当前位置信息所对应的笔记包依次向前加载笔记包;若为向后滚动趋势,则从数据库中根据当前位置信息所对应的笔记包依次向后加载笔记包。
[0015]优选的,在步骤S5之后还包括以下步骤:
[0016]S6:通过UI线程记录可见视图中被修改过的位置,将被修改过的位置的信息记为修改位置信息,并将修改位置信息同步至缓存线程;
[0017]S7:通过缓存线程根据修改位置信息获取对应的笔记包并标记为修改笔记包;
[0018]S8:当笔记包被缓存线程丢弃时,通过缓存线程判断该笔记包是否为修改笔记包,若是,则将该笔记包回写至数据库中,若否,则直接丢弃。
[0019]优选的,在步骤S8中,将笔记包回写至数据库前先将该笔记包转换为PNG格式。
[0020]方案二:
[0021]—种实现高效存取笔记的装置,包括以下模块:
[0022]初始化模块,用于将笔记视图从顶部到底部平均分为若干个笔记包,对笔记包按顺序进行编号并保存在数据库中;
[0023]读取指令接收模块,用于接收用户发送的笔记读取指令;
[0024]信息获取同步模块,用于通过UI线程获取可见视图在笔记视图中的当前位置信息并同步至缓存线程;其中,笔记视图为对全部笔记的一个抽象,可见视图为笔记视图中的一部分笔记区域的呈现;
[0025]判断模块,用于通过缓存线程根据当前位置信息判断对应的笔记包是否在缓存线程的缓存区中,若是,则从缓存区中获取对应的笔记包同步至UI线程,若否,则从数据库中加载对应的笔记包至缓存区中再同步至UI线程;
[0026]笔记包显示模块,用于通过UI线程将接收到的笔记包发送至可见视图中对应的位置进行显示。
[0027]优选的,在信息获取同步模块中,还通过UI线程获取可见视图在笔记视图中的滚动趋势信息并同步至缓存线程;
[0028]所述缓存线程的缓存区中的笔记包通过以下方式获取:根据当前位置信息和滚动趋势信息从数据库中加载对应的笔记包。
[0029]优选的,所述滚动趋势信息包括向前滚动趋势和向后滚动趋势,若为向前滚动趋势,则从数据库中根据当前位置信息所对应的笔记包依次向前加载笔记包;若为向后滚动趋势,则从数据库中根据当前位置信息所对应的笔记包依次向后加载笔记包。
[0030]优选的,还包括以下模块:
[0031]修改位置同步模块,用于通过UI线程记录可见视图中被修改过的位置,将被修改过的位置的信息记为修改位置信息,并将修改位置信息同步至缓存线程;
[0032]笔记包标记模块,用于通过缓存线程根据修改位置信息获取对应的笔记包并标记为修改笔记包;
[0033]选择性回写模块,用于当笔记包被缓存线程丢弃时,通过缓存线程判断该笔记包是否为修改笔记包,若是,则将该笔记包回写至数据库中,若否,则直接丢弃。
[0034]优选的,在选择性回写模块中,将笔记包回写至数据库前先将该笔记包转换为PNG格式。
[0035]相比现有技术,本发明的有益效果在于:在高效利用宝贵的硬件资源的同时,实现了笔记的高效存储;具体通过将笔记拆分为若干个笔记包的形式,需要载入时从数据库中加载,避免了一次性加载全部笔记内容所带来的延迟,另外,还根据滚动趋势从数据库中预加载对应的笔记包,进一步提升显示笔记包内容的效率。因此,笔记的性能几乎不受笔记长短的影响,为用户提供了流畅的体验。
【附图说明】
[0036]图1为本发明的实现高效存取笔记的方法流程图;
[0037]图2为本发明的可见视图与笔记视图的关系示意图。
【具体实施方式】
[0038]下面,结合附图以及【具体实施方式】,对本发明做进一步描述:
[0039]参考图1和图2,一种实现高效存取笔记的方法,包括以下步骤:
[0040]S1:将笔记视图从顶部到底部平均分为若干个笔记包,对笔记包按顺序进行编号并保存在数据库中;
[0041 ] S2:接收用户发送的笔记读取指令;
[0042]S3:通过UI线程获取可见视图在笔记视图中的当前位置信息并同步至缓存线程;
[0043]S4:通过缓存线程根据当前位置信息判断对应的笔记包是否在缓存线程的缓存区中,若是,则从缓存区中获取对应的笔记包同步至UI线程,若否,则从数据库中加载对应的笔记包至缓存区中再同步至UI线程;
[0044]S5:通过UI线程将接收到的笔记包发送至可见视图中对应的位置进行显示。
[0045]首先,引入两个视图概念,笔记视图和可见视图,其中,笔记视图是对整个笔记的一个抽象,是虚拟的不可见的,其区域也就是学习内容完整展示后的区域,例如,用户在电子设备上打开某个学习内容有10页,然后在其中进行了笔记记录,则生成的笔记视图与学习内容对应的视图是相同的。可见视图是用户所能看到的,是对笔记视图中一部分区域的真实展示,即用户当前通过屏幕能够看到的区域就是可见区域。
[0046]在步骤SI中,将笔记视图从顶部到底部平均拆分为若干个笔记包,则笔记包的宽度是与笔记视图的宽度相同,其高度根据实际需求进行设定,例如定义每个笔记包的高度为40像素,特别的是,最后一个笔记包的高度是根据笔记视图剩余的高度而定。把笔记视图拆分为若干个笔记包后按顺序进行编号并保存在数据库中。
[0047]在步骤S2中,当用户需要调用笔记时,程序接收到用户发送的笔记读取指令。
[0048]在步骤S3中,通过UI线程获取可见视图在笔记视图中的当前位置信息,如图2所示,I为笔记视图,2为可见视图,3为笔记包,可以理解为可见视图是受用户的操作而在笔记视图上进行滚动,从而可以到达笔记视图上的不同位置。获取了当前位置信息后会同步至缓存线程。
[0049]在步骤S4中,缓存线程根据当前位置信息判断对应的笔记包是否在缓存线程的缓存区中。缓存线程中包括了若干个缓存区,一般分配的缓存区数量是笔记视图中的笔记包数量的两到三倍。而判断的原理是,当前位置信息与笔记包的编号有对应关系,因此根据当前位置信息便可以判断缓存区中是否有与当前位置信息对应的笔记包,若有,则表示缓存线程已经从数据库中加载了目标的笔记包,若没有,则需要从数据库中加载目标的笔记包至缓存区中再同步至UI线程。需要说明的是,当前位置信息并不是指一个位置点的信息,而是一个位置区域的信息,根据当前位置信息可以获得若干个笔记包,然后在步骤S5中,UI线程便可以将获取到的若干个笔记包放置可见视图中对应的位置上,使可见视图被笔记包所填充,可见视图便可显示笔记包中的内容。
[0050]进一步的,在步骤S3中,还通过UI线程获取可见视图在笔记视图中的滚动趋势信息并同步至缓存线程。而所述缓存线程的缓存区中的笔记包是通过以下方式获取:根据当前位置信息和滚动趋势信息从数据库中加载对应的笔记包。即缓存线程不仅仅获取当前位置信息所对应的笔记包,还需要根据滚动趋势信息获取更多的笔记包,其中,滚动趋势信息包括向前滚动趋势和向后滚动趋势,若为向前滚动趋势,则从数据库中根据当前位置信息所对应的笔记包依次向前加载笔记包,然后依次放置在不同的缓存区中;若为向后滚动趋势,则从数据库中根据当前位置信息所对应的笔记包依次向后加载笔记包,然
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1