uniapp原生插件之安卓腾讯Bugly专业版原生插件

news2024/10/7 14:28:39

插件介绍

Bugly专业版是TDS腾讯端服务(Tencent Device-oriented Service)旗下的端质量监控平台,通过采集、监控、定位、告警等核心能力,提供专业的质量监控服务,帮助开发者及时发现并解决质量问题,打造高质量应用。
Bugly专业版本可以帮助你发现多类异常问题,如崩溃,ANR,OOM,内存使用异常,应用操作卡顿,启动耗时过长等质量问题。Bugly专业版通过灵活的告警配置,支持分钟粒度的异常探测,快速识别异常并及时告警。与此同时,平台提供了丰富的归因分析能力,包含不限于异常现场分析,条件对比分析,自定义下钻分析,维度分析等等。通过分钟级的上报趋势,以及多维度统计,用户可以快速了解到各类指标的变化趋势。

插件地址

安卓腾讯bugly专业版原生插件 - DCloud 插件市场

超级福利

uniapp 插件购买超级福利

详细使用文档

uniapp 安卓腾讯Bugly专业版原生插件使用文档

用法

在需要使用插件的页面加载以下代码

const module = uni.requireNativePlugin("leven-qqBuglyPro-BuglyModule");

 页面内容

<template>
  <view>
    <uni-card title="腾讯bugly专业版APP性能监控原生插件">
      <view style="margin-bottom: 20px;">
        <button type="primary" @click="init">初始化</button>
        <button type="primary" @click="updateUniqueId">更新设备ID</button>
        <button type="primary" @click="updateUserId">更新用户ID</button>
        <button type="primary" @click="updateDeviceModel">更新设备型号</button>
        <button type="primary" @click="postException">上报自定义异常</button>
        <button type="primary" @click="putUserData">添加自定义数据</button>
        <button type="primary" @click="removeUserData">移除自定义数据</button>
        <button type="primary" @click="enterScene">进入自定义场景</button>
        <button type="primary" @click="exitScene">退出自定义场景</button>
        <button type="primary" @click="setCrashMonitorAble">设置crash监控动态开关</button>
        <button type="primary" @click="getBuglyMonitorNames">获取所有监控项</button>
        <button type="primary" @click="setPerformanceMonitorsAble">设置性能监控动态开关</button>
        <button type="primary" @click="setPerformanceMonitorAble">设置单个性能监控动态开关</button>
        <button type="primary" @click="abolishPerformanceMonitors">停止所有的性能监控项</button>
        <button type="primary" @click="appLaunchStart">开启启动监控</button>
        <button type="primary" @click="appLaunchSpanStart">启动监控打点</button>
        <button type="primary" @click="appLaunchSpanEnd">启动监控结束打点</button>
        <button type="primary" @click="appLaunchEnd">结束整个启动监控</button>
        <button type="primary" @click="crashTest('Java')">崩溃模拟JAVA异常</button>
        <button type="primary" @click="crashTest('Native')">崩溃模拟Native异常</button>
        <button type="primary" @click="crashTest('ANR')">模拟ANR异常</button>
        <button type="primary" @click="crashTest('OOM')">模拟OOM异常</button>
      </view>
    </uni-card>
  </view>
  </view>
</template>

