Summary of knowledge points of interview questions of BAT large factory for Android post in 2021, and complete knowledge system

Keywords: Android Design Pattern Interview Programmer

1, Picture

1,Picture library comparison
2,LRUCache principle
3,Picture loading principle
4,How to implement the picture library by yourself?
5,Glide Source code analysis
6,Glide What cache is used?
7,Glide How does the memory cache control its size?

2, Network and security mechanism

1.Network framework comparison and source code analysis
2.How to design the network request framework?
3.Network request cache processing, okhttp How to handle network cache
4.Load a 10 from the network M Tell me the precautions
5.TCP Three handshakes and four waves
6.TCP And UDP Differences between
7.TCP And UDP Application of
8.HTTP agreement
9.HTTP1.0 And 2.0 Differences between
10.HTTP Message structure
11.HTTP And HTTPS And how to achieve security
12.How to verify the validity of a certificate?
13.https Where symmetric encryption is used, where asymmetric encryption is used, and the encryption algorithm (such as RSA)Do you understand?
14.client How to make sure that the message you sent is received server received?
15.Talk about your right WebSocket Understanding of
16.WebSocket And socket Differences between
17.Talk about your understanding of Android signature.
18.Please explain why Android adds a signature mechanism?
19.Video encryption transmission
20.App How to sandbox and why?
21.Authority management system (how do the underlying permissions work grant (yes)?

3, Database

1.Sqlite Upgrade, add field statements
2.Database framework comparison and source code analysis
3.Database optimization
4.Database data migration

4, Plug in, modularization, componentization, hot fix, incremental update, Gradle

1.Understanding of hot fix and plug-in
2.Analysis of plug-in principle
3.Modular implementation (benefits, reasons)
4.Hot repair and plug-in
5.Understanding of project componentization
6.Description clear Click Android Studio of build What happened after the button

5, Architecture design and design patterns

1.Talk about your right Android Understanding of design patterns
2.MVC MVP MVVM Principles and differences
3.What design patterns do you know?
4.Design patterns commonly used in projects
5.Handwriting producer/Consumer model
6.Write code for observer mode
7.What are the similarities and differences between adapter mode, decorator mode and appearance mode?
8.Some open source frameworks used to introduce an internal implementation process that has seen the source code.
9.Talk about right RxJava Understanding of
10.Rxjava Send event steps
11.RxJava Advantages and disadvantages compared with the usual asynchronous operation
12.say something EventBus Function, implementation mode, substitution EventBus The way
13.Design one from 0 App Overall architecture, how to do it?
14.Say an application that you think is popular at present and design it(For example: live broadcast APP,P2P Finance, small videos, etc)
15.Talk about right java State machine understanding
16.Fragment If in Adapter How should the decoupling be used in?
17.Binder Mechanism and underlying implementation
18.How is the application update done?(Answer: grayscale, forced update, sub regional update)?
19.Implement a Json Parser(Speed can be increased by regularization)
20.Statistics of startup time, standard

6, Performance optimization

1.start-up app Black and white screen optimization
2.Stable - memory optimization
3.Fluency - Caton optimization
4.Saving - power consumption optimization
5.Installation package—— APK Slimming down
6.Cold start and hot start
7.Scenarios and solutions for memory leaks
8. Bitmap optimization
9.LRU Principle of
10.webview optimization
11.How to avoid OOM?
...

7, Android Framework

1.Android system architecture 
2.View How to resolve sliding conflicts?
3.View Drawing process?
4.Cross process communication
5.Android What is the system startup process?
6.To start a program, you can click the icon on the main interface or jump from a program. What's the difference between the two?
7.AMS Explanation of important family terms
8.Some open source frameworks used to introduce an internal implementation process that has seen the source code.
...

summary

Learning technology is a slow, long and hard road. You can't learn it by passion or by staying up for a few days and nights. You must develop the habit of studying hard at ordinary times. So: persistence is important!

Finally, how can we answer the questions in the interview?

Of course, the answer is to improve your strength in work or study. How can you learn correctly and in a direction? Is there any free material for reference? For this reason, I compiled a route of Android learning materials:

Here is a set of interview materials for BAT large factories collected and summarized from some interviews I have participated in since my work. I mainly hope that the interview can be smoother under the bad environment, and I hope it can help you.

Well, that's all for today's sharing. If you don't know how to prepare for the interview and break through the current situation to improve yourself, and don't know enough about your future, you don't know how to plan. Let's see how peers break through the current situation, how to learn, and absorb their interview and work experience Be good at your interview plan and career planning.

Finally, I wish everyone who is about to change jobs and has begun to apply for a job can find a good job!

These are just some of the interview questions sorted out, which will be updated continuously in the future. I hope these advanced interview questions can reduce the threshold for interviewing Android posts, so that more Android engineers can understand and master the Android system. If you like, please click one and pay more attention to it~

**This article has been [CODING open source project: Android learning notes summary + mobile architecture Video + big factory interview real questions + project actual combat source code](

)


Included**

Finally, I would like to introduce myself. Xiaobian graduated from Shanghai Jiaotong University in 13 years. He has been to small companies, Huawei, OPPO and other large factories. He has been to Alibaba for 18 years until now.

I know that most junior and intermediate Android engineers who want to improve their skills often grope for growth or sign up for classes, but there is a lot of pressure on training institutions to pay nearly 10000 tuition fees. Their own fragmented self-study effect is inefficient and long, and it is easy to encounter the stagnation of Tianhuaban technology!

Finally, I would like to introduce myself. Xiaobian graduated from Shanghai Jiaotong University in 13 years. He has been to small companies, Huawei, OPPO and other large factories. He has been to Alibaba for 18 years until now.

I know that most junior and intermediate Android engineers who want to improve their skills often grope for growth or sign up for classes, but there is a lot of pressure on training institutions to pay nearly 10000 tuition fees. Their own fragmented self-study effect is inefficient and long, and it is easy to encounter the stagnation of Tianhuaban technology!

Therefore, I also hope to help friends who want to improve themselves and don't know where to start, and reduce everyone's burden at the same time.

Posted by Jahren on Wed, 20 Oct 2021 10:45:32 -0700