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呢?
其实不管你怎么选择,到了一定的阶段都会有遇到困惑。有的是刚毕业从事这行找不到工作的窘境,有的是从事这行感觉自己没有什么提升空间的困境等。
你要明白的一个东 20000 西叫“核心竞争力”。不管你在那个行业,那个岗位,都要知道如何在竞争中,一直处于一个领先状态,而不是被动的。
Android 人才市场需求量比较少吗?
现实中并不是这样,作为一名有经验有能力的开发者,去一些招聘平台找工作搜索时,你可以发现你想应聘的岗位每天都有在招人,是没有人去应聘吗?
并不是这样,而是他们一直找不合适满意的人才。
这个行业就是这样,并不是人才需求量少,相反的就是很稀缺,但稀缺的是那种真的有实力胜任的高级工程师。
你真的觉得你能胜任那些工作么?
我不确定现在的开发者有多人还在纠结kotlin 要不要学?
我也不确定,多少人连jetpack 是什么都不知道
但是我知道,很多程序员连MVP / MVVM 都没有弄明白
如果你问我不会这些就不能做android了?是不是有点危言耸听了?
那么你一定要明白一个道理,就是如果想继续学android ,学再这个行业立足,就一定要用心的去想明白,如何学,为什么学,学什么,学到什么程度,如果这些都没有想明白,你能把这些做好吗?
下面我推荐给大家一份《Android 中高级进阶的成长曲线图》,里面记录的大多是现在市场上比较主流的一些技术,从0到1的一个引导,内容有 Framework、Flutter、kotlin、NDK、Gradle、性能优化、移动架构、UI进阶、音视频等技术。请看下图:
由于成长曲线图记录内容较多,可能导致图片清晰度有所下降,如过有想参考高清完整版学习,可以直去GitHub 地址:https://codechina.csdn.net/u012165769/Android-T3/-/blob/master/README.md访问查阅。
总结
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模板,以便总结,备不时之需。**需要这份PDF的朋友可以去我GitHub地址:https://codechina.csdn.net/u012165769/Android-T3/-/blob/master/README.md 进行参考学习。