探索app性能优化之稳定性优化(解决方案)(代码片段)

沈页 沈页     2022-12-07     384

关键词:

前言

Android 稳定性优化是一个需要长期投入,持续运营和维护的一个过程,不仅深入探讨了 Java Crash、Native Crash 和 ANR 的解决流程及方案,还分析了其内部实现原理和监控流程。本文对稳定性优化方面的知识做了一个全面总结,主要内容如下:

如何提升App的稳定性

一般性的App能接触到稳定性的需求其实并不多,只有大型的处于稳定运营期的App才会重视App的稳定性,稳定性实际上是一个大问题,一个稳定的产品才能够保证用户的留存率,所以稳定性是质量体系中最基本也是最关键的一环:

  • 稳定性是大问题,Crash是P0优先级:对于用户来说很难容忍你的应用发生崩溃。
  • 稳定性可优化的面很广:不仅仅是指崩溃,像卡顿、耗电等也属于稳定性优化的范畴,对于移动端高可用这个标准来说,性能优化只是高可用的一部分,还有一部分就是应用业务流程功能上的可用。

稳定性维度

  • Crash维度:一般会将Crash单独作为一项重要指标进行突破,最常见的统计指标就是Crash率,后面会说到。
  • 性能维度:启动速度、内存、卡顿、流量、电量等等,在解决应用的Crash之后,就应该着手保障性能体系的稳定。
  • 业务高可用维度:业务层面的高可用是相当关键的一步,需要使用多种手段去保障App业务的主流程及核心路径的可用性。

稳定性优化概述

如果App到了线上才发现异常,其实已经造成了损失,所以稳定性优化重点在于预防

  • 重在预防、监控必不可少:从开发到测试到发布上线运维这些各个阶段都需要预防异常的发生,或者说要将发生异常造成的损失降到最低,用最小的代价暴露最多的问题,同时监控也是必不可少的一步,需要拥有一定的监控手段来更加灵敏的发现问题。
  • 思考更深一层、重视隐含信息:比如你发现了一个崩溃,但是你不能简单的只看这一个崩溃,要考虑这个崩溃是不是在其他地方也有同样或者类似的,如果有就考虑是否统一处理,今后该如何预防,总结经验。
  • 长效保持需要科学流程:在项目的每一个阶段建立完善的相关规范,保证长效的优化效果。

在这里给大家免费分享一份《360°全方位Android性能优化解析》,这份学习手册将会带领大家一步一步深入探索Android的性能优化,让产品的性能从各个方面得到提升,希望大家喜欢

这份资料一共有721页,4个大点,25个小章节,不仅仅有详细的底层原理的解析,还有专门的实践案例!文末直接领取

第一章 设计思想与代码质量优化

1.六大原则

  • 单一职责原则
  • 里氏替换原则
  • 依赖倒转原则
  • 接口隔离原则
  • ……

2.设计模式

  • 结构型模式:桥接模式、适配器模式、装饰器模式、代理模式、门面(外观)模式……

  • 创建型模式:建造者模式、单例模式、抽象工厂模式、工厂方法模式……

  • 数据结构:数组、栈、队列、链表、树……

  • 算法:排序算法、查找算法……

第二章 程序性能优化

1.启动速度与执行效率优化

  • 冷启动和热启动解析
  • APP 启动黑白屏解决办法
  • APP 卡顿问题分析及解决方案
  • 启动速度与执行效率优化之 StrictMode
  • ……

2.布局检测与优化

  • 布局层级优化
  • 过度渲染
  • ……

3.内存优化

  • 内存抖动和内存泄漏
  • 内存大户
  • Bitmap 内存优化
  • Profile 内存监测工具
  • Mat 大对象与泄漏检测
  • 耗电优化
  • 网络传输与数据存储优化网络传输与数据存储优化
  • APK 大小优化
  • 屏幕适配
  • ……

4.耗电优化

  • Doze&Standby
  • Battery Historian
  • JobScheduler
  • WorkManager

5.网络传输与数据存储优化

  • google 序列化工具 protobuf
  • 7z 极限压缩
  • ……

6.APK 大小优化

  • APK 瘦身
  • 微信资源混淆原理
  • ……

7.屏幕适配

进行适配的原理

屏幕分辨率限定符与 smallestWidth 限定符适配原理

为什么选择 smallestWidth 限定符适配

怎么适配其他 module

常见问题处理

8.OOM 问题原理解析

  • adj 内存管理机制
  • JVM 内存回收机制与 GC 算法解析
  • 生命周期相关问题总结
  • Bitmap 压缩方案总结
  • ……

9.ANR 问题解析

  • AMS 系统时间调节原理
  • 程序等待原理分析
  • ANR 问题解决方案
  • ……

10.Crash 监控方案

  • Java 层监控方案
  • Nativie 层监控方案
  • ……

第三章 开发效率优化

1.分布式版本控制系统 Git

  • 企业高效持续集成平台场景介绍
  • GIT 分布式版本控制系统
  • GIT 分支管理
  • ……

2.自动化构建系统 Gradle:

  • Gradle 与 Android 插件:gradle 与 android gradle 插件的关系、Gradle Transform API 的基本使用……
  • Gradle Transform API 的基本使用:什么是 Transform、Transform 的使用场景、Transform API 学习、输入的类型……
  • 自定义插件开发:Gradle 插件简介、开始准备、实践、自定义 Gradle 插件、buildSrc 模块方式……
  • 插件实战:多渠道打包、发版自动钉钉……

android性能优化之绘制优化(代码片段)

