ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

如何集成华为AGC性能分析-Flutter

2022-07-08 09:06:20  阅读:212  来源: 互联网

标签:自定义 性能 await AGC networkMeasure 华为 应用 APM Flutter


简介

AppGallery Connect(简称AGC)性能管理(APM,App Performance Management)服务提供分钟级应用性能监控能力,您可以在AGC查看和分析APM收集到的应用性能数据,实时全面掌握应用在线的性能表现,帮助您快速闭环应用的性能问题,持续提升应用的用户体验。

开通服务和集成SDK

  1. 登录AppGallery Connect网站,点击“我的项目”。
  2. 在项目列表中找到您的项目,在项目下的应用列表中选择需要开通性能管理服务的应用。

cke_183.png

     3.进入“质量 > 性能管理”,如果APM服务未开通,请点击“立即开通”,开通APM服务。

cke_184.png

      4.选择常规页签下的“应用”区域,下载agconnect-services配置文件。

Android:下载agconnect-services.json文件。

iOS:下载agconnect-services.plist文件。

       5.在Flutter开发项目中添加配置文件。

Android:将配置文件agconnect-services.json添加到Cordova项目的android/app目录下。

iOS:用Xcode打开Cordova项目的iOS模块,将配置文件agconnect-services.plist添加进项目。

       6.在Flutter项目的pubspec.yaml文件中添加依赖。

dependencies:

flutter:

sdk: flutter

agconnect_apm: ^1.4.0+300

        7.在Terminal窗口执行flutter pub get或者点击Android Studio的Pub get添加依赖。

cke_185.png

        8.在Flutter plugins下显示了APM插件说明添加依赖成功。

cke_186.png

界面设计

您可以在Flutter项目中创建一个布局页面,参照下图进行设计。功能按钮如下:

  1. 开启和关闭收集性能监控数据按钮
  2. 是否启用ANR监控的按钮
  3. 设置参数追踪按钮
  4. 发起网络请求按钮
  5. 将用户ID与报告数据绑定

cke_187.png

功能开发

  1. 初始化APMS实例。
Future<void> main() async { 
   WidgetsFlutterBinding.ensureInitialized(); 
   await AGConnectAPM.getInstance().enableCollection(); 
      if (Platform.isAndroid) { 
         await AGConnectAPM.getInstance().enableAnrMonitor(); 
      } 
   runApp(_App()); 
}

     2.设置是否启用APM来收集性能监控数据。如果此参数设置为true,APM将收集应用性能数据。设置成false,则停止收集。我们以设置成true为示例:

await AGConnectAPM.getInstance().enableCollection(true);

     3.设置是否启用ANR监控功能。参数设置为true,表示启用了ANR 监控并报告了数据。要禁用ANR监控,将此参数设置为false。示例代码为设置成true。

await AGConnectAPM.getInstance().enableAnrMonitor(true);

      4.对于自定义跟踪记录,APM会自动采集默认属性(版本号、国家/地区、手机类型、一级区域、系统版本、运营商和网络)。同时,您还可以为该跟踪记录添加自定义属性来进一步过滤和细分数据。您可以调用createCustomTrace接口创建自定义跟踪记录。创建完成后,可调用start接口启动自定义跟踪记录,调用stop接口停止自定义跟踪记录。请参考如下代码:

final AGConnectAPMCustomTrace customTrace = await AGConnectAPM.getInstance().createCustomTrace('CustomTrace1'); 
await customTrace.start(); 
await customTrace.putMeasure('ProcessingTimes', 0); 
await Future.forEach( 
   List.generate(50, (_) => _), 
   (int i) async { 
      await customTrace.incrementMeasure('ProcessingTimes', i); 
   }, 
); 
await customTrace.putProperty('ProcessResult', 'Success'); 
await customTrace.putProperty('Status', 'Normal'); 
await customTrace.stop();

      5.您可以调用createNetworkMeasure接口创建网络请求指标。创建完成后,可调用start接口启动该指标,调用stop接口停止该指标。您还可以调用putProperty接口为网络请求指标添加自定义属性。

final String url = 'https://www-file.huawei.com/-/media/corporate/images/home/logo/huawei_logo.png'; 
final AGConnectAPMNetworkMeasure networkMeasure = await AGConnectAPM.getInstance().createNetworkMeasure( 
   url: url, 
   method: AGConnectAPMNetworkMeasureMethods.GET, 
   ); 
await networkMeasure.start(); 
final http.Response response = await http.get(Uri.parse(url)); 
await networkMeasure.setStatusCode(response.statusCode); 
if (response.request?.contentLength != null) { 
   await networkMeasure.setBytesSend(response.request!.contentLength!); 
} 
if (response.contentLength != null) { 
   await networkMeasure.setBytesReceived(response.contentLength!); 
   await networkMeasure.putProperty("BytesReceived", response.contentLength!.toString()); 
} 
await networkMeasure.stop();

      6.将用户ID与报告的数据绑定。报告性能数据时,还可以报告用户ID以方便定位故障。

await AGConnectAPM.getInstance().setUserIdentifier('UserIdentifier1');

查看和分析性能数据

  1. 选择“质量 > 性能管理”,进入“应用性能管理”页面。点击“概览",进入概览页面,可以看到指标概览。指标概览包括“应用启动耗时”、“冻结帧占比”、“屏幕加载耗时”、“屏幕呈现耗时”和“用户ANR率”。

cke_188.png

       2.选择“网络分析 ",就进入了网络分析详情页。该页面展示“网络请求耗时”和“网络请求成功率”详情。

cke_189.png

     3.如果用户设定了Property,则可在“查看详情”页面中的维度栏看到对应Property下的耗时情况和请求成功率情况。

cke_190.png

    4.点击“应用分析>应用启动耗时”,可以看到应用启动时长的分布情况。

cke_191.png

    5.点击“应用分析>自定义”,该页面呈现了目前上报的自定义事件列表,包含自定义事件名称、中位值、样本数和查看详情操作。

cke_192.png

    6.点击自定义事件的“查看详情"按钮,即可查看自定义事件耗时情况。

cke_193.png

参考文档

华为跨平台文档-Flutter

欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh

标签:自定义,性能,await,AGC,networkMeasure,华为,应用,APM,Flutter
来源: https://www.cnblogs.com/developer-huawei/p/16456952.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有