Android工程师正处于一种供需极度的不平衡的状态。
这段时间我都在帮部门招人,在拉钩上也挂了JD,一个多月的时间收到的简历估计有几百份,我发起了面试的不超过5个,最后硬着头皮递上去1个还被刷了,相比之下还是在知乎上找我的朋友整体水准要高一些。
可问题就在这里,现在我了解到的大公司都在招Android开发,很多部门还非常着急,但就是招不到合适的人。
别跟我说现在做Android的人很多,质量是关键,数量一点意义都没有。每年池子里的人就那么多,一份好的简历出来不止公司之间,部门之间甚至是部门内都在抢,但这批人之外,绝大部分人的简历能占用你的时间不会超过5秒。
之前我就提到过这个问题,在现在这个阶段,公司之间的技术鸿沟已经非常明显,开发者身在其中,也因为自身学习能力,环境,项目等等的差别,技术上的差距越拉越大,造成了工作几年之后的两级分化,并且这种差距的拉开不是靠自己的努力就能弥补的。
在前段时间面试了一个在某一线手机厂商做App的同学,985出身,工作3年,目前也是公司的核心骨干,跟我说了他做的很多UI上的优化和重构工作。他们的App团队大概是4,5个人,看的出来他已经在力所能及的范围内努力做到最好,可惜,受限于团队规模,支持力度和技术储备,他的天花板来的太快,做的不够深入,技术能力也不够全面。
那面对这种情况,作为开发者,我们能做的是什么?
最基本的,脱离舒适区,不停磨练自己的技术。举我自己的例子,刚进公司的时候我主要做的是UI,平时搞一些页面上的优化,解决一些小BUG和ANR,做的还算不错;因为之前做的不错,也因为方向变化,大半年之后我开始切换到做视频下载,后来又开始做视频播放,一年半多时间里跟我的导师把空间播放器和下载器推倒了重做,到现在各项指标都很不错。
刚开始切换的时候很痛苦,音视频领域入门有一定门槛,项目压力非常大,之前又完全没有接触过。那段时间不知道多少次15楼南区半夜和假日只剩我跟我导师两个人在公司加班,可现在想想也确实是成长最快的时候。这块做的差不多了,今年又开始做编解码,继续在音视频这块深挖下去。
音视频网上的知识比较零散,对刚入门的朋友比较不友好。所以我萌生了整理一个Android音视频学习路线的想法,系统的学习效果肯定要远好于零零散散的补充知识。
先来看我自己总结的一个学习大纲图:
光看大纲,大家可能还不知道具体怎么做,也不知道怎么入门。我自己在入门的时候也一样,靠着搜索引擎自己一点一点的积累,在这里当然要谢谢在该领域无私奉献的大佬们。所以在这里,我会对知识进行细化,运用的具体的场景中去,理论结合代码,更好的帮助掌握。
下面是我整理的学习路线,相信我,如果你认真学完了,你一定会成为音视频人才招聘市场的香饽饽~~
一、初级入门篇:
一、绘制图片
- ImageView 绘制图片
- SurfaceView 绘制图片
- 自定义 View 绘制图片
二、AudioRecord API详解
三、使用 AudioRecord 实现录音,并生成wav
1.创建一个AudioRecord对象
2.初始化一个buffer
3.开始录音
4.创建一个数据流,一边从AudioRecord中读取声音数据到初始化的buffer,一边将buffer中数据导入数据流。
5.关闭数据流
6.停止录音
四、用 AudioTrack 播放PCM音频
1.AudioTrack 基本使用
- MODE_STATIC模式
- MODE_STREAM模式
2.AudioTrack 详解
- 音频流的类型
- Buffer分配和Frame的概念
- AudioTrack构造过程
- AudioTrack 与 MediaPlayer 的对比
- 区别
- 联系
- SoundPool
五、使用 Camera API 采集视频数据
1.预览 Camera 数据
2.取到 NV21 的数据回调
六、使用 MediaExtractor 和 MediaMuxer API 解析和封装 mp4 文件
1.MediaExtractor API介绍
2.MediaMuxer API介绍
3.使用情境
七、MediaCodec API 详解
1.MediaCodec 介绍
2.MediaCodec API 说明
3.MediaCodec 流控
- 流控基本概念
- Android 硬编码流控
- Android 流控策略选择
由于文章篇幅受限,剩余内容过多,需要完整版PDF的朋友可以 点赞+评论 支持下我,然后【点击这里】免费阅读下载。
为了不影响大家的阅读体验,下文仅展示目录:
二、中级进阶篇:
- Android OpenGL ES 开发(一): OpenGL ES 介绍
- Android OpenGL ES 开发(二): OpenGL ES 环境搭建
- Android OpenGL ES 开发(三): OpenGL ES 定义形状
- Android OpenGL ES 开发(四): OpenGL ES 绘制形状
- Android OpenGL ES 开发(五): OpenGL ES 使用投影和相机视图
- Android OpenGL ES 开发(六): OpenGL ES 添加运动效果
- Android OpenGL ES 开发(七): OpenGL ES 响应触摸事件
- Android OpenGL ES 开发(八): OpenGL ES 着色器语言GLSL
- Android OpenGL ES 开发(九): OpenGL ES 纹理贴图
- Android OpenGL ES 开发(十): 通过GLES20与着色器交互
- 使用 OpenGL 显示一张图片
- GLSurfaceviw 绘制 Camera 预览画面及实现拍照
- 使用OpenGL ES 完成视频的录制,并实现视频水印效果
高级探究篇:
音视频编解码技术
- 音视频编解码技术(一):MPEG-4/H.264 AVC 编解码标准
- 音视频编解码技术(二):AAC 音频编码技术
流媒体协议
- 流媒体协议(一):HLS 协议
- 流媒体协议(二):RTMP协议
多媒体文件格式
- 多媒体文件格式(一):MP4 格式
- 多媒体文件格式(二):FLV 格式
- 多媒体文件格式(三):M3U8 格式
- 多媒体文件格式(四):TS 格式
- 多媒体文件格式(五):PCM / WAV 格式
FFmpeg 学习记录
- FFmpeg命令行工具学习(一):查看媒体文件头信息工具ffprobe
- FFmpeg命令行工具学习(二):播放媒体文件的工具ffplay
- FFmpeg命令行工具学习(三):媒体文件转换工具ffmpeg
- FFmpeg命令行工具学习(四):FFmpeg 采集设备
- FFmpeg命令行工具学习(五):FFmpeg 调整音视频播放速度
- FFmpeg 学习(一):FFmpeg 简介
- FFmpeg 学习(二):Mac下安装FFmpeg
- FFmpeg 学习(三):将 FFmpeg 移植到 Android平台
- FFmpeg 学习(四):FFmpeg API 介绍与通用 API 分析
- FFmpeg 学习(五):FFmpeg 编解码 API 分析
- FFmpeg 学习(六):FFmpeg 核心模块 libavformat 与 libavcodec 分析
- FFmpeg 结构体学习(一): AVFormatContext 分析
- FFmpeg 结构体学习(二): AVStream 分析
- FFmpeg 结构体学习(三): AVPacket 分析
- FFmpeg 结构体学习(四): AVFrame 分析
- FFmpeg 结构体学习(五): AVCodec 分析
- FFmpeg 结构体学习(六): AVCodecContext 分析
- FFmpeg 结构体学习(七): AVIOContext 分析
- FFmpeg 结构体学习(八):FFMPEG中重要结构体之间的关系
文中所有资料都是免费分享给大家的,只需你动动手指点击此处就可免费领取了。
音视频开发的前景,相信大家从相关的招聘网站上就可以看到,不管是流媒体开发还是音视频处理开发,都是大量招人的。各大厂为了抢占先机,不惜重金笼络人才。通过招聘市场我们可以了解到,一名合格的音视频开发人员,少则月薪30k起,多则可以达到年薪百万以上。
学完还怕什么互联网寒冬?是金子在哪里都会发光的,一项拿手的技术能为你敲开很多公司的大门。