一, Android 现状
目前来说 web 前端应用场景更加广泛, PC, 移动端等都有它的存在, 而安卓相比之下就比较局限.
而且 Web 前端这两年比较热门, 安卓行业主要问题是初级 Android 太多了, 会写 xml 和 Activity 的程序员太多了, 初学者会面临很大的竞争, 现状也就偏于高级开发者.
那么为什么说, Android 工程师为什么不会被前端替代呢?
其实回到问题本身, 作为一名开发者, 前景最好的就是你的编程能力, 多学习多练习. 记住没有一成不变的事物, 当年诺基亚塞班开发也很火, 现在不也是销声匿迹了么?
当我们一味的抱怨行业情况不好, 找工作难. 是不是应该反思一下; 我的技术是否够精深? 是否跟上了技术的发展更新呢? 要知道互联网行业的更新速度是非常快的.
二, Android 目前技术要求和前景
Android 高级技术体系
这份技术体系是现在互联网公司对于 Android 岗的技术面要求 (有些小厂业务比较局限, 要求的技能会相对单一), 我相信还有很多做 Android 开发的朋友现在甚至还停留在 App 开发阶段. 这些人找工作会很困难, 而且待遇往往不好. 再加上各种 Android 凉了, 其它行业特别火这类说法, 就直接丧失了信心陷入深深的迷茫.
1. 为什么要学掌握 java?
Android 应用是由 Java 语言进行开发的, SDK 也是由 Java 语言编写, 所以我们要学习 java 语言. 另外, 虽说 kotlin 语言得到了 Android 官方的热推, 但是 kotlin 也是编译成了 java 语言再运行的. 对于 Android 来说, 只要 SDK 没有用 kotlin 重写, 那么 Java 语言是都需要学习的. 而且 Android apk 的后台服务器程序大概率是 java 语言构建, 所以学习 java 也是一种必然.
那么 Java 中哪些东西是我们 Android 程序员需要学习的呢? 由于 Android 程序员习惯了 C V 代码块, 所以与 Android 中比较相关的稍微比较难的 Java 基础几乎都是一个门槛, 像 泛型, 多线程, 反射, JVM,Java IO, 注解, 序列化等, 都是被 CV 的对象, 而程序员是不懂原理的, 具体内容如技术导图所示;
java 与 Android 技术内核
2. 如何全方位性能调优?
高性能编程和性能调优共同决定了 Android 平台的代码执行的高性能. 这也给我们指明了努力的方向: 我们即具备写高性能代码的能力, 同时又要具备修改别人代码并使之具备高性能的能力, 这些都是 copy 代码学不来的.
以下是性能优化的思维导图: 高性能代码编码实战, 是带领大家将代码写起来; 用户体验及资源消耗优化, 是带领大家从用户体验的角度去修改现有的代码.
性能调优技术体系
3.NDK 技术为什么这么火?
音视频 / 高清大图片 / 人工智能 / 直播 / 抖音等等这几年与用户最紧密, 与我们生活最相关的技术一直都在寻找最终的技术落地平台, 以前是 Windows 系统, 而现在则是移动系统了, 移动系统中又是以 Android 占比绝大部分为前提, 所以 Android NDK 技术已经是我们必备技能了. 要学习好 NDK, 其中的关于 C/C++,jni,Linux 基础都是需要学习的, 除此之外, 音视频的编解码技术, 流媒体协议, FFMPEG 这些都是音视频开发必备技能, 而且 OpenCV/OpenGl/ 这些又是图像处理必备知识, 这些都需要在实战项目中去学习掌握.
NDK 技术
4. 什么是前沿技术?
现在去很多公司面试, 企业除了你具备基本的能够写一个高性能 App 的能力后, 一般都会在自己的 App 里面加一些现有的相对较 666 的技术, 这些技术我们称之为前沿技术. 他们一般包含热升级, 热修复, App Instant, 强制更新, 组件化路由架构 Arouter,RxJava,IoC 架构方法, Hook 技术等等, 当然, 这些技术你不能只会用, 你需要知道他的原理, 有时候, 你还需要知道如何对这些架构进行改进.
前沿技术
最后
针对于这些技术大纲里列出的所有技术, 我整理了互联网公司 Android 程序员进阶的系统学习视频资料, 免费分享给大家.
来源: http://www.jianshu.com/p/803f0ce83f51