前言
时至今日,短视频App可谓是如日中天,一片兴兴向荣。随着短视频的兴起,音视频开发也越来越受到重视,而且薪资水涨船高,以一线城市为例,音视频工程开发的薪资比Android应用层开发高出40%。
但是由于音视频开发涉及知识面比较广,入门门槛相对较高,让许许多多开发者望而生畏。
虽然网上有很多的博文总结了音视频打怪升级的路线,但是音视频开发相关的知识都相对独立,有讲“音视频解码相关”的,有讲“OpenGL相关”的,也有讲“FFmpeg相关的”,但是对于新手来说,把所有的知识衔接串联起来,并很好的理解所有的知识,却是非常困难的。
所以,我们该如何学习音视频呢?
下面,高能的地方来了!有幸从一位字节跳动大神那里得到他本人吐血整理的“582页Android NDK七大模块学习宝典”,从原理到实战,一应俱全!
秉承好东西的当然要共享的原则,今天就来秀一把,试试这“582页Android NDK七大模块学习宝典”是否也能让你事半功倍!这份宝典主要涉及以下几个方面:
- NDK 模块开发
- JNI 模块
- Native 开发工具
- Linux 编程
- 底层图片处理
- 音视频开发
- 机器学习
笔记内容全部免费分享,有需要完整版笔记的小伙伴【点击我】免费获取哦!
一、NDK 模块开发
主要内容:
- C++与 C#数据类型总结
- C 与 C++之内存结构与管理
- C 与 C++之预处理命令与用 typedef 命名已有类型
- C 与 C++之结构体、共用体
- C 与 C++之指针
- C/C++ 之多线程机制
- C/C++ 之函数与初始化列表
二、JNI 模块
主要内容:
- JNI 开发之 静态注册与动态注册
静态注册、动态注册、JNINativeMethod、数据类型映射、jni 函数默认参数
- JNI 开发之方法签名与 Java 通信
Android NDK 开发 JNI 类型签名和方法签名、JNI 实现 java 与 c/c++相互通讯
- JNI 开发之局部引用、全局引用和弱全局引用
笔记内容全部免费分享,有需要完整版笔记的小伙伴【点击我】免费获取哦!
三、Native 开发工具
主要内容:
- 编译器、打包工具与分析器
十大最受欢迎的 React Native 应用开发编辑器、react-native 打包流程
静态库与动态库
CPU 架构与注意事项
ABI 管理、处理 CPU 功能、NEON 支持
- 构建脚本与构建工具
环境搭建、NDK 项目、Cmake、Makefile
- 交叉编译移植
FFmpeg 编译、FFmpeg+LIBX264+FACC 交叉编译 实现 264 流录制、移植 FFmpeg 在 arm 交叉编译时遇到的问题、FFmpeg 交叉编译、X264 FAAC 交叉编译、解决所有移植问题
- AS 构建 NDK 项目
配置 NDK 环境、建立 app 项目、生成.h 头文件、创建 C 文件,实现 native 方法、jni.h 文件
四、Linux 编程
- Linux 环境搭建,系统管理,权限系统和工具使用(vim 等)
Linux 环境的搭建、Linux 系统管理操作(25 个命令)
- Shell 脚本编程
Shell 脚本、编写简单 Shell 脚本、流程控制语句、计划任务服务程序
笔记内容全部免费分享,有需要完整版笔记的小伙伴【点击我】免费获取哦!
五、底层图片处理
- PNG/JPEG/WEBP 图像处理与压缩
四种图片格式、推荐几种图片处理网站、squoosh 在线无损图片压缩工具,JPG/webP/PNG/ 互转
- 微信图片压缩
计算原始宽高、计算近似宽高、第一次采样获取目标图片、循环逼近目标大小
- GIF 合成原理与实现
GIF 图片的解析、GIF 图片的合成(序列图像合成 GIF 图像)
六、音视频开发
- 多媒体系统
Camera 与手机屏幕采集、图像原始数据格式 YUV420(NV21 与 YV12 等)、音频采集与播放系统、编解码器 MediaCodec、MediaMuxer 复用与 MediaExtractor
- FFmpeg
ffmpeg 模块介绍、音视频解码,音视频同步、I 帧,B 帧,P 帧解码原理、x264 视频编码与 faac 音频编码、OpenGL 绘制与 NativeWindow 绘制
- 流媒体协议
RTMP 协议、、音视频通话 P2P WebRtc
- OpenGL ES 滤镜开发之美颜效果
高斯模糊、高反差保留、强光处理、融合
- 抖音视频效果分析与实现
流程列表、视频拍摄、视频编辑、视频导出
- 音视频变速原理
变速入口分析、音频变速实现、视频变速实现
笔记内容全部免费分享,有需要完整版笔记的小伙伴【点击我】免费获取哦!
七、机器学习
Opencv
图像预处理
灰度化和二值化、腐蚀与膨胀、人脸检测、身份证识别
最后
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
除了上面的之外我还自己整理了以下一系列的学习进阶资料:
《Android开发七大模块核心知识笔记》
《2246页最新Android大厂高频面试题解析大全》
笔记内容全部免费分享,有需要完整版笔记的小伙伴【点击我】免费获取哦!