一文揭秘如何利用AndroidGodEye 打造Android应用性能测试监控

简介: 一文揭秘如何利用AndroidGodEye 打造Android应用性能测试监控

AndroidGodEye是什么?  


官网的介绍如下。


Android开发者在性能检测方面的工具一直比较匮乏,仅有的一些工具,
比如Android Device Monitor,使用起来也有些繁琐,
使用起来对开发者有一定的要求。
而线上的App监控更无从谈起。
所以需要有一个系统能够提供Debug和Release阶段全方位的监控,
更深入地了解对App运行时的状态。
AndroidGodEye是一个可以在PC浏览器中实时监控Android数据指标
比如性能指标,但是不局限于性能)的工具,
你可以通过wifi/usb连接手机和pc,通过pc浏览器实时监控手机性能。
AndroidGodEye 系统分为三部分:
Core 核心部分,提供所有模块
Debug Monitor部分,提供Debug阶段开发者面板
Toolbox 快速接入工具集,给开发者提供各种便捷接入的工具
AndroidGodEye提供了多种监控模块,
比如cpu、内存、卡顿、内存泄漏等等,
并且提供了Debug阶段的Monitor看板实时展示这 些数据。
而且提供了api供开发者在release阶段进行数据上报。


那么如何使用呢,接下来,我来带领大家去实际的去操作下。

     

首先呢,我们先去引入


dependencies {
    // 核心模块,必须依赖
      implementation 'cn.hikyson.godeye:godeye-core:3.4.2'
    implementation 'cn.hikyson.godeye:godeye-monitor:3.4.2'
    implementation 'cn.hikyson.godeye:godeye-okhttp:3.4.2'
    // 额外依赖,添加此依赖可以完成Crash监控,如果不依赖则无法监控Crash(安装了也不会生效)
    implementation 'cn.hikyson.godeye:godeye-xcrash:3.4.2'
}


备注,这里的gradle的版本需要6.1.1版本


支持页面生命周期耗时检测和方法耗时检测MethodCanary


在Root Project的build.gradle中添加


buildscript {
    repositories {
        jcenter()
    }
    dependencies {
    //我的配置classpath "cn.hikyson.methodcanary:plugin:0.15.0"
        classpath "cn.hikyson.methodcanary:plugin:PLUGIN_VERSION_NAME"
    }
}


 PLUGIN_VERSION_NAME参考 MethodCanary github release


在Application Module Project('com.android.application')的build.gradle中添加


apply plugin: 'cn.hikyson.methodcanary.plugin'
AndroidGodEye {
    enableMethodTracer true // 方法耗时检测,注意,生产包中关闭它,举例,这里可以这么写:!gradle.startParameter.taskNames.contains("assembleRelease")
    enableLifecycleTracer true // 页面生命周期检测
    instrumentationRuleFilePath 'AndroidGodEye-MethodCanary.js'
  }


需要配置AndroidGodEye-MethodCanary.js


如下


/**
    classInfo
        {int access
         String name
         String superName
         String[] interfaces}
     methodInfo
         {int access
         String name
         String desc}
**/
function isInclude(classInfo,methodInfo){
    if(!classInfo.name.startsWith('cn/hikyson/methodcanary')){
        return false;
    }
    if(classInfo.name.startsWith('cn/hikyson/methodcanary/samplelib/R$')
            || classInfo.name === 'cn/hikyson/methodcanary/samplelib/BuildConfig'){
            return false
    }
    return true
}


在debug配置


resValue("bool", "android_god_eye_manual_install", "false")
            resValue("bool", "android_god_eye_need_notification", "true")
            resValue("integer", "android_god_eye_monitor_port", "5390")
            resValue("string", "android_god_eye_install_assets_path", "android-godeye-config/install.config")


 在项目的目录下面创建assets目录,然后创建android-godeye-config,然后去创建install.config文件,具体路径如下


image.png


 文件内容如下


<config>
    <cpu intervalMillis="2000" />
    <battery />
    <fps intervalMillis="2000" />
    <leakCanary />
    <heap intervalMillis="2000" />
    <pss intervalMillis="2000" />
    <ram intervalMillis="2000" />
    <network />
    <sm dumpIntervalMillis="1000" longBlockThresholdMillis="500" shortBlockThresholdMillis="500" />
    <startup />
    <traffic intervalMillis="2000" sampleMillis="1000" />
    <crash immediate="false" />
    <thread intervalMillis="3000"
        threadFilter="cn.hikyson.godeye.core.internal.modules.thread.ExcludeSystemThreadFilter"
        threadTagger="cn.hikyson.godeye.core.internal.modules.thread.DefaultThreadTagger" />
    <pageload
        pageInfoProvider="cn.hikyson.godeye.core.internal.modules.pageload.DefaultPageInfoProvider" />
    <methodCanary lowCostMethodThresholdMillis="10" maxMethodCountSingleThreadByCost="300" />
    <appSize delayMillis="0" />
    <viewCanary maxDepth="10" />
    <imageCanary
        imageCanaryConfigProvider="cn.hikyson.godeye.core.internal.modules.imagecanary.DefaultImageCanaryConfigProvider" />
</config>


这要是一些监控的配置。配置完毕,我们需要在项目的主入口增加


