preface

Today, short video apps are booming. With the rise of short video, audio and video development is getting more and more attention, and the salary is rising. Taking first-tier cities as an example, the salary of audio and video engineering development is 40% higher than that of Android application layer development.

However, as audio and video development involves a wide range of knowledge, the threshold of entry is relatively high, so that many developers are afraid.

Although there are many online posts summed up the audio and video have upgrade route, but the audio and video development related knowledge is relatively independent, have “related audio and video decoding”, have “OpenGL related”, there are also “FFmpeg related”, but for newcomers, join together, bring all the knowledge and good understanding of all knowledge, It’s very difficult.

So, how do we learn audio and video?

Down here, high energy! Fortunately from a bytedance god there to get his own blood collated “582 pages Android NDK seven modules learning treasure”, from the principle to the actual combat, everything!

Adhering to the principle of good things to share, of course, today to show a, try this “582 pages Android NDK seven modules learning treasure guide” can also let you get twice the result with half the effort! This treasure book mainly involves the following aspects:

  • NDK module development
  • JNI module
  • Native development tools
  • Linux programming
  • Underlying image processing
  • Audio and Video development
  • Machine learning

Note content is free to share, if you need a complete version of notes [click on me] for free!

1. NDK module development

Main Contents:

  • C++ and C# data types summary
  • C and C++ memory structure and management
  • C and C++ preprocessing commands and typedef naming existing types
  • C and C++ structure, common body
  • C and C++ Pointers
  • C/C++ multithreading
  • C/C++ functions and initializers list

JNI module

Main Contents:

  • Static and dynamic registration developed by JNI

Static registration, dynamic registration, JNINativeMethod, data type mapping, jNI function default parameters

  • JNI developed method signature and Java communication

Android NDK develops JNI type signature and method signature, and JNI implements communication between Java and C/C ++

  • Local, global, and weak global references for JNI development

Note content is free to share, if you need a complete version of notes [click on me] for free!

Iii. Native development tools

Main Contents:

  • Compilers, packaging tools, and analyzers

Top 10 Most Popular React Native App Development editors and React-Native Packaging processes

  • Static and dynamic libraries

  • CPU architecture and precautions

ABI management, CPU processing, NEON support

  • Build scripts and build tools

Environment setup, NDK project, Cmake, Makefile

  • Cross compilation and migration

FFmpeg compilation, FFmpeg+LIBX264+FACC cross-compilation, FFmpeg+LIBX264+FACC cross-compilation, FFmpeg+LIBX264+FACC cross-compilation, FFmpeg+LIBX264+FACC cross-compilation, FFmpeg cross-compilation, X264 FAAC cross-compilation, solve all the porting problems

  • AS builds the NDK project

Configure NDK environment, establish APP project, generate. H header file, create C file, implement native method, jni.h file

Fourth, Linux programming

  • Linux environment construction, system management, permission system and tool use (VIM, etc.)

Linux environment construction, Linux system management operation (25 commands)

  • Shell scripting

Shell script, write simple Shell script, process control statement, plan task service program

Note content is free to share, if you need a complete version of notes [click on me] for free!

Fifth, the bottom picture processing

  • PNG/JPEG/WEBP image processing and compression

Four image formats, recommended several image processing sites, Squoosh online lossless image compression tool, JPG/webP/PNG/ interconversion

  • Wechat picture compression

Calculate the original width height, calculate the approximate width height, obtain the target image by sampling for the first time, and approach the target size by cycle

  • GIF synthesis principle and implementation

GIF image analysis, GIF image synthesis (sequence image synthesis GIF image)

Vi. Audio and video development

  • Multimedia system

Camera and mobile phone screen acquisition, image raw data format YUV420(NV21 and YV12, etc.), audio acquisition and playback system, codec MediaCodec, MediaMuxer multiplexing and MediaExtractor

  • FFmpeg

Ffmpeg module introduction, audio and video decoding, audio and video synchronization, I frame,B frame,P frame decoding principle, X264 video coding and FAAC audio coding, OpenGL rendering and NativeWindow rendering

  • Streaming media protocol

RTMP, P2P WebRtc for audio and video calls

  • OpenGL ES filter development beauty effect

Gaussian blur, high contrast retention, strong light processing, fusion

  • Analysis and implementation of Douyin video effect

Process list, video shooting, video editing, and video export

  • Audio and video transmission principle

Variable speed entrance analysis, audio variable speed, video variable speed

Note content is free to share, if you need a complete version of notes [click on me] for free!

Machine learning

  • Opencv

  • Image preprocessing

Gray scale and binarization, corrosion and expansion, face detection, ID card recognition

The last

Due to the space limitation, the detailed information of the document is too comprehensive, too many details, so only part of the knowledge point screenshots out of the rough introduction, each small node has more detailed content!

In addition to the above I also sorted out the following series of learning progress information:

Android Development Seven modules core Knowledge Notes

2246 pages of the latest Android high Frequency interview questions

Note content is free to share, if you need a complete version of notes [click on me] for free!