Android开发已经凉了吗?前端
这两年有不少人有这方面的疑惑,在大方向讲,任何一个行业都有有一个成长周期,Android经历了2011-13年的野蛮生长后,已经进入了成熟期,这个阶段绝大部分企业对Android岗位的需求回归“理性”,不是懂一点Android基础就能找到工做的年代,这时候再从0起步可能比较晚,但Android市场却广泛缺少高级人才。web
目前Android市场上初中级的工资6K到18K不等,高级大概在20K-35K,不少朋友初中级开发者卡在20K这个门槛始终迈不过去,想要学习又不知道该怎么着手,大多从作上层应用开始,到作 Framework 层就浅尝辄止。小程序
这里我找来一则高级Android开发的招聘要求:微信小程序
这是小米在拉勾上的招聘要求,至关于p5到p6级别,除开学历的要求外,咱们能够看到它在Android基础要求以外,把JNI/NDK/Framework,甚至JS、Server端开发也做为了提高点,是全栈方向的雏形。我以为你们能够常常在招聘网站里看看如今的企业须要什么技术,固然也不能把企业要求的都学了。我这里大体总结了一下,Android开发人员的发展方向:性能优化
基于全栈发展的趋势,在本身擅长领域深刻专研的同时横向扩展,不要关起门来闭门造车。而这里说的横向提高就是向全前端转型,在除了要在APP会hybrid开发(web、native、前端交互、硬件交互)以外,还要会web开发,微信小程序,H5。微信
好比服务端开发,咱们作Android开发不少时候,要依赖于服务端接口返回数据,能够本身试着搭建一下,至少要对服务端的结构理论、服务与服务之间通讯、聚合是什么样的流程也是须要有所耳闻。架构
一直以来,作Android开发有这么两个说法,若是是作应用开发,往应用架构方向发展比较合适,若是是作系统层开发,每每底层驱动比较合适。这里我是比较赞同的,那具体应该学习什么呢?模块化
1.移动架构:架构展现层: MVC、MVP、MVVM、Clean、Flux、Android Architecture Components;架构层:模块化->组件化->插件化->沙盒/双开技术,好比能够双开微信,相似Docker, 每一个页面都是插件,相似Vue.js中每一个页面都是组件。组件化
2.基础进阶:这个方向可能比较多,好比VIEW、Android动画机制、四大组件工做原理、多媒体技术等等。咱们日常在工做中碰到的View滑动冲突问题、其实经过掌握View工做机制和Android触摸事件体系就能轻易解决掉。还有对于须要开发绚丽的动画效果,那么对于视图动画和属性动画一些特性必须有必定的了解。Android 中的四大组件工做机制其实底层应用的是Binder机制,咱们不妨从 AIDL 这个接口来了解 Binder。性能
JNI 和 NDK 开发也是比较常见,特别对于一些作 SDK 项目为主的,这一块开发流程也是须要掌握,NDK开发(含JNI)也是用人单位区分应聘者的手段之一,企业不必定要用到,可是能够经过是否掌握NDK来筛选人才。
3.语言学习开发语言:这里我要纠正一下学习语言不是跨行业,好比Kotlin能够说是Android世界的头等公民了。再有时下比较火的Python和GO,另外作底层C/C++是必不可少的。
4.源码:要求能看懂而且熟悉源码(本身选几个第三方库的也能够),要作到熟悉源码及其实现原理。而且要作到能本身二次封装(或本身贡献三方库)三方库。这样一来,你就会在维护中慢慢成为这个技术块的专家了。我以为输出倒逼输入是一个不错的学习方式。
其实学习的方向还有不少,这里就不给你们一一罗列了,由于不一样行业不一样项目须要学习进阶的技能都不同,能够说360度发展。
这里给你们推荐一些学习大纲供你们参考,一些关于高级UI、性能优化、架构师课程、 NDK、混合式开发(ReactNative+Weex)等Android高阶开发资料。