Android vitals 简介

  • 谷歌推荐使用Android vitals来帮助开发者提高App的稳定性和性能表现。
  • 作为这个方案的一部分, Play Console提供了Android Vitals dashboard的早期测试版本。当被选中的用户运行App时,设备会记录大量的测试指标数据,包括app稳定性、渲染时间和电池使用数据。
  • Play Console统计这些数据并在dashboard中显示。
  • 这个dashboard将帮助开发者了解app的性能,而且当app的性能表现不好时,会发出相应的警告。

Android vitals 指标

  • ANR rates
  • Crash rates
  • Slow rendering
  • Frozen frames
  • Stuck partial wake locks
  • Excessive wakeups
  • Excessive background Wi-Fi scans
  • Excessive background network usage
ANRs
  1. 描述:UI线程如果被阻塞太长的时间, “Application Not Responding” (ANR) 就被触发。

    • 如果被阻塞的app处于前台,系统会显示一个ANR对话框。
  2. 触发:以下两个条件,任意各一个都会导致ANR

    • 当app处于前台时,在5s内无法相应用户输入或广播。
    • 当app没有activity处于前台时,广播接收器正在进行长时间的任务,且无法结束。
  3. 常见情况:长耗时计算、IO操作、锁竞争、死锁、慢广播处理。
Crashes

未经处理的异常或signal将会导致Crash。
- Java代码crash主要是Throwable类抛出的未处理异常
- Nativie代码crash主要是由未经处理的signal导致,比如SIGSEGV

Slow rendering
  • 为了保证UI交互的流畅,必须保证每帧的渲染时间不超过16毫秒,保证60的FPS。
  • 一旦界面有较慢的渲染,系统将强制跳帧,用户就会感觉到卡顿。
  • We call this jank. 我们把这种现象称为jank。
Frozen frames
  • 超过700毫秒渲染时间的帧,是slow rendering的极端情况。
  • 你的app将会在冻帧处卡顿,并且几乎整整一秒都无法响应UI。
  • 由于用户操作(比如滑动屏幕),app需要启动或切换场景,并布局和渲染所有屏幕中的view,使得渲染时间可能超过16ms。
  • 但无论如何,冻帧都不应当出现。系统会自动监控冻帧,并在 Android Vitals dashboard显示冻帧数据。
Stuck partial wake locks
  • 局部唤醒锁是PowerManager在屏幕关闭之后,保持cpu继续运行的机制。不管屏幕关闭是系统超时,还是用户按下了电源键。
  • app通过acquire()及Flag参数PARTIAL_WAKE_LOCK来请求局部环形锁。
  • 当app获得了局部唤醒锁,并长时间运行在后台(对于用户不可见),这个局部环形锁就会处于卡住(stuck)状态。
  • 如果局部唤醒锁长期处于卡住状态,将会加快耗尽电池,因为它会阻止系统进入低功耗模式。
  • 规范使用:当app需求时才获取局部唤醒锁,并在任务完成后尽快释放掉。
Excessive wakeups
  • 唤醒机制,是AlarmManager API 为了定时唤醒设备而设置闹铃的机制。
  • app通过AlarmManagerset()方法来设置闹铃,同时还需要选择RTC_WAKEUPELAPSED_REALTIME_WAKEUP作为FLAG。
  • 当闹铃触发时,设备从低功耗模式唤醒,而且当onReceive()onAlarm()运行时,将自动获取一个局部唤醒锁。
  • 过多地唤醒,将加快电量的损耗。
Excessive Wi-Fi Scanning in the Background
  • 每当后台执行WIFI扫描,将会唤醒CPU,导致电量损耗。
  • 如果多次执行WIFI扫描,电池寿命将会显著地降低。
Excessive background network usage
  • 当每app在后台连接移动网络,将会唤醒CPU并打开无线设备。
  • 频繁地连接移动网络,将会加快电量损耗。

---------------------

本文来自 崩豆 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/cangely/article/details/80504292?utm_source=copy