<script>
  const module = uni.requireNativePlugin("leven-qq-buglyPro-BuglyModule");
  export default {
    data() {
      return {}
    },
    methods: {
      // 初始化
      init() {
        module.init({
          // 【必需设置】在Bugly 专业版 注册产品的appID
          appID: "c6a0a9f61f",
          // 【必需设置】在Bugly 专业版 注册产品的appKey
          appKey: "70472715-1aaa-49c4-aef3-1c05275d24e3",
          // 【推荐设置】设置设备唯一ID,必须保证唯一性,不设置则由Bugly生成唯一ID,影响设备异常率的统计以及联网设备数的统计,建议sp保存复用;
          uniqueId: "asdasd",
          // 【推荐设置】设置用户ID,影响用户异常率的统计,建议sp保存复用,同一进程生命周期里面,暂不支持多次设置;
          userId: "leven",
          // 【推荐设置】设置设备类型,设置机型后,Bugly SDK不再读取系统的机型
          deviceModel: "phone",
          // 【推荐设置】设置App版本号,不设置则从packageManager中读取。建议按应用的规范,主动设置,需要跟上传符号表的应用版本参数保持一致。
          appVersion: "1.0.0.20231027",
          // 【推荐设置】设置App版本的构建号,用于Java堆栈翻译关联版本,跟上传符号表的构建号参数保持一致。
          buildNumber: "100",
          // 【推荐设置】设置版本类型
          appVersionType: "debug",
          // 设置App的渠道
          appChannel: "android1",
          //设置Crash时是否抓取全部线程堆栈,默认开启
          enableAllThreadStackCrash: true,
          //设置Anr时是否抓取全部线程堆栈,默认开启
          enableAllThreadStackAnr: true,
          //设置性能监控时开启Crash保护模式,默认开启
          enableCrashProtect: true
        }, res => {
          console.log(res)
        })
      },
      // 更新设备id
      updateUniqueId() {
        module.updateUniqueId({
          deviceId: "abcdefg"
        }, res => {
          console.log(res)
        })
      },
      // 更新用户id
      updateUserId() {
        module.updateUserId({
          userId: "leven1"
        }, res => {
          console.log(res)
        })
      },
      // 更新设备型号
      updateDeviceModel() {
        module.updateDeviceModel({
          model: "ANN00"
        }, res => {
          console.log(res)
        })
      },
      // 上报自定义异常
      postException() {
        module.postException({
          // 异常类型 u3d c# : 4 | js : 8 | cocos2d lua : 6
          category: 8,
          // 错误类型
          errorType: "JSON",
          // 错误信息
          errorMsg: "这是一条自定义异常消息",
          // 出错堆栈
          stack: "Exception",
          // 额外信息
          extraInfo: [{
            key: "extra1",
            value: "extra1"
          }, {
            key: "extra2",
            value: "extra2"
          }]
        }, res => {
          console.log(res)
        })
      },
      // 添加自定义数据
      putUserData() {
        module.putUserData({
          key: "key1",
          value: "value1"
        }, res => {
          console.log(res)
        })
      },
      // 移除自定义数据
      removeUserData() {
        module.removeUserData({
          key: "key1"
        }, res => {
          console.log(res)
        })
      },
      // 进入自定义场景
      enterScene() {
        module.enterScene({
          sceneName: "sceneName1"
        }, res => {
          console.log(res)
        })
      },
      // 退出自定义场景
      exitScene() {
        module.exitScene({
          sceneName: "sceneName1"
        }, res => {
          console.log(res)
        })
      },
      // 设置crash监控动态开关
      setCrashMonitorAble() {
        module.setCrashMonitorAble({
          // crash类型,可填入JAVA_CRASH、NATIVE_CRASH、ANR_CRASH
          crashType: "JAVA_CRASH",
          // true 打开,false 关闭
          isAble: true
        }, res => {
          console.log(res)
        })
      },
      // 获取所有监控项
      getBuglyMonitorNames() {
        module.getBuglyMonitorNames(res => {
          console.log(res)
        })
      },
      // 设置性能监控动态开关
      setPerformanceMonitorsAble() {
        module.setPerformanceMonitorsAble({
          // 监控项
          monitorList: ["looper_metric", "looper_stack"],
          // true 打开,false 关闭
          isAble: true
        }, res => {
          console.log(res)
        })
      },
      // 设置单个性能监控动态开关
      setPerformanceMonitorAble() {
        module.setPerformanceMonitorAble({
          // 监控项
          monitorName: "looper_metric",
          // true 打开,false 关闭
          isAble: false
        }, res => {
          console.log(res)
        })
      },
      // 停止所有的性能监控项
      abolishPerformanceMonitors() {
        module.abolishPerformanceMonitors(res => {
          console.log(res)
        })
      },
      // 开启启动监控
      appLaunchStart() {
        module.appLaunchStart({
          // 启动标签,可以为空
          tag: "login"
        }, res => {
          console.log(res)
        })
      },
      // 启动监控打点,必须先开启启动监控
      appLaunchSpanStart() {
        module.appLaunchSpanStart({
          // 开始打点的span名称
          spanName: "verification_code",
          // 当前要打点的span的父span的名称
          parentSpanName: "login"
        }, res => {
          console.log(res)
        })
      },
      // 启动监控结束打点,必须先开启启动监控
      appLaunchSpanEnd() {
        module.appLaunchSpanEnd({
          // 开始打点的span名称
          spanName: "verification_code"
        }, res => {
          console.log(res)
        })
      },
      // 结束启动监控
      appLaunchEnd() {
        module.appLaunchEnd(res => {
          console.log(res)
        })
      },
      // 崩溃测试
      crashTest(type) {
        module.crashTest({
          //Java:Java异常,Native:Native异常
          type: type
        }, res => {
          console.log(res)
        })
      }
    }
  }
