移动开发从2010年左右兴起,到2016 年,国内的移动开发技术发展到了最鼎盛的时期。插件化/热更新成为显学,成为高级工程师的必修课。
也就是这短短10年的时间,客户端发展进入了瓶颈期。现在很多小伙伴开始劝退客户端。纷纷表示移动开发凉了!
还有不少网友建议转行不要入坑客户端,认为客户端凉了!
有后选后 肺腑良言。互联网整体环境不乐观,现在没有新的大型app出现了,没有增量。客户端残留开发人员众多但岗位减少,导致要求越来越苛刻。而且大前端趋势、跨平台方案频出、小程序肆虐,原生客户端不再是应用开发唯一的方案,中小公司已经没有了客户端的需求,大公司新业务也是跨端方案。客户端就是一门江河日下的夕阳技术 再不跳船就要淹死了。还有最重要的一点,客户端在国企银行证券没有岗位,他们只有系统开发工程师是做系统的,客户端无法上岸只能35被裁。客户端就是画UI的,上限太低,有的大型app会自己造些轮子,但是出去了没需求,不通用。后端做系统才是刚需。劝退不是搞笑,都是血泪凝结的经验总结。无脑后端,前途无量,预定高管;其次前端,需求频繁,温饱有余;算法数据,收入可观,高端饭碗;测试开发,也可一战,随手一点,月入过万。走投无路,回家种田,日出日落,生活美满。鬼迷心窍,来客户端,技术拉胯,UI切图,面试火箭,不到三年,全部玩完,65在后,绿帽在前,苦口婆心,金玉良言,奉劝诸位,擦亮双眼。
我认为客户端是凉还不至于,因为目前是市场趋于稳定正常,这个是市场发展的比如趋势,现在火爆大家都看好的人工智能,大数据,犹如2010年刚开始的移动开发。目前现在是需求量趋于平衡,对初中级水平的开发人员需求量变少,但是对高级以上的需求市场还是很匮乏,特别是对于特定细分领域的Android开发人员也是很匮乏,对Android开发的综合能力,特别是基础原理性要求也越来越高,比如很多公司要求会对对某项要求会优先考虑,比如现在流行的Kotlin,混合开发,跨平台开发,NDK,高级图像处理等,市场上很火爆的直播和小视频对音视频这个细分领域的高级人才需求量也是比较大的,以至于AI、AR、VR等技术也需要通过终端展示给用户,所以说移动端开发未来还是会有所作为。
所以目前我们要选好自己细分领域深入研究,对基础原理性内容深入理解,尽快向高级水平靠近并达到。当然也要了解新技术,拥有开放的心态去学习一些新技术,不要一开始出来一个新技术就转入学习,这样会导致啥都会一点啥都不会,当然新技术是有一个发展过程的,不会立马流行和大量应用等它稍微成熟点,这样你会少踩很多坑,也不要排斥它,完全不去理会和了解学习,正确的方式是简单了解这个技术产生是为了解决什么问题,有什么优缺点已经目前发展成熟度和应用范围,我们还是要多抓住技术的本质和基础,这样出现了新技术学起来也会很轻松,当然机会合适了再去学习它。
所以,找准自己的定位及细分领域。
这里我归类了如下几类:
1、应用层开发,不限于各种产品,主要还是Android原生开发,主要是各种性能优化。
2、嵌入式开发,不限于各种开发板子,物联网,智能家居,车联网/车载
3、安全开发,不限于各种反逆向,反汇编,寻找安全漏洞
4、音视频开发,不限于直播、点播、音视频通话、音视频会议,短视频等
5、插件化、组件化、热修复开发,不限于自研和使用开源框架集成开发
6、系统开发(Android),不限于Rom维护和FrameWork层定制需求
7、图形图像开发,不限于OpenGL ES,EGL,GLSurfaceView,滤镜,美颜
8、小程序 / 快应用
音视频开发
音视频/高清大图片/人工智能/直播/抖音等等这年与用户最紧密,与我们生活最相关的技术一直都在寻找最终的技术落地平台。
以前是windows系统,而现在则是移动系统了,移动系统中又是以 Android占比绝大部分为前提,所以Android NDK技术已经是我们必备技能了。要学习好NDK,其中的关于C/C++,jni, Linux基础都是需要学习的,除此之外,音视频的编解码技术,流媒体协议, ffmpeg这些都是音视频开发必备技能,而且OpenCV/OpenG/这些又是图像处理必备知识。
接下来我们可以通过字节跳动抖音部门整理音视频学习手册,来学习如何进行音视频开发。大厂就是大厂,连个资料都做得这么有板有眼,整理成PDF文档:有需要完整版的可以点此处免费获取。
有需要完整版的可以点此处免费获取。
以下是这份开发文档的部分章节:
阶段一:Android多媒体
第1章 三种方式绘制图片
第2章 AudioRecord录制PCM音频
第3章 AudioTrack播放PCM音频
第4章 Camera视频采集
第5章 MediaExtractor MediaMuxer 实现视频的解封装与合成
阶段二:OpenGL ES
第7章 OpenGL ES 基本概念
第8章 GLSL及Shader的渲染流程
第9章 OpenGL ES 绘制平面图形
第10章 GLSurfaceView源码解析&EGL环境
第11章 OpenGL ES矩阵变换与坐标系统
第12章 OpenGL ES之纹理
第13章 OpenGL ES 滤镜 (篇一)
第14章 OpenGL ES 实时滤镜
第15章 OpenGL ES粒子系统 - 喷泉
阶段三::JNI&NDK
第17章 JNI与NDK的学习和使用
第18章 JNI - 引用类型、异常处理、函数注册
第19章 NDK构建方式 ndk-build与cmake
第20章 指针、内存模型、引用
第21章 运算符重载、继承、多态、模版
第22章 STL 之 容器
子系列 算法
第23章 算法系列 - 冒泡排序
第24章 算法系列-快速排序
第25章 算法系列-堆排序
第26章 算法系列-选择、插入排序以及STL中sort的实现
第27章 算法序列 - 二叉查找树
第28章 算法序列 - 平衡二叉树
第29章 算法序列 - 散列表
阶段四 : FFmpeg
第30章 音视频基础知识
第31章 FFMPEG常用命令
第32章 FFMPEG +OPENSL ES实现音频解码和播放
第33章 FFMPEG + OPENGLES 边解码边播放视频
微信小程序
小程序是基于微信这个亿级流量入口所衍生出来的产品,而快应用,快应用是九大手机厂商基于硬件平台共同推出的新型应用生态。用户无需下载安装,即点即用,享受原生应用的性能体验,不过个人觉得,他已经凉凉了,小程序倒是挺看好的,腾讯这座大山,微信这座凉亭,你想不凉快都难,不过看你是否刚需,比如你公司有需求,那你可以去学习。
推荐学习的新技术,Flutter和Kotlin,这两个都是Google推荐的。
Flutter
Flutter是Google在2018年2月27日,在2018世界移动大会上发布的用以帮助开发者在ios和Android两个平台开发高质量原生应用的全新移动UI框架
官网:https://flutter.io/
中文论坛:http://flutter-dev.cn/
由于是是Google发布的,就前景来看,还是值得肯定的。
Kotlin
Kotlin 是Google推荐的官方开发语言,与Java互通,可相互转换,简洁安全等,是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由JetBrains 设计开发并开源,
Kotlin 可以编译成Java字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。
学习资料
Kotlin 官网:https://kotlinlang.org/
Kotlin 文档:https://kotlinlang.org/docs/reference/
Kotlin 中文文档:http://www.kotlincn.net/docs/reference Kotlin GitHub:https://github.com/JetBrains/kotlin
本文在开源项目:https://github.com/Android-Alvin/Android-LearningNotes 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…