Android稳定性相关知识

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。
专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。

目录

  • 一、导读
  • 二、概览
  • 三、相关方法论
    • 3.1 crash
    • 3.2 性能
    • 3.3 高可用
    • 3.4 容灾方案
    • 3.5 长期性能优化
  • 四、 推荐阅读

在这里插入图片描述

一、导读

我们继续总结学习,温故知新。
本文讲述稳定性的相关概念。

二、概览

对所有app而言,必须尽可能的保障app正常运行,不产生crash,这是最高优先级,不稳定的产品,用户留存率也低。
在不崩溃的情况下,也要保证在极端场景下也可以操作app,
然后就要开始考虑性能上的优化了,如内存、流量、卡顿、耗电等等。

我们稳定性以预防为主,监控为辅,力争将问题扼杀在萌芽中。

三、相关方法论

3.1 crash

  1. 首先要正确认识并高度重视crash问题
  2. 建立相关的crash指标,比如 崩溃率:0.12%
  3. 接入crash及异常数据分析平台,有自己的APM最佳,收集尽可能详细的信息

crash指标的维度比较多,我们以bugly为例:有设备崩溃率,次数崩溃率,java崩溃,Native崩溃
在这里插入图片描述

当然还可以进一步细分,如启动crash(启动一段时间就崩溃),这个需要自建apm支持。

同时我们要关注每个版本新增的crash,持续跟进解决老版本的crash。

3.2 性能

  1. 重视性能优化,建立相关性能指标
  2. 性能优化的维度很多,包括但不限于启动优化,电量、内存、卡顿、网络等

具体知识可查看前面的文章。

3.3 高可用

业务的主流程绝不能被阻塞,要建立多维度的监控系统

  1. 建立用户行为日志系统,记录下全面的信息,包括用户行为,crash发生前,发生时的详细信息,以及用户使用到的各种资源等信息
  2. 用户反馈系统
  3. 性能监控系统(如内存、大图等)
  4. 业务异常监控系统

3.4 容灾方案

  1. 建立配置中心,功能开关,对于每一个要上线的功能,最好加个开关来控制这个功能是否要开启
  2. 统跳中心,处理异常的页面,避免用户使用功能
  3. 动态(热)修复
  4. 安全模式,建立报警策略(预制报警、特定指标报警等),可监控性能异常 or 业务异常

3.5 长期性能优化

  1. 制定编码规范,加强技术评审,加强codereview
  2. 制定好每个阶段的流程规范,比如开发阶段、测试阶段、灰度阶段、及上线后
  3. 明确责任人,明确权利与义务
稳定性是一个长期艰巨的过程,需要持之以恒。

四、 推荐阅读

Java 专栏

SQL 专栏

数据结构与算法

Android学习专栏

ddd

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

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

相关文章

Python:异常处理

异常处理已经成为判断一门编程语言是否成熟的标准,除传统的像C语言没有提供异常机制之外,目前主流的编程语言如Python、Java、Kotlin等都提供了成熟的异常机制。异常机制可以使程序中的异常处理代码和正常业务代码分离,保证代码更加优雅&…

2024年重磅消息:来自OpenAI发布的视频生成模型Sora

💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢…

自然语言编程系列(一):自然语言和程序语言介绍

1.自然语言和程序语言 自然语言和程序语言是两种截然不同但又相互关联的语言体系,它们分别服务于人类日常交流和计算机指令执行。 自然语言: 定义:自然语言是指人类在日常生活中使用的语言,如英语、汉语、法语等。它是非正式且灵…

Java的跨平台特性