</script>

<style>

</style>

插件方法

  • 初始化
  • 更新设备ID
  • 更新用户ID
  • 更新设备型号
  • 上报自定义异常
  • 添加自定义数据
  • 移除自定义数据
  • 进入自定义场景
  • 退出自定义场景
  • 设置crash监控动态开关
  • 获取所有监控项
  • 设置性能监控动态开关
  • 设置单个性能监控动态开关
  • 停止所有的性能监控项
  • 开启启动监控
  • 启动监控打点
  • 启动监控结束打点
  • 结束整个启动监控
  • 崩溃模拟

具体方法的使用请参考使用说明文档 

联系作者

购买插件前请先试用,试用通过再购买。在试用中如果遇到任何问题,可与作者联系,QQ:334106817,将全力协助你使用本插件

预览图片

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1182418.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SQL注入漏洞:CMS布尔盲注python脚本编写

SQL注入漏洞:CMS布尔盲注python脚本编写 文章目录 SQL注入漏洞:CMS布尔盲注python脚本编写库名爆破爆破表名用户名密码爆破 库名爆破 import requests #库名 database"" x0 while requests.get(urlf"http://10.9.47.77/cms/show.php?id33%20and%20length(data…

动态规划实例——01 背包详解

题目描述 有 n 件物品&#xff0c;每件物品有一个重量和一个价值&#xff0c;分别记为 w1&#xff0c;w2&#xff0c;…&#xff0c;wn 和 c1&#xff0c;c2&#xff0c;…&#xff0c;cn。现在有一个背包&#xff0c;其容量为 wk&#xff0c;要从 n 件物品种任取若干件。要求…

Python---capitalize() 方法---把字符串的首字母大写,其他字符全部小写,title()方法--把字符串中的所有单词的首字母大写,组成大驼峰

capitalize 英 /ˈkpɪtəlaɪz/ v. 用大写字母书写&#xff08;或印刷&#xff09;&#xff0c;把……首字母大写&#xff1b;为&#xff08;开办或发展企业&#xff09;提供资金&#xff1b;&#xff08;将资产或股票&#xff09;变现&#xff0c;使资本化&#xff1b;&…

Window10安装Docker

文章目录 Window10安装Docker前提条件Hyper -VWSL 2.0 安装包下载执行安装包更新 Window10安装Docker 前提条件 Hyper -V 如何启用 WSL 2.0 安装包下载 官网地址 下载后&#xff1a; 执行安装包 wsl --update等得有点久 重新打开 拉取一个helloworld镜像 说明已经…

[LeetCode] 4.寻找两个正序数组的中位数

一、题目描述 给定两个大小分别为 m 和 n 的正序&#xff08;从小到大&#xff09;数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为 O(log (mn)) 。 示例 1&#xff1a; 输入&#xff1a;nums1 [1,3], nums2 [2] 输出&#xff1a…

软件测试-根据状态迁移图设计测试用例

测试用例状态迁移图 许多需求用状态机的方式来描述&#xff0c;状态机的测试主要关注状态转移是否正确。对于一个有限状态机&#xff0c;通过测试验证其在给定的条件内是否能够产生需要的状态变化&#xff0c;有没有不可达的状态和非法的状态&#xff0c;是否可能产生非法的状…

【Spring】使用注解装配bean

目录 使用注解的两个必要步骤 正文 Cat Dog Animal beans.xml 测试 Qualifier 使用注解的两个必要步骤 1.导入约束 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:…

RT-DETR 应用 BiFPN 结构 | 加权双向特征金字塔网络

模型效率在计算机视觉中变得越来越重要。在本文中,我们系统地研究了目标检测中的神经网络架构设计选择,并提出了几种关键的优化方法来提高效率。首先,我们提出了一种加权双向特征金字塔网络(BiFPN),它可以实现简单快速的多尺度特征融合;其次,我们提出了一种复合缩放方法…

C盘清理指南(二)——盘符划分操作

今天的内容是C盘清理系列的第二期——盘符划分操作。 1. 点击“我的电脑——左上角的管理” 2.进入后点击磁盘管理 3.右键单击某个想修改盘符&#xff0c;可进行扩展、压缩、删除三种操作 其中压缩卷是进行“分解反应”&#xff0c;即原盘过大要进行拆分。此处注意拆分的上限为…

