31 Android interview questions, in-depth understanding of the principles of Flutter animation, and initiation!

origin

With the continuous development of Internet companies, there are more and more modules in product projects, and user experience requirements are getting higher and higher. It is becoming more and more difficult to achieve the purpose of small steps and fast iterations. There are also mutual interactions between applications. The application of plug-in technology was born for issues such as calls. If there is no plug-in technology, the applications that integrate a large number of "app" such as Meituan and Taobao may be as big as a few g.

Therefore, today's Android mobile development will not be hot-fixed, plug-in, and componentized, and more than 80% of the interviews will not pass.

Ali P8 boss stayed up until one or two in the morning, spent nearly half a month to Android hot repair framework, plug-in framework, component framework, image loading framework, network access framework, RxJava reactive programming framework, IOC dependency injection Framework, recent architecture component Jetpack and other Android third-party open source frameworks have been integrated into a set of system knowledge notes PDF, up to 1042 pages! I believe that after reading this document, you will have a deeper and more systematic understanding of these Android third-party frameworks.

text

1. Making stable applications is the key.

As a good Android development, first make it clear that Android is the front-end, the focus is on the UI, and master custom views.

2. Establish a knowledge system

Many people have a little understanding of Android. They are encouraged to go to places like Stackoverflow to find solutions to problems, but you must understand the internal mechanism and reach a system of knowledge understanding . When you build a system, many problems are not complicated. Software Development is precision engineering, not luck.

For example, during the interview, I like to challenge some very outrageous questions from the interviewer. For example, in an EditText, you lose a letter "A". This A is how many Android-specific processes can be displayed on the screen. of. At first glance, this is a boring question. Everyone often thinks that this is a matter of course, but it is not. This question examines your understanding of view layout/measure, rendering, drawing, if the interviewer can answer If this problem comes up, then I am not worried that you will write out the Android code for Caton.

When I first started developing Android, I couldn’t answer this question, but after a few years, I gradually developed a system to fully integrate these “unnecessary” details. I privately thought it was a necessary condition for a senior programmer. , Any performance optimization is a matter of course

As for other technologies, such as video streaming, it depends on whether you want to be an expert in a certain field or an expert in solving problems. If it is the latter, you need **good data structure + algorithm + code reading + document reading ability , **Understand excellent solutions in a short period of time, and then use them. Doing software engineering is not a PhD. First, solve the needs and then see how to improve.

3. Data structure algorithm, source code, principle mechanism

Many people recommend various books. For Android development, a good resource is Google's official video. They guide you in the right direction and let you have a deep understanding of Android's UI construction and operation mechanism. I have seen many programmers who have written many apps but do not understand the main points. I only feel disappointed and worried. Of course, since you want to do front-end UI, black magic is indispensable, learning the ever-changing programming ideas, Dagger/React, etc.

If you are in a team, **establish a good learning atmosphere, encourage communication,** at the same time, when being tortured by product managers and designers, understand them and help them understand the characteristics of Android development

New technologies are updated very quickly. Many people worry that they will not be able to keep up with being eliminated. In fact, it is unnecessary. **Android is just a tool to solve problems. **You need a knowledge system that is always ready to use this tool to solve problems. Change a tool The same is true. For example, cross-platform development technologies all lead to the same goal. If mobile phones are not eliminated, Android development will not be eliminated.

Also about NDK development, audio and video, WeChat applet, Flutter cross-platform technology, etc. In fact, strictly speaking, the technical aspects of Android can be calculated independently. But it is closely related. Because the company recruits an Android developer, I definitely hope that he can master other skills at the same time to reduce the cost of employment. So these technologies also need to be learned and mastered.

At last

The preferred method of introducting resumes is fast and efficient! Then you can look at it on the hook, boss, Maimai, and street. It is stated on the resume that if you are familiar with any technology, you must be familiar with it, otherwise it will not be very embarrassing to be asked! What project you have done, even if the project volume is not large, you must be familiar with the realization principle! It’s not the part you are responsible for. You can also see how your colleagues achieve it. What would you do if you do it for you? What has been done and what is the breadth question depends on the content of the project. But what has been done and what state has been reached is a matter of depth, which is related to personal learning ability and problem-solving attitude. Large companies look at depth, small companies look at breadth. You will be able to interview for large companies, and will you use what they interview for small companies, that is, job matching.

The interview process must be polite! Even if you feel that the interviewer does not respect you and often interrupts your explanation, or you feel that he is inferior to you and the questions asked lack professionalism, you must also respect him. Who told him to choose you now and wait for you to get the offer Then you choose him.

In addition, it must be slow to describe the problem! Don't talk about it all at once. It seems that you are calm and confident, and you still have time to react to your ideas on how to say better next. Nowadays, there are too many developments that rely on IDEs, so there will be a drawback. When we explain in an interview, it is easy to not know how to read a certain method. This is a flaw... So we must deal with the common key class names, method names, and key Read the words accurately, and some interviewers will be impatient and will say "Which one are you talking about?" At this time, we will easily get confused. Correct pronunciation + calm description + nice voice is definitely a plus!

The most important thing is mentality! Mentality! Mentality! Say important things three times! The interview time is very short, and it is still relatively unrealistic for the other party to find out your foundation within a short period of time. Therefore, sometimes it is also a time to look at the eye. This is still an era of looking at the face.

I hope everyone can find a job that suits them!
If you need the PDF version, you can pick it up on GitHub!

Advanced learning video

Attached: We collected 20 sets of real Android interview questions for first- and second-tier Internet companies  (including BAT, Xiaomi, Huawei, Meituan, Didi) and my own Android review notes (including Android basic knowledge points and Android extensions). Knowledge points, Android source code analysis, summary of design patterns, Gradle knowledge points, summary of common algorithm questions.)

Summary of knowledge points and common algorithm questions. )

[External link image is being transferred...(img-hIoscrsb-1611209240259)]

Guess you like

Origin blog.csdn.net/fjfdhduuffududu/article/details/112939512