移动性能监控 SDK 详细集成文档

一. Gradle配置

在 Project 的 build.gradle 文件中添加ArgusAPM的相关配置,示例如下:

在项目根目录的 build.gradle(注意:不是 app/build.gradle) 中添加以下配置:

buildscript {

repositories {

jcenter()

}

dependencies {

classpath 'com.android.tools.build:gradle:2.2.3'

classpath 'com.qihoo360.argusapm:argus-apm-gradle-asm:3.0.1.1001'

}

}

allprojects {

repositories {

jcenter()

}

}

在app的build.gradle 文件中添加插件引用,示例如下:

apply plugin: 'argusapm'

//在android的配置代码块里面(为了兼容Android6.0系统):

android {

useLibrary ‘org.apache.http.legacy‘

}

特殊配置

如果接入过程一切正常,可忽略该部分。

ArgusAPM的部分监控代码,是通过Gradle的Transform API,在编译期织入的,由于我们在开发中可能会引入各种lib库,而这些库可能会因各种各样的原因,不允许我们织入,具体表现就是,编译期报如下错:

can't determine superclass of missing type**

when weaving type**

when weaving classes

when weaving

when batch building BuildConfig[null] #Files=0 AopXmls=#0[Xlint:cantFindType]

如果您在编译期遇到如上问题,则需要找到对应报错的库,把这个库过滤掉,具体过滤方式:

1)在主项目build.gradle同级目录下,新增argusapm.gradle文件,内容如下:

apply plugin: 'argusapm'

argusApmAjxConfig

{

exclude 'com.qihoo360.xxx' // 跳过 com.qihoo360.xxx包下的所有文件

excludeJar 'libammsdk'// 跳过 libammsdk.jar

}

2)将app的build.gradle中的apply plugin: ‘argusapm’ 修改为apply from: ‘argusapm.gradle’。

二. AndroidManifest.xml配置

a. 权限相关

b. 组件使用

需要在AndroidManifest.xml里添加如下组件声明:

android:name="com.argusapm.android.core.storage.ApmProvider"

android:authorities="{当前应用的applicationId}.apm.storage"

android:exported="false" />

**三. 代码部分(重要类介绍及使用方法)**​

Config.ConfigBuilder配置项方法说明:

方法

说明

setAppContext

设置ArgusAPM所需要的上下文环境(必选)

setAppName

设置APP名称(英文,必选)

setAppVersion

设置APP版本号(必选)

setApmid

设置ArgusAPM分配给应用的唯一标识appkey(必选,由移动性能监控服务提供,不可随意设置)

setRuleRequest

设置云规则请求

setUpload

设置ArgusAPM采集到的数据上传

setEnabled

设置ArgusAPM在当前进程是否启用某个收集模块的逻辑,用于多进程场景(可选),参数见flag说明

setDisabled

设置ArgusAPM在当前进程是否禁用某个收集模块的逻辑,用于多进程场景(可选),参数见flag说明

build

最终生成Config对象

Client类的主要方法(启动移动性能监控服务):

方法

说明

attach

使用Config.ConfigBuilder初始化ArgusAPM(建议在Application的attachBaseContext里调用)

isDebugOpen

是否开启debug模式,,如果开启的话,则会有悬浮窗功能

startWork

启用ArgusAPM开始工作

四. 一个简单的SDK初始化代码

在项目的Application的attachBaseContext里调用如下代码即可

// 注:根据实际情况,来选择主进程

// 如果您有常驻进程,则主进程是常驻进程

// 如果您是单进程模型,则主进程是UI进程

boolean isMainProcess = TextUtils.equals(getPackageName(), getCurrentProcessName());

Config.ConfigBuilder builder = new Config.ConfigBuilder()

.setAppContext(this)

.setRuleRequest(new RuleSyncRequest())

.setUpload(new CollectDataSyncUpload())

.setAppName("apm_demo")

.setAppVersion("0.0.1")

.setApmid("apm_demo");

//单进程应用可忽略builder.setDisabled相关配置。

if(!isMainProcess) {

//除了“主进程”,其他进程不需要进行数据上报、清理等逻辑。“主进程”通常为常驻进行,如果无常驻进程,即为UI进程。

builder.setDisabled(ApmTask.FLAG_DATA_CLEAN) //只有主进程才清理数据

.setDisabled(ApmTask.FLAG_CLOUD_UPDATE)//只有主进程才执行云控

.setDisabled(ApmTask.FLAG_DATA_UPLOAD)//只有主进程才执行数据上报

.setDisabled(ApmTask.FLAG_COLLECT_ANR)//只有主进程才收集ANR

.setDisabled(ApmTask.FLAG_COLLECT_FILE_INFO) //只有主进程才收集文件信息

.setDisabled(ApmTask.FLAG_COLLECT_CPU);//只有主进程才收集CPU数据

}

//builder.setEnabled(ApmTask.FLAG_COLLECT_ACTIVITY_AOP); //activity采用aop方案时打开,默认关闭即可。

//builder.setEnabled(ApmTask.FLAG_LOCAL_DEBUG); //是否读取本地配置,默认关闭即可。

Client.attach(builder.build());

// Client.isDebugOpen(true, getPackageName());// 是否展示debug模式悬浮窗。根据项目需求添加

