preface

The blogger graduated in 2015 and has been working on Android mobile applications for five and a half years now. I have been in Shenzhen for several years, jumping around in the circle of small factories. When I got this new offer, 15K is the highest salary I have ever received. We haven’t had a raise in nearly a year. After the epidemic, I began to review and study systematically. The fragrance of plum blossom comes from bitter cold. After a year of review, I finally got an offer from a listed company in this year’s Jinsanyinsi. Although it is not a first-class big factory, I am satisfied with my salary rising from 15K to 42K. Below share my review, study guide, and some experiences. (Please share my offer first)

The interview experience

In blogger argues that for Android interview, and advanced the best way to learn than brush topic + blog + + books, the former three bloggers incisively and vividly in picking up this blog post, as for the conclusion is that the individual, in fact, the more to the back you will find that the interview is not difficult, the second is in the process of brush problem to have to think about, brush only second, This is another level, and we won’t talk about it later.

The following [Android factory senior engineers face test set], [Android advanced advanced teaching video], [Android advanced knowledge points to learn PDF] are free to share with you.

First, Java related

Int (char, long) equals (hashCode) equals (long) Equals (long) Equals (long) Equals (long) Equals (long What is an inner class? The difference between abstract classes and interfaces Java Advanced 1. Under what circumstances are objects disposed of by the garbage collection mechanism? 2. Talk about common coding methods? 3. How many bytes are Chinese in UTF-8 encoding? How many bytes of int? 4. What is the difference between static proxy and dynamic proxy? Talk about your understanding of parsing and dispatching. 7. Which equals method will be called when an instance of object A is stored using HashMap?

2. Picture correlation

1, picture library contrast 2, LRUCache principle 3, picture loading principle 4, to achieve their own picture library, how to do? 6. What cache does Glide use? How to control the size of Glide memory cache? 8.Fresco source code analysis

Third, network and security mechanism

1. Network framework comparison and source code analysis 2. To design their own network request framework, how to do? 3. Network request cache processing, okHTTP how to handle network cache 4. Load a 10 MB image from the network. Note the following: 5.TCP three-way handshake and four-way wave 6

4. Database related

1.Sqlite upgrade, add field statement 2. Database framework comparison and source code analysis 3. Database optimization 4. Database data migration 5. Common EXCEPTIONS of Sqlite

5. Plug-in, modular, componentized, hot repair, incremental update, Gradle

1. Understanding of hot repair and plug-in 2. Principle analysis of plug-in 3. Modular implementation (benefits, reasons) 4. 6. Describe what happens when you click the Build button in Android Studio

6. Architectural design and design mode

1. Talk about your understanding of Android design pattern 2.MVC MVP MVVM principle and difference 3. What design patterns do you know? 4. Design patterns commonly used in projects 5. Write producer/consumer patterns by hand 6. What are the similarities and differences between adapter patterns, decorator patterns, and appearance patterns? 8. Talk about your understanding of RxJava

7. Performance optimization

1. Start the black and white screen optimization of app. 2. Save — power consumption optimization 5. Installation package — APK thin 6. Cold start and hot start 7. Memory leak scenarios and solutions 8.Bitmap optimization 9. Webview optimization

8. Android Framework

Android system architecture 2. View event distribution mechanism? How to resolve sliding conflicts? 3. The drawing process of View? 4. Cross-process communication. 5. What is the startup process of Android system? 6, say the four components of the start process, the four components of the start and destroy the way. 7. Understand Windows and WindowManager. 8. Outline what happens when an application is installed on a phone?

Nine, Android excellent tripartite library source

1. Network underlying framework: OkHttp implementation principle 2. Network encapsulation framework: Retrofifit implementation principle 3. Responsive programming framework: RxJava implementation principle 4. Picture loading framework: Glide implementation principle 5. Implementation Principle 6. Memory leak detection framework: LeakCanary Implementation Principle 7. Dependency injection framework: ButterKnife 8. Dependency global management framework: Dagger2 9. Database framework: GreenDao implementation principle

X. Algorithm collection (VIP internal data of an organization)

1. Programming skills 2. Linear tables 3. Strings 4. Stacks and queues 5. Rank 7 search 8 violence enumeration 9 breadth, depth first search 10. Divide-and-conquer algorithm 11. Greedy algorithm 12. Dynamic programming

The last

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.

The picture below shows the frequent interview questions of Tencent, Toutiao, Ali, Meituan, Bytedance and other companies in the years of 2020-2021 that I have accumulated in my advanced study. The blogger also organized these technical points into videos and PDF (actually much more effort than expected), containing the knowledge context + many details

Above [over the years dacheng senior engineers face test set], [Android advanced advanced teaching video], [Android advanced knowledge learning PDF] are free to share with you. If you need the full version, click on my GitHub to get it for free