CN107590011B - 移动终端app错误信息的查询方法及系统 - Google Patents

移动终端app错误信息的查询方法及系统 Download PDF

Info

Publication number
CN107590011B
CN107590011B CN201710781221.0A CN201710781221A CN107590011B CN 107590011 B CN107590011 B CN 107590011B CN 201710781221 A CN201710781221 A CN 201710781221A CN 107590011 B CN107590011 B CN 107590011B
Authority
CN
China
Prior art keywords
mobile terminal
dic
function
app
json format
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.)
Active
Application number
CN201710781221.0A
Other languages
English (en)
Other versions
CN107590011A (zh
Inventor
汪刚
张文明
陈少杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangxi Cuixing Intelligent Technology Co ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201710781221.0A priority Critical patent/CN107590011B/zh
Publication of CN107590011A publication Critical patent/CN107590011A/zh
Application granted granted Critical
Publication of CN107590011B publication Critical patent/CN107590011B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明提供移动终端APP错误信息的查询方法及系统,所述方法包括:定义一个字典dic,将所述移动终端APP故障定位所需的各项基本信息保存到所述dic中;按照预设频率将所述移动终端APP产生的各种错误信息以不同参数类型保存在所述dic中;将所述dic转化为json格式并上传至服务器;所述服务器解析所述dic文件,并将解析后的信息保存在数据库中,以供管理员对所述移动终端的目标APP错误信息进行查询。本发明具有解决现有移动终端APP错误信息发生时,用户信息无法定位或者定位信息需要询问用户太多内容问题的有益效果。

Description

移动终端APP错误信息的查询方法及系统
技术领域
本发明涉及互联网移动终端APP应用开发技术领域,更具体地,涉及移动终端APP错误信息的查询方法及系统。
背景技术
移动终端APP软件主要指安装在智能手机、或平板电脑上的软件,以完善原始操作系统的不足与个性化。移动终端APP是为了完善各移动终端功能,为用户提供更丰富的使用体验的主要手段,目前发展到了几乎可以和电脑相媲美的程度。移动终端APP软件的运行需要有相应的手机系统,目前主要的系统为苹果公司的iOS系统和谷歌公司的 Android系统。移动终端APP在运行过程中不可避免会产生一些问题。
现有技术中,在实际使用过程中,当有用户反馈自己的移动端APP 发生问题时,APP服务人员通过询问用户所使用的APP是哪个版本、什么型号的移动设备、用户所在的城市、所使用网络是移动网络还是 WIFI、什么时候发生了什么软件故障、故障类型具体是卡顿还是崩溃等等一些为了排查问题相关的信息,便于开发排查出APP什么发生问题。
然而,上述现有技术的APP故障排查方法需要用户的高度配合,同时,即使用户配合也存在故障排查效率低下、故障定位不够准确的问题。
发明内容
本发明为克服上述问题或者至少部分地解决上述问题,提供移动终端APP错误信息的查询方法及系统。
根据本发明的一个方面,提供一种移动终端APP错误信息的查询方法,包括:
步骤1,定义一个字典dic,将所述移动终端APP故障定位所需的各项基本信息保存到所述dic中;
步骤2,按照预设频率将所述移动终端APP产生的各种错误信息以不同参数类型保存在所述dic中;将所述dic转化为json格式并上传至服务器;
步骤3,所述服务器解析所述dic文件,并将解析后的信息保存在数据库中,以供管理员对所述移动终端的目标APP错误信息进行查询。
进一步,所述所需的各项基本信息包括以下至少一种:所述移动终端使用网络的类型、所述移动终端运营商信息、所述移动终端唯一标识、所述移动终端的型号、所述APP的版本、所述移动终端操作系统的版本、所述移动终端操作系统的操作语言、所述移动终端的当前时间、所述移动终端目标APP的用户ID和所述移动终端的经度和纬度。
进一步,所述步骤1进一步包括:
利用字典类NSMutableDictionary中的创建字典方法dictionary创建一个字典dic;
利用connectedToNetwork函数获取所述移动终端连接的是WIFI 或移动网络,利用setObject函数将获取到的结果存储到所述dic中;
和或,利用getDeviceCarrier函数获取所述移动终端的运营商信息,利用setObject函数将获取到的结果存储到所述dic中;
和或,利用getDeviceID函数获取所述移动终端的唯一标示,利用setObject函数将获取到的结果存储到所述dic中;
和或,利用getDeviceModel函数获取所述移动终端的型号,利用setObject函数将获取到的结果存储到所述dic中;
和或,获取app的版本、所述APP的版本、所述移动终端操作系统的版本、所述移动终端操作系统的操作语言、所述移动终端的当前时间、所述移动终端目标APP的用户ID和所述移动终端的经度和纬度中的至少一种,利用setObject函数将获取到的结果存储到所述dic 中。
进一步,所述步骤2中将所述dic转化为json格式的步骤进一步包括:
确认存在所述dic并为字典类型;
利用dataWithJSONObject函数将所述dic转化为NSData类型,并利用所述dataWithJSONObject函数中的参数 NSJSONWritingPrettyPrinted令转化后的json格式自动换行;
利用字符串的alloc函数和initWithData函数,并且设置编码方式为NSUTF8StringEncoding对所述转换后的json格式数据进行编码;
通过防止拥堵的存储方式将所述编码后的json格式数据保存到本地。
进一步,所述通过防止拥堵的存储方式将所述编码后的json格式数据保存到本地的步骤进一步包括:
S21,将所述编码后的json格式数据写入函数的参数封装成一个对象logMessage;
S22,基于所述logMessage利用queueLogMessage函数对所述编码后的json格式数据进行写入文件;
S23,利用系统级线程管理工具GCD对所述编码后的json格式数据进行写入文件时线程开启的数量进行限制。
进一步,所述S23进一步包括:
利用GCD中dispatch_semaphore_create函数创建一个最大线程值queueSemaphore;
每次执行所述S22,利用dispatch_semaphore_wait函数进行信号等待,所述dispatch_semaphore_wait的一个参数是所述 queueSemaphore;每次文件写入完毕时执行dispatch_semaphore_signal 函数,以使得开启的线程数量减1;
当所述开启的线程数量小于所述queueSemaphore时,所述 dispatch_semaphore_wait取消等待,执行下一次写入。
进一步,所述将所述dic转化为json格式并上传至服务器的步骤进一步包括:
根据所述APP运行的不同域名环境设置不同的url;
利用文件压缩函数createZipFileAtPath将所述保存在本地的编码后的json格式数据进行压缩;
基于所述url利用网络上传工具将压缩编码后的json格式数据和步骤1中的dic上传至服务器。
进一步,所述步骤3进一步包括:
S31,服务器将压缩编码后的json格式数据进行解压缩,获取所述dic中内容;
S32,将所述S31中解压出的每个字段和dic中的内容保存到数据库中,以供管理员对所述移动终端的目标APP错误信息进行查询时,利用sql语句进行可视化查询。
进一步,所述步骤S32中以供管理员对所述移动终端的目标APP 错误信息进行查询时,利用sql语句进行可视化查询的步骤进一步包括:
以供管理员根据所述移动终端目标APP的用户ID查询所述dic 中的各项基本信息和所述移动终端目标APP产生的各种错误信息。
根据本发明另一方面,提供一种移动终端APP错误信息的查询系统,包括定义模块、上传模块和解析模块:
所述定义模块与所述上传模块电连接,用于定义一个字典dic,将所述移动终端APP故障定位所需的各项基本信息保存到所述dic中;
所述上传模块分别与所述定义模块和所述解析模块电连接,用于按照预设频率将所述移动终端APP产生的各种错误信息以不同参数类型保存在所述dic中;将所述dic转化为json格式并上传至服务器;
所述解析模块与所述上传模块电连接,用于控制所述服务器解析所述dic文件,并将解析后的信息保存在数据库中,以供管理员对所述移动终端的目标APP错误信息进行查询。
本申请提出的移动终端APP错误信息的查询方法及系统,所述方案通过三个步骤实现了基本信息的收集、存储和上报和查询的一整个流程的操作,方便快速定位问题,解决了APP发生错误时,用户信息无法定位或者定位信息需要询问用户太多内容问题的有益效果。
附图说明
图1为根据本发明实施例一种移动终端APP错误信息的查询方法的整体流程示意图;
图2为根据本发明实施例又一种移动终端APP错误信息的查询系统的整体框架示意图;
图3为根据本发明实施例一种移动终端APP错误信息的查询方法的设备的结构框架示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
移动端软件APP不可避免的会发生一些错误问题,在实际使用过程中,经常有用户反馈自己的移动终端中的APP有问题。在用户配合的情况下,APP管理员可以通过询问用户所述APP为哪个版本、什么型号的移动终端设备、所述移动终端哪个城市、连接的是移动网络还是WIFI、什么时候发生了什么错误现象、错误表象为是=卡顿还是崩溃等等一些为了排查问题相关的信息,便于管理员排查出什么发生问题。
但是,如果用户不配合甚至无法解答上述一系列问题,针对上述的无法快速精准定位移动设备中APP错误的问题,本发明设计出一种移动端快速精准定位用户故障的方案。
如图1,示出本发明的一个具体实施例中,一种移动终端APP错误信息的查询方法的整体流程图。总体上,包括:
步骤1,定义一个字典dic,将所述移动终端APP故障定位所需的各项基本信息保存到所述dic中;
步骤2,按照预设频率将所述移动终端APP产生的各种错误信息以不同参数类型保存在所述dic中;将所述dic转化为json格式并上传至服务器;
步骤3,所述服务器解析所述dic文件,并将解析后的信息保存在数据库中,以供管理员对所述移动终端的目标APP错误信息进行查询。
在本发明上述具体实施例的基础上,一种移动终端APP错误信息的查询方法,所述所需的各项基本信息包括以下至少一种:所述移动终端使用网络的类型、所述移动终端运营商信息、所述移动终端唯一标识、所述移动终端的型号、所述APP的版本、所述移动终端操作系统的版本、所述移动终端操作系统的操作语言、所述移动终端的当前时间、所述移动终端目标APP的用户ID和所述移动终端的经度和纬度。
在本发明任一上述具体实施例的基础上,一种移动终端APP错误信息的查询方法,所述步骤1进一步包括:
利用字典类NSMutableDictionary中的创建字典方法dictionary创建一个字典dic;
利用connectedToNetwork函数获取所述移动终端连接的是WIFI 或移动网络,利用setObject函数将获取到的结果存储到所述dic中;
和或,利用getDeviceCarrier函数获取所述移动终端的运营商信息,利用setObject函数将获取到的结果存储到所述dic中;
和或,利用getDeviceID函数获取所述移动终端的唯一标示,利用setObject函数将获取到的结果存储到所述dic中;
和或,利用getDeviceModel函数获取所述移动终端的型号,利用setObject函数将获取到的结果存储到所述dic中;
和或,获取app的版本、所述APP的版本、所述移动终端操作系统的版本、所述移动终端操作系统的操作语言、所述移动终端的当前时间、所述移动终端目标APP的用户ID和所述移动终端的经度和纬度中的至少一种,利用setObject函数将获取到的结果存储到所述dic 中。
在本发明任一上述具体实施例的基础上,一种移动终端APP错误信息的查询方法,所述步骤2中将所述dic转化为json格式的步骤进一步包括:
确认存在所述dic并为字典类型;
利用dataWithJSONObject函数将所述dic转化为NSData类型,并利用所述dataWithJSONObject函数中的参数 NSJSONWritingPrettyPrinted令转化后的json格式自动换行;
利用字符串的alloc函数和initWithData函数,并且设置编码方式为NSUTF8StringEncoding对所述转换后的json格式数据进行编码;
通过防止拥堵的存储方式将所述编码后的json格式数据保存到本地。
在本发明任一上述具体实施例的基础上,一种移动终端APP错误信息的查询方法,所述通过防止拥堵的存储方式将所述编码后的json 格式数据保存到本地的步骤进一步包括:
S21,将所述编码后的json格式数据写入函数的参数封装成一个对象logMessage;
S22,基于所述logMessage利用queueLogMessage函数对所述编码后的json格式数据进行写入文件;
S23,利用系统级线程管理工具GCD对所述编码后的json格式数据进行写入文件时线程开启的数量进行限制。
在本发明任一上述具体实施例的基础上,一种移动终端APP错误信息的查询方法,所述S23进一步包括:
利用GCD中dispatch_semaphore_create函数创建一个最大线程值queueSemaphore;
每次执行所述S22,利用dispatch_semaphore_wait函数进行信号等待,所述dispatch_semaphore_wait的一个参数是所述 queueSemaphore;每次文件写入完毕时执行dispatch_semaphore_signal 函数,以使得开启的线程数量减1;
当所述开启的线程数量小于所述queueSemaphore时,所述 dispatch_semaphore_wait取消等待,执行下一次写入。
在本发明任一上述具体实施例的基础上,一种移动终端APP错误信息的查询方法,所述将所述dic转化为json格式并上传至服务器的步骤进一步包括:
根据所述APP运行的不同域名环境设置不同的url;
利用文件压缩函数createZipFileAtPath将所述保存在本地的编码后的json格式数据进行压缩;
基于所述url利用网络上传工具将压缩编码后的json格式数据和步骤1中的dic上传至服务器。
在本发明任一上述具体实施例的基础上,一种移动终端APP错误信息的查询方法,所述步骤3进一步包括:
S31,服务器将压缩编码后的json格式数据进行解压缩,获取所述dic中内容;
S32,将所述S31中解压出的每个字段和dic中的内容保存到数据库中,以供管理员对所述移动终端的目标APP错误信息进行查询时,利用sql语句进行可视化查询。
在本发明任一上述具体实施例的基础上,一种移动终端APP错误信息的查询方法,所述步骤S32中以供管理员对所述移动终端的目标 APP错误信息进行查询时,利用sql语句进行可视化查询的步骤进一步包括:
以供管理员根据所述移动终端目标APP的用户ID查询所述dic 中的各项基本信息和所述移动终端目标APP产生的各种错误信息。
在本发明任一上述具体实施例的基础上,一种移动终端APP错误信息的查询方法,接下来围绕下述几个方面对本发明技术方案进行展开说明。
(一)定义一个基本信息字典,基本信息字典包含排查问题所需要的一些基本信息。
1)利用字典类NSMutableDictionary中的创建字典的方法 dictionary创建一个字典,创建的字典为dic;
2)利用获取当前用户使用WIFI还是使用移动网络的函数connectedToNetwork,获取当前的用户使用的是WIFI还是移动网络,获取到的结果使用setObject存储到字典dic中;
3)利用获得当前设备的运营商信息函数getDeviceCarrier,获得当前设备的运营商状态,是联通还是移动还是电信等,将获取到的结果存储到字典dic中;
4)利用函数getDeviceID获得设备的唯一标示,将获得的唯一标示使用函数setObject存储到字典dic中;
5)利用获得设备型号的函数getDeviceModel获取到设备的型号,将获取到的设备型号使用函数setObject存储到字典dic中;
6)将app的版本,手机系统的版本os_version,系统语言language,当前的时间转化到的时间戳,当前用户的昵称,当前用户的经度和纬度这些信息一一使用函数setObject存储到字典dic中。
(二)将所述移动终端内目标APP发生的错误信息记录在本地,每种错误信息定义一个类型type,将每条错误信息,以json的形式存在本地的文件中。
1)定义一个函数logSystemMessage,这个函数内包含至少一个参数,各参数内容是包含需要存入到文件中的信息,如果只需要存入一种内容只需要一个参数,如果需要存入多个内容需要多个参数,参数的个数由存入到本地的内容的多少决定。
2)上述参数的内容存到字典dic中,然后将字典dic转化为json,转化为json的方法如2.1)至2.4)。
2.1)确认当前的字典dic是否存在,如不存在直接返回,确认当前的字典dic的类型是字典类型,因为不是字典类型会导致程序崩溃。
2.2)利用dataWithJSONObject函数将字典dic转化为NSData类型的数据。所述dataWithJSONObject函数内包含两个参数:一个是需要被转化的字典dic,另一个是设置转化类型,使用参数 NSJSONWritingPrettyPrinted设置为转化后的json自动换行,能够使得转化后的json文件可读性更好。
2.3)上述dataWithJSONObject函数会返回一个jsonData,利用字符串的alloc函数和initWithData函数并且设置编码方式为 NSUTF8StringEncoding,即UTF8的编码方式对多数jsonData进行编码。
2.4)执行完上述步骤2.3)能够获得一个标准的json字符串,将所述json字符串文件存到本地文件中。本实施例利用防止拥堵的存储方式将所述json字符串文件存储到本地。通过下述2.4.1)至2.4.8)的防止拥堵存储方式可以在1分钟内进行大量的信息写入,常规的方案无法进行大量的文字写入。
2.4.1)当有json字符串文件写入时,文件的写入函数包含有多个参数,利用va_start函数开始接收所述多个参数,利用va_end函数终止接收多个参数。
2.4.2)当接收到多个参数之后去执行logmessage函数后,这个函数负责底层写入
2.4.3)此时将外部传入的写入参数:消息内容,消息等级,消息写到那个文件等参数封装成一个对象logMessage。
2.4.3)将所述写入参数封装成对象之后,放到执行函数 queueLogMessage,queueLogMessage这函数用于执行写入消息对象的排队。
2.4.4)当多条消息写入到文件的时候,都是采取异步写入文件的方式,异步写入的方式会不断新创建线程。因此,为了避不断创建新线程过多导致程序性能问题,使用系统级线程管理工具GCD对线程开启的数量进行限制。
2.4.5)利用dispatch_semaphore_create函数创建一个最大线程的数值,创建的最大线程的数值为_queueSemaphore。
2.4.6)每一次执行2.4.3)时,利用dispatch_semaphore_wait函数进行信号等待,dispatch_semaphore_wait内包含一个参数,所述参数为步骤2.4.5)获得的所述_queueSemaphore变量。
2.4.7)每一次文件写入完毕执行dispatch_semaphore_signal函数,所述dispatch_semaphore_signal函数发送一个信号,每发送一个信号,代表执行完一个操作,开启的线程数量减1。
2.4.8)当线程数两小于设定的最大线程数量时, dispatch_semaphore_wait就会取消等待,执行下一次写入。
通过上述的等待机制保证了文件的写入最大开启数量,保证了文件写入不会出现性能问题,不会出现大量线程导致阻塞。
(三)定时将上述的文件信息上传到服务器,服务器将上述文件信息进行解析,将解析的数据存入数据库中,方便需要的时候查询错误信息,此处用查询代替询问用户的过程,更加方便和快捷全面。
1)创建一个定时器,设置定时器每隔固定时间(所述隔固定时间是根据目标APP的需求设置,也可以设置为更长或者更短)执行一次定时任务。
2)每次定时任务的时候将步骤(二)2.4存储的本地文件使用 upload函数上传到服务器。
2.1)根据目标APP当前运行的域名环境,不同域名环境设置不同的url(当测试环境的时候上传的url地址是测试环境的url,当app的环境的域名环境是正式环境的时候,上传的url地址是正式环境的url 地址,使得测试数据和正式环境数据进行隔离)。
2.2)基于本地文件的存储的地址,将所述地址的内容文件使用文件压缩函数createZipFileAtPath将这个路径的文件进行压缩
2.4)使用网络上传框架将步骤一)中的字典上传至所述url地址;使用网络上传工具将(二)2.3步骤中的压缩包,将上述内容上传到url 地址服务器。
2.5)上传之后,就会有一个网络请求的响应response,如果 response存在,说明上述各文件上传成功。
2.6)文件上传成功后,利用文件移除函数removeItem将压缩包移除,如果文件上传失败,即response返回为空,就执行文件上传重试,直到文件上传成功为止。
2.7)服务端收到上述上传的文件之后,对文件进行解压缩,获取基本字典中内容,并且对文件解析,解析出来的每个字段和基本字典中的内容存放到数据库中,让用户可以使用sql语句进行可视化查询。所述步骤2.7中将信息进行解析和提供一个查询方法对信息进行展示,当用户有问题的时候,只需要告诉管理员他的昵称是什么,管理员到日志管理平台使用昵称查询,就可以查询到步骤1)中的基本字典信息,和步骤(二)中的错误信息,根据上述信息,就知道所述目标APP的版本号、手机系统、网络状况、数据交互的错误信息等等,根据上面的信息就可以快速精准的定位出错误。而常规的方案没有对这些信息就行收集就无法快速的定位问题,即使定位问题也需要不断的询问用户版本号,网络状况,发生了什么错误等等信息,本方案的创新性的通过询问用户变成主动上报来解决问题。
通过上面的三步实现的基本信息的收集,存储和上报和查询的一整个流程的操作,方便快速定位问题,解决了用户信息无法定位或者定位信息需要询问用户太多内容的过程,本方案将需要询问用户的内容提前进行了收集,在文件写入的时候还使用了一种防止线程阻塞的方案,可以在瞬时执行大量的文件写入。
如图2,示出本发明的一个具体实施例中,一种移动终端APP错误信息的查询系统的整体框架图。总体上,包括定义模块A1、上传模块A2和解析模块A3:
所述定义模块A1与所述上传模块A2电连接,用于定义一个字典 dic,将所述移动终端APP故障定位所需的各项基本信息保存到所述dic 中;
所述上传模块A2分别与所述定义模块A1和所述解析模块A3电连接,用于按照预设频率将所述移动终端APP产生的各种错误信息以不同参数类型保存在所述dic中;将所述dic转化为json格式并上传至服务器;
所述解析模块A3与所述上传模块A2电连接,用于控制所述服务器解析所述dic文件,并将解析后的信息保存在数据库中,以供管理员对所述移动终端的目标APP错误信息进行查询。
在上述任一具体实施例的基础上,一种移动终端APP错误信息的查询系统,所述所需的各项基本信息包括以下至少一种:所述移动终端使用网络的类型、所述移动终端运营商信息、所述移动终端唯一标识、所述移动终端的型号、所述APP的版本、所述移动终端操作系统的版本、所述移动终端操作系统的操作语言、所述移动终端的当前时间、所述移动终端目标APP的用户ID和所述移动终端的经度和纬度。
在上述任一具体实施例的基础上,一种移动终端APP错误信息的查询系统,所述定义模块A1进一步用于:
利用字典类NSMutableDictionary中的创建字典方法dictionary创建一个字典dic;
利用connectedToNetwork函数获取所述移动终端连接的是WIFI 或移动网络,利用setObject函数将获取到的结果存储到所述dic中;
和或,利用getDeviceCarrier函数获取所述移动终端的运营商信息,利用setObject函数将获取到的结果存储到所述dic中;
和或,利用getDeviceID函数获取所述移动终端的唯一标示,利用setObject函数将获取到的结果存储到所述dic中;
和或,利用getDeviceModel函数获取所述移动终端的型号,利用setObject函数将获取到的结果存储到所述dic中;
和或,获取app的版本、所述APP的版本、所述移动终端操作系统的版本、所述移动终端操作系统的操作语言、所述移动终端的当前时间、所述移动终端目标APP的用户ID和所述移动终端的经度和纬度中的至少一种,利用setObject函数将获取到的结果存储到所述dic 中。
在上述任一具体实施例的基础上,一种移动终端APP错误信息的查询系统,所述上传模块A2进一步用于:
确认存在所述dic并为字典类型;
利用dataWithJSONObject函数将所述dic转化为NSData类型,并利用所述dataWithJSONObject函数中的参数 NSJSONWritingPrettyPrinted令转化后的json格式自动换行;
利用字符串的alloc函数和initWithData函数,并且设置编码方式为NSUTF8StringEncoding对所述转换后的json格式数据进行编码;
通过防止拥堵的存储方式将所述编码后的json格式数据保存到本地。
在上述任一具体实施例的基础上,一种移动终端APP错误信息的查询系统,所述上传模块A2进一步用于:
S21,将所述编码后的json格式数据写入函数的参数封装成一个对象logMessage;
S22,基于所述logMessage利用queueLogMessage函数对所述编码后的json格式数据进行写入文件;
S23,利用系统级线程管理工具GCD对所述编码后的json格式数据进行写入文件时线程开启的数量进行限制。
在上述任一具体实施例的基础上,一种移动终端APP错误信息的查询系统,所述上传模块A2进一步用于:
利用GCD中dispatch_semaphore_create函数创建一个最大线程值queueSemaphore;
每次执行所述S22,利用dispatch_semaphore_wait函数进行信号等待,所述dispatch_semaphore_wait的一个参数是所述 queueSemaphore;每次文件写入完毕时执行dispatch_semaphore_signal 函数,以使得开启的线程数量减1;
当所述开启的线程数量小于所述queueSemaphore时,所述 dispatch_semaphore_wait取消等待,执行下一次写入。
在上述任一具体实施例的基础上,一种移动终端APP错误信息的查询系统,所述解析模块A3进一步用于:
S31,服务器将压缩编码后的json格式数据进行解压缩,获取所述dic中内容;
S32,将所述S31中解压出的每个字段和dic中的内容保存到数据库中,以供管理员对所述移动终端的目标APP错误信息进行查询时,利用sql语句进行可视化查询。
在上述任一具体实施例的基础上,一种移动终端APP错误信息的查询系统,所述解析模块A3进一步用于:
以供管理员根据所述移动终端目标APP的用户ID查询所述dic 中的各项基本信息和所述移动终端目标APP产生的各种错误信息。
图3示出本申请实施例的移动终端APP错误信息的查询方法的设备的结构框图。
参照图3,所述移动终端APP错误信息的查询方法的设备,包括:处理器(processor)301、存储器(memory)302和总线303;
其中,所述处理器301和存储器302通过所述总线303完成相互间的通信;
所述处理器301用于调用所述存储器302中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:
步骤1,定义一个字典dic,将所述移动终端APP故障定位所需的各项基本信息保存到所述dic中;
步骤2,按照预设频率将所述移动终端APP产生的各种错误信息以不同参数类型保存在所述dic中;将所述dic转化为json格式并上传至服务器;
步骤3,所述服务器解析所述dic文件,并将解析后的信息保存在数据库中,以供管理员对所述移动终端的目标APP错误信息进行查询。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:
步骤1,定义一个字典dic,将所述移动终端APP故障定位所需的各项基本信息保存到所述dic中;
步骤2,按照预设频率将所述移动终端APP产生的各种错误信息以不同参数类型保存在所述dic中;将所述dic转化为json格式并上传至服务器;
步骤3,所述服务器解析所述dic文件,并将解析后的信息保存在数据库中,以供管理员对所述移动终端的目标APP错误信息进行查询。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:
步骤1,定义一个字典dic,将所述移动终端APP故障定位所需的各项基本信息保存到所述dic中;
步骤2,按照预设频率将所述移动终端APP产生的各种错误信息以不同参数类型保存在所述dic中;将所述dic转化为json格式并上传至服务器;
步骤3,所述服务器解析所述dic文件,并将解析后的信息保存在数据库中,以供管理员对所述移动终端的目标APP错误信息进行查询。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的移动终端APP错误信息的查询方法的设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种移动终端APP错误信息的查询方法,其特征在于,包括:
步骤1,定义一个字典dic,将所述移动终端APP故障定位所需的各项基本信息保存到所述dic中;
步骤2,按照预设频率将所述移动终端APP产生的各种错误信息以不同参数类型保存在所述dic中;将所述dic转化为json格式并上传至服务器;
步骤3,所述服务器解析所述dic文件,并将解析后的信息保存在数据库中,以供管理员对所述移动终端的目标APP错误信息进行查询;
其中,所述步骤2中将所述dic转化为json格式的步骤进一步包括:
确认存在所述dic并为字典类型;
利用dataWithJSONObject函数将所述dic转化为NSData类型,并利用所述dataWithJSONObject函数中的参数NSJSONWritingPrettyPrinted令转化后的json格式自动换行;
利用字符串的alloc函数和initWithData函数,并且设置编码方式为NSUTF8StringEncoding对转换后的json格式数据进行编码;
通过防止拥堵的存储方式将所述编码后的json格式数据保存到本地;
所述通过防止拥堵的存储方式将所述编码后的json格式数据保存到本地的步骤进一步包括:
S21,将所述编码后的json格式数据写入函数的参数封装成一个对象logMessage;
S22,基于所述logMessage利用queueLogMessage函数对所述编码后的json格式数据进行写入文件;
S23,利用系统级线程管理工具GCD对所述编码后的json格式数据进行写入文件时线程开启的数量进行限制。
2.如权利要求1所述的方法,其特征在于,所述所需的各项基本信息包括以下至少一种:所述移动终端使用网络的类型、所述移动终端运营商信息、所述移动终端唯一标识、所述移动终端的型号、所述APP的版本、所述移动终端操作系统的版本、所述移动终端操作系统的操作语言、所述移动终端的当前时间、所述移动终端目标APP的用户ID和所述移动终端的经度和纬度。
3.如权利要求2所述的方法,其特征在于,所述步骤1进一步包括:
利用字典类NSMutableDictionary中的创建字典方法dictionary创建一个字典dic;
利用connectedToNetwork函数获取所述移动终端连接的是WIFI或移动网络,利用setObject函数将获取到的结果存储到所述dic中;
和或,利用getDeviceCarrier函数获取所述移动终端的运营商信息,利用setObject函数将获取到的结果存储到所述dic中;
和或,利用getDeviceID函数获取所述移动终端的唯一标示,利用setObject函数将获取到的结果存储到所述dic中;
和或,利用getDeviceModel函数获取所述移动终端的型号,利用setObject函数将获取到的结果存储到所述dic中;
和或,获取app的版本、所述APP的版本、所述移动终端操作系统的版本、所述移动终端操作系统的操作语言、所述移动终端的当前时间、所述移动终端目标APP的用户ID和所述移动终端的经度和纬度中的至少一种,利用setObject函数将获取到的结果存储到所述dic中。
4.如权利要求1所述的方法,其特征在于,所述S23进一步包括:
利用GCD中dispatch_semaphore_create函数创建一个最大线程值queueSemaphore;
每次执行所述S22,利用dispatch_semaphore_wait函数进行信号等待,所述dispatch_semaphore_wait的一个参数是所述queueSemaphore;每次文件写入完毕时执行dispatch_semaphore_signal函数,以使得开启的线程数量减1;
当所述开启的线程数量小于所述queueSemaphore时,所述dispatch_semaphore_wait取消等待,执行下一次写入。
5.如权利要求1所述的方法,其特征在于,所述将所述dic转化为json格式并上传至服务器的步骤进一步包括:
根据所述APP运行的不同域名环境设置不同的url;
利用文件压缩函数createZipFileAtPath将所述保存在本地的编码后的json格式数据进行压缩;
基于所述url利用网络上传工具将压缩编码后的json格式数据和步骤1中的dic上传至服务器。
6.如权利要求1所述的方法,其特征在于,所述步骤3进一步包括:
S31,服务器将压缩编码后的json格式数据进行解压缩,获取所述dic中内容;
S32,将所述S31中解压出的每个字段和dic中的内容保存到数据库中,以供管理员对所述移动终端的目标APP错误信息进行查询时,利用sql语句进行可视化查询。
7.如权利要求6所述的方法,其特征在于,所述步骤S32中以供管理员对所述移动终端的目标APP错误信息进行查询时,利用sql语句进行可视化查询的步骤进一步包括:
以供管理员根据所述移动终端目标APP的用户ID查询所述dic中的各项基本信息和所述移动终端目标APP产生的各种错误信息。
8.一种移动终端APP错误信息的查询系统,其特征在于,包括定义模块、上传模块和解析模块:
所述定义模块与所述上传模块电连接,用于定义一个字典dic,将所述移动终端APP故障定位所需的各项基本信息保存到所述dic中;
所述上传模块分别与所述定义模块和所述解析模块电连接,用于按照预设频率将所述移动终端APP产生的各种错误信息以不同参数类型保存在所述dic中;将所述dic转化为json格式并上传至服务器;
所述解析模块与所述上传模块电连接,用于控制所述服务器解析所述dic文件,并将解析后的信息保存在数据库中,以供管理员对所述移动终端的目标APP错误信息进行查询;
其中,所述上传模块,进一步用于:
确认存在所述dic并为字典类型;
利用dataWithJSONObject函数将所述dic转化为NSData类型,并利用所述dataWithJSONObject函数中的参数NSJSONWritingPrettyPrinted令转化后的json格式自动换行;
利用字符串的alloc函数和initWithData函数,并且设置编码方式为NSUTF8StringEncoding对转换后的json格式数据进行编码;
通过防止拥堵的存储方式将所述编码后的json格式数据保存到本地;
所述上传模块,进一步用于:
将所述编码后的json格式数据写入函数的参数封装成一个对象logMessage;
基于所述logMessage利用queueLogMessage函数对所述编码后的json格式数据进行写入文件;
利用系统级线程管理工具GCD对所述编码后的json格式数据进行写入文件时线程开启的数量进行限制。
CN201710781221.0A 2017-09-01 2017-09-01 移动终端app错误信息的查询方法及系统 Active CN107590011B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710781221.0A CN107590011B (zh) 2017-09-01 2017-09-01 移动终端app错误信息的查询方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710781221.0A CN107590011B (zh) 2017-09-01 2017-09-01 移动终端app错误信息的查询方法及系统

