还不会自制播放器?578页NDK七大模块学习宝典拿去通关


还不会自制播放器?578页NDK七大模块学习宝典拿去通关文章插图
前言同NDK技术的渊源始于3年前 , 使用so文件的时候了解到NDK技术 , 并且C语言一直是强项 , 就鼓捣起NDK开发 。 在AndroidStduio还没推广的年代 , 基于eclipse搭建NDK开发环境需要安全依赖开发工具 , 并且调试起来具备难度 。 随后AndroidStudio也先后支持nkd-build和cmake使用NDK开发 。
什么是NDK
Android NDK 是一组允许您将 C 或 C++(“原生代码”)嵌入到 Android 应用中的工具 。
在 Android 应用中使用原生代码的应用场景

  • 在平台之间移植其应用
  • 重复使用现有库 , 或者提供其自己的库供重复使用
  • 在某些情况下提高性能 , 特别是像游戏这种计算密集型应用
在日常App开发中 , 难免有些功能是需要借助NDK来完成的 , 比如现在常见的音视频处理等 , 今天就以ffmpeg入手 , 来学习下Android NDK开发的套路 。
今天 , 高能的地方来了!大厂内部出品的“AndroidNDK 模块开发宝典”分享给大家 , 从原理到实战 , 一应俱全!这份宝典主要涉及以下几个方面:
  • NDK 模块开发
  • JNI 模块
  • Native 开发工具
  • Linux 编程
  • 底层图片处理
  • 音视频开发
  • 机器学习

还不会自制播放器?578页NDK七大模块学习宝典拿去通关文章插图
NDK 模块开发主要内容:
  • C++与 C#数据类型总结
  • C 与 C++之内存结构与管理
  • C 与 C++之预处理命令与用 typedef 命名已有类型
  • C 与 C++之结构体、共用体
  • C 与 C++之指针
  • C/C++ 之多线程机制
  • C/C++ 之函数与初始化列表

还不会自制播放器?578页NDK七大模块学习宝典拿去通关文章插图
JNI 模块主要内容:
  • JNI 开发之 静态注册与动态注册
静态注册、动态注册、JNINativeMethod、数据类型映射、jni 函数默认参数
  • JNI 开发之方法签名与 Java 通信
Android NDK 开发 JNI 类型签名和方法签名、JNI 实现 java 与 c/c++相互通讯
  • JNI 开发之局部引用、全局引用和弱全局引用

还不会自制播放器?578页NDK七大模块学习宝典拿去通关文章插图
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 文件
还不会自制播放器?578页NDK七大模块学习宝典拿去通关文章插图
Linux 编程
  • Linux 环境搭建 , 系统管理 , 权限系统和工具使用(vim 等)
Linux 环境的搭建、Linux 系统管理操作(25 个命令)
  • Shell 脚本编程
【还不会自制播放器?578页NDK七大模块学习宝典拿去通关】Shell 脚本、编写简单 Shell 脚本、流程控制语句、计划任务服务程序
还不会自制播放器?578页NDK七大模块学习宝典拿去通关文章插图
底层图片处理
  • PNG/JPEG/WEBP 图像处理与压缩
四种图片格式、推荐几种图片处理网站、squoosh 在线无损图片压缩工具 , JPG/webP/PNG/ 互转
  • 微信图片压缩
计算原始宽高、计算近似宽高、第一次采样获取目标图片、循环逼近目标大小
  • GIF 合成原理与实现
GIF 图片的解析、GIF 图片的合成(序列图像合成 GIF 图像)
还不会自制播放器?578页NDK七大模块学习宝典拿去通关文章插图
音视频开发
  • 多媒体系统
Camera 与手机屏幕采集、图像原始数据格式 YUV420(NV21 与 YV12 等)、音频采集与播放系统、编解码器 MediaCodec、MediaMuxer 复用与 MediaExtractor
  • FFmpeg
ffmpeg 模块介绍、音视频解码,音视频同步、I 帧,B 帧,P 帧解码原理、x264 视频编码与 faac 音频编码、OpenGL 绘制与 NativeWindow 绘制
  • 流媒体协议
RTMP 协议、、音视频通话 P2P WebRtc
  • OpenGL ES 滤镜开发之美颜效果
高斯模糊、高反差保留、强光处理、融合