后依次放置在不同的缓存区中。
[0051]进一步的,在步骤S5之后还包括以下步骤:
[0052]S6:通过UI线程记录可见视图中被修改过的位置,将被修改过的位置的信息记为修改位置信息,并将修改位置信息同步至缓存线程;
[0053]S7:通过缓存线程根据修改位置信息获取对应的笔记包并标记为修改笔记包;
[0054]S8:当笔记包被缓存线程丢弃时,通过缓存线程判断该笔记包是否为修改笔记包,若是,则将该笔记包回写至数据库中,若否,则直接丢弃。
[0055]用户获得了笔记内容后,可能会对其进行修改,因此,需要通过UI线程记录可见视图中被修改过的位置,将被修改过的位置的信息记为修改位置信息,并将修改位置信息同步至缓存线程。然后,缓存线程根据修改位置信息获取对应的笔记包并标记为修改笔记包,标记为修改笔记包则表示该笔记包中的内容被修改过。
[0056]由于缓存线程中的缓存区数量有限,总有被填满的时候,当缓存区被填满,则肯定需要丢弃掉一部分缓存区中的笔记包,通常是将与滚动趋势相反方向且不是对应于可见区域中的笔记包丢弃,丢弃时则需要考虑该笔记包是否需要回写至数据库,即进行选择性回写。因此,当笔记包被缓存线程丢弃时,会判断该笔记包是否为修改笔记包,如果是,则表示该笔记包被修改过,需要回写至数据库进行保存,如果不是,则表示该笔记包没有被修改过,不需要回写,可以直接丢弃。通过选择性回写机制,能够节省硬件资源,避免频繁地操作数据库。另外,将笔记包回写至数据库前先将该笔记包转换为PNG格式,能够进一步节省数据库存储笔记包所耗费的存储空间。
[0057]通过上述方法,本发明的优点包括:在高效利用宝贵的硬件资源的同时,实现了笔记的高效存储;具体通过将笔记拆分为若干个笔记包的形式,需要载入时从数据库中加载,避免了一次性加载全部笔记内容所带来的延迟,另外,还根据滚动趋势从数据库中预加载对应的笔记包,进一步提升显示笔记包内容的效率。因此,笔记的性能几乎不受笔记长短的影响,为用户提供了流畅的体验。
[0058]对应于上述的实现高效存取笔记的方法,本发明还公开了一种实现高效存取笔记的装置,包括以下模块:
[0059]初始化模块,用于将笔记视图从顶部到底部平均分为若干个笔记包,对笔记包按顺序进行编号并保存在数据库中;
[0060]读取指令接收模块,用于接收用户发送的笔记读取指令;
[0061]信息获取同步模块,用于通过UI线程获取可见视图在笔记视图中的当前位置信息并同步至缓存线程;其中,笔记视图为对全部笔记的一个抽象,可见视图为笔记视图中的一部分笔记区域的呈现;
[0062]判断模块,用于通过缓存线程根据当前位置信息判断对应的笔记包是否在缓存线程的缓存区中,若是,则从缓存区中获取对应的笔记包同步至UI线程,若否,则从数据库中加载对应的笔记包至缓存区中再同步至UI线程;
[0063]笔记包显示模块,用于通过UI线程将接收到的笔记包发送至可见视图中对应的位置进行显示。
[0064]优选的,在信息获取同步模块中,还通过UI线程获取可见视图在笔记视图中的滚动趋势信息并同步至缓存线程;
[0065]所述缓存线程的缓存区中的笔记包通过以下方式获取:根据当前位置信息和滚动趋势信息从数据库中加载对应的笔记包。
[0066]优选的,所述滚动趋势信息包括向前滚动趋势和向后滚动趋势,若为向前滚动趋势,则从数据库中根据当前位置信息所对应的笔记包依次向前加载笔记包;若为向后滚动趋势,则从数据库中根据当前位置信息所对应的笔记包依次向后加载笔记包。
[0067]优选的,还包括以下模块:
[0068]修改位置同步模块,用于通过UI线程记录可见视图中被修改过的位置,将被修改过的位置的信息记为修改位置信息,并将修改位置信息同步至缓存线程;
[0069]笔记包标记模块,用于通过缓存线程根据修改位置信息获取对应的笔记包并标记为修改笔记包;
[0070]选择性回写模块,用于当笔记包被缓存线程丢弃时,通过缓存线程判断该笔记包是否为修改笔记包,若是,则将该笔记包回写至数据库中,若否,则直接丢弃。
[0071]优选的,在选择性回写模块中,将笔记包回写至数据库前先将该笔记包转换为PNG格式。
[0072]对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。
【主权项】
1.一种实现高效存取笔记的方法,其特征在于,包括以下步骤: S1:将笔记视图从顶部到底部平均分为若干个笔记包,对笔记包按顺序进行编号并保存在数据库中; S2:接收用户发送的笔记读取指令; S3:通过UI线程获取可见视图在笔记视图中的当前位置信息并同步至缓存线程;其中,笔记视图为对全部笔记的一个抽象,可见视图为笔记视图中的一部分笔记区域的呈现; S4:通过缓存线程根据当前位置信息判断对应的笔记包是否在缓存线程的缓存区中,若是,则从缓存区中获取对应的笔记包同步至UI线程,若否,则从数据库中加载对应的笔记包至缓存区中再同步至UI线程; S5:通过UI线程将接收到的笔记包发送至可见视图中对应的位置进行显示。2.根据权利要求1所述的实现高效存取笔记的方法,其特征在于,在步骤S3中,还通过UI线程获取可见视图在笔记视图中的滚动趋势信息并同步至缓存线程; 所述缓存线程的缓存区中的笔记包通过以下方式获取:根据当前位置信息和滚动趋势信息从数据库中加载对应的笔记包。3.根据权利要求2所述的实现高效存取笔记的方法,其特征在于,所述滚动趋势信息包括向前滚动趋势和向后滚动趋势,若为向前滚动趋势,则从数据库中根据当前位置信息所对应的笔记包依次向前加载笔记包;若为向后滚动趋势,则从数据库中根据当前位置信息所对应的笔记包依次向后加载笔记包。4.根据权利要求1所述的实现高效存取笔记的方法,其特征在于,在步骤S5之后还包括以下步骤: S6:通过UI线程记录可见视图中被修改过的位置,将被修改过的位置的信息记为修改位置信息,并将修改位置信息同步至缓存线程; S7:通过缓存线程根据修改位置信息获取对应的笔记包并标记为修改笔记包; S8:当笔记包被缓存线程丢弃时,通过缓存线程判断该笔记包是否为修改笔记包,若是,则将该笔记包回写至数据库中,若否,则直接丢弃。5.根据权利要求4所述的实现高效存取笔记的方法,其特征在于,在步骤S8中,将笔记包回写至数据库前先将该笔记包转换为PNG格式。6.一种实现高效存取笔记的装置,其特征在于,包括以下模块: 初始化模块,用于将笔记视图从顶部到底部平均分为若干个笔记包,对笔记包按顺序进行编号并保存在数据库中; 读取指令接收模块,用于接收用户发送的笔记读取指令; 信息获取同步模块,用于通过UI线程获取可见视图在笔记视图中的当前位置信息并同步至缓存线程;其中,笔记视图为对全部笔记的一个抽象,可见视图为笔记视图中的一部分笔记区域的呈现; 判断模块,用于通过缓存线程根据当前位置信息判断对应的笔记包是否在缓存线程的缓存区中,若是,则从缓存区中获取对应的笔记包同步至UI线程,若否,则从数据库中加载对应的笔记包至缓存区中再同步至UI线程; 笔记包显示模块,用于通过UI线程将接收到的笔记包发送至可见视图中对应的位置进行显示。7.根据权利要求6所述的实现高效存取笔记的装置,其特征在于,在信息获取同步模块中,还通过UI线程获取可见视图在笔记视图中的滚动趋势信息并同步至缓存线程; 所述缓存线程的缓存区中的笔记包通过以下方式获取:根据当前位置信息和滚动趋势信息从数据库中加载对应的笔记包。8.根据权利要求7所述的实现高效存取笔记的装置,其特征在于,所述滚动趋势信息包括向前滚动趋势和向后滚动趋势,若为向前滚动趋势,则从数据库中根据当前位置信息所对应的笔记包依次向前加载笔记包;若为向后滚动趋势,则从数据库中根据当前位置信息所对应的笔记包依次向后加载笔记包。9.根据权利要求6所述的实现高效存取笔记的装置,其特征在于,还包括以下模块: 修改位置同步模块,用于通过UI线程记录可见视图中被修改过的位置,将被修改过的位置的信息记为修改位置信息,并将修改位置信息同步至缓存线程; 笔记包标记模块,用于通过缓存线程根据修改位置信息获取对应的笔记包并标记为修改笔记包; 选择性回写模块,用于当笔记包被缓存线程丢弃时,通过缓存线程判断该笔记包是否为修改笔记包,若是,则将该笔记包回写至数据库中,若否,则直接丢弃。10.根据权利要求9所述的实现高效存取笔记的装置,其特征在于,在选择性回写模块中,将笔记包回写至数据库前先将该笔记包转换为PNG格式。
【专利摘要】本发明公开了一种实现高效存取笔记的方法和装置,方法包括:将笔记视图从顶部到底部平均分为若干个笔记包,对笔记包按顺序进行编号并保存在数据库中;接收用户发送的笔记读取指令;通过UI线程获取可见视图在笔记视图中的当前位置信息并同步至缓存线程;通过缓存线程根据当前位置信息判断对应的笔记包是否在缓存线程的缓存区中,若是,则从缓存区中获取对应的笔记包同步至UI线程,若否,则从数据库中加载对应的笔记包至缓存区中再同步至UI线程;通过UI线程将接收到的笔记包发送至可见视图中对应的位置进行显示。通过本发明使笔记的存取性能得到极大的提升,并且整体存取性能不受笔记内容的长度,以及缓存大小的限制。
【IPC分类】G06F17/30
【公开号】CN105653665
【申请号】
【发明人】秦曙光
【申请人】中山市读书郎电子有限公司
【公开日】2016年6月8日
【申请日】2015年12月28日