Publications (2)

Publication Number Publication Date
CN107590011A CN107590011A (zh) 2018-01-16
CN107590011B true CN107590011B (zh) 2020-06-16

Family

ID=61050701

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710781221.0A Active CN107590011B (zh) 2017-09-01 2017-09-01 移动终端app错误信息的查询方法及系统

Country Status (1)

Country Link
CN (1) CN107590011B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111538638A (zh) * 2020-04-28 2020-08-14 北京思特奇信息技术股份有限公司 一种iOS端应用程序性能的监控方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0594479A (ja) * 1991-10-03 1993-04-16 Nec Corp 情報収集蓄積管理方式
CN101017459A (zh) * 2007-03-08 2007-08-15 中国科学院研究生院 用于信息系统的错误捕获插件及其使用方法
CN106507400A (zh) * 2015-09-08 2017-03-15 中兴通讯股份有限公司 一种故障定位方法及装置
CN106598804A (zh) * 2016-11-29 2017-04-26 武汉斗鱼网络科技有限公司 异常处理方法及装置
CN107092552A (zh) * 2017-03-10 2017-08-25 武汉斗鱼网络科技有限公司 一种日志管理方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0594479A (ja) * 1991-10-03 1993-04-16 Nec Corp 情報収集蓄積管理方式
CN101017459A (zh) * 2007-03-08 2007-08-15 中国科学院研究生院 用于信息系统的错误捕获插件及其使用方法
CN106507400A (zh) * 2015-09-08 2017-03-15 中兴通讯股份有限公司 一种故障定位方法及装置
CN106598804A (zh) * 2016-11-29 2017-04-26 武汉斗鱼网络科技有限公司 异常处理方法及装置
CN107092552A (zh) * 2017-03-10 2017-08-25 武汉斗鱼网络科技有限公司 一种日志管理方法及装置