Android Vitals各性能指标介绍的更多相关文章

  1. Android四大基本组件介绍与生命周期

    Android四大基本组件介绍与生命周期 Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器 ...

  2. Android Testing学习01 介绍 测试测什么 测试的类型

    Android Testing学习01 介绍 测试测什么 测试的类型 Android 测试 测什么 1.Activity的生命周期事件 应该测试Activity的生命周期事件处理. 如果你的Activ ...

  3. Xamarin Android教程Android基本知识版本介绍与系统介绍

    Xamarin Android教程Android基本知识版本介绍与系统介绍 Xamarin Android教程Android基本知识版本介绍与系统介绍,开发Andriod有时候不像iOS一样轻松,因为 ...

  4. Android系统架构说明介绍

    Android系统架构说明介绍 Android系统架构和一些普遍的操作系统差不多,都是采用了分层的架构,从他们之间的架构图看,Android系统架构分为四个层,从高层到低层分别是应用程序层.应用程序框 ...

  5. Android SQLite 数据库详细介绍

    Android SQLite 数据库详细介绍 我们在编写数据库应用软件时,需要考虑这样的问题:因为我们开发的软件可能会安装在很多用户的手机上,如果应用使用到了SQLite数据库,我们必须在用户初次使用 ...

  6. 【转】Android 4.2蓝牙介绍

    原文网址:http://blog.csdn.net/innost/article/details/9187199 Tieto公司某蓝牙大牛写得<程序员>投稿文章 Android 4.2蓝牙 ...

  7. Android MVP模式 简单易懂的介绍方式

    主要学习这位大神的博客:简而易懂 Android MVP模式 简单易懂的介绍方式 https://segmentfault.com/a/1190000003927200

  8. Android HttpClient HttpURLConnection相关介绍

    Android HttpClient HttpURLConnection相关介绍 遇到一个问题 在android studio上用HttpClient编写网络访问代码的时候,发现该类无法导入并使用.. ...

  9. Visual Studio跨平台开发实战(4) - Xamarin Android基本控制项介绍

    原文 Visual Studio跨平台开发实战(4) - Xamarin Android基本控制项介绍 前言 不同于iOS,Xamarin 在Visual Studio中针对Android,可以直接设 ...

随机推荐

  1. js 监听音频视频控件是否播放

    监听onplaying: var myVideo=document.getElementById("video1"); myVideo.addEventListener(" ...

  2. C++零散知识笔记本

    目录 1.符号 1.1符号输出 1.2运算符 2.基本内置类型 wchar_t 3.内置类型所占字节数 内置类型的简写 4.变量的本质 变量与指针的故事 (1)malloc函数 (2)new关键字 5 ...

  3. 如何获得select被选中option的value和text和......

    我想获取select选中的value,或者text,或者…… 比如这个: <select id="select"> <option value="A&q ...

  4. Ubuntu18.04中安装Python3.7教程

    Ubuntu18.04中安装Python3.7教程 链接https://blog.csdn.net/weixin_42056625/article/details/82970358

  5. jupyter lab 的基本使用

    在创建一个文件即可 进入创建的文件,在创建一个ipynb文件即可操作 注意右上角必须是python3 可以哦(如果点了shutdown 就会没有内核 需要自己在定义python编辑器) jupyter ...

  6. Job和Service

    Job及CronJob: ---apiVersion: batch/v1kind: Jobmetadata:  name: job-demospec:  template:    metadata:  ...

  7. HTML form表单中action的正确写法

    我的Java Web Application的context是myweb,即http://localhost:8080/myweb/index.jsp是欢迎页. 现在我的一个Controller的映射 ...

  8. StoneTab标签页CAD插件 3.2.6

    //////////////////////////////////////////////////////////////////////////////////////////////////// ...

  9. 三调数据库标注插件v1.3

    三调数据库标注插件 插件介绍: 本插件基于VS2010+ARCGIS Addin 开发,高效率处理三调数据,可以标注相关属性.检查尖角.检查节点平均密度.检查地类图斑属性一致性,方便数据导入建库软件之 ...

  10. VS显示方法引用

    菜单栏 工具->选项->文本编辑器->所有语言->CodeLens 勾上即可