Java语言特别流行的其中一个原因就是其具有良好的跨平台性,Java的跨平台性表现在通过 Java 语言编写的应用程序在不同的系统平台上都能够正常运行。其原理是:只要在需要运行 java 应用程序的操作系统上,先安装一个 Java 虚拟机(JVM Java Virt…

html表格标签(下):lable标签,select标签和textara标签

html表格标签(下):lable标签,select标签和textarea标签 lable标签 搭配 input 使用,点击 label 标签就能选中对应的单选/复选框, 能够提升用户体验。 for 属性: 指定当前 label 和哪个相同 id 的 input 标签对应 (此时点击才是有用的) 运行效果&#x…

信息安全认证 | CISP证书怎么样?值得考吗?

HCIE考证研究所的朋友们,新年快乐! 今天给大家说说CISP证书,新的一年祝大家逢考必过啊~ 01 考注册信息安全工程师证书的用处 CISP证书可作为学识和技能证明;求职、任职、晋升、加薪的资格凭证;用人单位招聘、录用劳动…

FPGA之移位寄存器

SLICEM中的LUT可以配置为32位移位寄存器,而无需使用slice中可用的触发器。以这种方式使用,每个LUT 可以将串 行数据延迟 1 到 32 个时钟周期。移入D (DI1 LUT 引脚)和移出 Q31(MC31 LUT 引脚)线路将LUT级联,以形成更大…

羊大师揭秘,如何挑选出好牧场的奶羊,该怎么看

羊大师揭秘,如何挑选出好牧场的奶羊,该怎么看 了解牧场的管理和环境:好的牧场应该有规范的管理制度,环境整洁,草场茂盛,为奶羊提供了充足的食物和良好的生活环境。在这样的牧场中,奶羊能够得到…

芯片的分类

目录 通用处理器数字信号处理器专用处理器 通用处理器 我们常听说的中央处理器CPU就是一种典型的通用处理器(GPP)。这种处理器多使用片上系统(SoC)的设计理念,在处理器上集成各种功能模块,每一种功能都是用…

⭐北邮复试刷题103. 二叉树的锯齿形层序遍历 (力扣每日一题)

103. 二叉树的锯齿形层序遍历 给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 示例 1:输入&#xff1a…

视频如何去除水印?这三个方法赶紧收藏

在数字化内容的海洋中,视频已成为我们日常生活中不可或缺的一部分。然而,很多时候,我们渴望观看的优质视频内容却被水印所困扰。因此我们就需要视频去水印工具来帮助我们解决这些困扰。 一、水印云 水印云的视频去水印功能采用了先进的 AI …

【JavaEE】IP协议

作者主页:paper jie_博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文于《JavaEE》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造&…

MySQL之select查询

华子目录 SQL简介SQL语句分类SQL语句的书写规范SQL注释单行注释多行注释 select语句简单的select语句select的算数运算select 要查询的信息 from 表名;查询表字段查询常量查询表达式查询函数 查询定义别名as安全等于<>去重distinct连接字段concat 模糊查询运算符比较运算…

(免费领源码)python#flask# MySQL人口分布系统74626-计算机毕业设计项目选题推荐

摘要 信息化社会内需要与之针对性的信息获取途径&#xff0c;但是途径的扩展基本上为人们所努力的方向&#xff0c;由于站在的角度存在偏差&#xff0c;人们经常能够获得不同类型信息&#xff0c;这也是技术最为难以攻克的课题。针对人口分布系统等问题&#xff0c;对人口分布系…

浅析Linux追踪技术之ftrace:Event Tracing

文章目录 概述使用Event Tracing使用set_event接口使用enable接口 Event配置Event formatEvent Filtering过滤规则设置过滤器 Event TriggerTrigger语法 Trace marker相关参考 概述 Event Tracing&#xff08;事件追踪&#xff09;利用在内核代码中加入的各种Tracepoint&#…

2.18 day5 C++

以下是一个简单的比喻&#xff0c;将多态概念与生活中的实际情况相联系:比喻:动物园的讲解员和动物表演 想象一下你去了一家动物园&#xff0c;看到了许多不同种类的动物&#xff0c;如狮子、大象、猴子等。现在&#xff0c;动物园里有一位讲解员&#xff0c;他会为每种动物表演…

RabbitMQ之 Fanout 交换机

&#x1f47d;System.out.println(“&#x1f44b;&#x1f3fc;嗨&#xff0c;大家好&#xff0c;我是代码不会敲的小符&#xff0c;双非大四&#xff0c;Java实习中…”); &#x1f4da;System.out.println(“&#x1f388;如果文章中有错误的地方&#xff0c;恳请大家指正&a…

Linux基础IO【文件系统】

目录 1.磁盘文件 2.磁盘概念 2.1基本结构 2.2数据存储 3磁盘信息 3.1块组信息 4.文件操作 4.1文件创建 4.2文件访问 4.3对文件增删查改 4.4大文件存储 总结&#xff1a; 1.磁盘文件 在计算机中&#xff0c;没有被打开的文件都是静静的躺在外存&#xff08;磁盘…

C语言学习day16:二维数组

二维数组格式&#xff1a; 数据类型 数组名[行][列] { {值1&#xff0c;值2}, {值3&#xff0c;值4} } 代码&#xff1a; int arr[2][3] { {1,2,3},{4,5,6} }; 那么我们怎么找它的下标呢&#xff0c;我先上一副图&#xff1a; 假如我现在要找1&#xff0c;那么它…

Python函数(一)

目录 一、定义函数 &#xff08;一&#xff09;向函数传递信息 &#xff08;二&#xff09;实参和形参 二、传递实参 &#xff08;一&#xff09;位置实参 &#xff08;二&#xff09;关键字实参 &#xff08;三&#xff09;默认值 &#xff08;四&#xff09;等效的函…