Also Published As

Publication number Publication date
CN107590011A (zh) 2018-01-16

Similar Documents

Publication Publication Date Title
CN109034993B (zh) 对账方法、设备、系统及计算机可读存储介质
CN110784419B (zh) 铁路电务专业数据可视化方法及系统
CN107562556B (zh) 故障的恢复方法、恢复装置及存储介质
CN108509326B (zh) 一种基于nginx日志的服务状态统计方法及系统
CN104978529A (zh) 网页前端的异常处理方法、异常处理系统及异常处理服务器
CN105207806A (zh) 分布式服务的监控方法及装置
CN110851324B (zh) 基于日志的巡检处理方法、装置以及电子设备、存储介质
CN106547658B (zh) 一种自动化测试方法及装置
CN110858192A (zh) 一种日志查询方法和系统、日志排查系统和查询终端
CN113709003A (zh) 通过网络流量数据自动生成测试用例的系统、方法及介质
CN108228664B (zh) 非结构化数据处理方法及装置
CN112367345A (zh) 数据处理方法、服务端设备及计算机可读存储介质
CN111177094A (zh) 日志数据处理方法、装置、电子设备及存储介质
CN107566480B (zh) 移动终端应用的用户活动信息采集方法及装置、存储介质
CN107590011B (zh) 移动终端app错误信息的查询方法及系统
CN110659186A (zh) 一种告警信息上报方法和装置
CN111143185A (zh) 一种基于日志的故障分析方法及装置
CN103944779B (zh) 一种wap业务性能监测方法及系统
CN117271584A (zh) 数据处理方法及装置、计算机可读存储介质和电子设备
CN110532305A (zh) 一种业务数据割接方法及系统
CN106304122B (zh) 一种业务数据分析方法及系统
CN108415994B (zh) 一种网络管理系统报表生成方法、装置和设备
CN110825538A (zh) 一种基于mq可自定义数据类型动态进行数据交互的方法
CN108449224B (zh) 数据获取方法、装置、设备和存储介质
CN111681397A (zh) 一种配网自动化短信发送方法、发送系统和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240426

Address after: Room 19-333, Zhongzhong E-commerce Mall, Yingxiong Avenue, Yuehu District, Yingtan City, Jiangxi Province, 335000

Patentee after: Jiangxi Cuixing Intelligent Technology Co.,Ltd.

Country or region after: China

Address before: 430000 East Lake Development Zone, Wuhan City, Hubei Province, No. 1 Software Park East Road 4.1 Phase B1 Building 11 Building

Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd.

Country or region before: China