background

It has been just one year + four months since I graduated from 985. I once took the test for two or three months and felt it was not very suitable. Then I chose to engage in Android development.

Two months ago, spring recruitment was still in full swing, and the inner thief wanted to go to Dachang to test wave water. So Tencent called me for an interview. However true true is silly, as expected a word said true: interview rocket, work screw!! The whole side comes down to doubt life…

I never thought I could ask that many questions in one session. It’s a bombing run, 21 questions in a row, no end. I feel that I will never forget this interview experience for the rest of my life. Here I would like to share with you the details of Tencent’s experiment. I think you may also agree with me.

The interview process

  • The difference between stack and heap
  • Essential differences between interfaces and abstract classes
  • The difference between String, StringBuffer, and StringBuilder
  • Annotations, reflection, generics
  • Handler message mechanism, producer and consumer model
  • View, ViewGroup event transfer mechanism, how to resolve sliding conflict? To answer how to slide conflicts is best to cite actual scenarios and how to resolve them
  • View, ViewGroup drawing process
  • OkHttp, Retrofit source code, principle
  • Explain what the MVP structure is
  • Https principle and encryption algorithm
  • RecyclerView cache mechanism
  • Common design patterns focus on these (singleton, agent, adapter, builder), start with concepts, and then the interviewer will ask for specific usage scenarios
  • Is the latest Google AAC architecture (ViewModel, LiveData, Room, etc.) in use and how it works

Is Kotlin in use? The companies that ask this question, basically their own companies are using Kotlin to develop new apps, or are using Kotlin to migrate, refactor, and mix with Java

  • What are the highlights and difficulties of the App developed? How to troubleshoot online bugs? Do you have any experience in code reconstruction
  • How to use the Android Profile to check for memory leaks? And how does LeakCanary, a third-party tool to check for memory leaks, work?
  • Android related optimization (network optimization, layout optimization, battery optimization, business optimization)
  • Introduce Java memory management. The JVM garbage collection mechanism, the JVM’s memory model (forget about JVM memory allocation) let you implement Tetris, what data structures and algorithms will you use?
  • How is EventBus implemented and how is observer mode used in development?
  • How does the dynamic proxy pattern work?
  • How and why are apps sandboxed?

The above interview questions, mainly Android application layer knowledge, need to build the rocket before the interview, but also need the usual cultivation, accumulation and summary.

The result of the interview can be imagined, I hung up, and then I met with several big factories one after another. Some of them entered the second interview, but did not go, because I had taken the offer of SPD Credit Card at that time, and the salary was ok, so I accepted the offer.

After the whole interview, I found that 996 companies in this year are quite many, not so many in the previous two years. In some cases, the boss will directly say 996, or ask if the company with 996,996 refused to go. In the process of the interview, I found my confidence is not enough, technical ability is not enough, and I am anxious. Think about these points in the interview.

  • Like a bigger factory, it takes two weeks to send the resume and reply after the interview.
  • If the interviewer doesn’t ask technical questions or doesn’t ask in-depth questions, it’s a pretty safe bet that the company isn’t driven by technology.
  • Improve their confidence, they will be more, the knowledge of the understanding to in-depth.

As for knowledge sorting, here is my review route during the interview :(the following systematic review materials are collected and sorted by me from various leaders)

2020 factory interview high frequency knowledge points

One, picture two, network and security mechanism three, database four, plug-in, modular, component, hot repair, incremental update, Gradle five, architecture design and design mode six, performance optimization seven, Android Framework eight, Android excellent tripartite library source code

Jetpack architecture 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

Three, Framework refined kernel analysis

The main contents include:

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

Iv. Kotlin intensifiedcombat (with Demo)

Chapter 1 Kotlin Introduction Tutorial Chapter 2 Kotlin Pit Avoidance Guide Chapter 3 Kotlin Jetpack Combat

  • Start with a Demo of worshiping a god
  • What was Kotlin’s experience writing Gradle scripts like?
  • The triple realm of Kotlin programming
  • Kotlin higher order functions
  • Kotlin generic
  • Kotlin extension
  • Kotlin commissioned
  • “Unknown” debugging techniques for coroutines
  • Diagram coroutine: suspend

Five, Android design ideas interpretation of open source framework

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

Vi. NDK module development

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

7, advanced UI, custom View

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!

Big factory interview question integration

In fact, there are so many knowledge points about Android development, and the interview questions are still a little bit of stuff. So there are no other tips for interviews, just how prepared you are for them. So, when you go out for the interview, find out where you are in your revision.

Do you at least show that you are serious about the interview? As you get to a certain level, you will notice a quantitative to qualitative improvement in your ability.

Here are some interview questions I began to sort out in my daily work, interested friends can have a look:

Friends in need just need to like support, and then [Get it for free here】

If you’ve already missed out on the golden age, now is a particularly good time to study for a few months to improve your internal (technical) and external (interview) skills. In the second half of the golden nine silver ten, find a better platform, get a better position, give yourself a better future.