性能管理(App Performance Management,简称APM)是华为应用市场AppGallery Connect(简称AGC)质量系列服务中的其中一项,可以提供分钟级应用性能监控能力,支持Android、iOS、Web多个平台,可查看和分析APM收集到的应用性能数据,实时全面掌握应用在线的性能表现,帮助您快速闭环性能问题,持续提升应用的用户体验。

性能管理服务优势

下面我们从总体上看一下,性能管理服务具备哪些优点:

1.跨平台:APM支持Android、iOS、Web多个平台,也支持基于Unity和Cocos引擎开发的游戏应用,使其可以方便用于各种开发场景;

2.易集成:零代码开发,平均集成耗时在5分钟以内;

3.​场景化:APM当前支持应用启动、页面加载、页面渲染等多个性能监控场景,而且在场景化基础上,支持应用ANR监控,提供丰富的ANR信息,在线快速解决ANR问题;

4.全流程:与传统工作在开发态、测试态性能分析工具相比,APM贯穿了应用开发、测试、发布的全流程;

APM还具备实时性和可视化的特点,强大的数据分析和可视化系统提供了分钟级的实时监控能力。为了帮助您快速感知用户体验问题,我们细化了应用启动、页面加载、页面渲染、网络请求等场景下的监控指标,比如网络请求监控包含了请求耗时、包大小、状态码等。这些标准的监控场景之外,为了满足您定制化的监控诉求,我们进一步提供了自定义跟踪监控,支持您上报自定义属性和指标,监控应用在自定义场景下的性能。

性能管理服务使用场景

接下来,我们看下APM的使用场景:

1.应用启动耗时场景中提供了按分位值分布,按时间分布,按应用版本分布的启动耗时分析图表,并支持按照版本号、国家地区、手机型号、系统版本等维度的筛选及下钻分析。在应用新版本发布后,我们可以查看应用启动耗时是否有增加或减少的现象。

2.在应用页面渲染也就是我们通常说的页面卡顿场景中,您可以查看各页面的缓慢帧、冻结帧的占比,对于占比比较高的页面,可以按照应用版本、手机型号、系统版本等维度进行下钻分析,识别出卡顿问题的根本原因。

3.在应用网络请求场景下,您可以查看网络请求响应时间、成功率等指标,并按照设备所处的国家地区、网络及运营商信息等维度进行下钻分析,以便快速定位网络请求异常问题。

零代码集成AGC性能管理服务

了解过上述场景后,我们来看看如何在Android平台集成该服务。APM集成步骤非常简单,只需要在开通服务后在代码中集成插件和SDK即可,实现零代码快速集成。

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

首先,我们在AGC控制台创建应用并开通APM,创建应用的时候,注意应用的包名要和APK里的包名保持一致。如果是在已有的应用里集成APM,注意包名需要和AGC控制台创建应用时配置的包名保持一致 。创建好项目应用后,或者使用已有的应用,在界面上找到“我的项目-质量-性能管理”,点击立即开通即可。

2.下载和集成json文件

在Android Studio中新建一个Android工程,包名需要和AGC界面上的包名保持一致,然后回到AGC首页,在“我的项目-项目设置-应用”界面下,找到并且将agconnect-services.json文件下载到本地,放到Android工程的app层级目录下。

3.集成APM插件与APM SDK

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

打开应用级的build.gradle文件,将APM的SDK添加到您的应用,配置内容如下:

4.配置混淆文件

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

集成结束后,点击Android Studio工程右上角的Sync,打包应用放到Android设备上运行,然后就可以在AGC界面上查看APM所采集到的数据与报告。整个集成过程未涉及业务代码的编写,仅通过简单的4项步骤就顺利完成,便捷高效。

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

以上关于性能管理的分享到这里就结束了,了解更多信息,请前往AGC官网参阅性能管理服务,或查看GitHub Demo(APM)、Codelab(Android)、Codelab (iOS)。

还有更多AppGallery Connect服务支持Android、iOS、Web、快应用多个平台,具备跨平台特性,能够集成到Flutter、Cordova和React Native跨平台框架上,基于Unity和Cocos游戏引擎开发的游戏应用也可以集成AGC相关服务。如您有任何疑问,可以通过agconnect@huawei.com与我们联系。

最新文章

  1. ASP.NET五步打包下载Zip文件
  2. html内的空格占位
  3. 使用SOUI开发的界面集锦
  4. http://www.roncoo.com/course/view/a09d8badbce04bd380f56034f8e68be0
  5. PHP.5-DIV+CSS布局网站首页实例
  6. accept系统调用内核实现
  7. SVN中更改连接用户
  8. (二)Linux下的crontab定时执行任务命令详解
  9. 《数学之美》--第一章:文字和语言 vs 数字和信息
  10. matplotlib坐标轴的一些操作
  11. Linux ethtool 命令
  12. English trip V1 - B 16. Giving Reasons 提供个人信息 Teacher:Lamb Key: Why/Because
  13. 大型发布会现场的 Wi-Fi 应该如何搭建(密集人群部署wifi抗干扰)?
  14. Hadoop Spark 基础教程
  15. angular之$watch() $watchGroup()和$watchCollection()
  16. 532. K-diff Pairs in an Array绝对值差为k的数组对
  17. hibernate的几个重要的类和接口
  18. XtraTabPage右键菜单(关闭当前页、关闭其它页、所有关闭的实现)
  19. CSDN学院 免费技术答疑公开课,本周四场即将开播~~~
  20. oracle Date format日期和月份不补0

热门文章

  1. react性能提升
  2. python中lambda、yield、map、filter、reduce的使用
  3. Ubuntu的点滴-Vim、VM Tools、Samba、换源
  4. Linux常用操作命令之文件权限(二)
  5. PAT-1064(Complete Binary Search Tree)JAVA实现
  6. React函数式组件和类组件[Dan]
  7. Vmware虚拟机CentOS7、Ubuntu20系统设置静态IP,且主机和虚拟机系统能相互ping通。
  8. 打造综合性智慧城市之朔州开发区 3D 可视化
  9. drf给上传图片重命名
  10. ts装饰器的用法,基于express创建Controller等装饰器