现阶段 Android 行业还有前景嘛?到底该不该学习深耕?

Posted 冬天的毛毛雨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了现阶段 Android 行业还有前景嘛?到底该不该学习深耕?相关的知识,希望对你有一定的参考价值。

android 开发到底有没有前景?

之前在一些自媒体平台和一些Android 讨论组中发现都在说:Android 凉了!Android 不行了!别学Android了!……

然后你会看到那些工作几年之后的Android工程师开始陆续转行!!!

然而却很少有人真的会告诉你,为什么不能学呢?

其实不管在任何行业,任何岗位,初级技术人才总是供大于求,都是不好找工作的,Android开发只是其中之一

同样,不管任何行业、岗位,技术过硬的也都是非常吃香的!

说到底,是Android凉了吗?其实只是你凉了!

技术不过硬,就算转去Java、大数据、人工智能,还是会问出类似的问题:

“Java凉了?Java前景如何?”
“大数据凉了?大数据前景如何?”
“人工智能凉了?人工智能前景如何?”
……

从市场角度分析

Android 在移动端占有率非常高对不对,ios 占有率比android少太多了吧,移动端市场基本就这两大平台了。那为什么还是很多人不建议学Android呢?好像是个悖论呢?

这里先聊聊第一个问题,就是Android开发的需求量,虽然Android占有率非常高,但是对于开发岗位来说。一般情况下开发一个Android app 基本都对应一个ios的版本。那么其实占有率再高对于开发的需求量可能基本持平。

然后,android 开发进入了一个平稳期。而不是过去的上升期,过去可能10w个开发者却有100w个岗位需求,而现在基本不会再出现这样的情况了,而是有100w个开发者可能需求量却达不到了,需求少了,那么进入这个领域,确实不是个好的选择。

但是就算是JavaEE 平台可能岗位更多,但是人才也会更多,所有的行业基本都会再平稳期继续发育下去,但是被颠覆的可能性说所有平台都会遇到的,所以这个不能用来针对android。

其实从Boss上的招聘岗位薪资来看还是比较高的,薪资基本都在20K左右。

那么应不应该继续从事Android 开发?学习Android呢?

其实不管你怎么选择,到了一定的阶段都会有遇到困惑。有的是刚毕业从事这行找不到工作的窘境,有的是从事这行感觉自己没有什么提升空间的困境等。

你要明白的一个东西叫“核心竞争力”。不管你在那个行业,那个岗位,都要知道如何在竞争中,一直处于一个领先状态,而不是被动的。

Android 人才市场需求量比较少吗?

现实中并不是这样,作为一名有经验有能力的开发者,去一些招聘平台找工作搜索时,你可以发现你想应聘的岗位每天都有在招人,是没有人去应聘吗?

并不是这样,而是他们一直找不合适满意的人才。

这个行业就是这样,并不是人才需求量少,相反的就是很稀缺,但稀缺的是那种真的有实力胜任的高级工程师。

你真的觉得你能胜任那些工作么?

我不确定现在的开发者有多人还在纠结kotlin 要不要学?

我也不确定,多少人连jetpack 是什么都不知道

但是我知道,很多程序员连MVP / MVVM 都没有弄明白

如果你问我不会这些就不能做android了?是不是有点危言耸听了?

那么你一定要明白一个道理,就是如果想继续学android ,学再这个行业立足,就一定要用心的去想明白,如何学,为什么学,学什么,学到什么程度,如果这些都没有想明白,你能把这些做好吗?

下面我推荐给大家一份Android 中高级进阶的成长曲线图》,里面记录的大多是现在市场上比较主流的一些技术,从0到1的一个引导,内容有 Framework、Flutter、kotlin、NDK、Gradle、性能优化、移动架构、UI进阶、音视频等技术。请看下图:

由于成长曲线图记录内容较多,可能导致图片清晰度有所下降,如过有想参考高清完整版学习,可以直接点击下方小卡片进行访问查阅

总结

