Android interview must ask! Some interview suggestions for Android programmers, including iQiyi, Xiaomi, Tencent, and Ali

Preface

Unconsciously, I have been developing for several years. I remember that when I first came out to work, I felt like I was awesome, but now I feel so ignorant in retrospect. The more you understand, the less you understand.

If your knowledge is a circle, the larger your circle, the larger the world outside the circle.

Recently I saw many Android novices asking about the Android learning route, learning methods, and how to get started, so I found some information from the Internet, and then I summarized it with my work experience, so that you can avoid detours and extract some of the work often The technology used.

text

The interview took about 30 days to get the offer.

one side

1. Self introduction
2. Project
3. Four major components
4. Activity life cycle
5. Start mode
6. Thread state
7. Network protocol (each layer, as well as TCP and UDP)
8. Will network programming
9. handler
10. JVM, memory model, those
11.GC (what kinds of methods are there)
12. The database in the project
13. HashMap, HashTable, ConcurrentHashMap
14. Rhetorical link

Two sides

Video interview. This side is still the first test, should it be a cross?

1. Self-introduction
2. Project (emm spent a lot of time here, he will ask questions all the way according to my project)
3. Algorithmic question: the problem of string segmentation according to dictionary. The time complexity of the solution given at the beginning is too high, and it has been required to be optimized. There is another question I forgot...
4. TCP and UDP and application scenarios
5. JAVA and JS (Why do I like to ask this?)
6. Other forgot... It is also quite basic
7. Rather,
this round of interviews is very divergent. The discussion is mainly for the project, and the questions asked are quite targeted (mainly the project).

Three sides

1. Mmap + native log optimization?
2. What is the difference between broadcast and EventBus?
3. What do you know about common design patterns?
4. What are the cross-process communications?
5. Briefly talk about binder driver, right?
6. How to transfer large memory data across processes?
7. Talk about the realization principle of ConcurrentHashMap, what is the initial size?
8. How to optimize startup optimization?
9. How do you implement the rxpay and rxlogin?
10.kotlin + fullter aspect

All sides

1. The singleton design pattern is written, how does the static inner class ensure thread safety?
2. Synchronized underlying implementation principle, ReentrantLock fair lock and unfair lock.
3. How to implement a specific task after the main thread waits for all threads to finish executing? Have you seen the principle and source code?
4. In the general process of customizing the view, what should be paid attention to and how to optimize, and how are click events and long press time realized respectively?
5. What is the principle of the four startup modes in source code analysis?
6. Talk about the process of bindService. How did you optimize the background service process?
7. What design patterns have you used in development? Talk about the specific scene at that time. Why do you use method factories, the other two?
8. How to solve some unfriendly errors encountered in the use of RxJava? I found out how to solve the problem of memory leak in general. Have you ever encountered the problem of system service memory leak?
9. What okhttp do you use? Have you done some network optimization? For example, a weak network environment.
10. Give you the number 1. For example, how many 1s are there in 1000011?
11. Do you understand fast queue? What is the worst case? How to optimize if there is a lot of duplicate data?

Five sides

1. Tell me about the underlying implementation principle of the handler?
2. Tell me about your log record optimization?
3. Have you seen the source code of the binder driver, talked about its memory mapping process, talked about the client waiting for the server to process the return process, if you want to transfer large memory data across processes, what would you do? Just write it down.
4. What optimizations have been made in the company?
5. Some of the most difficult problems encountered in the process?
6. It mentioned dynamic repair and replacement loading so, do you know how to repair class? How to repair resources?
7. Anything else to ask?

Six sides (HR side)

1. Project
2. Salary
3. Rhetorical link

How to do a good job interview surprise and plan the learning direction?

The interview question set can help you find out and fill up the vacancies, have a direction and targeted learning, and prepare for future entry into a large factory. But if you just read it again, don't study and delve into it. Then this interview question will be of limited help to you. In the end, we must rely on senior technical level to speak.

There are a lot of materials for learning Android on the Internet, but if the knowledge learned is not structured, and when you encounter problems, you just taste it and stop studying it in depth, then it is difficult to achieve real technological improvement. It is recommended to make a study plan first and associate the knowledge points according to the study plan to form a systematic knowledge system.

The learning direction is easy to plan, but if only through fragmented learning, it is very slow to improve oneself.

At the same time, I also collected and sorted out ByteDance in 2020, as well as interview questions from companies such as Tencent, Ali, Huawei, Xiaomi, etc., and sorted out the requirements and technical points of the interview into a large and comprehensive "Android Architect" interview Xmind (in fact, it is better than Expected to spend a lot of energy), including the knowledge context + branch details .

image

When building these technical frameworks, I also organized the system's advanced advanced tutorials, which will be much better than my own fragmented learning effect.

image

Click: "Android Architecture Video + BAT Interview Special PDF + Study Notes" can be obtained for free~

There are a lot of materials for learning Android on the Internet, but if the knowledge learned is not structured, and when you encounter problems, you just taste it and stop studying it in depth, then it is difficult to achieve real technological improvement. I hope that this systematic technical system will provide you with a direction reference.

%81.md) can be obtained for free~

There are a lot of materials for learning Android on the Internet, but if the knowledge learned is not structured, and when you encounter problems, you just taste it and stop studying it in depth, then it is difficult to achieve real technological improvement. I hope that this systematic technical system will provide you with a direction reference.

Guess you like

Origin blog.csdn.net/CHAMPION8888/article/details/112985553