一种移动端应用的异常提醒方法、装置、设备及介质与流程
未命名
09-23
阅读:60
评论:0
1.本说明书涉及计算机技术领域,尤其涉及一种移动端应用的异常提醒方法、装置、设备及介质。
背景技术:
2.移动端应用的普及,极大提高了人们生活便利性、使工作更加高效,但是移动应用场景大多复杂多变,网络环境存在多样性,对于移动应用开发者关注程序的使用范围、程序运行状态、问题跟踪带来了极大挑战。客户在使用过程中可能会出现异常,现有技术大都依赖于客户反馈相关的异常,无法及时有效地发现异常并进行提醒。
技术实现要素:
3.本说明书一个或多个实施例提供了一种移动端应用的异常提醒方法、装置、设备及介质,用于解决背景技术提出的技术问题。
4.本说明书一个或多个实施例采用下述技术方案:
5.本说明书一个或多个实施例提供的一种移动端应用的异常提醒方法,包括:
6.通过预先创建的aop切面获取指定移动端应用的运行状态日志;
7.若根据所述运行状态日志监测到所述指定移动端应用存在异常运行状态,将所述运行状态日志通过接口推送至预先设定的接收端;
8.通过所述接收端将所述运行状态日志进行提醒。
9.可选的,所述将所述运行状态日志通过接口推送至预先设定的接收端,包括:
10.获取所述指定移动端应用所处的网络状态,所述网络状态包括联网状态与无网络状态;
11.若所述网络状态为所述联网状态,将所述运行状态日志通过接口推送至预先设定的接收端。
12.可选的,若所述网络状态为所述无网络状态,所述方法还包括:
13.将所述运行状态日志存储于预先设定的sqlite数据库中,并实时监测所述指定移动端应用所处的网络状态;
14.若所述指定移动端应用所处的网络状态变更为所述联网状态,将所述运行状态日志通过接口推送至所述接收端。
15.可选的,所述指定移动端应用为指定android应用,所述通过预先创建的aop切面获取指定移动端应用的运行状态日志,包括:
16.在所述aop切面中,通过android提供的log类记录指定移动端应用的运行状态日志。
17.可选的,所述异常运行状态包括指定移动端应用崩溃、指定移动端应用未响应、指定移动端应用卡顿或指定移动端应用慢速响应。
18.可选的,所述通过预先创建的aop切面获取指定移动端应用的运行状态日志前,所
述方法还包括:
19.导入获取运行状态日志所需的aop切面的指定类库;
20.根据所述指定类库创建aop切面。
21.可选的,所述将所述运行状态日志通过接口推送至预先设定的接收端,包括:
22.创建http请求对象;
23.将所述运行状态日志附加到所述http请求中,生成指定http请求;
24.向所述接收端发送所述指定http请求,并接收所述接收端的响应信息;
25.若所述响应信息为发送成功,则完成将所述运行状态日志推送至所述接收端。
26.本说明书一个或多个实施例提供的一种移动端应用的异常提醒装置,所述装置包括:
27.日志获取单元,通过预先创建的aop切面获取指定移动端应用的运行状态日志;
28.日志推送单元,若根据所述运行状态日志监测到所述指定移动端应用存在异常运行状态,将所述运行状态日志通过接口推送至预先设定的接收端;
29.异常提醒单元,通过所述接收端将所述运行状态日志进行提醒。
30.本说明书一个或多个实施例提供的一种移动端应用的异常提醒设备,包括:
31.至少一个处理器;以及,
32.与所述至少一个处理器通信连接的存储器;其中,
33.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
34.通过预先创建的aop切面获取指定移动端应用的运行状态日志;
35.若根据所述运行状态日志监测到所述指定移动端应用存在异常运行状态,将所述运行状态日志通过接口推送至预先设定的接收端;
36.通过所述接收端将所述运行状态日志进行提醒。
37.本说明书一个或多个实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令被计算机执行时能够实现:
38.通过预先创建的aop切面获取指定移动端应用的运行状态日志;
39.若根据所述运行状态日志监测到所述指定移动端应用存在异常运行状态,将所述运行状态日志通过接口推送至预先设定的接收端;
40.通过所述接收端将所述运行状态日志进行提醒。
41.本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
42.本说明书实施例可以在用户无感知的状态下获取指定移动端应用的异常运行状态,及时掌握应用运行状态的第一手资料,极大提高了开发者对于错误排查、应用优化迭代的效率。
附图说明
43.为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
44.图1为本说明书一个或多个实施例提供的一种移动端应用的异常提醒方法的流程示意图;
45.图2为本说明书一个或多个实施例提供的一种移动端应用的异常提醒装置的结构示意图;
46.图3为本说明书一个或多个实施例提供的一种移动端应用的异常提醒设备的结构示意图。
具体实施方式
47.本说明书实施例提供一种移动端应用的异常提醒方法、装置、设备及介质。
48.目前对于移动端应用发生崩溃等问题,大部分依靠客户反馈,然后通过对移动终端中存储的应用运行日志进行导出排查崩溃原因,以上对于移动应用的问题处理效率很低,且对于客户的体验极不友好。
49.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
50.图1为本说明书一个或多个实施例提供的一种移动端应用的异常提醒方法的流程示意图,该流程可以由移动端应用的异常提醒系统执行。流程中的某些输入参数或者中间结果允许人工干预调节,以帮助提高准确性。
51.本说明书实施例的方法流程步骤如下:
52.s102,通过预先创建的aop切面获取指定移动端应用的运行状态日志。
53.在本说明书实施例中,指定移动端应用可以为指定android应用,所述通过预先创建的aop切面获取指定移动端应用的运行状态日志的过程中,可以在预先创建的aop切面中,通过android提供的log类记录指定移动端应用的运行状态日志。
54.需要说明的是,记录指定移动端应用的运行状态日志可以按照以下具体步骤:
55.首先,可以为指定移动端应用定义一个唯一的应用程序标识符(例如包名或应用程序id)。这样就可以在aop切面中使用该标识符来选择需要记录日志的方法。
56.接下来,可以创建一个自定义注解来标记需要记录日志的方法。
57.然后,可以创建一个aop切面,在切面中实现对指定移动端应用的日志记录。在切面内部,可以使用android提供的log类记录日志信息。
58.再然后,可以将loggingaspect bean添加到应用程序上下文中。
59.之后,在移动应用程序中添加以下依赖库:
60.org.aspectj:aspectjrt;
61.org.aspectj:aspectjweaver。
62.最后,可以运行应用程序并检查日志文件以查看日志输出。
63.在本说明书实施例中,通过预先创建的aop切面获取指定移动端应用的运行状态日志前,可以通过下述方式创建aop切面:
64.导入获取运行状态日志所需的aop切面的指定类库,再根据所述指定类库创建aop
切面。
65.需要说明的是,创建aop切面可以按照以下具体步骤:
66.首先,导入所需的aop类库。例如,使用gradle构建工具导入aspectj和spring aop类库。
67.接下来,创建一个切面类,并在该类上添加相关注释。
68.然后,在切面中定义需要记录日志的方法。
69.再然后,注册切面:需要将切面注册到应用程序上下文中,以便在应用程序中使用该切面。
70.最后,可以运行应用程序并检查日志文件以查看切面日志输出。
71.s104,若根据所述运行状态日志监测到所述指定移动端应用存在异常运行状态,将所述运行状态日志通过接口推送至预先设定的接收端。
72.在本说明书实施例中,异常运行状态可以包括指定移动端应用崩溃、指定移动端应用未响应、指定移动端应用卡顿或指定移动端应用慢速响应。
73.进一步的,本说明书实施例将所述运行状态日志通过接口推送至预先设定的接收端的过程中,可以预先获取所述指定移动端应用所处的网络状态,所述网络状态包括联网状态与无网络状态;若所述网络状态为所述联网状态,将所述运行状态日志通过接口推送至预先设定的接收端。
74.需要说明的是,如果需要将异常运行状态日志推送到预先设定的接收端,并且只在指定移动端应用处于联网状态时才将日志发送,则可以按照以下具体步骤:
75.检查指定移动端应用当前的网络连接状态。可以使用android api中的connectivitymanager类来检查网络连接状态。如果设备已经连接到互联网,则使用之前创建的aop切面来记录运行状态日志,并可以将运行状态日志作为http请求体发送到预先设定的接收端。
76.进一步的,若所述网络状态为所述无网络状态,将所述运行状态日志存储于预先设定的sqlite数据库中,并实时监测所述指定移动端应用所处的网络状态;若所述指定移动端应用所处的网络状态变更为所述联网状态,将所述运行状态日志通过接口推送至所述接收端。
77.需要说明的是,本说明书实施例若需在指定移动端应用处于无网络状态时将运行状态日志存储在预先设定的sqlite数据库中,并实时监测指定移动端应用的网络状态,以便在指定移动端应用连接到互联网后将日志发送至预先设定的接收端,则可以按照以下具体步骤:
78.创建一个sqlite数据库,以便在应用程序中存储运行状态日志。例如,可以使用android api中的sqliteopenhelper类来创建和管理该数据库。
79.在aop切面中添加代码,以检查指定移动端应用的网络连接状态。如果设备已经连接到互联网,则记录日志并将其作为http请求体发送到预先设定的接收端。否则,将日志存储在sqlite数据库中。
80.创建一个服务(service),以便在后台实时监测指定移动端应用的网络连接状态。例如,可以使用broadcastreceiver、intentservice或jobscheduler来实现此功能。
81.在服务中添加代码以检查指定移动端应用的网络连接状态,并在连接到互联网时
将存储在sqlite数据库中的所有日志发送到预先设定的接收端。
82.注册的服务:需要将服务注册到应用程序上下文中,以便在应用程序中使用该服务。例如,可以在androidmanifest.xml文件中定义该服务。
83.配置应用程序以在需要时调用服务。例如,可以使用alarmmanager类(或者jobscheduler api)来触发服务的执行。
84.在本说明书实施例中,将所述运行状态日志通过接口推送至预先设定的接收端的过程中,不考虑网络连接状态,还可以通过下述步骤执行:
85.创建http请求对象;将所述运行状态日志附加到所述http请求中,生成指定http请求;向所述接收端发送所述指定http请求,并接收所述接收端的响应信息;若所述响应信息为发送成功,则完成将所述运行状态日志推送至所述接收端。
86.需要说明的是,以下是将运行状态日志通过接口推送到预先设定接收端的步骤:
87.创建http请求对象:可以使用android api中的httpurlconnection类、okhttpclient库或其他http客户端库,来创建http请求对象。
88.将运行状态日志附加到http请求中:在http请求对象上可以调用setrequestproperty()方法并设置content-type属性。然后,将运行日志数据作为请求体附加到http请求中。
89.向预先设定的接收端发送http请求,并接收响应信息:在http请求对象上调用connect()方法,以连接到预先设定的接收端。然后,从http连接中获取输入流(inputstream)并读取响应信息。
90.处理响应信息:如果响应代码是http_ok,则表示请求成功。可以从输入流中读取响应正文,并处理该信息。否则,需要处理错误响应代码。
91.完成将运行状态日志推送到预先设定的接收端:在成功地向接收端发送运行状态日志后,可以将该记录标记为已发送。例如,可以使用sqlite数据库或sharedpreferences来存储已成功发送的日志记录的id。这样,在后续的操作中,可以跳过已经成功发送的记录,以避免重复发送。
92.s106,通过所述接收端将所述运行状态日志进行提醒。
93.在本说明书实施例中,如果想通过接收端将运行状态日志进行提醒,可以按照以下步骤操作:
94.在接收端创建一个api接口或者webhook,以便客户端应用程序可以向该接口发送请求。
95.在接收端的api接口或webhook上添加逻辑,以接受来自客户端应用程序的请求,并根据请求内容执行相应的操作。例如,可以使用firebase cloud messaging(fcm)或其他推送通知服务来向用户发送通知。
96.在接收端的api接口或webhook中,根据请求内容执行相应的操作。例如,如果客户端应用程序发送了运行状态日志,请分析该日志并基于其内容向相关用户发送通知。
97.在发送通知之前,可以使用模板引擎或其他工具来格式化通知内容,并在其中包含有关运行状态的详细信息。
98.使用fcm或其他推送通知服务,向相关用户发送通知。在通知中包括有关运行状态的详细信息,以便用户了解应用程序的当前状态。
99.在客户端应用程序中,当需要提醒用户时,向接收端发送包含有关运行状态日志的信息的http请求。例如,可以使用httpclient或okhttpclient库来发送http请求。
100.需要说明的是,本说明书实施例可以是基于sqlite数据库,开发一套组件,可以集成至安卓、ios系统的移动应用中,随时监测应用异常状态,对于app的活跃时间、发生崩溃的信息及时记录并反馈到前台,开发者可以随时查看错误日志、监测记录等信息。
101.需要说明的是,本说明书实施例具有跨平台性,能够兼容安卓和ios应用,即插即用。同时,能在用户无感知的状态下获取指定移动端应用的异常运行状态,及时掌握应用运行状态的第一手资料,极大提高了开发者对于错误排查、应用优化迭代的效率。此外,本说明书开发的组件体积小,编译后约为100kb,且运行速度快,占用系统资源少
102.需要说明的是,本说明书实施例提供的一种基于sqlite实现移动端应用运行状态监测方法,兼容多平台移动终端应用,利用移动终端自带sqlite数据库,占用资源少,不影响应用的正常运行。能够兼容离线作业、在线作业等应用场景,离线作业可以将运行数据暂存至sqlite数据库中,在连接网络的状态下将运行数据发送至监测系统的客户端,在线作业可以实现状态数据的实时上传。
103.需要说明的是,本说明书实施例提供的检测系统可以包含数据采集端、数据存储端及数据接收展示端。
104.整个系统的核心为数据采集端,通过aop切面获取日志后,根据网络状态对日志数据进行处理,如在联网状态,将数据通过接口实时推送至接收端数据库;如在无网络状态下,将日志按照一定格式存储在sqlite数据库中,并实时监测移动终端的联网状态,感知到联网时,立即调用接口将数据传输至接收端
105.接收端实现应用检测信息的推送与展示,重大bug可以实现在线推送至相关人员邮箱,包含监测日志、发生错误的终端编号等。
106.图2为本说明书一个或多个实施例提供的一种移动端应用的异常提醒装置的结构示意图,所述装置包括:日志获取单元202、日志推送单元204与异常提醒单元206。
107.日志获取单元202,通过预先创建的aop切面获取指定移动端应用的运行状态日志;
108.日志推送单元204,若根据所述运行状态日志监测到所述指定移动端应用存在异常运行状态,将所述运行状态日志通过接口推送至预先设定的接收端;
109.异常提醒单元206,通过所述接收端将所述运行状态日志进行提醒。
110.图3为本说明书一个或多个实施例提供的一种移动端应用的异常提醒设备的结构示意图,包括:
111.至少一个处理器与总线;以及,
112.与所述至少一个处理器通信连接的存储器;其中,
113.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
114.通过预先创建的aop切面获取指定移动端应用的运行状态日志;
115.若根据所述运行状态日志监测到所述指定移动端应用存在异常运行状态,将所述运行状态日志通过接口推送至预先设定的接收端;
116.通过所述接收端将所述运行状态日志进行提醒。
117.本说明书一个或多个实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令被计算机执行时能够实现:
118.通过预先创建的aop切面获取指定移动端应用的运行状态日志;
119.若根据所述运行状态日志监测到所述指定移动端应用存在异常运行状态,将所述运行状态日志通过接口推送至预先设定的接收端;
120.通过所述接收端将所述运行状态日志进行提醒。
121.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、非易失性计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
122.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
123.以上所述仅为本说明书的一个或多个实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书的一个或多个实施例可以有各种更改和变化。凡在本说明书的一个或多个实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
技术特征:
1.一种移动端应用的异常提醒方法,其特征在于,所述方法包括:通过预先创建的aop切面获取指定移动端应用的运行状态日志;若根据所述运行状态日志监测到所述指定移动端应用存在异常运行状态,将所述运行状态日志通过接口推送至预先设定的接收端;通过所述接收端将所述运行状态日志进行提醒。2.根据权利要求1所述的方法,其特征在于,所述将所述运行状态日志通过接口推送至预先设定的接收端,包括:获取所述指定移动端应用所处的网络状态,所述网络状态包括联网状态与无网络状态;若所述网络状态为所述联网状态,将所述运行状态日志通过接口推送至预先设定的接收端。3.根据权利要求2所述的方法,其特征在于,若所述网络状态为所述无网络状态,所述方法还包括:将所述运行状态日志存储于预先设定的sqlite数据库中,并实时监测所述指定移动端应用所处的网络状态;若所述指定移动端应用所处的网络状态变更为所述联网状态,将所述运行状态日志通过接口推送至所述接收端。4.根据权利要求1所述的方法,其特征在于,所述指定移动端应用为指定android应用,所述通过预先创建的aop切面获取指定移动端应用的运行状态日志,包括:在所述aop切面中,通过android提供的log类记录指定移动端应用的运行状态日志。5.根据权利要求1所述的方法,其特征在于,所述异常运行状态包括指定移动端应用崩溃、指定移动端应用未响应、指定移动端应用卡顿或指定移动端应用慢速响应。6.根据权利要求1所述的方法,其特征在于,所述通过预先创建的aop切面获取指定移动端应用的运行状态日志前,所述方法还包括:导入获取运行状态日志所需的aop切面的指定类库;根据所述指定类库创建aop切面。7.根据权利要求1所述的方法,其特征在于,所述将所述运行状态日志通过接口推送至预先设定的接收端,包括:创建http请求对象;将所述运行状态日志附加到所述http请求中,生成指定http请求;向所述接收端发送所述指定http请求,并接收所述接收端的响应信息;若所述响应信息为发送成功,则完成将所述运行状态日志推送至所述接收端。8.一种移动端应用的异常提醒装置,其特征在于,所述装置包括:日志获取单元,通过预先创建的aop切面获取指定移动端应用的运行状态日志;日志推送单元,若根据所述运行状态日志监测到所述指定移动端应用存在异常运行状态,将所述运行状态日志通过接口推送至预先设定的接收端;异常提醒单元,通过所述接收端将所述运行状态日志进行提醒。9.一种移动端应用的异常提醒设备,其特征在于,包括:至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:通过预先创建的aop切面获取指定移动端应用的运行状态日志;若根据所述运行状态日志监测到所述指定移动端应用存在异常运行状态,将所述运行状态日志通过接口推送至预先设定的接收端;通过所述接收端将所述运行状态日志进行提醒。10.一种非易失性计算机存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令被计算机执行时能够实现:通过预先创建的aop切面获取指定移动端应用的运行状态日志;若根据所述运行状态日志监测到所述指定移动端应用存在异常运行状态,将所述运行状态日志通过接口推送至预先设定的接收端;通过所述接收端将所述运行状态日志进行提醒。
技术总结
本说明书实施例公开了一种移动端应用的异常提醒方法、装置、设备及介质,包括:通过预先创建的AOP切面获取指定移动端应用的运行状态日志;若根据所述运行状态日志监测到所述指定移动端应用存在异常运行状态,将所述运行状态日志通过接口推送至预先设定的接收端;通过所述接收端将所述运行状态日志进行提醒。本说明书实施例可以在用户无感知的状态下获取指定移动端应用的异常运行状态,及时掌握应用运行状态的第一手资料,极大提高了开发者对于错误排查、应用优化迭代的效率。应用优化迭代的效率。应用优化迭代的效率。
技术研发人员:张立珠 王超 尹延明
受保护的技术使用者:浪潮数字粮储科技有限公司
技术研发日:2023.06.25
技术公布日:2023/9/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/