preface

I had a chat with a baidu friend yesterday and he said that according to the recent experience of recruiting Android engineers, most candidates will encounter a difficult hurdle in their first three years of work.

Why do you say that?

After working for a period of time, most engineers have completed the accumulation of the most primitive basic skills, and the difference in technical level is concentrated in the proficiency of using language, framework and tools. And the difference isn’t that big, and if it is, it’s easy to catch up.

However, if an engineer stays in business development and immerses himself in tool proficiency, he will naturally run into a capacity bottleneck. The bottleneck is the one mentioned above

By jumping over it, you’ve found a new area to grow into in the next section.

If you can’t jump over it, you may keep going around in circles.

When I pressed him, he told me his understanding of big factory recruitment.

What kind of Android development do big companies need?

1. All big companies or companies value the educational background and working background of candidates. It is absolutely polite to say that they do not value it.

If the candidate has worked in a big factory before, or has a good educational background, that is definitely a big plus.

2. Many candidates put a lot of effort into polishing their resumes, but there’s no need.

For companies like Byte and Alibaba, they basically choose one of 15 people. When it comes to resumes, it’s easy — just look at the keywords and skip the nonsense.

3. From a practical point of view, if you do RESEARCH and development, the first choice is to go to the big factory.

First, big factories respect technology more and are willing to pay more for skilled workers. Most small business owners do not realize the importance of technology.

Second, big factories have a larger number of users and better technology application scenarios.

4. For a good Android developer, the most important thing is his/her basic skills as a software engineer.

Whether you’re working on the front end or the back end, what defines you as good as a software engineer is the basics, the ability to learn, the ability to program, the ability to design.

By entering Dachang, the candidate has created a secret tunnel for himself.

Because when you enter a big factory, the people you work with are also likely to jump ship and find new opportunities that are more likely to be better. At this time, if you are also good, you will be taken in.

After hearing this, I was particularly touched. So I also reviewed my recruitment experience with him over the years.

Indeed, three or five years is definitely the dividing line between an entry-level Android engineer and a senior Android engineer. If you can get over that hill, you’ll immediately be in a whole new phase of development.

Many junior and mid-level developers are stuck at the threshold of 20K and do not know how to start learning. Most of them start from the upper level applications and then try to do the Framework layer.

So, how do you plan your learning path as an Android developer and move up the middle and higher levels one step at a time?

Next, I would like to share some of my generalizations and summaries about technology over the years, and share my notes on the skills needed to master as an Android senior developer, hoping to help those friends who are willing to go all the way to black on the road of technology!

Advanced UI

The UI piece of knowledge is the most widely used today. That year the popular Android training, learn this small piece of knowledge can casually find a good job.

But obviously now is far from enough, refused to endless CV, personally to project combat, read the source code, research principle!

“Framework Refined Kernel Analysis”

  • In-depth analysis of Binder
  • Parsing Handler in depth
  • Dalvik VM process system
  • Parse WMS in depth
  • PackagerManagerService

“360° All-round Performance Tuning”

1. Design ideas and code quality optimization

2. Program performance optimization

  • Optimization of startup speed and execution efficiency
  • Layout detection and optimization
  • Memory optimization
  • Optimize the power consumption
  • Network transmission and data storage optimization
  • APK size optimization

3. Optimization of development efficiency

  • Git, a distributed version control system
  • Automated build system Gradle

4. Actual project combat

  • startup
  • fluency
  • The practice of Douyin in APK packet size resource optimization
  • Youku responsive layout technology full analysis
  • Network optimization
  • Mobile Taobao Double 11 performance optimization project revealed
  • Autonavi APP full link source code dependency analysis
  • Complete the OOM experience sharing
  • Wechat Android terminal memory optimization practice

Android Third-party Frameworks

Content of this article (1042 pages)

  • Thermal repair design
  • pluggable
  • Component frame design
  • Image loading frame
  • Network Request Framework
  • RXJava responsive programming framework design
  • IOC Architecture Design
  • Android architecture component Jetpack

NDK Module Development

The main contents include:

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

Jetpack Architectural Components from Beginner to Master

  • Android Jetpack – Navigation
  • Android Jetpack – Data Binding
  • Android Jetpack – ViewModel & LiveData
  • Android Jetpack – Room
  • Android Jetpack – Paging
  • Android Jetpack – WorkManger
  • Lifecycle for Android Jetpack architecture components
  • Jetpack Compose for Android
  • .

Advanced JetPack Enhanced Combat

  • First view of ConstraintLayout’s implementation login page
  • Navigation practice implementation APP main framework and Navigation related introduction
  • Network data requests using Coroutines, Retrofit, and Moshi
  • Use TabLayout, ViewPager2, RecyclerView to achieve the song list square page
  • Song sheet page MVVM architecture transformation and the use of ViewModel and LiveData introduction
  • The Paging implementation loads more and pulls down to refresh, rerequesting after errors
  • Vlayout nesting horizontal RecyclerView and Banner home page display, custom Moshi JsonAdapter
  • Room database to achieve add, delete, change, check and transaction processing
  • Room database Migration
  • ExoPlayer for video playback implementation
  • .

Advancements in Flutter Technology

  • Why is Flutter the ultimate cross-platform development choice
  • Build Flutter development environment on Windows
  • Write your first Flutter App
  • Build and debug the Flutter development environment
  • Basic Grammar for Dart Grammar Part 1
  • Use of the Dart Syntax set and Source Code Parsing (part 2)
  • Dart Set Operator Functions and Source Code Analysis (part 3)
  • Use of functions in Dart Syntax chapter (4)
  • Object-oriented Basics for Dart Syntax (part 5)
  • Object-oriented Inheritance and Mixins in Dart Syntax part 6
  • Dart Syntax: Type System and Generics (part 7)
  • Widgets in Flutter,
  • .

Due to space limitation, some screenshots of the content are shown. If you need these documents, you can support me by clicking “like” and then[Click here]Read and download for free

The last

Today’s article can be said to be the accumulation of my several years of employment and interview experience summed up the experience, dry goods full ah!

If you have been able to see here, then first of all I admire your perseverance. But just reading it without taking action, or going straight to your favorites, doesn’t make much sense for me to write this article. So after watching, take more action!

It is safe to say that if you can stick to reading all of the content I have listed above and digest all of it as your own knowledge, then you have at least reached the level of Android senior development engineer or above, and you will have no problem entering dachang technology.