数据结构与算法—双链表

前言 前面有很详细的讲过线性表(顺序表和链表)&#xff0c;当时讲的链表以单链表为主&#xff0c;但在实际应用中双链表有很多应用场景&#xff0c;例如大家熟知的LinkedList。 双链表与单链表区别 单链表和双链表都是线性表的链式实现&#xff0c;它们的主要区别在于节点结构…

矢量图设计软件层出不穷,CorelDRAW为何无人能替?

设计工作经验丰富的人一定对比过多种设计软件&#xff0c;在对众多矢量图设计软件进行对比之后&#xff0c;多数资深设计师认为CorelDRAW的专业性、便捷性以及兼容性的综合表现更好&#xff0c;而且软件还配置了海量艺术笔&#xff0c;这让工作成果更为出众&#xff0c;因此更愿…

【14】c++11新特性 —>共享智能指针

在C中没有垃圾回收机制&#xff0c;必须自己释放分配的内存&#xff0c;否则就会造成内存泄露。解决这个问题最有效的方法是使用智能指针&#xff08;smart pointer&#xff09;。智能指针是存储指向动态分配&#xff08;堆&#xff09;对象指针的类&#xff0c;用于生存期的控…

【Python】Python爬虫使用代理IP的实现

前言 在爬虫的过程中&#xff0c;我们经常会遇到需要使用代理IP的情况。比如&#xff0c;针对目标网站的反爬机制&#xff0c;需要通过使用代理IP来规避风险。因此&#xff0c;本文主要介绍如何在Python爬虫中使用代理IP。 一、代理IP的作用 代理IP&#xff0c;顾名思义&…

2011年408计网

第33题 TCP/IP 参考模型的网络层提供的是&#xff08;&#xff09;A. 无连接不可靠的数据报服务B. 无连接可靠的数据报服务C. 有连接不可靠的虚电路服务D. 有连接可靠的虚电路服务 本题考查TCP/IP 参考模型的网络层 若网络层提供的是虚电路服务&#xff0c;则必须建立网络层的…

531X304IBDASG1 F31X303MCPA002/00 发电用分布式控制系统

531X304IBDASG1 F31X303MCPA002/00 发电用分布式控制系统 2021年4月20日&#xff0c;马萨诸塞州戴德姆。-新的ARC咨询小组关于全球的研究发电用分布式控制系统(DCS)市场显示&#xff0c;全球燃煤发电能力的减少继续阻碍增长。老化的燃煤电厂越来越多地被淘汰&#xff0c;而不是…

23个优秀开源免费BI仪表盘

BI也称为商业智能&#xff0c;是收集、分析和展示数据以支持决策者做出明智的业务决策的过程。BI帮助组织将其原始的生产数据转化为有意义的见解或者知识&#xff0c;以推动其业务战略。BI能够为组织改善决策、提高效率和提升资源利用率。 BI仪表盘是BI系统的重要组成部分&…

【调度算法】并行机调度问题遗传算法

问题描述 m台相同的机器&#xff0c;n个工件&#xff0c;每个工件有1道工序&#xff0c;可按照任意的工序为每个工件分配一台机器进行加工 工件ABCDEFGHI工件编号012345678加工时间4765835510到达时间324532186交货期101530241413201810 设备数目&#xff1a;3 目标函数 最…

基于java+springboot+vue的幼儿园信息网站

项目介绍 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;对于幼儿园管理系统当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#xff0c;带动了幼儿园管理系统&#xff0c;它彻底改变了过…

基于卷积优化算法的无人机航迹规划-附代码

基于卷积优化算法的无人机航迹规划 文章目录 基于卷积优化算法的无人机航迹规划1.卷积优化搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要&#xff1a;本文主要介绍利用卷积优化算法来优化无人机航迹规划。 …

EOCR-3BZ2/FBZ2的三种接点输出方式

施耐德EOCR-3BZ2/FBZ2电动机保护器具有体积小、精度高、抗干扰能力强、内置零序互感器等特点&#xff0c;同时具有低频运行和温、湿度检测功能。为适应不同的控制要求&#xff0c;EOCR-3BZ2/FBZ2电动机保护器具有2种输出方式&#xff0c;具体如下 输出接点&#xff1a; 接线图…