导语
Android 音视频开发这块目前的确没有比较系统的教程或者书籍,网上的博客文章也都是比较零散的。只能通过一点点的学习和积累把这块的知识串联积累起来。
音视频的开发,往往是比较难的,而这个比较难的技术就是NDK里面的技术。音视频/高清大图片/人工智能/直播/抖音等等这年与用户最紧密,与我们生活最相关的技术一直都在寻找最终的技术落地平台,以前是windows系统,而现在则是移动系统了,移动系统中又是以Android占比绝大部分为前提,所以AndroidNDK技术已经是我们必备技能了。
要学习好NDK,其中的关于C/C++,jni,Linux基础都是需要学习的,除此之外,音视频的编解码技术, 流媒体协议,ffmpeg这些都是音视频开发必备技能,而且OpenCV/OpenGl/这些又是图像处理必备知识,这些都在文章里面有原理级的实战项目。
高级工程师之后可以有两种侧重方向或者说两种发展路线。
第一种是管理路线
首先要对移动端和前端有一个系统的认知,并非说要完全掌握移动端和前端 coding 的能力,更多可以侧重于扎实的技术基础,再加上对技术的理解和融会贯通,就算不能快速地写出 iOS 和前端的代码,也应该对实现流程有一个清晰的认识,并且能够快速定位问题。
同时要熟悉服务端开发流程,负责移动端项目管理,最终成为移动端研发经理,如果你不打算学习后端知识基本止步于此了。不满足于此的可以继续去学习后端开发,拓宽之后的职业发展可能性。
第二种是纯技术路线
往往是一个专业细分领域比如音视频、三维图形、逆向安全、性能优化等,根据不同的细分领域,市场上有需求的行业和公司数量也会不一样,但若是该公司的核心需求,一般也会是公司的核心技术岗位,成为该领域市场上少有的精通人才的话,不可替代性也会很高。如果想一直 coding 下去,那么打好基础、找准方向是没有错的。
明确了方向之后,具体怎么做呢?可以分成几个方面。
首先,技术基础是必不可少的。刚开始进入公司写业务功能的时候,可能会觉得数据结构、算法、操作系统、编译原理之类的基础对自己日常的工作内容没有什么影响,知道怎么用就好了。
实际随着工作内容的深入,以及对不同技术的涉猎,会发现技术看似一直在发展、创新、变化,而底层的逻辑和原理是不太会变化的,越是不断变化的东西,理解它底层的原理就越是重要,这时候再去看待和学习它的变化就会轻松许多。
其次,要深入学习自己的“一技之长”,对 Android 开发工程师来说就是 Android 的相关知识:UI、底层原理、NDK、架构、调试实战经验等等。
比如下面这些内容:
业务或者技术方案,站在不同的时期和视角上看,难免会有不同的意见,但是技术是不会模棱两可的,会就是会,不会就是不会。
如果考虑管理路线的话,有几年工作经验的 Android coder,此时应该更加主动参与项目、承担工作、积极沟通需求和实现,对业务培养起自己的理解。架构孵化于业务,并且服务于业务,技术和业务齐头并进才能更好地发展(对于公司和个人都是如此)。
同时,多观察你的 Leader,看他是怎么协调整个项目向前推进,怎么不让项目进度失控,怎么和产品讨论需求,什么时候该重构等,这些都是细节也都是宝贵的经验。
无论选择哪个方向,都要保持对新技术趋势的敏锐度。
纯技术路线对新技术的关注自是不必说,管理岗需要在做技术方案时考虑新技术,同时提升自己的移动端/前端全栈能力。
分享读者
被人面试过,也面试过很多人。深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长,而且极易碰到天花板技术停滞不前!
我们整理了一份阿里P7级别的Android架构师全套学习资料,特别适合有3-5年以上经验的小伙伴深入学习提升。
主要包括阿里,以及字节跳动,腾讯,华为,小米,等一线互联网公司主流架构技术。如果你有需要,尽管拿走好了。
35岁中年危机大多是因为被短期的利益牵着走,过早压榨掉了价值,如果能一开始就树立一个正确的长远的职业规划。35岁后的你只会比周围的人更值钱。
本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录