+-
字节跳动大牛最佳整理:582页Android NDK七大模块学习宝典,理论与实践

前言

时至今日,短视频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大厂高频面试题解析大全》

笔记内容全部免费分享, 有需要完整版笔记的小伙伴【点击我】免费获取哦!