一种基于Android实现UI卡机检测与追踪的方法技术

技术编号:23533708 阅读:16 留言:0更新日期:2020-03-20 07:58
本发明专利技术涉及Android技术领域,特别涉及一种基于Android实现UI卡机检测与追踪的方法:一、创建日志打印方法,使用无限循环,打印消息队列中最初消息与分发后的消息;二、创建日志监控类,封装一些方法对日志进行监控与获取;三、创建日志监控启动方法,根据变量判断监控是否开始还是结束;四、在Application中调用日志监控启动方法,计算日志开始与结束时的差值;五、用户操作UI时,自动记录分析日志,完成日志的检测与追踪。本发明专利技术解决了APP卡顿时无据可查、原因不能追踪的问题。

A method of detecting and tracking UI card based on Android

【技术实现步骤摘要】
一种基于Android实现UI卡机检测与追踪的方法
本专利技术涉及Android
,特别涉及一种基于Android实现UI卡机检测与追踪的方法。
技术介绍
随着手机的容量空间越来越大,用户安装的APP也就越来越多,但并不是每一个APP都能运行的非常的流畅,特别是一些小公司或者个人开发的APP,没有经过严格的测试和质量把关,就上传到公共平台进行发布了。用户下载安装了这些APP后,在使用的时候,就会经常出现死机卡顿的现像,给用户造成非常不好的影响,从而导致用户的流失。本专利技术主要利用日志检测与追踪技术,对用户的每一个操作都进行记录与分析,找出发生问题的关键点,从而解决了APP发生卡顿时不知如何去处理的问题。
技术实现思路
本专利技术解决的技术问题在于提供一种基于Android实现UI卡机检测与追踪的方法;本专利技术解决了APP卡顿时无据可查、原因不能追踪的问题。本专利技术解决上述技术问题的技术方案是:一、创建日志打印方法,使用无限循环,打印消息队列中最初消息与分发后的消息;二、创建日志监控类,封装一些方法对日志进行监控与获取;三、创建日志监控启动方法,根据变量判断监控是否开始还是结束;四、在Application中调用日志监控启动方法,计算日志开始与结束时的差值;五、用户操作UI时,自动记录分析日志,完成日志的检测与追踪。所述的方法具体包括如下步骤:步骤一、创建日志打印方法,所述方法具体实现:首先在方法中定义Looper对象looper,根据looper获取MessageQueue对象queue;然后使用无限循环,从queue中取出消息进行打印,再分发消息,再打印结束时的消息;最后每个循环结束时释放消息;步骤二、创建日志监控类,封装一些方法对日志进行监控与获取,所述类的具体实现:1、创建Handler对象,在构方法中实始化;2、创建一个线程对象,重写run方法,在方法体内根据Looper的getStackTrace方法获取所有StackTraceElement跟踪元素,遍历封装成日志串;3、创建启动监控与移除监控方法,使用Handler对象实现对线程的操作与销毁;如:步骤三、创建日志监控启动方法,所述方法具体实现:根据Looper获取mainLooper对象,在mainLooper对象的setMessageLogging方法体中复写子方法println方法;步骤四、在Application中调用日志监控启动方法,计算日志开始与结束时的差值;步骤五、用户操作APP时,自动记录分析日志,完成日志的检测与追踪。本专利技术的有益效果:利用Looper类,根据其消息处理的功能,对用户每个操作都进行跟踪与记录,再使用一定算法进行分析,实现了找出APP卡顿的原因的目的。有效地解决了APP发生卡顿时不知如何去处理的问题。附图说明下面结合附图对本专利技术进一步说明:图1为本专利技术的流程图。具体实施方式如图1所示,本专利技术采用如下步骤:步骤一、创建日志打印方法,所述方法具体实现:首先在方法中定义Looper对象looper,根据looper获取MessageQueue对象queue;然后使用无限循环,从queue中取出消息进行打印,再分发消息,再打印结束时的消息;最后每个循环结束时释放消息;如:publicstaticvoidloop(){finalLooperlooper=myLooper();finalMessageQueuequeue=looper.mQueue;for(;;){Messagemsg=queue.next();Printerlogging=looper.mLogging;if(logging!=null){logging.println(">>>>>Dispatchingto"+msg.target+msg.callback+":"+msg.what);}msg.target.dispatchMessage(msg);if(logging!=null){logging.println("<<<<<Finishedto"+msg.target+""+msg.callback);}msg.recycleUnchecked();}}步骤二、创建日志监控类,封装一些方法对日志进行监控与获取,所述类的具体实现:1、创建Handler对象,在构方法中实始化;2、创建一个线程对象,重写run方法,在方法体内根据Looper的getStackTrace方法获取所有StackTraceElement跟踪元素,遍历封装成日志串;3、创建启动监控与移除监控方法,使用Handler对象实现对线程的操作与销毁;如:publicclassLogControl{privatestaticLogControlmInstance=newLogControl();privateHandlerThreadmLogThread=newHandlerThread("log");privateHandlermIogHandler;privatestaticfinallongTIME_BLOCK=1000L;privateLogControl(){mLogThread.start();mIogHandler=newHandler(mLogThread.getLooper());}privatestaticRunnablemLogRunnable=newRunnable(){@Overridepublicvoidrun(){StringBuildersb=newStringBuilder();StackTraceElement[]stackTrace=Looper.getMainLooper().getThread().getStackTrace();for(StackTraceElements:stackTrace){sb.append(s.toString()+"\n");}}};publicstaticLogControlgetInstance(){returnmInstance;}publicbooleanisControl(){returnmIogHandler.hasCallbacks(mLogRunnable);}publicvoidstartControl(){mIogHandler.postDelayed(mLogRunnable,TIME_BLOCK);}publicvoidremoveControl(){mIo本文档来自技高网...

【技术保护点】
1.一种基于Android实现UI卡机检测与追踪的方法,其特征在于:一、创建日志打印方法,使用无限循环,打印消息队列中最初消息与分发后的消息;二、创建日志监控类,封装一些方法对日志进行监控与获取;三、创建日志监控启动方法,根据变量判断监控是否开始还是结束;四、在Application中调用日志监控启动方法,计算日志开始与结束时的差值;五、用户操作UI时,自动记录分析日志,完成日志的检测与追踪;从而本专利技术解决了APP卡顿时无据可查、原因不能追踪的问题。/n

【技术特征摘要】
1.一种基于Android实现UI卡机检测与追踪的方法,其特征在于:一、创建日志打印方法,使用无限循环,打印消息队列中最初消息与分发后的消息;二、创建日志监控类,封装一些方法对日志进行监控与获取;三、创建日志监控启动方法,根据变量判断监控是否开始还是结束;四、在Application中调用日志监控启动方法,计算日志开始与结束时的差值;五、用户操作UI时,自动记录分析日志,完成日志的检测与追踪;从而本发明解决了APP卡顿时无据可查、原因不能追踪的问题。


2.根据权利要求1所述的基于Android平台的实现抓取新闻信息再展示的方法,其特征在于:使用AndroidUI线程中的Looper,在其loop方法中不断取出Message,调用其绑定的Handler在UI线程进行执行,不断打印日志,根据时间间隔是否大于阈值1000ms来判断是否卡机;所述的方法具体包括如下步骤:
步骤一、创建日志打印方法,所述方法具体实现:首先在方法中定义Looper对象looper,根据loo...

【专利技术属性】
技术研发人员:陈林张来卿庞严冬
申请(专利权)人:珠海横琴盛达兆业科技投资有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1