裁员专家又被称为什么意思(裁员另一种说法)

# 前言

相信大家在疫情期间看到了大量公司出现了裁员现象,很多知名度很高的公司将其称之为向社会输送高端开发人员,回报社会,这就如同大学毕业即为失业一般,现在只不过从大学毕业生变成了被裁员者

疫情这股寒风尚未度过,随之而来的便是大量裁员,可谓是雪上加霜,由此许多许多人失去了奋斗的目标,就算是进入了大厂又如何,最后还不是得被迫“毕业”,索性很多人直接就开摆

被这股寒风所席卷的人,最终还是要为了生活所奔波,从大厂被裁员的,相对而言要有着比小厂和创业公司被裁员的人要有着更好的简历,技术上也会比之有着更大的知识面和技术深度,找一份新工作很显然会更为简单,所以如果你有着过硬的技术作为支撑,那你依然可以在这个互联网行业的裁员风波中依然屹立不倒

# 如何拥有过硬的技术?

● 众所周知,Android 开发已经来到了后半场,为了能够在众多开发者中脱颖而出,我们需要对某一个领域有深入的研究与心得,对于Android开发者来说,目前,有几个好的细分领域值得我们去建立自己的技术壁垒,如下所示:

● 性能优化专家:具备深度性能优化与体系化APM建设的能力

● 架构师:具有丰富的应用架构设计经验与心得,对Android Framework层与热门三方库的实现原理与架构设计了如指掌

● 音视频/图像处理专家:毫无疑问,掌握NDK,深入音视频与图像处理领域能让我们在未来几年大放异彩

● 大前端专家:深入掌握Flutter及其设计原理与思想,可以让我们具有快速学习前端知识的能力

在上述几个细分领域中,最难也最具技术壁垒的莫过于性能优化,要想成为一个顶尖的性能优化专家,需要对许多领域的深度知识及广度知识有深入的了解与研究,其中不乏需要掌握架构师、NDK、Flutter所涉及的众多技能,接下来带领大家一步一步深入探索Android的性能优化

# 性能优化

那么我们先分析下性能优化有哪几个方面:

一、内存优化

二、UI优化

三、速度的优化

四、电量优化

五、启动优化

那么我们就从五大方面来了解

## 内存优化

智能手机发展已经有十几个年头,手机的软硬件都已经发生了翻天覆地的变化,特别是Android阵营,从一开始的一两百M到今天动辄8G、12G,然而大部分的开发者观看下自己的异常上报系统,还是会发现各种内存问题仍然层出不穷,各种OOM为crash率贡献不少。Android开发发展到今天也是已经比较成熟,各种新框架,新技术也是层出不穷,而内存优化一直都是Android开发过程一个不可避免的话题

## UI优化

UI优化知识点主要分为三部分:

第一部分,系统为我们做的优化。由于前端中UI展示的特殊性和重要性,Android团队也是在不断想办法提高UI方面的渲染速度,所以也是更新了很多系统优化方案,比如:

硬件加速、黄油计划、RenderThread

第二部分,我们可以具体实施的优化方案。主要包括:

java代码布局、View重用、异步创建View、xml布局优化、异步布局框架Litho、屏幕适配、Flutter、JetpackCompose

第三部分,工具使用。主要包括:

Choreographer、monitor、Systrace

 Android app 启动速度优化,首先谈谈为什么会走到优化这一步,如果一开始创建 app 项目的时候就把这个启动速度考虑进去,那么肯定就不需要重新再来优化一遍了。这是因为在移动互联网时代,大家都追求快,什么功能都是先做出来再说,其他的可以先不考虑,先占据先机,或者验证是否值得做。那为什么要这么做呢?我个人的观点有以下几点

## 速度的优化

● 如果 app 不能快速开发出来,先放出去验证一下可行性,可能连是否值得做都不知道,如果花很长时间做了一个对用户无价值的功能,那么还不如不做

如果 app 不能快速做出来,可能被竞争对手捕获先机,那么可能错失最佳商业时机

● 如果一开始就规定不能影响启动速度的这个目标,那么做功能的时候就会有束缚,快不起来

● app 初期大家都忙着开发新功能,迭代新版本,没有时间停下来做优化

同类型 app 变多,竞争对手变多,大家才开始关注启动性能,才开始做启动速度优化

## 电量优化

● 电量计算

应用运行总时间 = 应用在Linux内核态运行时间 + 应用在Linux用户态运行时间

CPU工作总时间 = 软件运行期间CPU每个频率下工作的时间之和比例

应用消耗的电量 = CPU每个频率等级下工作的时间比例/CPU工作总时间 * 应用运行总时间 * 不同频率下消耗的电量 + 数据传输消耗的电量(WI-FI或者移动网络)+ 使用所有传感器消耗的电量 + 唤醒所消耗的电量

● CPU

根据网上资料显示,CPU的使用率和功耗大小成正比

● Wakelock

Android为了节省电量,会在用户无操作一段时间之后进入休眠状态。wake_lock锁是提供防止系统休眠的,意思就是程序给CPU加了这个锁那系统就不会休眠。Wakelock也是引起大多数功耗的最主要的原因。不断频繁唤醒系统或者长时间wakelock锁没有被释放而引起系统无法休眠都是非常耗电的

● 网络

传输大量的数据b.网络状态的变化

● 动画绘制

动画的连续变化是由View的不断重绘产生的效果,代价就是CPU或者GPU不断的计算从而导致耗电高

## 启动优化

● 启动的分类:冷启动、热启动、温启动

● 优化方向

启动的几种方式可以看出,我们针对启动优化,基本只是优化冷启动就可以了。但是从冷启动的启动流程中很多都是系统做的,我们没有办法操控。我们能做的,就是application的生命周期和activity的生命周期这部分,启动优化往往就是从这两块入手


# 结语

以上就是我今天向大家分享的内容,由于篇幅有限

更多Android进阶资料,学习笔记,底层源码解析

资料获取方式:私信我发送“进阶资料”免费获取

Android架构师之路还很漫长,与君共勉

PS:有问题欢迎指正,在评论区留下你的建议和感受