前言
两年前就有人有这样的疑惑, 在问 Android 开发是不是已经凉了? Android 是不是要凉了? 在大方向上来说, 任何一个行业都有一个一个成长的过程, Android 从 11 年到近几年的发展后, 已经逐渐步入了成熟期, 可谓是经历了春夏秋冬. 过了这个所谓的成熟期, 大部分的企业对于 Android 岗位的需求逐渐归于理性化, 那种以前只是懂一点基础的情况, 已经很难找到工作的了, 而如今对于整个市场来说, 普遍缺乏高级人才.
这里我在网上找来了一份中高级 Android 开发者的招聘要求, 我们来一起看看:
这是我在猎聘网上随便找到一份中高级开发者的招聘要求, 可以看到里面的要求是要我们熟练使用 Java 和 Android SDK; 熟悉 SQLite,JSON, 等技术, 那么对于我么来说作为一名 Android 开发人员, 我们应该从哪个方面进行系统的 提升自己呢?
第一, 养成热爱学习的习惯
俗话说的好, 不怕的是我们不够努力, 怕的是比我优秀的人比我们还努力. 所以不要拒绝任何学习的机会, 最好是在自己擅长的领域深入的钻研, 把每个点都能钻研的很透彻, 做到能举一反三的效果, 不要关起门来闭关锁国的学习造大炮. 那么应该学习那几个方面呢? 我觉得应该是开发语言丶性能优化丶 App 框架开发丶 NDK 丶 hybrid 开发等
第二, 学习的方向感
知道自己要学什么了, 但是具体要学习什么呢?
1. 移动架构
架构展示层: MVC,MVP,MVVM, 模块化变成项目丶层次化项目实战丶组 件化项目实战
架构层: 模块化 ->组件化 ->插件化
2. 基础进阶
这个方向可能比较多, 比如 VIEW,Android 动画机制, 四大组件工作原理, 多媒体技术等等. 我们平常在工作中碰到的 View 滑动冲突问题, 其实通过掌握 View 工作机制和 Android 触摸事件体系就能轻易解决掉. 还有对于需要开发绚丽的动画效果, 那么对于视图动画和属性动画一些特性必须有一定的了解. Android 中的四大组件工作机制其实底层应用的是 Binder 机制, 我们不妨从 AIDL 这个接口来了解 Binder.
JNI 和 NDK 开发也是比较常见, 特别对于一些做 SDK 项目为主的, 这一块开发流程也是需要掌握, NDK 开发 (含 JNI) 也是用人单位区分应聘者的手段之一, 企业不一定要用到, 但是可以通过是否掌握 NDK 来筛选人才.
3.Java 语言进阶与 Android 相关技术内核
Android 应用是由 Java 语音进行开发的, SDK 也是由 Java 语言编写的, 所以我们要学习 Java 语言. 另外, 虽然说 Kotlin 语言也得到 Android 官方的热推, 但是 Kotlin 也是编译成了 Java 语言在运行的. 对于 Android 开发来说. 只要 SDK 没有用 Kotlin 重写, 那么 Java 语言都是需要学习的. 而且 Android apk 的后台服务器程序大概率是 Java 语言构建, 所以学习 Java 是一个必然. 那么 Java 中那些东西是我们 Android 中比较相关的稍微比较难的 Java 基础几乎是一个门槛, 像泛型丶多线程丶反射丶 JVM 丶 JavaIO 丶注解丶序列化等等
4. 源码
要求能看懂并且熟悉源码 (自己选几个第三方库的也可以), 要做到熟悉源码及其实现原理. 并且要做到能自己二次封装(或自己贡献三方库) 三方库. 这样一来, 你就会在维护中慢慢成为这个技术块的专家了.
其实学习的方向很多的, 也不在这里一一罗列了
知己知彼, 百战不殆, 无论学习还是面试也是如此, 针对于上面的的知识点我总结出了互联网公司 Android 程序员在面试中涉及到的绝大部分架构面试题及答案做成了文档和架构视频资料免费分享给大家(包括 App 开发框架知识. 性能优化. Android 前沿技术, 高级 UI,Gradle,RxJava, 小程序, Hybrid, 移动架构师专题项目实战环节, React Native, 等技术教程! 架构师课程, NDK 模块开发, Flutter 等架构技术资料), 希望能帮助到您面试前的复习且找到一个好的工作, 也节省大家在网上搜索资料的时间来学习, 也可以分享动态给身边好友一起学习!
资料免费获取方式: Android 架构设计大群(185873940)
如果你觉得文章写得不错就给个赞呗? 如果你觉得那里值得改进的, 请给我留言. 一定会认真查询, 修正不足. 谢谢.
希望读到这的您能转发分享和关注一下我, 以后还会更新技术干货, 谢谢您的支持!
转发 + 点赞 + 关注, 第一时间获取最新知识点
Android 架构师之路很漫长, 一起共勉吧!
来源: http://www.jianshu.com/p/98b07054649e