Android开发是不是已经凉了?这两年很多人问过我类似的问题。总的来说,任何行业都有一个成长周期,Android在经历了2011年到2013年的野蛮成长后进入成熟期,现阶段大部分企业对Android职位的需求已经回归“理性”。从0开始可能为时已晚,但Android市场普遍缺乏高级人才。目前在Android市场上,初中级开发人员的薪水在6K到18K之间,高级开发人员的薪水在20K-35K左右。从上层的应用来说,就是一点点做Framework层。在这里我找到了一个Android高级开发的招聘需求:这是小米在拉勾上的招聘需求,相当于p6级别。除了学历的要求,我们可以看到它包括了JNI/NDK/Framework,甚至JS和服务端开发也作为一个提升点,是全栈方向的雏形。我觉得大家可以随时查看招聘网站,看看现在的公司需要什么技术。当然,你不可能学会公司需要的一切。在这里我大致总结了Android开发者的发展方向:第一,横向提升。基于全栈开发的趋势,在深入研究自己擅长的领域的同时横向扩展,不要关起门来闭门造车。这里所说的横向提升,就是向全前端转型。除了APP中的混合开发(web、native、前端交互、硬件交互),还需要web开发、微信小程序、H5。比如服务端开发。我们在做Android开发的时候,往往依赖服务端接口返回数据。您可以尝试自己构建它。至少你必须了解服务器端的结构理论,服务之间的通信,以及聚合的过程。需要被听到。二是垂直重塑。一直以来,在做Android开发的时候,流传着两种说法。如果是做应用开发的话,往应用架构方向发展比较合适。如果是做系统层开发,往往开发底层驱动更合适。在这里我同意,那我应该学什么?1、移动端架构:架构展示层:MVC、MVP、MVVM、Clean、Flux、Android架构组件;架构层:模块化->组件化->插件化->沙盒/双开技术,比如双开微信,类似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.源码:要求能够看懂并熟悉源码(也可以自己选择几个第三方库),熟悉源码及其实现原理。并且需要能够自己重新封装(或者贡献给第三方库)第三方库。这样你在维护的时候就会逐渐成为这个技术块的专家。我认为这是从输出到输入学习的好方法。5、如何提高开发效率?工欲善其事,必先利其器。如何提高开发效率,很多开发者在开发的时候并不知道如何使用gradle,所以加载代码非常耗时。这些都是你工作成本的浪费。另外,使用git还可以帮助我们管理我们的代码。这个很重要,因为这个工具可以防止我们修改后的代码因为误操作而丢失。此外,对于移动开发者来说,我们至少需要知道如何抓取网络数据包。其中最常用的stetho是一个非常好用的工具,可以抓取网络数据包。6.混合开发混合开发的flutter逐渐成为主流的混合开发框架。另外,由于阿里系统强大的存在,公司正在使用Weex混合架构,这是Android工程师开阔眼界,走向未来的必备技能。Flutter学习思维导图:其实学习的方向有很多,这里就不一一列举了,因为不同的行业,不同的项目需要学习高深的技能,可以说是高度开发。这里有一份详细的Android高级开发学习进阶大纲,供大家参考学习方向:4.无论我们最后遇到什么困难,都不应该成为我们放弃的理由!
