CN112463518A - 基于Flutter的页面全生命周期监控方法、装置、设备及存储介质 - Google Patents
基于Flutter的页面全生命周期监控方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112463518A CN112463518A CN202011221834.7A CN202011221834A CN112463518A CN 112463518 A CN112463518 A CN 112463518A CN 202011221834 A CN202011221834 A CN 202011221834A CN 112463518 A CN112463518 A CN 112463518A
- Authority
- CN
- China
- Prior art keywords
- page
- state
- flutter
- full
- monitoring
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 157
- 238000012544 monitoring process Methods 0.000 title claims abstract description 64
- 230000006378 damage Effects 0.000 claims abstract description 45
- 238000011084 recovery Methods 0.000 claims abstract description 38
- 230000001960 triggered effect Effects 0.000 claims abstract description 25
- 230000008859 change Effects 0.000 claims abstract description 11
- 238000011423 initialization method Methods 0.000 claims description 13
- 238000012806 monitoring device Methods 0.000 claims 1
- 239000000725 suspension Substances 0.000 abstract description 7
- 230000009286 beneficial effect Effects 0.000 abstract description 4
- 230000006399 behavior Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003825 pressing Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了基于Flutter的页面全生命周期监控方法、装置、设备及存储介质,所述页面组件的全生命周期包括初始化、暂停、恢复和销毁,通过重写组件监听器的应用生命周期状态变化方法,以在应用状态发生变化时获取当前应用对用户是恢复状态还是暂停状态;当用户对页面进行操作时会触发对应的页面操作方法,通过获取传入参数中所指示的页面来判断所述页面是处于暂停状态还是恢复状态。基于本发明的页面全生命周期监控方案,可以有效地监控页面全生命周期,因而有利于准确获得页面使用行为数据,以完全满足业务需要。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及基于Flutter的页面全生命周期监控方法、装置、设备及存储介质。
背景技术
通过对用户行为监测获得的数据进行分析,可以让应用提供方更加详细、清楚地了解用户的行为习惯,从而找出网站、手机应用、推广渠道等应用提供方产品或营销存在的问题,有助于应用提供方开发更符合用户需求的产品以及发掘高转化率页面等。因此,用户页面使用数据分析显得极其重要,即在获得网站或APP页面等平台访问量基本数据的情况下,对有关数据进行统计、分析,从中发现用户访问网站或APP等平台的规律,并将这些规律与产品优化策略或网络营销策略等相结合,从而发现目前产品设计或网络营销活动中可能存在的问题,并为进一步优化产品或修正网络营销策略提供依据。
Flutter是谷歌公司(Google Inc.)开源的UI工具包,是跨平台开发框架,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动端(iOS、Android)、Web、桌面和嵌入式平台。众所周知,一个产品开发完成交付到用户手中后,为了更好地搜集用户使用行为、调整优化产品,需要对其进行数据统计,其中非常重要也是最基础的就是页面行为统计,得到用户页面使用行为数据,所述页面使用行为数据包含页面访问次数、页面访问路径、页面访问时长等。
在Flutter开发框架中一切皆为组件Widget,若要统计上述页面行为,只能在Flutter SDK提供的页面组件StatefulWidget生命周期方法中进行,所述页面组件生命周期指某个页面从创建到初始化、暂停、恢复、销毁的完整过程。现有的页面组件生命周期方法,包括状态初始化方法initState和销毁方法onDispose,也既状态初始化方法中记为页面进入,销毁方法中记为页面退出。
现有的页面使用行为数据统计方法,即页面组件生命周期方法存在以下缺点:首先,根据Flutter框架提供的生命周期方法只包含初始化方法initState和销毁方法onDispose,当页面处于暂停、恢复等中间状态时并没有对应的生命周期方法进行统计,导致不能有效地监控页面全生命周期,不利于准确获得页面使用行为数据,因而不能完全满足业务需要。具体来说就是,用户首先进入一级页面,此时一级页面的状态称之为“初始化”;通过某操作进入二级页面,一级页面对用户不可见但并没有销毁,此时一级页面的状态称之为“暂停”;当用户从二级页面返回一级页面,一级页面再次对用户可见,此时一级页面的状态称之为“恢复”;如果用户接着通过某操作退出一级页面,此时一级页面的状态称之为“销毁”;可见,一个页面全生命周期由4个状态所组成。
基于此,本发明所要解决的技术问题为:如何有效地监控页面组件的全生命周期,包括初始化、暂停、恢复和销毁。
发明内容
针对上述问题,本发明提供基于Flutter的页面全生命周期监控方法、装置、设备及存储介质,本发明支持Flutter页面组件初始化、暂停、恢复、销毁全生命周期监控,可以有效地监控页面全生命周期,因而有利于准确获得页面使用行为数据,以完全满足业务需要。
一方面,本发明提供基于Flutter的页面全生命周期监控方法,其技术方案具体如下:
基于Flutter的页面全生命周期监控方法,所述页面全生命周期包括初始化状态、暂停状态、恢复状态和销毁状态,其特征在于:
当用户返回系统桌面或者跳转到其他应用时,通过重写组件监听器的应用生命周期状态变化方法,以在应用状态发生变化时获取当前应用对用户是恢复状态还是暂停状态;
当用户对页面进行操作时会触发对应的页面操作方法,当所述页面操作方法被唤起时会传入至少一个参数;通过获取所述参数中所指示的页面来判断所述页面是处于暂停状态还是恢复状态。
进一步地,当用户首次打开当前页面,会触发初始化方法,此时当前页面处于初始化状态,当用户退出当前页面,会触发销毁方法,此时当前页面处于销毁状态。
具体的,所述页面操作包含打开页面、退出页面、移除页面和替换页面。
具体的,所述页面操作方法包含页面打开方法、退出方法、移除方法和替换方法。
具体的,所述参数为previusRoute参数。
进一步地,当打开方法、替换方法被调用,所述参数所指示页面是当前页面,判断当前页面即将进入暂停状态。
进一步地,当退出方法、移除方法被调用,所述参数所指示页面是当前页面,判断当前页面即将进入恢复状态。
具体的,组件监听器负责监控不同应用间切换时的暂停状态和恢复状态。
具体的,导航监听器监控同一应用内所有页面切换时的暂停状态和恢复状态。
进一步地,所述页面全生命周期监控方法的判断逻辑统一封装在页面状态抽象类中。
另一方面还提供基于Flutter的页面全生命周期监控装置,所述装置包括:
应用间切换时页面的状态监控模块,用于当用户返回系统桌面或者跳转到其他应用时,通过重写组件监听器的应用生命周期状态变化方法,以在应用状态发生变化时获取当前应用对用户是恢复状态还是暂停状态;
应用内页面切换时页面的状态监控模块,用于当用户对页面进行操作时会触发对应的页面操作方法,当所述页面操作方法被唤起时会传入至少一个参数;通过获取所述参数中所指示的页面来判断所述页面是处于暂停状态还是恢复状态。
进一步地,所述装置还包括:
页面初始化状态和销毁状态监控模块,用于监控页面初始化状态和销毁状态,当用户首次打开当前页面,会触发初始化方法,此时当前页面处于初始化状态,当用户退出当前页面,会触发销毁方法,此时当前页面处于销毁状态。
另一方面还提供基于Flutter的页面全生命周期监控设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述任一所述的页面全生命周期监控方法。
另一方面还提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行如上述任一所述的页面全生命周期监控方法。
本申请提供的基于Flutter的页面全生命周期监控方法、装置、设备及存储介质,具有如下技术效果:
本发明给出了如何监控页面组件的全生命周期的技术方案,所述页面组件的全生命周期包括初始化、暂停、恢复和销毁;通过重写组件监听器的应用生命周期状态变化方法,以在应用状态发生变化时获取当前应用对用户是恢复状态还是暂停状态;当用户对页面进行操作时会触发对应的页面操作方法,通过获取传入参数中所指示的页面来判断所述页面是处于暂停状态还是恢复状态。基于本发明的页面全生命周期监控方案,可以有效地监控页面全生命周期,因而有利于准确获得页面使用行为数据,以完全满足业务需要。
附图说明
图1是本发明实施例提供的一种基于Flutter的页面全生命周期监控方法示意图。
图2是本发明实施例提供的另一种基于Flutter的页面全生命周期监控方法示意图。
图3是本发明实施例提供的一种基于Flutter的页面全生命周期监控装置示意图。
图4是本发明实施例提供的另一种基于Flutter的页面全生命周期监控装置示意图。
图5是本发明实施例提供的工作流程图。
具体实施方式
为了使本领域技术人员更好地理解本发明技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例,本实施例仅用于解释本发明,并不构成对本发明保护范围的限定。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“页面”、“应用”、“页面访问”、“页面组件生命周期”等适用于移动终端或Web或桌面或嵌入式平台,所述“应用”可以为应用软件或者系统软件。本发明所述“设备”可以包括:计算机、平板电脑、手机、穿戴设备(如手环等)等等。
首先,对本发明中可能涉及到的技术术语进行简要描述:
Flutter:是谷歌公司(Google Inc.)开源的UI工具包,是跨平台开发框架,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动端(iOS、Android)、Web、桌面和嵌入式平台。
页面组件生命周期:指某个页面从创建到初始化、暂停、恢复、销毁的完整过程。
一个产品开发完成交付到用户手中后,为了更好地搜集用户使用行为、调整优化产品,需要对其进行数据统计,其中非常重要也是最基础的就是页面行为统计,包括页面访问次数、页面访问路径、页面访问时长等。
在Flutter开发框架中一切皆为组件Widget,若要统计上述页面行为,只能在Flutter SDK提供的页面组件StatefulWidget生命周期方法中进行,包括状态初始化方法initState和销毁方法onDispose,也既状态初始化方法中记为页面进入,销毁方法中记为页面退出。
本发明涉及组件监听器WidgetsBindingObserver、导航监听器GlobalNavigatorObserver、页面状态抽象类BasePageState<TextendsStatefulWidget>、页面生命周期全局监听器BasePageStateObservable这4个功能模块。
以下介绍本发明基于Flutter的页面全生命周期监控方法的具体实施例,图1为本实施例提供的一种基于Flutter的页面全生命周期监控方法示意图,本发明提供了如本实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。该方法的执行主体可以为终端,终端具体可以包括运行于实体设备中的软件,例如安装在设备上的应用等,也可以包括安装有应用的智能手机、平板电脑、数字助理、智能可穿戴设备等类型的实体设备中至少一种。具体的,终端上运行有操作系统,该操作系统可以是iOS(苹果移动终端操作系统)或者安卓(Android)操作系统或者其他操作系统。
本发明实施例一,如图1所示。所述一种基于Flutter的页面全生命周期监控方法具体实施方式如下:
本发明所述页面全生命周期包括初始化状态、暂停状态、恢复状态和销毁状态。
S01:当用户返回系统桌面或者跳转到其他应用时,通过重写组件监听器的应用生命周期状态变化方法,以在应用状态发生变化时获取当前应用对用户是恢复状态还是暂停状态。
这里需要说明的是,是通过组件监听器WidgetsBindingObserver监听不同应用的状态来实现应用间切换时的暂停和恢复状态。即,当用户返回系统桌面或者跳转到其他应用时,会触发组件监听器的应用生命周期状态变化方法didChangeAppLifecycleState,通过重写此方法,以在应用状态发生变化时实时获取当前应用对用户是恢复(应用可见)还是暂停(应用不可见)。
具体来说就是:如果该应用状态由恢复状态(可见状态)改变为暂停状态,比如按Home键返回桌面或者切换到其他应用,那么相应的,该应用的顶层页面也变成了暂停状态;如果该应用状态由暂停状态改变为恢复状态(可见状态),比如从桌面点击应用图标再次打开该应用或者从其他应用切换回该应用,那么相应的,该应用的顶层页面也变成了恢复状态(可见状态)。
S02:当用户对页面进行操作时会触发对应的页面操作方法,当所述页面操作方法被唤起时会传入至少一个参数;通过获取所述参数中所指示的页面来判断所述页面是处于暂停状态还是恢复状态。
这里需要说明的是,是通过导航监听器GlobalNavigatorObserver在全局监听应用内所有页面切换事件来实现页面切换时的暂停和恢复状态。即,当用户打开页面、退出页面、移除页面、替换页面时会触发对应的打开方法didPush、退出方法didPop、移除方法didRemove、替换方法didReplace这几个方法。
从这几个方法签名中可以看出,当Flutter框架唤起这几个方法时候会传入route(Route<dynamic>类型)和previousRoute(Route<dynamic>类型)这两个参数,本发明是通过获取previousRoute参数中所指示的页面来判断页面处于暂停还是恢复状态。
具体来说就是:当打开方法didPush、替换方法didReplace被调用,如果参数previousRoute所指示页面是当前页面,那么当前页面即将进入暂停状态;当退出方法didPop、移除方法didRemove被调用,如果参数previousRoute所指示页面是当前页面,那么当前页面即将进入恢复状态。
本发明实施例二,如图2所示。本实施例二与上述实施例一相比,区别在于还包含S00和S03。
S00:当用户首次打开当前页面,会触发初始化方法,此时当前页面处于初始化状态。
这里需要说明的是,页面状态抽象类BasePageState<T extends StatefulWidget>是所有页面组件的父类,本发明通过页面状态抽象类BasePageState<T extendsStatefulWidget>来实现页面初始化。当用户首次打开当前页面,一定会触发初始化方法initState,此时当前页面处于初始化状态。
S03:当用户退出当前页面,会触发销毁方法,此时当前页面处于销毁状态。
同样地,本发明通过页面状态抽象类BasePageState<T extends StatefulWidget>来实现页面销毁状态。当用户退出当前页面,一定会触发销毁方法dispose,此时当前页面处于销毁状态。
本发明实施例一和实施例二所述的的页面全生命周期监控方法的判断逻辑统一封装在页面状态抽象类中,这样开发者无需关心内部实现逻辑,可以大大减少开发者工作。我们也规定了所有页面状态都必须继承自该页面状态抽象类。
此外,页面生命周期全局监听器BasePageStateObservable提供了应用内全局唯一的页面组件生命周期监听出口,在此可进行统计数据上传。
该监听器提供了页面进入方法onInitState(State state)、页面暂停方法onPause(State state)、页面恢复方法onResume(State state)、页面销毁方法onDispose(State state)四个接口方法,开发者需要给的页面状态抽象类BasePageState传入该监听器实例对象。
当页面生命周期发生改变时,由页面状态抽象类BasePageState调用该实例对象对应的四个方法,也既接口回调,开发者在这四个接口方法中获取参数state指示的页面名称(state.widget.toString),即可进行统计数据上传,无需编写繁琐的埋点代码。
本发明整体工作流程涉及组件监听器WidgetsBindingObserver、导航监听器GlobalNavigatorObserver、页面状态抽象类BasePageState<Textends StatefulWidget>、页面生命周期全局监听器BasePageStateObservable,上述4个部分组合起来的方法流程如附图5所示。
打开应用,Flutter架构启动,执行运行应用方法runApp,同时给Flutter架构返回材料应用组件MaterialApp。
向材料应用组件MaterialApp的导航监听器构造参数navigatorObservers传入全局导航监听器GlobalNavigatorObserver实例对象,开始监听应用内所有页面的切换事件。
生成页面生命周期全局监听器生成页面生命周期全局监听器BasePageStateObservable实例对象,并传给页面状态抽象类BasePageState。
进入页面,触发对应的页面进入方法onInitState(为了清楚地描述,记为“页面进入方法A”),在此方法中调用Flutter架构提供的组件绑定类WidgetsBinding的增加监听器方法addObserver传入组件监听器WidgetsBindingObserver实例对象,开启应用状态监听。
同时,在页面进入onInitState方法中触发页面生命周期全局监听器BasePageStateObservable实例对象的页面进入方法onInitState(State state)(为了清楚地描述,记为“页面进入方法B”)。
后续因为页面切换、应用切换导致的页面暂停、恢复、销毁,都会触发生命周期全局监听器BasePageStateObservable实例对象的页面暂停方法onPause(State state)、页面恢复方法onResume(State state)、页面销毁方法onDispose(State state)。
在生命周期全局监听器BasePageStateObservable实例对象相应方法中,进行统计数据上传。
统计后台进行数据分析和展示。
本发明实施例三为本发明装置实施例,如图3所示,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图3,其示出了本发明实施例提供的一种基于Flutter的页面全生命周期装置的结构框图。所述装置D1可以包括:
应用间切换时页面的状态监控模块M01:用于当用户返回系统桌面或者跳转到其他应用时,通过重写组件监听器的应用生命周期状态变化方法,以在应用状态发生变化时获取当前应用对用户是恢复状态还是暂停状态。
本实施例通过应用间切换时页面的状态监控模块M01监听不同应用的状态来实现应用间切换时的暂停和恢复状态。即,当用户返回系统桌面或者跳转到其他应用时,会触发组件监听器的应用生命周期状态变化方法didChangeAppLifecycleState,通过重写此方法,以在应用状态发生变化时实时获取当前应用对用户是恢复(应用可见)还是暂停(应用不可见)。具体来说就是:如果该应用状态由恢复状态(可见状态)改变为暂停状态,比如按Home键返回桌面或者切换到其他应用,那么相应的,该应用的顶层页面也变成了暂停状态;如果该应用状态由暂停状态改变为恢复状态(可见状态),比如从桌面点击应用图标再次打开该应用或者从其他应用切换回该应用,那么相应的,该应用的顶层页面也变成了恢复状态(可见状态)。
应用内页面切换时页面的状态监控模块M02:用于当用户对页面进行操作时会触发对应的页面操作方法,当所述页面操作方法被唤起时会传入至少一个参数;通过获取所述参数中所指示的页面来判断所述页面是处于暂停状态还是恢复状态。
本实施例通过应用内页面切换时页面的状态监控模块M02在全局监听应用内所有页面切换事件来实现页面切换时的暂停和恢复状态。即,当用户打开页面、退出页面、移除页面、替换页面时会触发对应的打开方法didPush、退出方法didPop、移除方法didRemove、替换方法didReplace这几个方法。从这几个方法签名中可以看出,当Flutter框架唤起这几个方法时候会传入route(Route<dynamic>类型)和previousRoute(Route<dynamic>类型)这两个参数,本实施例是通过获取previousRoute参数中所指示的页面来判断页面处于暂停还是恢复状态。具体来说就是:当打开方法didPush、替换方法didReplace被调用,如果参数previousRoute所指示页面是当前页面,那么当前页面即将进入暂停状态;当退出方法didPop、移除方法didRemove被调用,如果参数previousRoute所指示页面是当前页面,那么当前页面即将进入恢复状态。
本发明实施例四为本发明装置另一实施例,如图4所示,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图4,其示出了本发明实施例提供的另一种基于Flutter的页面全生命周期装置的结构框图。本实施例所述装置D2与实施例三所述装置D1相比,还可以包括:
页面初始化状态和销毁状态监控模块M03:用于监控页面初始化状态和销毁状态,当用户首次打开当前页面,会触发初始化方法,此时当前页面处于初始化状态,当用户退出当前页面,会触发销毁方法,此时当前页面处于销毁状态。
本实施例通过页面初始化状态和销毁状态监控模块M03来实现页面初始化。当用户首次打开当前页面,一定会触发初始化方法initState,此时当前页面处于初始化状态。同样地,本实施例通过页面初始化状态和销毁状态监控模块M03来实现页面销毁状态。当用户退出当前页面,一定会触发销毁方法dispose,此时当前页面处于销毁状态。
本发明实施例五提供了一种基于Flutter的页面全生命周期监控设备,该设备可以包括处理器和存储器,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现如上述方法实施例一或实施例二所提供的基于Flutter的页面全生命周期监控方法。
本发明实施例六还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行上述任一所述的基于Flutter的页面全生命周期监控方法。
可选地,在本申请实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本发明给出了如何监控页面组件的全生命周期的技术方案,所述页面组件的全生命周期包括初始化、暂停、恢复和销毁;通过重写组件监听器的应用生命周期状态变化方法,以在应用状态发生变化时获取当前应用对用户是恢复状态还是暂停状态;当用户对页面进行操作时会触发对应的页面操作方法,通过获取传入参数中所指示的页面来判断所述页面是处于暂停状态还是恢复状态。基于本发明的页面全生命周期监控方案,可以有效地监控页面全生命周期,因而有利于准确获得页面使用行为数据,以完全满足业务需要。
需要说明的是:上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指示相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上显示和描述了本发明的基本原理、主要特征和优点。本领域技术人员应该了解,以上所述仅为本发明的较佳实施例,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入本发明要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (12)
1.基于Flutter的页面全生命周期监控方法,所述页面全生命周期包括初始化状态、暂停状态、恢复状态和销毁状态,其特征在于:
当用户返回系统桌面或者跳转到其他应用时,通过重写组件监听器的应用生命周期状态变化方法,以在应用状态发生变化时获取当前应用对用户是恢复状态还是暂停状态;
当用户对页面进行操作时会触发对应的页面操作方法,当所述页面操作方法被唤起时会传入至少一个参数;通过获取所述参数中所指示的页面来判断所述页面是处于暂停状态还是恢复状态。
2.根据权利要求1所述的基于Flutter的页面全生命周期监控方法,其特征在于:当用户首次打开当前页面,会触发初始化方法,此时当前页面处于初始化状态,当用户退出当前页面,会触发销毁方法,此时当前页面处于销毁状态。
3.根据权利要求1所述的基于Flutter的页面全生命周期监控方法,其特征在于:所述页面操作包含打开页面、退出页面、移除页面和替换页面;所述页面操作方法包含页面打开方法、退出方法、移除方法和替换方法。
4.根据权利要求1所述的基于Flutter的页面全生命周期监控方法,其特征在于:所述参数为previusRoute参数。
5.根据权利要求3所述的基于Flutter的页面全生命周期监控方法,其特征在于:当打开方法、替换方法被调用,所述参数所指示页面是当前页面,判断当前页面即将进入暂停状态。
6.根据权利要求3所述的基于Flutter的页面全生命周期监控方法,其特征在于:当退出方法、移除方法被调用,所述参数所指示页面是当前页面,判断当前页面即将进入恢复状态。
7.根据权利要求1所述的基于Flutter的页面全生命周期监控方法,其特征在于:组件监听器负责监控不同应用间切换时的暂停状态和恢复状态;导航监听器监控同一应用内所有页面切换时的暂停状态和恢复状态。
8.根据权利要求1至7之一所述的基于Flutter的页面全生命周期监控方法,其特征在于:所述页面全生命周期监控方法的判断逻辑统一封装在页面状态抽象类中。
9.基于Flutter的页面全生命周期监控装置,其特征在于,包括:
应用间切换时页面的状态监控模块,用于当用户返回系统桌面或者跳转到其他应用时,通过重写组件监听器的应用生命周期状态变化方法,以在应用状态发生变化时获取当前应用对用户是恢复状态还是暂停状态;
应用内页面切换时页面的状态监控模块,用于当用户对页面进行操作时会触发对应的页面操作方法,当所述页面操作方法被唤起时会传入至少一个参数;通过获取所述参数中所指示的页面来判断所述页面是处于暂停状态还是恢复状态。
10.根据权利要求11所述的基于Flutter的页面全生命周期监控装置,其特征在于,还包括:
页面初始化状态和销毁状态监控模块,用于监控页面初始化状态和销毁状态,当用户首次打开当前页面,会触发初始化方法,此时当前页面处于初始化状态,当用户退出当前页面,会触发销毁方法,此时当前页面处于销毁状态。
11.基于Flutter的页面全生命周期监控装置设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至8任一所述的页面全生命周期监控方法。
12.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行如权利要求1至8任一所述的页面全生命周期监控方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011221834.7A CN112463518A (zh) | 2020-11-05 | 2020-11-05 | 基于Flutter的页面全生命周期监控方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011221834.7A CN112463518A (zh) | 2020-11-05 | 2020-11-05 | 基于Flutter的页面全生命周期监控方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112463518A true CN112463518A (zh) | 2021-03-09 |
Family
ID=74824854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011221834.7A Pending CN112463518A (zh) | 2020-11-05 | 2020-11-05 | 基于Flutter的页面全生命周期监控方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112463518A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312163A (zh) * | 2021-06-10 | 2021-08-27 | 腾讯数码(深圳)有限公司 | 页面切换状态监测方法、装置、电子设备及存储介质 |
CN113312042A (zh) * | 2021-04-22 | 2021-08-27 | 北京搜狗智能科技有限公司 | 一种数据处理方法、装置和电子设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107870933A (zh) * | 2016-09-27 | 2018-04-03 | 北京京东尚科信息技术有限公司 | 统计安卓应用页面浏览行为的方法、装置及系统 |
US20180113588A1 (en) * | 2011-09-29 | 2018-04-26 | Microsoft Technology Licensing, Llc | Automatic lifecycle management for pages on a mobile application |
CN108153646A (zh) * | 2017-12-26 | 2018-06-12 | 北京酷我科技有限公司 | 一种通用的监控Android前后台的方法 |
KR20190135724A (ko) * | 2018-05-29 | 2019-12-09 | 엘에스산전 주식회사 | Hmi 장치 및 hmi 장치의 데이터 출력방법 |
CN111182019A (zh) * | 2019-08-08 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 跨平台通信方法及装置、电子设备 |
CN111176960A (zh) * | 2019-10-22 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 一种用户操作行为跟踪方法、装置、设备及存储介质 |
CN111538574A (zh) * | 2020-03-27 | 2020-08-14 | 北京达佳互联信息技术有限公司 | 任务堆栈的管理方法、装置、终端及存储介质 |
CN111782209A (zh) * | 2019-04-04 | 2020-10-16 | 阿里巴巴集团控股有限公司 | 页面管理方法、装置、电子设备及计算机存储介质 |
CN111880785A (zh) * | 2020-06-23 | 2020-11-03 | 北京三快在线科技有限公司 | 程序代码转换方法、装置,电子设备 |
-
2020
- 2020-11-05 CN CN202011221834.7A patent/CN112463518A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180113588A1 (en) * | 2011-09-29 | 2018-04-26 | Microsoft Technology Licensing, Llc | Automatic lifecycle management for pages on a mobile application |
CN107870933A (zh) * | 2016-09-27 | 2018-04-03 | 北京京东尚科信息技术有限公司 | 统计安卓应用页面浏览行为的方法、装置及系统 |
CN108153646A (zh) * | 2017-12-26 | 2018-06-12 | 北京酷我科技有限公司 | 一种通用的监控Android前后台的方法 |
KR20190135724A (ko) * | 2018-05-29 | 2019-12-09 | 엘에스산전 주식회사 | Hmi 장치 및 hmi 장치의 데이터 출력방법 |
CN111782209A (zh) * | 2019-04-04 | 2020-10-16 | 阿里巴巴集团控股有限公司 | 页面管理方法、装置、电子设备及计算机存储介质 |
CN111182019A (zh) * | 2019-08-08 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 跨平台通信方法及装置、电子设备 |
CN111176960A (zh) * | 2019-10-22 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 一种用户操作行为跟踪方法、装置、设备及存储介质 |
CN111538574A (zh) * | 2020-03-27 | 2020-08-14 | 北京达佳互联信息技术有限公司 | 任务堆栈的管理方法、装置、终端及存储介质 |
CN111880785A (zh) * | 2020-06-23 | 2020-11-03 | 北京三快在线科技有限公司 | 程序代码转换方法、装置,电子设备 |
Non-Patent Citations (3)
Title |
---|
XIN SHEN.ETC: "Internet of things for power transmission and distribution -intelligent monitoring and full lifecycle management", IEEE, 31 December 2014 (2014-12-31) * |
冉瑜琳;: "Android开发中Activity的生命周期", 电脑迷, no. 09, 3 August 2018 (2018-08-03) * |
杜家兵;刘胜强;庞维欣;郇长武;于洋;: "智能电网云计算及生命周期管理平台探究", 电子测试, no. 15, 23 August 2013 (2013-08-23) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312042A (zh) * | 2021-04-22 | 2021-08-27 | 北京搜狗智能科技有限公司 | 一种数据处理方法、装置和电子设备 |
CN113312163A (zh) * | 2021-06-10 | 2021-08-27 | 腾讯数码(深圳)有限公司 | 页面切换状态监测方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11389960B2 (en) | Systems and methods for robotic process automation | |
CN113190464B (zh) | mock测试方法、装置、电子设备及介质 | |
CN110442327B (zh) | 一种应用程序构建方法、装置、服务器 | |
CN108874470B (zh) | 一种信息处理方法及服务器、计算机存储介质 | |
EP2437524A1 (en) | M2m service platform and work method thereof | |
US10084637B2 (en) | Automatic task tracking | |
CN112162753A (zh) | 软件部署方法、装置、计算机设备和存储介质 | |
CN113268243B (zh) | 内存预测方法及装置、存储介质、电子设备 | |
CN108647032B (zh) | 应用加载方法及装置、计算机装置和计算机可读存储介质 | |
CN110597564A (zh) | 一种安装包构建和业务组件加载方法、装置、终端设备 | |
CN112463518A (zh) | 基于Flutter的页面全生命周期监控方法、装置、设备及存储介质 | |
CN110795353A (zh) | 快应用的调试方法、装置、设备及存储介质 | |
CN112463519A (zh) | 基于Flutter的页面使用行为数据无埋点统计方法、设备及存储介质 | |
CN113778391A (zh) | 原生应用程序的页面处理方法、装置及设备 | |
CN110046100B (zh) | 一种分组测试的方法、电子设备及介质 | |
CN111444453A (zh) | 页面回传数据处理方法及其装置 | |
CN113204341A (zh) | 一种页面生成方法、装置及介质 | |
CN112559293B (zh) | 应用程序包的监控方法及装置 | |
Corno et al. | XDN: cross-device framework for custom notifications management | |
CN110018831B (zh) | 程序处理方法、装置及计算机可读存储介质 | |
CN114115884A (zh) | 一种编程服务的管理方法以及相关装置 | |
CN112463520A (zh) | 基于Flutter的页面全生命周期统计方法、设备及存储介质 | |
CN106708737B (zh) | 一种测试方法及装置 | |
CN111324386B (zh) | 分身应用程序的启动方法、装置、电子设备及存储介质 | |
CN113535029A (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 | ||
CB02 | Change of applicant information |
Address after: 510000 room 1728, No.2, Huaxu street, Tianhe District, Guangzhou City, Guangdong Province (office only) Applicant after: Guangzhou Boheng Information Technology Co.,Ltd. Address before: 510000 room 1728, No.2, Huaxu street, Tianhe District, Guangzhou City, Guangdong Province (office only) Applicant before: Guangzhou Boheng Information Technology Co.,Ltd. |
|
CB02 | Change of applicant information |