GodEyeHelper.setMonitorAppInfoConext(new AppInfoConext() {
            @Override
            public List<cn.hikyson.godeye.core.monitor.AppInfoLabel> getAppInfo() {
                List<AppInfoLabel> appInfoLabels = new ArrayList<>();
                appInfoLabels.add(new AppInfoLabel("ApplicationID", "com", null));
                appInfoLabels.add(new AppInfoLabel("VersionName", "1.1.0", ""));
                appInfoLabels.add(new AppInfoLabel("AndroidGodEye", "https://github.com/Kyson/AndroidGodEye", "https://github.com/Kyson/AndroidGodEye"));
                return appInfoLabels;
            }
        });


然后就可以运行app,我们就可以在设备上运行。为了方便查看,


adb forward tcp:5390 tcp:5390


然后在本地浏览器就可以打开访问了。访问地址http://localhost:5390/index.html


界面如下。


image.png


image.png


这样我们在实际的测试中,就可以发现我们的应用中的性能问题了,尽早发现尽早处理。



相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
3天前
|
Android开发
Android应用实例(一)之---有道辞典VZ.0
Android应用实例(一)之---有道辞典VZ.0
10 2
|
5天前
|
JSON 监控 测试技术
Groovy脚本编写员工上网行为监控自动化测试
本文介绍了如何使用Groovy脚本创建一个自动化工具来监控员工的网络活动。通过编写简单脚本记录员工访问的网站并打印信息,可进一步扩展为将数据保存至数据库。此外,通过设定定时任务,实现了每30分钟自动监控一次的功能。最后,展示了如何将监控数据转换为JSON格式并使用HTTP POST请求提交到网站,以实现数据的自动化上报,有助于企业保障网络安全、保护数据并提升工作效率。
46 5
|
12天前
|
移动开发 Java Android开发
构建高效Android应用:Kotlin协程的实践之路
【4月更文挑战第30天】在移动开发领域,随着用户需求的不断增长和设备性能的持续提升,实现流畅且高效的用户体验已成为开发者的首要任务。针对Android平台,Kotlin协程作为一种新兴的异步编程解决方案,以其轻量级线程管理和简洁的代码逻辑受到广泛关注。本文将深入探讨Kotlin协程的概念、优势以及在实际Android应用中的运用,通过实例演示如何利用协程提升应用性能和响应能力,为开发者提供一条构建更高效Android应用的实践路径。
|
1天前
|
移动开发 API Android开发
构建高效Android应用:Kotlin协程的实践指南
【5月更文挑战第11天】 在移动开发领域,性能优化和资源管理是至关重要的。特别地,对于Android开发者来说,合理利用Kotlin协程可以极大地改善应用的响应性和稳定性。本文将深入探讨Kotlin协程在Android中的实际应用,包括它们如何简化异步编程模型、提高UI线程的响应性,以及减少内存消耗。我们将通过具体案例分析,了解如何在实际项目中有效地使用协程,从而帮助开发者构建更加高效的Android应用程序。
|
2天前
|
开发工具 Android开发 Windows
Android应用] 问题2:ERROR: unknown virtual device name:
Android应用] 问题2:ERROR: unknown virtual device name:
|
2天前
|
XML JSON API
转Android上基于JSON的数据交互应用
转Android上基于JSON的数据交互应用
|
4天前
|
安全 Java Android开发
构建高效Android应用:采用Kotlin进行内存优化的策略
【5月更文挑战第8天】 在移动开发领域,性能优化一直是开发者关注的焦点。特别是对于Android应用而言,合理管理内存资源是确保应用流畅运行的关键因素之一。近年来,Kotlin作为官方推荐的开发语言,以其简洁、安全和互操作性的特点受到开发者青睐。本文将深入探讨利用Kotlin语言特性,通过具体策略对Android应用的内存使用进行优化,旨在帮助开发者提高应用性能,减少内存消耗,避免常见的内存泄漏问题。
8 0
|
5天前
|
移动开发 数据库 Android开发
构建高效Android应用:Kotlin协程的全面应用
【5月更文挑战第7天】 在移动开发领域,性能优化与流畅的用户体验是至关重要的。随着Kotlin语言的流行,其并发神器——协程,已成为提升Android应用性能的重要工具。本文将深入探讨如何在Android项目中利用Kotlin协程进行异步编程、网络请求和数据库操作,以及如何通过协程简化代码结构,增强应用的响应性和稳定性。我们的目标是为开发者提供一套实用的协程使用模式和最佳实践,以便构建更加高效的Android应用。
21 3
|
5天前
|
移动开发 数据库 Android开发
构建高效Android应用:Kotlin与协程的完美结合
【5月更文挑战第7天】 在移动开发领域,性能优化和资源管理始终是核心议题。随着Kotlin语言的普及,其提供的协程特性为Android开发者带来了异步编程的新范式。本文将深入探讨如何通过Kotlin协程来优化Android应用的性能,实现流畅的用户体验,并减少资源消耗。我们将分析协程的核心概念,并通过实际案例演示其在Android开发中的应用场景和优势。
|
8天前
|
移动开发 前端开发 Android开发
构建高效Android应用:探究Kotlin协程的优势
【5月更文挑战第4天】 在移动开发领域,尤其是对于Android开发者而言,编写响应迅速且高效的应用程序至关重要。Kotlin作为一种现代的编程语言,其提供的协程特性为异步编程带来了革命性的改变。本文将深入探讨Kotlin协程在Android开发中的应用优势,并通过实例代码展示如何利用协程简化异步任务处理,提高应用性能和用户体验。

推荐镜像

更多