本发明涉及互联网技术,具体涉及一种信息上报方法、装置、计算机可读存储介质和电子设备。
背景技术:
移动互联网的发展使得用户可以基于智能移动终端开展多种多样的业务和协作。在互联网业务系统的运行和研发过程中,为了保证用户体验并及时解决突发情况,需要尽可能实时地收集和获取客户端程序的运行状态以及网络状态。因此,需要客户端能够有效地进行信息上报。
技术实现要素:
有鉴于此,本发明实施例提出一种信息上报方法、装置、计算机可读存储介质和电子设备,以有效地进行信息上报。
根据本发明实施例的第一方面,提供一种信息上报方法,所述方法包括:
采集信息,并将采集到的信息合并为待上传数据存储在内存中;
在写入条件被触发时,将待上传数据写入第一路径下的待上传文件;
在转移条件被触发时,将所述待上传文件转移到第二路径;以及
向服务器上传所述第二路径下的待上传文件。
根据本发明实施例的第二方面,提供一种计算机可读存储介质,其上存储计算机程序指令,所述计算机程序指令在被处理器执行时实现如第一方面所述的方法。
根据本发明实施例的第三方面,提供一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如第一方面所述的方法。
根据本发明实施例的第三方面,提供一种信息上报装置,所述装置包括:
采集及缓存单元,用于采集信息,并将采集到的信息合并为待上传数据存储在内存中;
文件写入单元,用于在写入条件被触发时,将待上传数据写入第一路径下的待上传文件;
文件转移单元,用于在转移条件被触发时,将所述待上传文件转移到第二路径;以及
上传单元,用于向服务器上传所述第二路径下的待上传文件。
本发明实施例将采集到的信息合并为待上传数据缓存在内存中,进而基于写入条件将缓存的待上传数据写入文件以及进行上传,再基于转移条件来转移待上传文件并进行上传,由此,可以有效地上报客户端采集到的信息。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1是本发明实施例的信息上报方法的流程图;
图2是本发明实施例的一个可选实现方式收集域名系统(dns)状态信息的流程图;
图3是本发明实施例的一个可选实现方式套接字(socket)相关网络状态信息的流程图;
图4是本发明实施例的一个可选实现方式通过路由追踪(traceroute)采集网络状态信息的流程图;
图5是本发明实施例的一个可选实现方式中上传待上传文件的流程图;
图6是本发明另一个实施例的信息上报方法的流程图;
图7是本发明又一个实施例的信息上报方法的流程图;
图8是本发明实施例的信息上报装置的示意图;
图9是用于实现本发明实施例的信息上报方法的电子设备的示意图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。
此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
图1是本发明实施例的信息上报方法的流程图。如图1所示,本实施例的信息上报方法包括:
步骤s100、采集信息,并将采集到的信息合并为待上传数据存储在内存中。
其中,可以周期性地采集信息,也可以基于其它触发条件,例如中断触发来采集信息。
步骤s200、在写入条件被触发时,将待上传数据写入第一路径下的待上传文件。
步骤s300、在转移条件被触发时,将所述待上传文件转移到第二路径。
步骤s400、向服务器上传所述第二路径下的待上传文件。
由此,通过缓存、写入文件、转移以及上传可以实现对于采集到的信息的有效上传,同时不会过于频繁进行读写和上传,提高了效率,降低了对于客户端性能的影响。
在本实施例的步骤s100中,所述采集的信息包括至少一项表征网络状态的信息和当前位置的信息。其中,当前位置信息的采集可以通过调用操作系统的定位服务或调用导航定位累应用程序的sdk(softwaredevelopmentkit,即软件开发工具包)来实现。由此,可以将当前位置的信息和对应的表征网络状态的信息上报到服务器端。服务器端基于大量从客户端上报的信息可以掌握不同区域当前的网络总体状况。业务系统的运营人员和研发人员可以根据服务器端的数据近乎实时地了解所有使用系统的客户端的网络环境,了解网络环境的地域分布,及时对于网络故障进行分析和定位。这可以使得部分由于程序瑕疵导致的网络故障可以被快速诊断和定位。同时,对于由于基础设施导致的网络故障,也可以通过运营方向电信运营商的反馈得到更为及时的解决和优化,提高系统运营效率和用户体验。
具体地,表征网络状态的信息可以包括dns(domainnamesystem,域名系统)状态信息、套接字(socket)相关的网络状态信息、从当前网络位置到服务器的连接状态信息和通过路由追踪(traceroute)采集网络状态信息中的一项或多项。
图2是本发明实施例的一个可选实现方式收集dns状态信息的流程图。dns是域名和ip地址相互映射的一个分布式数据库。通过访问dns服务器,客户端可以获得要访问的域名对应的ip地址。如果dns服务器的地址配置出错或者dns服务器的服务不可用,则由于无法正确解析域名,客户端对网络的访问会受到影响。如图2所示,收集dns状态信息的过程包括:
步骤s110、获取dns服务器的地址。
例如,可以在安卓系统调用系统命令getpropnet.*获得配置的所有的本地dns服务器的地址和可请求的网络dns服务器的地址。
步骤s120、逐一通过获取的dns服务器地址解析主机(host)的域名,获取解析结果。
在本实施例中,主机为与当前进程提供业务服务的服务器。
步骤s130、缓存dns服务器地址和对应的解析结果。
由此,可以获得多个dns服务器的状态信息。进而,基于该信息可判断域名解析是否正常。
图3是本发明实施例的一个可选实现方式采集套接字(socket)相关网络状态信息的流程图。应用程序通常通过套接字(socket)向网络发出请求或者应答网络请求。因此,通过socket是否可以与主机(host)正常通信,也是运营人员和研发人员希望了解的网络状态信息。如图3所示,采集通过socket建立通信连接的往返时延(rtt,round-triptime)的过程包括:
步骤s140、建立socket地址。
步骤s150、发送socket请求。
步骤s160、接收socket响应,获得往返时延。
步骤s170、缓存当前获得的往返时延。
由此,可以获得客户端和主机之间基于socket进行通信的状态。
互联网基于数据包来进行通信。ping(packetinternetgroper)是数据包探索器,是一种在各种操作系统下均可以使用的测试网络连接量的程序。ping程序可以通过发送数据包检测主机是否可通信,以及通信质量如何。例如,通过“ping–ccounthost”命令可以采集向主机发送数据包的往返时延和数据包的生存时间(timetolive,ttl)。因此,可以通过ping命令来发送数据包测试客户端和主机之间在数据包层面的网络状态。
图4是本发明实施例的一个可选实现方式通过路由追踪(traceroute)采集网络状态信息的流程图。路由追踪可以检测由当前网络地址到达主机的跳数(hops)和耗时。如图4所示,通过路由追踪采集网络状态信息的过程包括:
步骤s180、设置数据包的生存时间自增。
步骤s190、向主机发送具有所设置的生存时间的数据包。
步骤s1a0、判断返回结果是否表示数据包到达主机,如果是,跳转步骤s1b0,否则,跳转步骤s180。
步骤s1b0、判断当前生存时间是否大于设定的值,如果否,跳转步骤0c0,否则跳转步骤0d0。
步骤s1c0、缓存当前生存时间,也即,达到主机的跳数,作为网络状态信息。
步骤s1d0、缓存出错标志作为网络状态信息。
由此,可以在到达主机的跳速过多时报错。
应理解,上述网络状态信息可以并行地采集,也可以按照预定的顺序逐一地采集。
在本实施例中,需要采集的一项或多项网络状态信息被周期性地采集,并与获取的当前位置的信息合并后缓存在内存中。具体地,网络状态信息和当前位置的信息按照预定的格式转换为字符串(也即,待上传数据),存储在预定的内存结构中(例如,一个cachearray数组中)。每个字符串作为一条待上传数据。
可选地,在步骤s200,在内存中存储的待上传数据数量或大小达到写入阈值时触发所述写入条件,以触发将待上传数据写入第一路径下的待上传文件。例如,可以在缓存的待上传的数据的数量大于20条时触发写入条件。
在第一路径下已经存在待上传文件时,以增量写入的方式将待上传数据写入。
在第一路径下不存在符合要求的待上传文件时,新建一个待上传文件并将待上传数据写入。
通过在缓存的数据满足预定的数量条件或大小条件后写入到文件中,可以使得缓存的数据占用的内存量不会无限增加,节约了客户端的资源,同时,缓存和文件系统配合也可以保证信息采集的及时性。
可选地,在步骤s300,在第一路径下的待上传文件的大小达到上传阈值(例如10kb)时触发转移条件,以触发将待上传文件转移到第二路径。在后续步骤s400,上传服务遍历第二路径下的文件,对符合要求的待上传文件进行上传。
由此,在积累了一定量的采集的信息后向服务器上传采集到的信息,通过调节转移条件设置的上传阈值,可以调节文件上传的大概周期,在信息上报的实时性和频率之间取得平衡。同时,通过转移路径再上传的方式,可以避免写入和上传操作对文件的操作产生竞争。
由于客户端所在的网络环境有可能不稳定,因此,在上传待上传文件可能失败。而此时往往更需要进行网络环境信息的上报。在这种情况下,采用重复上传的策略是一个合理的选择。但是,无限制地重复上传又会导致系统资源的浪费,并大量消耗运行客户端应用程序的终端的电量。因此,在一个可选实施方式中,可以采用如下方式来上传待上传文件。如图5所示,步骤s400包括:
步骤s410、删除所述第二路径下上传失败次数超过失败阈值的待上传文件。
其中,失败阈值可以设置为预定值,例如3。
具体地,可以通过专门的变量或文件记录文件上传失败的次数,并在每次上传操作后进行修改。
步骤s420、向服务器上传第二路径下未被删除的待上传文件。
在本步骤,可以遍历第二路径下所有的文件,逐一或并行地对文件进行上传。具体地,可以通过httppost方法、socket、ftp中的任一种或其它方式来进行文件上传。
步骤s430、删除上传成功的待上传文件。
删除上传成功的待上传文件,使得该文件不会在下一次上传操作中再次上传。
由此,通过删除上传次数过多的待上传文件和上传成功的待上传文件,并通过遍历所有第二路径下文件的方式进行上传,可以在保证信息上报成功和节省系统资源之间取得平衡。
优选地,可以通过在第二路径的待上传文件的文件名中加入上传次数信息,使得可以根据文件名中判断特定文件上传失败的次数是否超过失败阈值。同时,步骤s400还包括步骤s440(图中用虚线表示),在步骤s430之后,修改上传失败的待上传文件的文件名中的上传次数信息。
例如,在第一路径下的待上传文件的文件名为“待上传文件0001.txt”。在将该文件转移到第二路径下时,其名称被修改为“待上传文件0001_0.txt”。也即,在其原有的主文件名的尾部增加对于上传次数的记录。由于该待上传文件刚被转移到第二路径,并未被上传过,因此,上传次数的初始值为0。后续,每次上传后,将第二路径下所有未被删除的文件上传次数信息自增。以“待上传文件0001_0.txt”为例,如果经过一次上传操作,待上传文件“待上传文件0001_0.txt”未上传成功,在步骤s430后,该文件仍然存在于第二路径下。因此,文件名“待上传文件0001_0.txt”会被修改为“待上传文件0001_1.txt”。在失败阈值为3时,如果经过4次上传,最初名称为“待上传文件0001_0.txt”文件仍然没有上传成功,则其名称被修改为“待上传文件0001_4.txt”。在下一次进行上传前,根据文件名可以判断其上传次数超出了失败阈值,因此,将该文件删除。
应理解,虽然在本实现方式中步骤s410被设置在执行上传操作的步骤s420之前,但是,步骤s410也可以设置于步骤s400所有子步骤的最后。也即,在一次上传操作结束后将上传次数超过失败阈值的待上传文件删除,这实际上等同于在每次上传前将上一次上传后上传次数超过失败阈值的待上传文件删除。可选地,步骤s410还可以在步骤s420和步骤s430之间执行,或与步骤s430同时执行。
在本实施例中,步骤s400可以周期性地启动,也可以在步骤s300执行后马上启动。
本实施例将采集到的信息合并为待上传数据缓存在内存中,进而基于写入条件将缓存的待上传数据写入文件以及进行上传,再基于转移条件来转移待上传文件并进行上传,由此,可以有效地上报客户端采集到的信息。
同时,本发明实施例通过与智能移动终端上运行的客户端应用程序结合,可以有效地基于用户使用的客户端应用程序在实现业务功能的同时近乎实时地采集和上报客户端与所关联的服务器(主机)之间的网络状态或通信状态,提供了一种新的信息采集模式。
图6是本发明另一个实施例的信息上报方法的流程图。本实施例增加了进行信息上传的场景,从而进一步保证信息上传的实时性。如图6所示,所述方法包括:
步骤s100a、在当前进程被启动或切换到前台状态后,检测所述第二路径,如果存在待上传文件,则跳转步骤s400,否则,跳转步骤s100。
步骤s100、采集信息,并将采集到的信息合并为待上传数据存储在内存中。
步骤s200、在写入条件被触发时,将待上传数据写入第一路径下的待上传文件。
步骤s300、在转移条件被触发时,将所述待上传文件转移到第二路径。
步骤s400、向服务器上传所述第二路径下的待上传文件。
在步骤s400执行完后,返回步骤s100,以开始重复地进行信息采集和上报。
也就是说,本实施例在进程启动或切换为前台状态后,首先判断是否存在之前未能成功上报或为来得及上报的信息,如果有,则先启动进行上传,保证信息上报及时性。
图7是本发明又一个实施例的信息上报方法的流程图。在本实施例中,适应于智能移动终端操作系统的特点,设置了新的文件写入触发方式和上传触发方式。如图7所示,所述信息上报方法包括:
步骤s100、采集信息,并将采集到的信息合并为待上传数据存储在内存中。
步骤s200a、判断当前进程是否接收到由前台状态切换到非前台状态的通知,如果是,跳转步骤s200c,否则跳转步骤s200b。
步骤s200b、判断写入条件是否触发,如果是,跳转步骤s200d,否则跳转步骤s100。
在步骤s200c、将待上传数据写入第一路径下的待上传文件。
接下来,无需转移条件触发,直接在步骤s300a将所述待上传文件转移到第二路径。步骤s300a跳转到步骤s400,向服务器上传所述第二路径下的待上传文件。
同时,如果并没有检测到当前进程要由前台状态切换为非前台状态,则在步骤s200d,在写入条件被触发时,将待上传数据写入第一路径下的待上传文件。
接下来,在步骤s300b,判断转移条件是否被触发,如果是,则跳转步骤s300a,否则跳转步骤s100。
由此,在转移条件被触发时,在步骤s300a,将所述待上传文件转移到第二路径。并进而在步骤s400对第二路径下的待上传文件进行上传。
应理解,在前所述实施例采用的文件上传方式以及写入条件和转移条件可以适用于本实施例。
在移动终端的操作系统中,将进程处于使用和显示交互的状态被称为前台状态,用户可能根据需要将其切换为后台状态或切换为其他状态(例如,ios系统中的背景模式)。在被切换后,进程有一段时间能够执行预定的任务。在本实施例中,在当前进程接收到由前台状态切换为非前台状态的通知时,触发所述写入条件,并且在待上传数据写入成功后触发转移操作和上传操作。通过上述方式,本实施例可以适应于用户的对智能移动终端的操作,保证信息上报的实时性。
上述实施例的信息上报方法可以适用于各种希望基于智能移动终端进行信息上报的应用场景。特别地,在o2o(线上到线下,onlinetooffline)业务系统中,运营人员和研发人员对于系统中各客户端的网络状态更为关注。由于o2o业务系统中的商户通常会长时间地使用商户客户端应用程序,因此,将上述方法应用于o2o商户客户端应用程序可以有效地、持续地监控不同网络位置和地理位置的网络状态信息或其他关心的信息。
图8是本发明实施例的信息上报装置的示意图。如图8所示,本实施例的一种信息上报装置8包括采集及缓存单元81、文件写入单元82、文件转移单元83和上传单元84。
其中,采集及缓存单元81用于采集信息,并将采集到的信息合并为待上传数据存储在内存中。文件写入单元82用于在写入条件被触发时,将待上传数据写入第一路径下的待上传文件。文件转移单元83用于在转移条件被触发时,将所述待上传文件转移到第二路径。上传单元84用于向服务器上传所述第二路径下的待上传文件。
进一步地,所述采集到的信息包括至少一项表征网络状态的信息和当前位置的信息。
进一步地,所述文件写入单元82在内存中存储的待上传数据的数量或大小达到写入阈值时触发所述写入条件。
进一步地,所述文件转移单元83在所述待上传文件的大小达到上传阈值时触发所述转移条件。
进一步地,所述上传单元84包括第一删除子单元84a、上传子单元84b和第二删除子单元84c。
其中,第一删除子单元84a用于删除所述第二路径下上传失败次数超过失败阈值的待上传文件。上传子单元84b用于向服务器上传第二路径下未被删除的待上传文件。第二删除子单元84c用于删除上传成功的待上传文件。
进一步地,所述第二路径下的待上传文件的文件名带有上传次数信息,所述第一删除子单元根据所述文件名中的上传次数信息判断上传失败次数是否超过失败阈值。同时,所述上传单元84还包括文件名修改子单元84d,其用于修改上传失败的待上传文件的文件名中的上传次数信息。
进一步地,所述装置还包括启动处理单元85和上传启动单元86。其中,启动处理单元85用于在当前进程被启动或切换为前台状态后,检测所述第二路径。上传启动单元86用于在所述第二路径存在待上传文件时,向服务器上传所述第二路径下的待上传文件。
进一步地,所述装置还包括切换处理单元87,其用于在当前进程接收到由前台状态切换为非前台状态的通知时,触发所述写入条件,并且在待上传数据写入成功后触发转移条件。
本实施例的装置可以适于在移动终端运行的o2o商户客户端应用程序。
本发明实施例将采集到的信息合并为待上传数据缓存在内存中,进而基于写入条件将缓存的待上传数据写入文件以及进行上传,再基于转移条件来转移待上传文件并进行上传,由此,可以有效地上报客户端采集到的信息。
图9是用于实现本发明实施例的方法的电子设备的示意图。电子设备9包括显示器91、存储器92(其可以包括一个或多个计算机可读存储介质)、存储控制器93、一个或多个处理器(cpu)94、外设接口95、射频电路96、输入/输出(i/o)子系统97以及一个或多个可以获取图像的光学传感器98。这些组件可以通过一个或多个通信总线或信号线99通信。应理解,图9所示的电子设备9只是一个示例,电子设备9可以具有比所示组件更多或更少的组件,可以组合两个或更多的组件,或者可以具有不同的组件配置或排列。
其中,存储器92可以存储软件组件,例如操作系统、通信模块、交互模块以及应用程序。以上所述的每个模块和应用程序都对应于完成一个或多个功能和在发明实施例中描述的方法的一组可执行程序指令。
上述根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应理解,流程图和/或框图的每个块以及流程图图例和/或框图中的块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供至通用计算机、专用计算机或其它可编程数据处理设备的处理器,以产生机器,使得(经由计算机或其它可编程数据处理设备的处理器执行的)指令创建用于实现流程图和/或框图块或块中指定的功能/动作的装置。
同时,如本领域技术人员将意识到的,本发明实施例的各个方面可以被实现为系统、方法或计算机程序产品。因此,本发明实施例的各个方面可以采取如下形式:完全硬件实施方式、完全软件实施方式(包括固件、常驻软件、微代码等)或者在本文中通常可以都称为“电路”、“模块”或“系统”的将软件方面与硬件方面相结合的实施方式。此外,本发明的方面可以采取如下形式:在一个或多个计算机可读介质中实现的计算机程序产品,计算机可读介质具有在其上实现的计算机可读程序代码。
可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是如(但不限于)电子的、磁的、光学的、电磁的、红外的或半导体系统、设备或装置,或者前述的任意适当的组合。计算机可读存储介质的更具体的示例(非穷尽列举)将包括以下各项:具有一根或多根电线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪速存储器)、光纤、便携式光盘只读存储器(cd-rom)、光存储装置、磁存储装置或前述的任意适当的组合。在本发明实施例的上下文中,计算机可读存储介质可以为能够包含或存储由指令执行系统、设备或装置使用的程序或结合指令执行系统、设备或装置使用的程序的任意有形介质。
计算机可读信号介质可以包括传播的数据信号,所述传播的数据信号具有在其中如在基带中或作为载波的一部分实现的计算机可读程序代码。这样的传播的信号可以采用多种形式中的任何形式,包括但不限于:电磁的、光学的或其任何适当的组合。计算机可读信号介质可以是以下任意计算机可读介质:不是计算机可读存储介质,并且可以对由指令执行系统、设备或装置使用的或结合指令执行系统、设备或装置使用的程序进行通信、传播或传输。
用于执行针对本发明各方面的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,所述编程语言包括:面向对象的编程语言如java、smalltalk、c++、php、python等;以及常规过程编程语言如“c”编程语言或类似的编程语言。程序代码可以作为独立软件包完全地在用户计算机上、部分地在用户计算机上执行;部分地在用户计算机上且部分地在远程计算机上执行;或者完全地在远程计算机或服务器上执行。在后一种情况下,可以将远程计算机通过包括局域网(lan)或广域网(wan)的任意类型的网络连接至用户计算机,或者可以与外部计算机进行连接(例如通过使用因特网服务供应商的因特网)。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
本发明实施例公开了a1、一种信息上报方法,所述方法包括:
采集信息,并将采集到的信息合并为待上传数据存储在内存中;
在写入条件被触发时,将待上传数据写入第一路径下的待上传文件;
在转移条件被触发时,将所述待上传文件转移到第二路径;以及
向服务器上传所述第二路径下的待上传文件。
a2、根据a1所述的信息上报方法中,所述采集到的信息包括当前位置的信息和至少一项表征网络状态的信息。
a3、根据a1或a2所述的信息上报方法中,在内存中存储的待上传数据的数量或大小达到写入阈值时触发所述写入条件。
a4、根据a3所述的信息上报方法中,在所述第一路径下的待上传文件的大小达到上传阈值时触发所述转移条件。
a5、根据a1所述的信息上报方法中,所述向服务器上传所述第二路径下的待上传文件包括:
删除所述第二路径下上传失败次数超过失败阈值的待上传文件;
向服务器上传第二路径下未被删除的待上传文件;以及
删除上传成功的待上传文件。
a6、根据a5所述的信息上报方法中,所述第二路径下的待上传文件的文件名带有上传次数信息,根据所述文件名中的上传次数信息判断上传失败次数是否超过失败阈值;
所述向服务器上传所述第二路径下的待上传文件还包括:
修改上传失败的待上传文件的文件名中的上传次数信息。
a7、根据a1-a6中任一项所述的信息上报方法中,所述方法还包括:
在当前进程被启动或被切换为前台状态后,检测所述第二路径;
在所述第二路径存在待上传文件时,向服务器上传所述第二路径下的待上传文件。
a8、根据a1-a7中任一项所述的信息上报方法中,在当前进程接收到由前台状态切换为非前台状态的通知时,触发所述写入条件,并且在待上传数据写入成功后触发转移条件。
a9、根据a7或a8所述的信息上报方法中,所述当前进程为适于在移动终端运行的o2o商户客户端应用程序进程。
本发明实施例还公开了b1、一种计算机可读存储介质,其上存储计算机程序指令,其中,所述计算机程序指令在被处理器执行时实现如a1-a9任一项所述的方法。
本发明实施例还公开了c1、一种电子设备,包括存储器和处理器,其中,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如a1-a9中任一项所述的方法。
本发明实施例还公开了d1、一种信息上报装置,所述装置包括:
采集及缓存单元,用于采集信息,并将采集到的信息合并为待上传数据存储在内存中;
文件写入单元,用于在写入条件被触发时,将待上传数据写入第一路径下的待上传文件;
文件转移单元,用于在转移条件被触发时,将所述待上传文件转移到第二路径;以及
上传单元,用于向服务器上传所述第二路径下的待上传文件。
d2、根据d1所述的信息上报装置中,所述采集到的信息包括当前位置的信息和至少一项表征网络状态的信息。
d3、根据d1或d2所述的信息上报装置中,所述文件写入单元在内存中存储的待上传数据的数量或大小达到写入阈值时触发所述写入条件。
d4、根据d3所述的信息上报装置中,所述文件转移单元在所述待上传文件的大小达到上传阈值时触发所述转移条件。
d5、根据d1所述的信息上报装置中,所述上传单元包括:
第一删除子单元,用于删除所述第二路径下上传失败次数超过失败阈值的待上传文件;
上传子单元,用于向服务器上传第二路径下未被删除的待上传文件;以及
第二删除子单元,用于删除上传成功的待上传文件。
d6、根据d5所述的信息上报装置中,所述第二路径下的待上传文件的文件名带有上传次数信息,所述第一删除子单元用于根据所述文件名中的上传次数信息判断上传失败次数是否超过失败阈值;
所述上传单元还包括:
文件名修改子单元,用于修改上传失败的待上传文件的文件名中的上传次数信息。
d7、根据d1-d6中任一项所述的信息上报装置中,所述装置还包括:
启动处理单元,用于在当前进程被启动或被切换为前台状态后,检测所述第二路径;以及
上传启动单元,用于在所述第二路径存在待上传文件时,向服务器上传所述第二路径下的待上传文件。
d8、根据d1-d7中任一项所述的信息上报装置中,所述装置还包括:
切换处理单元,用于在当前进程接收到由前台状态切换为非前台状态的通知时,触发所述写入条件,并且在待上传数据写入成功后触发转移条件。
d9、根据d7或d8所述的信息上报装置,所述当前进程为适于在移动终端运行的o2o商户客户端应用程序进程。