1.一张图
最近在某平台看到这样一则帖子,大家也可以看一下:
![](https://img.haomeiwen.com/i16900214/ca8768d582474393.png)
某匿名区一名程序员发帖说,国庆和朋友聚会的时候,大家感慨 Android 十年兴衰史。
当时高中生毕业培训个 Android 就能进大厂,现在在网上发一个 Android 的开发岗位,2个小时能收到四五百分简历。
并且其中有一半都是来自大厂,更有一些 6 年经验凌晨联系招聘,12K 就能入职工作。
根据我的感觉,这里面的内容大部分应该是真的。
我们当年也算第一批做互金APP的,当时招聘的 Android、IOS 开发,确实工资比一般的后端还要高。
13、14年那个时候,移动浪潮大爆发,几乎所有的互联网公司都在招聘移动开发工程师。
而市场上的Android 、IOS 开发根本不够用,于是工资水涨船高。
2. 到现在呢?
移动开发早已经饱和的不能再饱和了,大家可以看现在的APP,几乎几年都没咋大变样了。
最近几年也没看到有现象级的APP。
真正需要APP开发的岗位,大都集中在中大互联网公司的新业务上,或者创业公司的新需求。
目前来看,大厂普遍都不再尝试新业务了,创业公司也都死的差不多了,没死的也不敢大规模搞事情。
![](https://img.haomeiwen.com/i16900214/27c78ea99fe554fb.jpg)
网上有一份今年已经停止运营的APP名单,这里面也只是罗列了一些曾经还挺有名的公司。
绝大部分APP都是悄无声息的就消失了。
而这里面不只是 Android ,IOS 开发同样会面临严峻的形势,不过Android 稍微比 IOS 好一点。
有一部分安卓工程师转岗去做了 Java 后端,也算给自己多留了一条路。
3.时也命也
之前一直和大家聊过。
我们都是被裹挟在历史的大潮流中,个人的努力、选择只占很小的影响因子,在大的趋势面前很渺小。
谁能想到前10年,炙手可热的岗位,现在反而是这样。
有一些人可能会说,应该提前做一些什么事情,避免出现这样的事情,比如选择核心岗位。
这样裁员的时候,应该是最后被裁员的。
或者说,选择大公司,大公司比较稳定,选择有红利的行业,行业处于上升期等等。
都是事后诸葛。
谁能预测到10年以后的情况,大厂裁员的时候也毫不手软,现在来看没有什么是稳定的。
但有一点肯定是对的。
任何时候都不要忘了提升自己,这样哪怕被裁员了,凭借着自身能力还是能找到一份工作的。
另外,永远不要把自己的命运,绑定到某一个船上,如果这条船走不稳的时候,你的人生应该怎么办?
在安稳的时候,就应该多想想自己的人生第二曲线,假如真正的裁员发生到自己身上,也就不会那么慌了。
而我们现在应该做的是:要么走进来,要么走出去,否则就可能面临毕业的风险。
走出去怎么走?
下沉细分领域,持续发光,建立自身技术护城河。如:系统开发、车载开发、音视频开发、游戏开发、逆向安全、跨平台开发
走进去怎么走?
拥抱新技术、深挖底层、高筑技术壁垒。
拥抱新技术:Kotlin/Jetpack/Compose,总要有所涉猎吧?
深挖底层:开源库原理/Framework/性能优化,总要有一个特别行吧?
![](https://img.haomeiwen.com/i16900214/1a2d1b26f757dff6.png)
以性能优化为例,前几年各厂疯狂投入抢占市场份额,而现在早已由增量时代转变为存量时代。大家都可以看到,近些年来,用户都集中在头部全家桶式APP中,增长肉眼可见的放缓……
在这个阶段,性能优化就是突破增长瓶颈,提升日活天花板的主要方式。
各家公司对于性能方面的重视直接在面试中具象化:
● 在之前的项目中做过哪些性能优化,取得过哪些收益?
● 对于内存优化,你觉得需要做哪些事情?Java/Native 内存泄露如何检测与处理?
● 流畅性这块,你们 App 的关注的指标是?这块有什么经验?你觉得造成页面卡顿最主要的原因是?有什么通用性的优化方案?
● ……
这些都只是冰山一角,实际面试中往往都会透过开发者对于复杂问题的解决方案来判断出个人技术功底。
毕竟性能优化始终穿插在APP整个研发生命周期中,尤其是从1到N的阶段。
可以毫不夸张的说,软件不停,优化不止!
但很多开发者对于优化这块都浅尝辄止,不仅对于底层原理了解不充分,连优化过程要使用什么工具都说不上个所以然,一旦遇到了线上复杂环境的性能问题,整个人就懵了。
一旦遇到“性能优化”问题,很少人能够由点及面逆向分析,最终找到瓶颈点和优化方法,而性能优化是软件工程的深水区,也是衡量一个程序员能力高低的标准。
![](https://img.haomeiwen.com/i16900214/61ffbeb3cd714f25.png)
如果要精通性能优化。那么必须对各种底层原理有着深度的了解,对各种 case非常丰富的经验。很多经常遇到的那些让人措手不及的问题,只要对于出现问题的原因和处理思路有一个大概的认知都可以很好的解决,说通了,只需要搞懂底层原理,那些工作中难以处理的优化问题都可以迎刃而解!
想对性能优化这块知识点深入的学习了解,那么需要参考学习的学习文档必定少不了,为了能够帮助到大家更好的掌握好这块知识点,准备了《Android 性能优化知识点汇总》与《Android Framework 知识点汇总》进行综合学习,有需要的可以 点击此处直接参考↓↓↓ 学习!!!
有需要的可以复制下方链接,传送直达!!!
https://qr21.cn/CaZQLo?BIZ=ECOMMERCE
Android 性能优化知识点汇总
启动优化
![](https://img.haomeiwen.com/i16900214/74f9a2ae1c026b34.png)
UI渲染优化
![](https://img.haomeiwen.com/i16900214/d3004812872782dd.png)
崩溃优化
![](https://img.haomeiwen.com/i16900214/02f3def266575b08.png)
内存优化
![](https://img.haomeiwen.com/i16900214/036a99e147c8fbd0.png)
存储优化
![](https://img.haomeiwen.com/i16900214/fe5f2ab54cdc04fa.png)
网络优化
![](https://img.haomeiwen.com/i16900214/21d69eb336e05503.png)
耗电优化多线程并发优化
![](https://img.haomeiwen.com/i16900214/62fdaf3b117886b5.png)
Android 性能监控框架 Matrix
![](https://img.haomeiwen.com/i16900214/58af71277ead5640.png)
Android Framework 知识点汇总
有需要的可以 点击直接参考↓↓↓ 学习!
有需要的可以复制下方链接,传送直达!!!
https://qr21.cn/CaZQLo?BIZ=ECOMMERCE
《Framework 核心知识点汇总手册》
Handler 机制实现原理部分:
1.宏观理论分析与Message源码分析
2.MessageQueue的源码分析
3.Looper的源码分析
4.handler的源码分析
5.总结
![](https://img.haomeiwen.com/i16900214/d25e642995f36b56.png)
Binder 原理:
1.学习Binder前必须要了解的知识点
2.ServiceManager中的Binder机制
3.系统服务的注册过程
4.ServiceManager的启动过程
5.系统服务的获取过程
6.Java Binder的初始化
7.Java Binder中系统服务的注册过程
![](https://img.haomeiwen.com/i16900214/728af4599e9baa05.png)
Zygote :
- Android系统的启动过程及Zygote的启动过程
- 应用进程的启动过程
![](https://img.haomeiwen.com/i16900214/60c69baea72463e1.png)
AMS源码分析 :
- Activity生命周期管理
- onActivityResult执行过程
- AMS中Activity栈管理详解
![](https://img.haomeiwen.com/i16900214/c5e24fa03999c629.png)
深入PMS源码:
1.PMS的启动过程和执行流程
2.APK的安装和卸载源码分析
3.PMS中intent-filter的匹配架构
![](https://img.haomeiwen.com/i16900214/78a55f70d82919ad.png)
WMS:
1.WMS的诞生
2.WMS的重要成员和Window的添加过程
3.Window的删除过程
![](https://img.haomeiwen.com/i16900214/ccfce391058482a9.png)
《Android Framework学习手册》:
- 开机Init 进程
- 开机启动 Zygote 进程
- 开机启动 SystemServer 进程
- Binder 驱动
- AMS 的启动过程
- PMS 的启动过程
- Launcher 的启动过程
- Android 四大组件
- Android 系统服务 - Input 事件的分发过程
- Android 底层渲染 - 屏幕刷新机制源码分析
- Android 源码分析实战
![](https://img.haomeiwen.com/i16900214/3f66f5454f203bf2.png)
有需要的可以 点击直接参考↓↓↓ 学习!
有需要的可以复制下方链接,传送直达!!!
https://qr21.cn/CaZQLo?BIZ=ECOMMERCE
作为过来人,发现很多学习者和实践者都在 Android Framework上面临着很多的困扰,比如:
- 工作场景中遇到难题,往往只能靠盲猜和感觉,用临时性的补救措施去掩盖,看似解决了问题,但下次同样的问题又会发作,原因则是缺乏方法论、思路的指引以及工具支持;
- 能力修炼中,缺乏互联网项目这一实践环境,对Framework只能通过理论知识进行想象,无法认识其在工作实战中的真实面目和实操过程;
- 职场晋升中,只管功能开发,不了解底层原理,缺少深入地思考与总结,无法完成复杂系统设计这类高阶工作,难以在工作中大展拳脚,而有挑战的工作往往留给有准备的人。
网友评论