Android engineers are in a state of extreme imbalance between supply and demand.

During this period of time, I have been helping the department to recruit people, and I also hung JD on the hook. It is estimated that hundreds of resumes have been received in more than a month. I initiated no more than 5 interviews, and finally one of them was rejected, by contrast, the overall level of my friends on Zhihu is higher.

But here’s the problem. Right now, all the big companies I know are hiring Android developers, and many departments are desperate, but they just can’t find the right people.

Don’t tell me there are a lot of people making Android these days, quality is the key, quantity doesn’t mean anything. There are only so many people in the pool each year, and a good resume is competing not only between companies, but also between departments and even within departments, but most people’s resumes will not take more than five seconds of your time.

I had mentioned this problem before, at this stage, the technology has very obvious gap between the company and the developer in among them, but also because of their own learning ability, the environment, the difference of project and so on, the pull of technology gap, the greater the work a few years later the two levels of differentiation, and opened the gap is not on our own efforts can make up for.

Some time ago, I interviewed an App maker from a first-line mobile phone manufacturer. Born in 1985, he has worked for three years and is now the core member of the company. He told me about the UI optimization and reconstruction work he had done. Their App team consists of about 4 or 5 people. It can be seen that he has done his best within the scope of his ability. Unfortunately, due to the limitations of team size, support and technical reserve, he has reached the ceiling too fast, and his work is not in-depth enough, and his technical ability is not comprehensive enough.

So what can we do as developers in this situation?

Basically, get out of your comfort zone and hone your skills. Take myself as an example. When I first joined the company, I was mainly engaged in UI. I usually optimized some pages and solved some small bugs and ANR. Because I did well in the past and the direction changed, I began to switch to video downloading and then video playing after more than half a year. In more than a year and a half, I pushed down the space player and downloader and did it again with my tutor. So far, all indicators are quite good.

At the beginning, it was very painful to switch over. There was a certain threshold to get into the field of audio and video, and the project was under great pressure. During that time, I don’t know how many times there were only me and my tutor working overtime in the south area of the 15th floor at midnight and on holidays. But now I think it was the time when I grew up the fastest. This part is almost done, this year began to do encoding and decoding, continue to dig in this audio and video.

The knowledge of audio and video net is more scattered, more unfriendly to the friend who just started. Therefore, I came up with the idea of organizing an Android audio and video learning route. The learning effect of the system is definitely much better than the scattered supplementary knowledge.

Let’s take a look at one of my own study Outlines:

Just look at the outline, you may not know how to do, do not know how to get started. I oneself be in when entry is same also, recesses oneself of search engine bit by bit accumulation, want to thank here of course to be in this domain the big guy of selfless dedication people. So here, I will refine the knowledge, apply the specific scene, theory combined with code, better help to master.

Here’s how TO learn, and trust me, if you do it, you’ll be hot in the audiovisual job market

First, the primary introduction:

First, draw pictures

  1. ImageView draws images
  2. The SurfaceView draws the image
  3. Custom View drawing pictures

Second, AudioRecord API details

Three, the use of AudioRecord recording, and generate WAV

Create an AudioRecord object. 2. Initialize a buffer 3. Start recording 4. Create a data stream, read the audio data from the AudioRecord into the initialized buffer, and import the buffer data into the data stream. 5. Stop the data stream. 6

4. Play PCM audio with AudioTrack

1. Basic use of AudioTrack

  • MODE_STATIC mode
  • MODE_STREAM mode

2. The AudioTrack explanation

  • Type of audio stream
  • The concept of Buffer allocation and Frame
  • AudioTrack construction process
  1. AudioTrack vs. MediaPlayer
  • The difference between
  • contact
  • SoundPool

V. Use Camera API to collect video data

1. Preview Camera data 2. Callback NV21 data

Use MediaExtractor and MediaMuxer API to parse and package MP4 files

1.MediaExtractor API 2.MediaMuxer API 3. Use situation

MediaCodec API details

1. MediaCodec is introduced

2. MediaCodec API specification

3. MediaCodec flow control

  • Basic concepts of flow control
  • Android hardcoded flow control
  • Android flow control policy selection

Due to the limited space of the article, the remaining content is too much, the friends who need the complete PDF can support me by clicking “like” + comment, and then[Click here]Free to read and download.

In order not to affect your reading experience, only the table of contents is shown below:

Two, intermediate advanced chapter:

  • Android OpenGL ES development (a) : OpenGL ES introduction
  • Android OpenGL ES development (ii) : OpenGL ES environment construction
  • Android OpenGL ES development (three) : OpenGL ES defines shapes
  • Android OpenGL ES development (four) : OpenGL ES draw shapes
  • OpenGL ES uses projection and camera views
  • Android OpenGL ES development (6) : OpenGL ES add motion effects
  • OpenGL ES responds to touch events
  • Android OpenGL ES development (eight) : OpenGL ES shader language GLSL
  • Android OpenGL ES development (nine) : OpenGL ES texture mapping
  • Android OpenGL ES development (10) : Interact with shaders via GLES20
  • Use OpenGL to display an image
  • GLSurfaceviw draws Camera preview and takes photos
  • Use OpenGL ES to complete video recording and achieve video watermark effect

Advanced Inquiry:

Audio and video coding and decoding technology

  • Audio and video codec technology (I) : MPEG-4/H.264 AVC codec standard
  • Audio and video coding technology (II) : AAC audio coding technology

Streaming media protocol

  • Streaming media protocol (1) : HLS
  • Streaming media protocol (2) : RTMP

Multimedia File Format

  • Multimedia file format (I) : MP4 format
  • Multimedia file format (II) : FLV format
  • Multimedia file format (3) : M3U8 format
  • Multimedia file format (4) : TS format
  • Multimedia file format (V) : PCM/WAV format

FFmpeg learning record

  • FFmpeg Command line tool learning (1) : view the media file header information tool ffprobe
  • FFmpeg command line tool learning (2) : play media file tool FFplay
  • FFmpeg command line tool learning (three) : media file conversion tool FFmpeg
  • FFmpeg command line tool learning (four) : FFmpeg acquisition equipment
  • FFmpeg command line tool learning (five) : FFmpeg adjust audio and video playback speed

  • FFmpeg Learning part 1: Introduction to FFmpeg
  • Install FFmpeg on Mac
  • FFmpeg learning (3) : FFmpeg porting to Android platform
  • FFmpeg learning (4) : FFmpeg API introduction and general API analysis
  • FFmpeg learning (five) : FFmpeg codec API analysis
  • FFmpeg learning (6) : FFmpeg core module libavFormat and libavCodec analysis

  • FFmpeg structure learning (A) : AVFormatContext analysis
  • FFmpeg structure learning part II: AVStream analysis
  • FFmpeg structure learning part III: AVPacket analysis
  • FFmpeg structure learning (4) : AVFrame analysis
  • FFmpeg structure learning: AVCodec analysis
  • FFmpeg structure learning (VI) : AVCodecContext analysis
  • FFmpeg structure learning (7) : AVIOContext analysis
  • FFmpeg structure learning (8) : relationships between important structures in FFmpeg

All the information in this article is free to share with you,Just click here and get it for free.

The prospect of audio and video development, I believe you can see from the relevant recruitment website, whether it is streaming media development or audio and video processing development, are a large number of recruitment. In order to preempt the opportunity, the major factories do not hesitate to attract talent. We can learn from the recruitment market that a qualified audio and video developer’s monthly salary starts from 30K to more than one million yuan.

What are you afraid of after learning the Internet winter? Gold will shine wherever it is, and a good piece of technology can open many doors for you.