Android平台零代码快速集成AGC性能管理服务

Stella981
• 阅读 732

  在使用手机应用的时候,经常会有应用打开慢、界面卡顿无反应、应用闪退、网络加载失败等问题,这些应用性能问题,都是影响用户体验的罪魁祸首。

  随着手机应用性能的重要性逐步提升,越来越多监控应用性能的产品也应运而生。华为AppGallery Connect(以下简称AGC)提供了应用开发,测试,发布以及分析的全流程的质量服务。

1. 华为AGC性能管理服务

  性能管理(App Performance Management,以下简称APM)服务是AGC质量系列服务中的其中一项,提供全免费的,分钟级应用性能监控能力。主要有以下功能:

  • 自动采集应用启动,屏幕性能数据,网络请求数据,前台和后台活动数据。

  • 实时监控:性能数据上报15分钟内生成可视化报告。

  • 提供应用性能数据分析报表,精准发现性能改进点。

  • 支持自定义跟踪记录,监控应用在特定场景下的性能数据。

  对比与其他第三方监控平台,性能管理服务有以下特点:

  • 极简集成:无需编写代码,即可轻松集成,分析通用性能指标。

  • 实时监控:性能数据上报15分钟内生成可视化报告。

  • 应用性能全覆盖:应用启动、ANR分析、页面渲染、网络请求自动化跟踪,同时支持自定义跟踪记录,自定义指标和维度。

2. 集成AGC性能管理

  从华为的官方资料可知,AGC性能管理的集成步骤非常简单,只需要在代码中将插件和SDK添加到对应的位置即可,属于零代码集成。可简单归纳为以下几个步骤:

  1. 创建应用并开通性能管理服务;

  2. 下载和集成json文件;

  3. 配置APM插件APM SDK;

  4. 配置混淆文件。

  完成这四步,即可打包运行该应用,稍后即可在AGC性能管理界面查看所采集到的性能数据。

2.1 创建应用并开通性能管理服务

  在AGC控制台,创建应用,并且开通性能管理服务,创建应用的时,注意应用的包名要和APK里的包名保持一致。如果是在已有的应用里集成性能管理,注意包名需要和AGC控制台创建应用时配置的包名保持一致 。

  创建好应用后(或者使用已有的应用),在界面上找到 我的项目 -> 质量 –>性能管理,点击立即开通 ,即可开通AGC性能管理服务。

Android平台零代码快速集成AGC性能管理服务

2.2 下载和集成json文件

  在Android Studio中新建一个Android工程。包名需要和AGC界面上的包名保持一致。

  然后回到AGC首页,在 我的项目 -> 项目设置 –>应用 界面下,找到并且将agconnect-services.json文件下载到本地,然后把这个文件,放到Android工程的app层级目录下。

Android平台零代码快速集成AGC性能管理服务

2.3 集成APM插件与APM SDK

  配置SDK地址,打开Android工程,在项目级build.gradle文件中,配置下面的内容

buildscript {
    repositories {
        //配置如下地址
        maven {url 'https://developer.huawei.com/repo/'}
    }
    dependencies {
        //配置如下地址
        classpath 'com.huawei.agconnect:agcp:1.4.1.300'
        classpath 'com.huawei.agconnect:agconnect-apms-plugin:1.3.1.300'
    }
}
  
allprojects {
repositories {
//配置如下地址
        maven {url 'https://developer.huawei.com/repo/'}
    }
}

  打开应用级的build.gradle文件,配置好APM的SDK,配置下面的内容即可

//配置如下地址
apply plugin: 'com.huawei.agconnect'
apply plugin: 'com.huawei.agconnect.apms'
  
dependencies {
//配置如下地址
implementation 'com.huawei.agconnect:agconnect-apms:1.3.1.300' 
}

2.4 配置混淆文件

  找到应用级的proguard-rules.pro文件(混淆配置文件),添加以下排除项。

-keep class com.huawei.agconnect.**{*;} 
-dontwarn com.huawei.agconnect.** 
-keep class com.hianalytics.android.**{*;} 
-keep class com.huawei.updatesdk.**{*;} 
-keep class com.huawei.hms.**{*;} 
-keep interface com.huawei.hms.analytics.type.HAEventType{*;} 
-keep interface com.huawei.hms.analytics.type.HAParamType{*;} 
-keepattributes Exceptions, Signature, InnerClasses, LineNumberTable

  涉及到文件和对应的步骤,可以参考下面的截图

Android平台零代码快速集成AGC性能管理服务

2.5 集成完成,打包测试

  集成完成后,点击Android Studio工程右上角的Sync,打包应用放到Android设备上运行,然后就可以在AGC界面上查看性能管理服务所采集到的数据与报告。

  为了获得更多的数据,可找多台设备安装并运行该应用。

3. 查看性能数据和ANR数据

  充分在设备上运行该应用以后,回到AGC界面,在 我的项目 -> 质量 –> 性能管理 界面下,可以查看该应用测试运行时的各项性能数据。

  信息非常全面,应用分析,ANR分析,网络分析 三方面的数据都有。下面是我的个人应用使用性能管理以后的实际分析报告,供大家参考:

3.1 概览数据:

Android平台零代码快速集成AGC性能管理服务

3.2 应用分析数据:

Android平台零代码快速集成AGC性能管理服务

3.3 ANR分析数据:

Android平台零代码快速集成AGC性能管理服务

3.4 网络分析数据:

Android平台零代码快速集成AGC性能管理服务

4.总结

  未涉及业务代码的编写,仅通过简单的4项步骤,就顺利完成了华为AGC性能管理服务SDK的集成。实现了非常全面的应用性能数据的监控,可以说非常便捷实用。

  AGC性能管理的分析报告,提供了性能问题出现瞬间的详细的设备与日志信息、性能数据,实时的监测报告为产品和运营提供了优化方向,同时也解决了性能问题开发难定位,测试难复现的问题,大幅减少了开发测试工作量。

  欲了解更多详情,请参见:

  性能管理开发指南:https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-apms-introduction


原文链接:https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-apms-introduction 作者:鼓楼赵又廷

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
Cocos平台集成AGC性能管理(二)—— 性能管理SDK集成
Cocos平台集成AGC性能管理(二)——性能管理SDK集成在掌握了如何将Cocos应用发布到华为AppGalleryConnect(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fdeveloper.huawei.com%2Fconsumer%2Fcn%2Fforum%2Fto
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这