Client.startWork();

注意:

apmid(appkey)名称必须保证唯一性,由Argus APM统一分配,请勿随意填写。

申请地址:现已停止对外接入服务,详情请查看首页公告!

如此,移动性能监控 SDK就接入完成,更多技巧请参考详细接入文档。

五. 接入成功日志输出

接入完毕,运行应用,如果看到以下log,说明接入成功:

六. 混淆相关

无需任何混淆配置,因为ArgusAPM的AAR自带Proguard文件,直接接入ArgusAPM-SDK即可生效。

Android apm监控框架,移动性能监控 SDK 详细集成文档相关推荐

  1. 闪验联通定制版SDK iOS集成文档

    SDK说明 适用版本 本文匹配的 SDK 版本:2.0.5及以上版本. 使用 Xcode 10.0 及以上版本 资源文件 待定?? 创建应用 在 创蓝万数平台的闪验 上创建应用,通过审核后将会得到ap ...

  2. 美团性能分析框架和性能监控平台

    2019独角兽企业重金招聘Python工程师标准>>> 美团性能分析框架和性能监控平台 美团的性能小组在过去1年的时间,成功将项目详情页.首页.搜索和筛选页的加载时间从10秒左右降到 ...

  3. 服务器实时状态检测源码,开源运维监控框架Netdata——实时监控系统性能

    开源运维监控框架Netdata--实时监控系统性能 开源运维监控框架Netdata--实时监控系统性能 作为一个Linux的SA,很有必要掌握一个专门的系统监控工具,以便能随时了解系统资源的占用情况. ...

  4. 监控宝 mysql_监控宝服务性能监控配置(完整版)

    继上篇监控宝服务器监控后,此篇博文详细记录下项目中对常用服务监控的配置步骤 监控宝服务性能监控配置(完整版) 一.目的 本文是在<监控宝服务器与服务性能监控配置>(URL:https:// ...

  5. android sdk集成文档,android jpush sdk 集成文档.pdf

    android jpush sdk 集成文档 使⽤提⽰ 本⽂是 Android SDK 标准的集成指南⽂档. 匹配的 SDK 版本为:v2.0.5 及以后版本. 本⽂随SDK压缩包分发.在你看到本⽂时 ...

  6. UMeng统计分析Android集成文档

    相信大家对友盟应该不陌生了有些人可能用了它的多渠道打包,有的开发者可能用导它的分享sdk等等,今天我给大家介绍下怎样简单集成友盟统计分析Android集成文档,废话不多说下面看主要步骤: - 1. 集 ...

  7. Android极光推送厂商离线通道集成文档及flutter集成总结

    <极光推送厂商离线通道集成文档> flutter集成指南 1.Android端配置 gradle配置 //极光推送def jpushVersion = '4.4.0'implementat ...

  8. 微信sdk服务器文档,4.4. 微信小程序 SDK 集成文档

    微信小程序 SDK 集成文档 下载SDK 请联系客户经理获取SDK. 引入SDK 在您工程的app.js中,引入SDK: -- var adhoc = require('./utils/ab.wx.j ...

  9. ArchSummit深圳APM专场总结:性能监控与调优实践干货分享

    随着应用性能管理(APM)越来越被开发和运维人员所熟知,7月17日在深圳召开的ArchSummit 2015全球架构师峰会特开设应用性能管理专场,来自听云.腾讯和OPPO的讲师分享了他们在性能监控.管 ...

最新文章

  1. MATLAB【八】———— matlab 读取单个(多个)文件夹中所有图像
  2. 机器学习算法与技术简介
  3. 用ul li实现边框重合并附带鼠标经过效果
  4. C++求三位数的水仙花数
  5. 脚本实现为一系列账号生成随机密码
  6. 软件外包中常见的七个错误之一 - 不懂用户需求
  7. pycharm英文版转成中文版
  8. 离子交换树脂工艺解决电脑印刷线路板废水镍超标
  9. 什么软件能做英语测试卷听力,英语听力app哪个好用-什么英语听力软件最好
  10. 一个计算机爱好者的不完整回忆(三十一)我的拼音输入法
  11. 仓库5s管理推行难点分析
  12. 基于易智瑞(ArcGIS)JavaScript API的视频融合探索
  13. 注解和注解处理器APT
  14. Linux管道命令及管道相关命令(详细)
  15. 前端初学阶段总结与笔记
  16. Qml自定义等待指示器
  17. html插入隐藏背景音乐,HTML插入背景音乐方法【全】
  18. C++各行小数点对齐
  19. CSS解决英文自动换行问题
  20. 修理牛棚 贪心 USACO

热门文章

  1. markdown标签
  2. 计算机可以辅助英语写作吗,计算机辅助大学英语写作
  3. 用计算机弹醒不来的梦,抖音梦里梦到醒不来的梦是什么歌
  4. java ygc 频繁_jvm之判断ygc耗时和频率
  5. 没有美术基础学游戏建模走的通吗?
  6. 硬件、网卡驱动官方下载地址
  7. tf 加速训练,节省内存 fit_generator
  8. 高斯列主元消去法——C实现
  9. [Audio]基础声电-THD分析
  10. MD5.js,前端MD5加密