android 能不能学,看自己,哪个行业都一样,都需要那种能真正做事的高级工程师,如果你有这个实力,根本不用担心,当年sybian一统天下,被android打败的时候,那些sybian工程师,基本都是现在的android元老,即使android 倒下了,你有这个基础也根部不担心,如果你的实力只是对android一知半解,即使换了个平台也是一样的, 重要的不是 这个平台怎么样,而是你学的怎么样,如果你是大神,即使android倒下了 你一样神大神。而且现在android平台的占有率就是摆在那,有什么担心的呢?未来几年android 也不可能一下子消失,所以,不要纠结android能不能学,市场怎么样。而是要想你真的想再这个方面发展吗?如果不喜欢就选个喜欢的,如果想继续,就把自己变成一个能够再这个行业立足的人。

身为一个Android程序员,想要进大厂,需要掌握的核心技术栈是什么呢?

这里,我列出了6个部分,每个部分都对应Android开发者需要掌握技术点,并加以PDF总结,希望能帮到想要进入大厂的朋友或者正在面试大厂的朋友做一个技术上的储备;

一、 Java基础部分

  • Java序列化
  • Java泛型
  • Java反射
  • Java并发原理
  • 线程与多线程
  • 线程通信
  • 线程池
  • JVM底层源码
  • GC垃圾回收器
  • 类加载器
  • 内部类
  • 接口
  • Hashmap底层框架
  • Hashmap底层源码
  • Arraylist源码分析

二、 Android基础部分

  • Activity启动流程
  • Activity启动模式
  • Activity启动周期
  • Fragment生命周期
  • Fragment通信
  • Service启动模式
  • Service生命周期
  • View事件滑动
  • View事件分发
  • 自定义View
  • 进程的生命周期
  • 多进程
  • 进程存活
  • 进程保活方案
  • Bitmap配置
  • Bitmap常用操作
  • BitmapFactory
  • 屏幕适配(今日头条)方案
  • 屏幕适配(刘海屏)方案
  • Handler原理
  • Looper
  • AsyncTask
  • 线程池
  • RecyclerView优化方案
  • 内存泄漏

三、 Android进阶部分

  • 预(AOT)编译
  • Apk打包流程
  • Apk整体优化
  • Apk代码优化
  • Hook流程
  • MVC、MVP、MVVM
  • Jetpack-Data Binding组件原理
  • Jetpack-ViewModel & LiveData组件原理
  • Jetpack-ViewModel & LiveData工作流程
  • JIN
  • NDK开发的基本流程
  • 类加载器
  • framework通信原理
  • Binder通信原理
  • handler通信原理
  • zygote通信原理
  • init通信原理
  • AMS/PMS/WMS
  • RXJava

四、 Android性能优化部分

  • 启动优化
  • UI渲染优化
  • 崩溃优化
  • 内存优化
  • 卡顿优化
  • 存储优化
  • 网络优化
  • 耗电优化
  • 多线程并发优化
  • 安装包优化

五、 Android 开源库源码部分

  • LeakCanary
  • EventBus

六、 Kotlin知识点

  • 对象
  • 变量
  • 继承
  • 常量
  • 静态常量
  • 定义方法
  • 重载
  • 数据类型
  • 字符串
  • 数组
  • 循环

除了这些的核心技术栈需要掌握以外,还有数据结构、算法、网络通信协议等基础技术点是需要你必须掌握的,不过已经都被我整理PDF模板,以便总结,备不时之需。需要这份学习文档的朋友可以直接点击下方小卡片进行访问查阅



以上是关于现阶段 Android 行业还有前景嘛?到底该不该学习深耕?的主要内容,如果未能解决你的问题,请参考以下文章

现阶段 Android 行业真的凉了吗?到底该不该继续学习深耕?

HarmonyOS 2.0的推出,我还有必要深耕Android嘛?

面试程序员应该怎么穿着?到底该不该穿正装?

为什么要有外包这个职位,到底该不该去外包?

GO哥猜谜对枪的时候,到底该不该蹲呢?

前端后端和全栈到底不该学什么