前言前一段时间,笔者带大家一起深入探索Android布局优化和深入探索Android卡顿优化,内容难度比较大,因此,本篇文章就是上述两篇文章的基础篇,掌握这篇文章的知识后,阅读上面两篇文章的难度会小... 查看详情

ios之性能优化·优化app界面渲染与保持界面流畅性的技巧(代码片段)

一、界面渲染流程①渲染流程分析计算机中的显示过程通常是通过CPU、GPU、显示器协同工作来将图片显示到屏幕上,如下图所示:苹果为了解决图片撕裂的问题使用了VSync+双缓冲区的形式,就是显示器显示完成一... 查看详情

#sql语句过长报错查询慢优化方案探索(代码片段)

...长查询报错、in过多、查询慢优化方案探索目录背景描述解决方案方案1(内存中过滤)存在问题方案2In查询的内容写入固化表临时表格式如下存在问题方案3(精确查询条件)查询执行过程性能分析固化表写表性能... 查看详情

android性能优化之启动速度优化(代码片段)

前言:文本主要会介绍三大块:1.简略介绍APP启动的完整流程,对整个流程有所了解,才知道在哪里可以进行优化。2.一些常用的APP启动优化的方案,主要分为三大块优化方向。3.一些不常见的APP启动优化的方... 查看详情

android性能优化之疑难杂症解决方案,u-apm的性能监控分析(代码片段)

关于Android发展至今,在各项功能十分成熟的情况下,我们越来越重视App的性能优化,以及用户体验,这关乎一个线上应用的DAU持续增长的基础,以及用户口碑的问题,今天刘某人带大家来一起分析一下崩... 查看详情

(转)foundation-性能优化之nsdateformatter(代码片段)

性能优化之NSDateFormatter为什么要优化NSDateFormatter?首先,过度的创建NSDateFormatter用于NSDate与NSString之间转换,会导致App卡顿,打开Profile工具查一下性能,你会发现这种操作占CPU比例是非常高的。据官方说法,创建NSDateFormatter代价... 查看详情

mysql优化总结(代码片段)

...,保持现状或出现更差的情况都是失败。2、优化的需求稳定性和业务的持续性,通常比性能更重要。优化不可避免涉及到变更,变更就有风险。优化使性能变好,维持和变差使等概率事件。切记优化,应该是各部门协同参与的... 查看详情

android性能优化之启动速度优化

前言文本主要会介绍三大块:1.简略介绍APP启动的完整流程,对整个流程有所了解,才知道在哪里可以进行优化。2.一些常用的APP启动优化的方案,主要分为三大块优化方向。3.一些不常见的APP启动优化的方案,... 查看详情

#sql语句过长报错查询慢优化方案探索(代码片段)

...长查询报错、in过多、查询慢优化方案探索目录背景描述解决方案方案1(内存中过滤)存在问题方案2In查询的内容写入固化表固化表格式如下写多张固化表思路存在问题方案2改进使用leftjoin方案3(精确查询条件)... 查看详情

cocoscreator游戏性能优化(3):gpu优化之降低计算分辨率

参考技术A本文从降低计算或设计分辨率来分如何提升性能,仅提供一些可参考的思路。本文链接  CocosCreator游戏性能优化(3):GPU优化之降低计算分辨率相关链接  CocosCreator游戏性能优化(1):性能分析工具 ... 查看详情

性能优化之java(android)代码优化

性能优化之Java(Android)代码优化本文为Android性能优化的第三篇——Java(Android)代码优化。主要介绍Java代码中性能优化方式及网络优化,包括缓存、异步、延迟、数据存储、算法、JNI、逻辑等优化方式。(时间仓促,后面还会... 查看详情

前端性能优化之优化图片

...积大于代码体积,图片请求多余代码文件请求,给前端的性能带来了很大的困扰,那么应该如何解决呢?  零、认识图片  我们通常使用的图片就是gif、png和jpg了。   其中,gif格式是比较老的图片格式,它的色彩... 查看详情

性能优化之java(android)代码优化

本文为Android性能优化的第三篇——Java(Android)代码优化。主要介绍Java代码中性能优化方式及网络优化,包括缓存、异步、延迟、数据存储、算法、JNI、逻辑等优化方式。(时间仓促,后面还会继续完善^_*)目前性能优化专题... 查看详情

android性能优化总结篇~(代码片段)

...五章:布局优化第六章:线程优化第七章:电量优化第八章:稳定性优化总结作为过来人 查看详情

性能优化之永恒之道(实时sql优化vs业务字段冗余vs离线计算)(代码片段)

...中,随着时间的推移,数据量越来越大,程序的某些功能性能也可能会随之下降,那么此时我们不得不需要对之前的功能进行性能优化。如果优化方案不得当,或者说不优雅,那可能将对整个系统产生不可逆的严重影响。 &nb... 查看详情

ios性能优化之内存优化(代码片段)

        近四年没更CSDN了,感慨万千。        近年来在搞一款比较大的APP,项目中代码量100w+,里面使用的三方库、其他领域的二进制包比较多;以前这些三方、二进制都挤在同一个工程目录下,... 查看详情

性能优化简介

...度优化响应速度内存优化常见内存泄露原因优化内存空间稳定性优化流量优化安装包大小优化减少安装包大小的常用方案总结性能优化的重要性及方向优化方法性能优化的四个方向流畅性优化方向页面显示速度优化原因页面需要... 查看详情

高德go生态的服务稳定性建设|性能优化的实战总结(代码片段)

...会有越来越多新的go服务出现。在任何时候,保障服务的稳定性都是首要的,go服务也不例外,而性能优化作为保障服务稳定性,降本增效的重要手段之一,在高德go服务日益普及的当下显得愈发重要。此时此刻,我们将过去go服... 查看详情