CN108984203A - 一种用于Android应用运行时数据采集的方法及其*** - Google Patents
一种用于Android应用运行时数据采集的方法及其*** Download PDFInfo
- Publication number
- CN108984203A CN108984203A CN201810585906.2A CN201810585906A CN108984203A CN 108984203 A CN108984203 A CN 108984203A CN 201810585906 A CN201810585906 A CN 201810585906A CN 108984203 A CN108984203 A CN 108984203A
- Authority
- CN
- China
- Prior art keywords
- data
- acquisition
- android application
- client
- configuration
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种用于Android应用运行时数据采集的方法及其***,包括以下步骤:a、在Android应用编译、打包阶段导入包含采集、封装和上传功能的Java档案文件;b、客户端在Android应用启动阶段通过Java档案文件从服务器端获取配置数据并且进行配置;c、根据配置数据中的数据采集代码采集Android应用运行时的运行数据;d、将采集的运行数据进行封装;e、将封装的数据上传到服务器进行保存分析,客户端通过配置数据获取的数据采集代码和客户端业务逻辑代码相互独立,不存在耦合,更不会造成代码的出错和泄露,大大提高了客户端数据采集的可靠性和安全性。
Description
技术领域
本发明涉及一种网络通信领域,特别是一种用于Android应用运行时数据采集的方法和***。
背景技术
客户端Android应用运行时的运行数据,例如包括用户使用哪些功能、使用频率、客户端运行效率以及运行时发生的异常等数据,对改进客户端的用户体验、提高互联网业务的运营效果都有重要意义,基本上每个客户端应用都有采集、统计并上报运营数据到服务器的需求。传统的数据采集方法是把数据采集代码与处理业务逻辑的代码写在一起,使得实际的业务代码与采集数据的代码紧密耦合,导致代码容易出错、容易泄漏,存在可靠性和安全性低以及修改困难等问题。
其中,ASM是一个全功能Java字节码操作与分析框架。它能被用来动态生成类或者增强既有类的功能。ASM可以直接产生二进制class文件,也可以在类被加载入Java虚拟机之前动态改变类行为。Java class被存储在严格格式定义的class文件里,这些类文件拥有足够的元数据来解析类中的所有元素:类名称、方法、属性以及Java字节码(指令)。ASM从类文件中读入信息后,能够改变类行为,分析类信息,甚至能够根据用户要求生成新类。虽然提供了与其他字节码框架类似的功能,但是ASM主要专注于操作的易用性。它的设计目标就是更加小巧和快速,更适用于动态***。
Gradle插件是一个自动化构建工具,可以使用一种基于Groovy的特性领域语言(DSL)来声明项目设置。Gradle插件也提供了一些默认的Plugin帮助构建项目,如果想要在构建期间定制的操作,就需要单独开发一款和自己功能相关的Gradle Plugin,而GradlePlugin,是可以使用Groovy、Java、Scala进行开发的,由此,本申请人希望能够利用ASM与Gradle插件的特性,对上述问题进行改进。
发明内容
为解决上述技术问题,本发明的目的是提供一种非入侵式用于Android应用运行时数据采集的方法和***。
本发明采用的技术方案是:
一种用于Android应用运行时数据采集的方法,包括以下步骤:
a、在Android应用编译、打包阶段导入包含采集、封装和上传功能的Java档案文件;
b、客户端在Android应用启动阶段通过Java档案文件从服务器端获取配置数据并且进行配置,该配置数据在服务器端根据需要采集的运行数据设置有数据采集代码;
c、根据配置数据中的数据采集代码采集Android应用运行时的运行数据;
d、将采集的运行数据进行封装;
e、将封装的数据上传到服务器进行保存分析。
所述步骤b中从服务器获取配置数据,并且对配置数据进行验证,当验证成功则客户端根据获取的配置数据运行,当验证失败则客户端根据本地预设的默认配置数据运行。
所述步骤b包括
步骤b1、在Android应用编译、打包阶段对Gradle插件进行编写,通过Gradle插件提供Transform API,并且在class文件转为dex文件前完成对class文件编译,从而找到字节码插桩入口,进入步骤b2;
步骤b2、根据配置数据对Java字节码进行改写,依照运行数据采集需求植入相应的数据采集代码,并且改写的Java字节码经由dex文件转化为apk文件。
所述步骤c中Android应用运行时采集冷启动事件、点击事件、页面事件、应用异常事件中的运行数据。
针对点击事件客户端根据配置数据进行配置的内容为:通过ClassVisitor对所有类中的class文件进行扫描,筛选出所有实现View.OnClickListener接口的类,通过visitMethod中判定是否为onClick方法,若是,则对onClick方法的Java字节码改写,添加回调逻辑。
所述步骤d中通过JSON将采集的运行数据进行数据格式转换封装。
一种用于Android应用运行时数据采集的***,包括配置模块、采集模块、封装模块以及上传模块,配置模块在Android应用编译、打包阶段导入包含采集、封装和上传功能的Java档案文件,Java档案文件在客户端生成采集模块、封装模块以及上传模块,采集模块采集Android应用运行时的运行数据,并且将采集的运行数据输出到封装模块,封装模块对运行数据进行封装,上传模块将已封装的运行数据上传到服务器。
本发明的有益效果:
本发明用于Android应用运行时数据采集的方法和***,在Android应用编译、打包阶段导入包含采集、封装和上传功能的Java档案文件,Java档案文件能够使客户端每次启动时从服务器中获取配置数据,从而客户端能够根据配置数据运行,同时由于配置数据中具有关于所需要采集的运行数据数据采集代码,能够在客户端运行阶段采集运行数据,并且对运行数据进行封装上传,整个过程中,客户端通过配置数据获取的数据采集代码和客户端业务逻辑代码相互独立,不存在耦合,更不会造成代码的出错和泄露,大大提高了客户端数据采集的可靠性和安全性。
同时,本设计不仅能够监控应用运行时信息、异常信息,实现异常的深度分析和定位,同时,还可对终端用户的用户体验数据进行监测,实现较为完整的Android应用运行时数据采集。
附图说明
下面结合附图对本发明的具体实施方式做进一步的说明。
图1是本发明用于Android应用运行时数据采集的***的原理图。
图2是点击事件的处理流程图。
具体实施方式
如图1、图2所示,本发明用于Android应用运行时数据采集的方法,包括以下步骤:
a、在Android应用编译、打包阶段导入包含采集、封装和上传功能的Java档案文件;
b、客户端在Android应用启动阶段通过Java档案文件从服务器端获取配置数据并且进行配置,该配置数据在服务器端根据需要采集的运行数据设置有数据采集代码;
c、根据配置数据中的数据采集代码采集Android应用运行时的运行数据;
d、将采集的运行数据进行封装;
e、将封装的数据上传到服务器进行保存分析。
以上方法可基于用于Android应用运行时数据采集的***中进行,其中***包括配置模块1、采集模块2、封装模块3以及上传模块4,配置模块1在Android应用编译、打包阶段导入包含采集、封装和上传功能的Java档案文件,Java档案文件在客户端生成采集模块2、封装模块3以及上传模块4,采集模块2采集Android应用运行时的运行数据,并且将采集的运行数据输出到封装模块3,封装模块3对运行数据进行封装,上传模块4将已封装的运行数据上传到服务器。
首先,在服务器将需要采集的运行数据以数据采集代码的形式编写入配置数据中,Android应用编译和打包阶段Java档案文件包括两个部分,分别是影响Android代码编译过程的自定义Gradle插件和包含采集、封装和上传功能的jar包。
在Android应用编译、打包阶段导入包含采集、封装和上传功能的Java档案文件,Java档案文件能够使客户端每次启动时从服务器中获取配置数据,从而客户端能够根据配置数据运行,同时由于配置数据中具有关于所需要采集的运行数据数据采集代码,能够在客户端运行阶段采集运行数据,并且对运行数据进行封装上传,整个过程中,客户端通过配置数据获取的数据采集代码和客户端业务逻辑代码相互独立,不存在耦合,更不会造成代码的出错和泄露,大大提高了客户端数据采集的可靠性和安全性。
一般来说,配置数据包括跟踪客户端的数据类、用户交互、统计客户端运行性能数据类、客户端异常情况关注数据类以及客户端异常情况处理数据类。针对不同的客户端,我们可以在服务器进行统一的配置,以使后续操作中可以根据实际情况的需要,采集与服务器连接各种类型客户端的数据。
步骤b中从服务器获取配置数据,并且对配置数据进行验证,当验证成功则客户端根据获取的配置数据运行,当验证失败则客户端根据本地预设的默认配置数据运行,此处对配置数据进行有效性的验证,可以通过将配置数据与客户端默认的配置数据进行对比性检测。
客户端进行配置的做法可以是,检测客户端是否建立了Application类的子类,如果没有则自动新建一个Application类的子类,然后,在客户端的Application类的onCreate方法中,***代码开启采集功能,联网检测服务端配置是否有更新,如有更新则下载到本地更新对应配置。
其中本设计优选实施例为,步骤b在对客户端进行配置时包括步骤b1、在Android应用编译、打包阶段对Gradle插件进行编写,通过Gradle插件提供Transform API,并且在class文件转为dex文件前完成对class文件编译,从而找到字节码插桩入口,进入步骤b2;
步骤b2、根据配置数据对Java字节码进行改写,依照运行数据采集需求植入相应的数据采集代码,并且改写的Java字节码经由dex文件转化为apk文件。
对此,***中采集模块中可包括执行步骤b1的编译单元21以及执行步骤b2的添加/替换单元22。
此处的Gradle插件在Java档案文件中进行导入,通过Gradle插件在Android应用编译、打包阶段与服务器构成传输协议,再把配置数据下载。
一般情况下,所需要采集的运行数据有一下几点:
页面信息:包括页面访问时间、访问次数、访问路径和深度等;
运行时信息:包括CPU占用率、内存占用率、HTTP接口响应时间、本地数据操作时间等数据;
异常信息:崩溃率、HTTP错误率等数据;
用户信息:用户使用的设备、版本、使用时间以及与APP的交互数据等。
也就对应了步骤c中Android应用运行时可能会出现的冷启动事件、点击事件、页面事件、应用异常事件等等。
针对不同的事件,需要写入的数据采集代码也不同:
对于冷启动事件,例如采集Android应用的运行时间、版本号、设备ID、渠道、内存使用情况,磁盘使用情况、CPU占用率等信息,可在应用每次启动时通过采集数据代码接入客户端数据中进行收集。
对于点击事件,如图2所示,需要对View.OnClickListener的onClick方法进行AOP;
通过ASM的ClassVisitor对所有类中的class文件进行扫描,在visit方法中得到当前类实现了哪些接口,判断这些接口中是否包含全限定名为“android/view/View$OnClickListener”的接口,如果有,证明当前类是View.OnClickListener,否则终止扫描,从而筛选出所有实现View.OnClickListener接口的类,通过visitMethod中判定是否为onClick方法,具体为若是,此方法的描述符是否为"(Landroid/view/View;)V",则对onClick方法的Java字节码改写,添加回调逻辑。
对于页面事件,以Fragment为例,Fragment的页面显示和隐藏事件需要根据onResume()、onPause()、onHiddenChanged()、setUserVisibleHint()这个四个方法综合得出,也就是说当项目中任一个Fragment发生如上状态变化,捕捉此时机,并上报相关页面事件即可,具体步骤为:
对项目中所有代码进行扫描,筛选出所有Fragment的子类;
对这些筛选出来的类的onResumed,onPaused,onHiddenChanged,setFragmentUserVisibleHint方法的字节码进行修改,添加回调的逻辑;
由此任何一个Fragment的回调触发的时候都可以得到通知,也即对Fragment的这几个切点进行了AOP。
对于异常事件,Android应用默认的未捕获异常处理器是通过实现Thread.UncaughtExceptionHandler接口并重写其中的uncaughtException方法完成的。UncaughtExceptionHandler用于处理由未捕获异常导致的线程崩溃,当线程出现了未捕获异常,***会调用默认的异常处理方法uncaughtException()进行处理,该方法主要完成强制停止应用运行的工作。因此本设计可以通过在调用默认的异常处理方法之前添加handleUncaughtException()方法,并在其中实现个性化的崩溃处理功能,然后再执行默认的异常处理方法就可以达到自定义的崩溃和异常处理目的,具体步骤是在Application的onCreate()方法中以单例模式创建、初始化和启动自定义的异常处理器来达到自定义异常处理器的全局设置。当应用运行发生异常时,根据所述类采集和处理异常情况,封装并上传异常数据。
步骤d中通过JSON将采集的运行数据进行数据格式转换封装,此处还可以通过封装模块加上一些通用的信息,例如发生时间、设备信息、地理位置信息、网络类型等等。
在步骤e中,将封装的数据上传到服务器进行保存分析,此处具体的上传策略由程序编写人员在配置数据中进行制定,可以为下一次应用启动时统一上传或即时上传,上传使用http协议通过post方式发送到服务器。
本设计不仅能够监控应用运行时信息、异常信息,实现异常的深度分析和定位,同时,还可对终端用户的用户体验数据进行监测,实现较为完整的Android应用运行时数据采集。
以上所述仅为本发明的优先实施方式,本发明并不限定于上述实施方式,只要以基本相同手段实现本发明目的的技术方案都属于本发明的保护范围之内。
Claims (7)
1.一种用于Android应用运行时数据采集的方法,其特征在于,包括以下步骤:
a、在Android应用编译、打包阶段导入包含采集、封装和上传功能的Java档案文件;
b、客户端在Android应用启动阶段通过Java档案文件从服务器端获取配置数据并且进行配置,该配置数据在服务器端根据需要采集的运行数据设置有数据采集代码;
c、根据配置数据中的数据采集代码采集Android应用运行时的运行数据;
d、将采集的运行数据进行封装;
e、将封装的数据上传到服务器进行保存分析。
2.根据权利要求1所述的一种用于Android应用运行时数据采集的方法,其特征在于:所述步骤b中从服务器获取配置数据,并且对配置数据进行验证,当验证成功则客户端根据获取的配置数据运行,当验证失败则客户端根据本地预设的默认配置数据运行。
3.根据权利要求2所述的一种用于Android应用运行时数据采集的方法,其特征在于:所述步骤b包括
步骤b1、在Android应用编译、打包阶段对Gradle插件进行编写,通过Gradle插件提供Transform API,并且在class文件转为dex文件前完成对class文件编译,从而找到字节码插桩入口,进入步骤b2;
步骤b2、根据配置数据对Java字节码进行改写,依照运行数据采集需求植入相应的数据采集代码,并且改写的Java字节码经由dex文件转化为apk文件。
4.根据权利要求3所述的一种用于Android应用运行时数据采集的方法,其特征在于:所述步骤c中Android应用运行时采集冷启动事件、点击事件、页面事件、应用异常事件中的运行数据。
5.根据权利要求4所述的一种用于Android应用运行时数据采集的方法,其特征在于,针对点击事件客户端根据配置数据进行配置的内容为:通过ClassVisitor对所有类中的class文件进行扫描,筛选出所有实现View.OnClickListener接口的类,通过visitMethod中判定是否为onClick方法,若是,则对onClick方法的Java字节码改写,添加回调逻辑。
6.根据权利要求1所述的一种用于Android应用运行时数据采集的方法,其特征在于:所述步骤d中通过JSON将采集的运行数据进行数据格式转换封装。
7.一种用于Android应用运行时数据采集的***,其特征在于:包括配置模块、采集模块、封装模块以及上传模块,配置模块在Android应用编译、打包阶段导入包含采集、封装和上传功能的Java档案文件,Java档案文件在客户端生成采集模块、封装模块以及上传模块,采集模块采集Android应用运行时的运行数据,并且将采集的运行数据输出到封装模块,封装模块对运行数据进行封装,上传模块将已封装的运行数据上传到服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810585906.2A CN108984203A (zh) | 2018-06-08 | 2018-06-08 | 一种用于Android应用运行时数据采集的方法及其*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810585906.2A CN108984203A (zh) | 2018-06-08 | 2018-06-08 | 一种用于Android应用运行时数据采集的方法及其*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108984203A true CN108984203A (zh) | 2018-12-11 |
Family
ID=64541026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810585906.2A Pending CN108984203A (zh) | 2018-06-08 | 2018-06-08 | 一种用于Android应用运行时数据采集的方法及其*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108984203A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134400A (zh) * | 2019-04-02 | 2019-08-16 | 北京奇艺世纪科技有限公司 | 数据获取方法、装置、电子设备及计算机可读存储介质 |
CN111352849A (zh) * | 2020-03-13 | 2020-06-30 | 杭州趣维科技有限公司 | 一种移动端***埋点解决方法 |
CN111966357A (zh) * | 2019-05-20 | 2020-11-20 | 北京车和家信息技术有限公司 | 一种操作***应用编译方法、装置及电子设备 |
CN112130818A (zh) * | 2020-09-15 | 2020-12-25 | 北京值得买科技股份有限公司 | 一种Android自动数据埋点方法 |
WO2021003922A1 (zh) * | 2019-07-10 | 2021-01-14 | 平安普惠企业管理有限公司 | 页面信息录入优化方法、设备、存储介质及装置 |
CN113703829A (zh) * | 2021-07-15 | 2021-11-26 | 郑州信大捷安信息技术股份有限公司 | 一种Android生命周期多业务分发方法及*** |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030167421A1 (en) * | 2002-03-01 | 2003-09-04 | Klemm Reinhard P. | Automatic failure detection and recovery of applications |
US8365198B2 (en) * | 2008-12-09 | 2013-01-29 | Microsoft Corporation | Handling exceptions in a data parallel system |
CN104156275A (zh) * | 2014-06-30 | 2014-11-19 | 青岛海信移动通信技术股份有限公司 | 一种安卓Android平台异常处理的方法和装置 |
CN104899130A (zh) * | 2015-05-22 | 2015-09-09 | 深圳市酷开网络科技有限公司 | 一种应用程序管理方法及*** |
CN105119899A (zh) * | 2015-07-17 | 2015-12-02 | 世纪龙信息网络有限责任公司 | 非入侵式客户端运行时数据采集方法与*** |
CN105760302A (zh) * | 2016-02-29 | 2016-07-13 | 浪潮软件集团有限公司 | 一种移动应用异常信息处理方法 |
CN106708643A (zh) * | 2016-11-14 | 2017-05-24 | 武汉斗鱼网络科技有限公司 | 异常信息处理方法及装置 |
US20180081918A1 (en) * | 2016-09-16 | 2018-03-22 | Oracle International Corporation | Historical data representation in cloud service |
CN108038045A (zh) * | 2017-12-29 | 2018-05-15 | 上海新炬网络技术有限公司 | 基于无埋点的Android用户行为数据采集方法 |
-
2018
- 2018-06-08 CN CN201810585906.2A patent/CN108984203A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030167421A1 (en) * | 2002-03-01 | 2003-09-04 | Klemm Reinhard P. | Automatic failure detection and recovery of applications |
US8365198B2 (en) * | 2008-12-09 | 2013-01-29 | Microsoft Corporation | Handling exceptions in a data parallel system |
CN104156275A (zh) * | 2014-06-30 | 2014-11-19 | 青岛海信移动通信技术股份有限公司 | 一种安卓Android平台异常处理的方法和装置 |
CN104899130A (zh) * | 2015-05-22 | 2015-09-09 | 深圳市酷开网络科技有限公司 | 一种应用程序管理方法及*** |
CN105119899A (zh) * | 2015-07-17 | 2015-12-02 | 世纪龙信息网络有限责任公司 | 非入侵式客户端运行时数据采集方法与*** |
CN105760302A (zh) * | 2016-02-29 | 2016-07-13 | 浪潮软件集团有限公司 | 一种移动应用异常信息处理方法 |
US20180081918A1 (en) * | 2016-09-16 | 2018-03-22 | Oracle International Corporation | Historical data representation in cloud service |
CN106708643A (zh) * | 2016-11-14 | 2017-05-24 | 武汉斗鱼网络科技有限公司 | 异常信息处理方法及装置 |
CN108038045A (zh) * | 2017-12-29 | 2018-05-15 | 上海新炬网络技术有限公司 | 基于无埋点的Android用户行为数据采集方法 |
Non-Patent Citations (5)
Title |
---|
ANDREY BRITO等: "Handling Crash and Software Faults Efficiently in Distributed Event Stream Processing", 《2010 THIRD INTERNATIONAL CONFERENCE ON DEPENDABILITY》 * |
PERI HARTMAN: "Need to handle uncaught exception and send log file", 《HTTPS://STACKOVERFLOW.COM/QUESTIONS/19897628/NEED-TO-HANDLE-UNCAUGHT-EXCEPTION-AND-SEND-LOG-FILE》 * |
孙敏等: "基于FWKN-SVM的Android异常入侵检测的研究", 《计算机科学》 * |
我是一个小朋友: "CrashHandler在开发中运用(单例模式)", 《HTTPS://BLOG.CSDN.NET/U012883858/ARTICLE/DETAILS/51327270》 * |
陶菜菜: "Android AOP之字节码插桩", 《HTTPS://WWW.JIANSHU.COM/P/C202853059B4》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134400A (zh) * | 2019-04-02 | 2019-08-16 | 北京奇艺世纪科技有限公司 | 数据获取方法、装置、电子设备及计算机可读存储介质 |
CN111966357A (zh) * | 2019-05-20 | 2020-11-20 | 北京车和家信息技术有限公司 | 一种操作***应用编译方法、装置及电子设备 |
CN111966357B (zh) * | 2019-05-20 | 2024-02-27 | 北京车和家信息技术有限公司 | 一种操作***应用编译方法、装置及电子设备 |
WO2021003922A1 (zh) * | 2019-07-10 | 2021-01-14 | 平安普惠企业管理有限公司 | 页面信息录入优化方法、设备、存储介质及装置 |
CN111352849A (zh) * | 2020-03-13 | 2020-06-30 | 杭州趣维科技有限公司 | 一种移动端***埋点解决方法 |
CN111352849B (zh) * | 2020-03-13 | 2023-05-16 | 杭州趣维科技有限公司 | 一种移动端***埋点解决方法 |
CN112130818A (zh) * | 2020-09-15 | 2020-12-25 | 北京值得买科技股份有限公司 | 一种Android自动数据埋点方法 |
CN113703829A (zh) * | 2021-07-15 | 2021-11-26 | 郑州信大捷安信息技术股份有限公司 | 一种Android生命周期多业务分发方法及*** |
CN113703829B (zh) * | 2021-07-15 | 2023-10-20 | 郑州信大捷安信息技术股份有限公司 | 一种Android生命周期多业务分发方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108984203A (zh) | 一种用于Android应用运行时数据采集的方法及其*** | |
CN107870933B (zh) | 统计安卓应用页面浏览行为的方法、装置及*** | |
US10769228B2 (en) | Systems and methods for web analytics testing and web development | |
US10705811B2 (en) | Method and system for automated, static instrumentation for applications designed for execution in environments with restricted resources, like mobile devices or TV set top boxes | |
CN108459962B (zh) | 代码规范性检测方法、装置、终端设备及存储介质 | |
CN106897215A (zh) | 一种基于WebView网页加载性能及用户行为流数据采集的方法 | |
CN110046073B (zh) | 一种日志采集方法及装置、设备、存储介质 | |
US9282100B2 (en) | Privilege separation | |
CN108536451B (zh) | 应用程序的埋点注入方法和装置 | |
CN111756714A (zh) | 一种用于工控协议的流量重放式测试方法及测试引擎 | |
CN105119899B (zh) | 非入侵式客户端运行时数据采集方法与*** | |
CN108809755A (zh) | 兼容命令行和web界面的家庭网关自动测试方法及*** | |
CN112559348B (zh) | 基于jacoco的测试分析方法、***、设备以及介质 | |
CN109710440A (zh) | 网页前端的异常处理方法、装置、存储介质及终端设备 | |
CN112667499A (zh) | 页面组件的测试方法、装置、计算机设备及存储介质 | |
CN114168421A (zh) | 基于微服务调用链的客户化代码兼容性分析***及方法 | |
CN111723019A (zh) | 接口的调试方法及*** | |
CN105550103B (zh) | 一种基于自定义测试脚本的自动化测试方法 | |
CN112256557B (zh) | 程序回归测试方法、装置、***、计算机设备及存储介质 | |
CN116431443A (zh) | 日志记录方法、装置、计算机设备及计算机可读存储介质 | |
CN112783791B (zh) | 接口测试案例的生成方法及装置 | |
Mostafa et al. | Netdroid: Summarizing network behavior of android apps for network code maintenance | |
CN114416545A (zh) | 确定测试代码覆盖率的方法、装置和电子设备 | |
CN113553250A (zh) | 一种代码的测试方法和装置 | |
US9106514B1 (en) | Hybrid network software provision |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181211 |