CN103034730A - 一种基于安卓平台的数据处理方法和系统 - Google Patents
一种基于安卓平台的数据处理方法和系统 Download PDFInfo
- Publication number
- CN103034730A CN103034730A CN201210560222XA CN201210560222A CN103034730A CN 103034730 A CN103034730 A CN 103034730A CN 201210560222X A CN201210560222X A CN 201210560222XA CN 201210560222 A CN201210560222 A CN 201210560222A CN 103034730 A CN103034730 A CN 103034730A
- Authority
- CN
- China
- Prior art keywords
- page
- record
- loaded
- data
- leaf
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提出一种基于安卓平台的数据处理方法和系统,其中方法包括:根据设定的展示参数对数据库中的数据进行分组,获得各分组中记录的数量,并对各分组的记录进行汇总形成总索引表;根据总索引表和设定的加载页数N形成加载页索引表,加载页索引表包括的每N页第一条记录都对应一个相应的加载页索引ID,其中N为正整数,且N>1;根据加载页索引ID对应的每N页第一条记录获得该第一条记录所属的N页记录,并将所述N页记录加载到数据库容器中;读取数据库容器中的N页记录并对N页记录中的部分或全部进行报表展示;通过本发明的方法和系统,可提高报表展示时页面切换的数据加载速度,并且适于展示大数据量的报表且不会产生内存不足。
Description
技术领域
本发明涉及数据处理方法和系统,特别地,涉及一种基于安卓平台的数据处理方法和系统。
背景技术
在安卓(Android)平台开发中,经常会涉及报表展示的功能。所谓报表展示,通常指将多个报表中的数据分类汇总,根据一定的版式以报表形式进行展示。为了能够根据业务需求灵活的对报表的版式进行调整,大多采用WebView+HTML+JavaScript的架构来进行报表展示,具体的实现方法是:
1.通过java程序对数据库进行读取、分析,将要展示的数据保存在数据库容器中,并提供可供javascript调用的接口,用于传递数据库容器中的数据;
2.使用WebView加载HTML文件;
3.在HTML文件中加载javascript脚本,由javascript脚本定义数据报表的版式并动态的生成HTML页面;
4.在javascript脚本中,调用java程序提供的接口,读取数据库容器中的数据,动态生成HTML页面进行显示。
上述报表展示的实现方法,在数据量较小的情况下是可行的,但是对于数据量较大的情况下,比如涉及几十个表,万条以上的数据,如果想要一次性的读取全部数据,并加载到数据库容器中,对于基于安卓平台的嵌入式设备而言,会出现如下两个问题:第一,由于嵌入式设备的CPU计算能力有限,所以,加载大量数据需要花费很多的时间;第二,安卓平台对每个虚拟机内存容量Heap的大小进行了限制,如在build.prop中有一项参数为:davlik.vm.heapsize,这个参数值是由厂商进行配置,例如在三星P1000平板电脑上,davlik.vm.heapsize的值为是48M,因此,当大量数据填充到数据库容器时,很容易达到Heap的上限,从而引发内存不足(Out of memery),进而导致程序退出。
现有技术中,已经有使用分页机制进行报表展示以解决上述问题,即在每页仅显示固定数量的记录数,以提高展现的速度,并且在切换页面后,释放前面页面占用的内存。但是,采取该分页机制存在一个问题,就是在切换页面时,由于要重新对数据进行分析,计算出要切换的页面内容,从而导致加载数据的速度很慢。
总之,需要本领域技术人员迫切解决的一个技术问题就是:如何能够提高切换页面时的数据加载速度,并且适于展示大数据量的数据报表,且不会产生内存不足的情况。
发明内容
为了解决上述问题,本发明提供了一种基于安卓平台的数据处理方法和系统,可提高报表展示时页面切换的数据加载速度,并且适于展示大数据量的数据报表,且不会产生内存不足的情况,同时通过索引表的方式实现了页面的快速定位和切换。
本发明的基于安卓平台的数据处理方法,包括如下步骤,
根据设定的展示参数对数据库中的数据进行分组,获得各分组中记录的数量,并对各分组的记录进行汇总形成总索引表;
根据所述总索引表和设定的加载页数N形成加载页索引表,加载页索引表
中包括的每N页第一条记录都对应一个相应的加载页索引ID,其中N为正整数,且N>1;
根据所述加载页索引ID对应的每N页第一条记录获得该第一条记录所属的N页记录,并将所述N页记录加载到数据库容器中;
读取数据库容器中的N页记录并对N页记录中的部分或全部进行报表展示。
优选的,还包括设定每页加载页具有相同的记录数量的步骤。
其中,所述展示参数包括日期,报表类型,分组类型,子项数据标识,子项数据类型。
优选的,还包括如下步骤:在所述加载页索引表的第一个加载页索引ID形成的同时,将所述第一个加载页索引ID所对应的记录加载到数据库容器并进行报表展示。
本发明还提供一种基于安卓平台的数据处理系统,包括,
总索引表生成单元,用于根据设定的展示参数对数据库中的数据进行分组,获得各分组中记录的数量,并对各分组的记录进行汇总形成总索引表;
加载页索引表生成单元,用于根据所述总索引表和设定的加载页数N形成
加载页索引表,所述加载页索引表中的每N页第一条记录对应一个加载页索引ID,其中N为正整数,且N>1;
记录获取与加载单元,用于根据所述加载页索引ID对应的每N页第一条记录获得该第一条记录所属的N页记录,并将所述N页记录加载到数据库容器中;
第一数据展示单元,用于读取数据库容器中的N页记录并对N页记录中的部分或全部进行报表展示。
优选的,还包括加载页设定单元,用于设定每页加载页中具有相同的记录数量。
优选的,所述展示参数包括日期,报表类型,分组类型,子项数据标识,子项数据类型。
优选的,还包括第二数据展示单元,用于在所述加载页索引表的第一个加载页索引ID形成的同时,将所述第一个加载页索引ID所对应的记录加载到数据库容器并进行报表展示。
通过本发明的数据处理方法和系统,可提高报表展示时页面切换的数据加载速度,并且适于展示大数据量的数据报表,且不会产生内存不足的情况,同时通过索引表的方式实现了页面的快速定位和切换。
附图说明
图1是本发明的基于安卓平台的数据处理方法实施例的流程图;
图2是本发明的基于安卓平台的数据处理系统实施例的示意图;
图3是本发明的基于安卓平台的数据处理方法实施例中形成的总索引表的示意图;
图4是发明的基于安卓平台的数据处理方法实施例中形成的加载页索引表的示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明一种基于安卓平台的数据处理方法实施例的流程图,包括,S11,根据设定的展示参数对数据库中的数据进行分组,获得各分组中记录的数量,并对各分组的记录进行汇总形成总索引表;S12,根据所述总索引表和设定的加载页数N形成加载页索引表,加载页索引表中包括的每N页第一条记录都对应一个相应的加载页索引ID,其中N为正整数,且N>1;S13,根据所述加载页索引ID对应的每N页第一条记录获得该第一条记录所属的N页记录,并将所述N页记录加载到数据库容器中;S14,读取数据库容器中的N页记录并对N页记录中的部分或全部进行报表展示。
其中,所述展示参数包括日期,报表类型,分组类型,子项数据标识,子项数据类型。具体的,报表类型,可为聊天记录报表,邮件记录报表,网站浏览记录报表等;分组类型,例如,在聊天记录报表中,一对聊天账号为一个分组;在浏览网站记录时,不同的网站为不同的分组;子项数据标识,例如,聊天记录或网站浏览记录可能会来自于手机,也可能来自电脑,子项数据标识用来描述这些数据的来源;子项数据类型,例如,在聊天记录报表中,每一条聊天记录为一个子项数据类型;在网站浏览记录报表中,每个链接地址为一个子项数据类型。
通过本发明的数据处理方法,可提高报表展示时页面切换的数据加载速度,并且适于展示大数据量的数据报表,且不会产生内存不足的情况,同时通过索引表的方式实现了页面的快速定位和切换。
优选的,还包括设定每页加载页中具有相同的记录数量的步骤(图中未示),以便于快速查找并读取加载页中的记录。
为了实现边加载边显示,进而减少用于等待时间、增强用户体验,优选的,还包括如下步骤:在所述加载页索引表的第一个加载页索引ID形成的同时,将所述第一个加载页索引ID所对应的记录加载到数据库容器并进行报表展示。
下面将结合实施例对本发明的方法进行详细描述。比如,需要实现在安卓平台内,将各种聊天工具的数据按时间,群组进行分类的报表展示。
首先,依次对QQ表和飞信表作如下处理:通过时间进行分组,获得共有多少个时间分组;通过群组分组,获得共有多少个群组;通过各群组中聊天记录数量进行分组,获取各个群组中共有多少条聊天记录,并对各分组的数量进行汇总形成总索引表如图3所示。
然后,根据总索引表和设定的加载页数N形成加载页索引表,其中N为正整数,且N>1。比如设定每次加载5页,在加载页索引表中,每5页第一条记录都对应一个相应的加载页索引ID,如图4所示。图4中所示的每5页第一条记录都包括如下几个索引号:dateindex,表示按时间条件查询到的数据的索引号;groupindex,表示按群组查询到的数据的索引号; childindex,表示按群组的子项查询到的数据的索引号;childdetailindex,表示按子项详情的不同类型查询到的数据索引号,将这几个索引号保存到数据库中,更利于在需要的时候进行快速定位。当进行页面切换时,只要读取加载页索引表中的记录,根据所述加载页索引ID对应的每N页第一条记录可快速获得该第一条记录所属的N页记录,并将所述N页记录加载到数据库容器中,java程序再从数据库容器中读取相关N页的记录,传给HTML页面,然后根据用户需要进行部分记录或全部记录的报表展示。比如,从第1页切换到第8页,由于第8页在6-10页之间,则通过加载页索引表中的ID=2这条记录,使用sql的limit语句,快速定位到第6页的第一条记录,然后将6到10页的记录加载到数据库容器中。优选的,可将每页的记录数设定为固定且相等的,从而可快速计算出第8页开始的记录位置,再从数据库容器中读取第8页的完整内容进行报表展示。
为了实现边加载边显示,进而减少用于等待时间、增强用户体验,优选的,在所述加载页索引表的第一个加载页索引ID(即ID=1)形成的同时,将加载页索引ID=1所对应的记录加载到数据库容器并进行报表展示。
通过上述本发明的方法,对于一个涉及10个报表,报表每页显示60条记录,总共1011页的6万条的数据进行测试,其数据加载时间如表1所示:
1 | 第一个报告页面打开的时间 | 5秒 |
2 | 第一页报告页面打开后,用户可浏览的页数 | 41页 |
3 | 所有1011页索引创建完成的时间 | 60秒 |
表1
以上测试结果显示,本发明的方法可大大提高数据加载速度,减少用户等待时间,而且可承受大数据量的内容而不至于出现内存不足的状况。
本发明还提出了一种与本发明的基于安卓平台的数据处理方法相对应的系统,参看图2为本发明的基于安卓平台的数据处理系统实施例的示意图,包括,总索引表生成单元21,用于根据设定的展示参数对数据库中的数据进行分组,获得各分组中记录的数量,并对各分组的记录进行汇总形成总索引表;加载页索引表生成单元22,用于根据所述总索引表和设定的加载页数N形成加载页索引表,所述加载页索引表中的每N页第一条记录对应一个加载页索引ID,其中N为正整数,且N>1;记录获取与加载单元23,用于根据所述加载页索引ID对应的每N页第一条记录获得该第一条记录所属的N页记录,并将所述N页记录加载到数据库容器中;第一数据展示单元24,用于读取数据库容器中的N页记录并对N页记录中的部分或全部进行报表展示。
其中,所述展示参数包括日期,报表类型,分组类型,子项数据标识,子项数据类型。具体的,报表类型,可为聊天记录报表,邮件记录报表,网站浏览记录报表等;分组类型,例如,在聊天记录报表中,一对聊天账号为一个分组;在浏览网站记录时,不同的网站为不同的分组;子项数据标识,例如,聊天记录或网站浏览记录可能会来自于手机,也可能来自电脑,子项数据标识用来描述这些数据的来源;子项数据类型,例如,在聊天记录报表中,每一条聊天记录为一个子项数据类型;在网站浏览记录报表中,每个链接地址为一个子项数据类型。
通过本发明的数据处理系统,可提高报表展示时页面切换的数据加载速度,并且适于展示大数据量的数据报表,且不会产生内存不足的情况,同时通过索引表的方式实现了页面的快速定位和切换。
优选的,所述系统还包括加载页设定单元(图中未示),用于设定每页加载页中具有相同的记录数量,以便于快速查找并读取加载页中的记录。
为了实现边加载边显示,进而减少用于等待时间、增强用户体验,优选的,还包括第二数据展示单元(图中未示),用于在所述加载页索引表的第一个加载页索引ID形成的同时,将所述第一个加载页索引ID所对应的记录加载到数据库容器并进行报表展示。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本发明所提供的一种基于安卓平台的数据处理方法和系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种基于安卓平台的数据处理方法,其特征在于,包括,
根据设定的展示参数对数据库中的数据进行分组,获得各分组中记录的数量,并对各分组的记录进行汇总形成总索引表;
根据所述总索引表和设定的加载页数N形成加载页索引表,加载页索引表中包括的每N页第一条记录都对应一个相应的加载页索引ID,其中N为正整数,且N>1;
根据所述加载页索引ID对应的每N页第一条记录获得该第一条记录所属的N页记录,并将所述N页记录加载到数据库容器中;
读取数据库容器中的N页记录并对N页记录中的部分或全部进行报表展示。
2.如权利要求1所述的方法,其特征在于,还包括设定每页加载页具有相同的记录数量。
3.如权利要求1所述的方法,其特征在于,所述展示参数包括日期,报表类型,分组类型,子项数据标识,子项数据类型。
4.如权利要求1所述的方法,其特征在于,还包括在所述加载页索引表的第一个加载页索引ID形成的同时,将所述第一个加载页索引ID所对应的记录加载到数据库容器并进行报表展示。
5.一种基于安卓平台的数据处理系统,其特征在于,包括,
总索引表生成单元,用于根据设定的展示参数对数据库中的数据进行分组,获得各分组中记录的数量,并对各分组的记录进行汇总形成总索引表;
加载页索引表生成单元,用于根据所述总索引表和设定的加载页数N形成
加载页索引表,所述加载页索引表中的每N页第一条记录对应一个加载页索引ID,其中N为正整数,且N>1;
记录获取与加载单元,用于根据所述加载页索引ID对应的每N页第一条记录获得该第一条记录所属的N页记录,并将所述N页记录加载到数据库容器中;
第一数据展示单元,用于读取数据库容器中的N页记录并对N页记录中的部分或全部进行报表展示。
6.如权利要求5所述的系统,其特征在于,还包括加载页设定单元,用于设定每页加载页中具有相同的记录数量。
7.如权利要求5所述的系统,其特征在于,所述展示参数包括日期,报表类型,分组类型,子项数据标识,子项数据类型。
8.如权利要求5所述的系统,其特征在于,还包括第二数据展示单元,用于在所述加载页索引表的第一个加载页索引ID形成的同时,将所述第一个加载页索引ID所对应的记录加载到数据库容器并进行报表展示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210560222.XA CN103034730B (zh) | 2012-12-21 | 2012-12-21 | 一种基于安卓平台的数据处理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210560222.XA CN103034730B (zh) | 2012-12-21 | 2012-12-21 | 一种基于安卓平台的数据处理方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103034730A true CN103034730A (zh) | 2013-04-10 |
CN103034730B CN103034730B (zh) | 2016-02-24 |
Family
ID=48021624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210560222.XA Active CN103034730B (zh) | 2012-12-21 | 2012-12-21 | 一种基于安卓平台的数据处理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103034730B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108279943A (zh) * | 2017-01-05 | 2018-07-13 | 腾讯科技(深圳)有限公司 | 索引加载方法和装置 |
CN109582938A (zh) * | 2017-09-28 | 2019-04-05 | 北京国双科技有限公司 | 报表生成方法和装置 |
CN110209798A (zh) * | 2017-12-22 | 2019-09-06 | 北京奇虎科技有限公司 | 一种redis数据库的数据展示方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0884688A2 (en) * | 1997-06-16 | 1998-12-16 | Koninklijke Philips Electronics N.V. | Sparse index search method |
US5978792A (en) * | 1995-02-24 | 1999-11-02 | International Business Machines Corporation | Method and apparatus for generating dynamic and hybrid sparse indices for workfiles used in SQL queries |
CN102360371A (zh) * | 2011-09-29 | 2012-02-22 | 畅捷通信息技术股份有限公司 | 数据处理装置和数据处理方法 |
CN102591943A (zh) * | 2011-12-27 | 2012-07-18 | 厦门雅迅网络股份有限公司 | 一种移动终端的页面数据处理方法 |
-
2012
- 2012-12-21 CN CN201210560222.XA patent/CN103034730B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978792A (en) * | 1995-02-24 | 1999-11-02 | International Business Machines Corporation | Method and apparatus for generating dynamic and hybrid sparse indices for workfiles used in SQL queries |
EP0884688A2 (en) * | 1997-06-16 | 1998-12-16 | Koninklijke Philips Electronics N.V. | Sparse index search method |
CN102360371A (zh) * | 2011-09-29 | 2012-02-22 | 畅捷通信息技术股份有限公司 | 数据处理装置和数据处理方法 |
CN102591943A (zh) * | 2011-12-27 | 2012-07-18 | 厦门雅迅网络股份有限公司 | 一种移动终端的页面数据处理方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108279943A (zh) * | 2017-01-05 | 2018-07-13 | 腾讯科技(深圳)有限公司 | 索引加载方法和装置 |
CN108279943B (zh) * | 2017-01-05 | 2020-09-11 | 腾讯科技(深圳)有限公司 | 索引加载方法和装置 |
CN109582938A (zh) * | 2017-09-28 | 2019-04-05 | 北京国双科技有限公司 | 报表生成方法和装置 |
CN109582938B (zh) * | 2017-09-28 | 2023-01-13 | 北京国双科技有限公司 | 报表生成方法和装置 |
CN110209798A (zh) * | 2017-12-22 | 2019-09-06 | 北京奇虎科技有限公司 | 一种redis数据库的数据展示方法和装置 |
CN110209798B (zh) * | 2017-12-22 | 2024-05-10 | 北京奇虎科技有限公司 | 一种redis数据库的数据展示方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103034730B (zh) | 2016-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102945158B (zh) | 一种电子设备应用安装自动归类方法及系统 | |
CN102129425B (zh) | 数据仓库中大对象集合表的访问方法及装置 | |
CN103605502B (zh) | 表单页面显示方法及服务器 | |
CN104599217A (zh) | 用于确定乘客的当前目的地的方法及设备 | |
CN101727436A (zh) | 一种报表数据处理方法、报表系统以及相关装置 | |
CN111367976A (zh) | 基于java反射机制的excel文件数据的导出方法及装置 | |
CN104462029A (zh) | 一种智能终端中富文本显示的方法和系统 | |
CN103488502A (zh) | 一种数据加载方法及装置 | |
CN103034730B (zh) | 一种基于安卓平台的数据处理方法和系统 | |
CN111414361A (zh) | 标签数据存储方法、装置、设备及可读存储介质 | |
CN106162576B (zh) | 一种移动终端网络流量显示方法及装置 | |
CN106649210B (zh) | 一种数据转换方法及装置 | |
CN107784085B (zh) | 一种数据列表的导出方法及其终端 | |
CN103544036A (zh) | 页面加载方法、终端及系统 | |
CN103425490B (zh) | 基于crm系统中运行对象数据的管理方法 | |
CN110704404A (zh) | 一种数据质量校验方法、装置、系统 | |
CN105404672A (zh) | 网页数据存储和操作的系统及方法 | |
CN104808995A (zh) | 一种用于跨应用收藏应用内容的方法和装置 | |
CN102521229A (zh) | 一种获取应用程序的方法及设备 | |
CN105574027A (zh) | 基于oltp/olap混合应用下多维度性能数据存储方法、装置及系统 | |
CN103853782A (zh) | 信息浏览方法及信息浏览装置 | |
CN104077292B (zh) | 网页信息的存储方法及设备 | |
CN113849524B (zh) | 一种数据处理方法及装置 | |
CN103309896A (zh) | 网页浏览方法、浏览器及终端 | |
CN103164459A (zh) | 专利文献预览方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |