In the first place! As an interviewer, the senior Android development engineers I have met in the past few years have broken through hundreds of people, I dare not say Failed, but the basic Pass is not wrong;

Although autumn recruitment has just come a little late, but aims to throw a brick to introduce jade, talk about my Android advanced interview some views and experience.

If you have a better opinion, I hope you can leave a comment in the comments section, we discuss together.

Generally speaking, most interviewers don’t spend a fixed amount of time in the interview. My average interview time is basically between 45 minutes. If I meet a good Android interviewer, I may extend the interview time.

But if I take the initiative to extend the interview, then first of all, I would like to congratulate this friend I am interested in him, if nothing unexpected, basically this friend should be stable.

Since the interview is a process of input and output, the interviewer’s main responsibility is to guide the interviewer to show his/her best strength in a short time. If an interviewer can’t do this well, I am sure he/she is not a qualified interviewer.

So how do you do an effective Android interview?

Preparation for an interview

1. Resume research

Resume to your hands, all you have to make full investigation and analysis, is not only responsible for the company, is also respect for yourself and the candidates time, obviously not “right” resume, don’t hold “or shout come and give it a try” idea, it may be good candidates, but if you don’t match with your post, don’t waste your time, You need to figure out whether the person you need right now has the potential to nurture or needs to help out. In addition, if the resume attached with blog links, GitHub address, related works, you can go to see in advance, directly read people’s years of accumulation of articles and code, more reliable than this short one-hour interview.

2. Prepare interview questions

Once you know the candidate’s background, prepare specific questions about how he or she implemented a technical detail in his or her work or projects, or about areas in which he or she claims to be proficient, based on your resume. In short, do not wait for the interview process to think of questions, especially the beginning of the interview with other students, often lack of experience and a little nervous brain short circuit, in fact, is very embarrassing, write down the questions to ask in advance, fully prepared.

As an interviewer, what should you look for?

1. Is your resume truthful

It is the first interview, the interview process is the process of resume is true, because can go to the interview process, that the person is in conformity with the requirements, does not meet the requirements have been eliminated, if he really as described in your resume, 100% will move to come over, if everyone is so, that there is no need to have an interview this process.

It is important to note that there are three meanings of truth here:

  • He was honest about his experience. Many people only have a small cog in a big project, but their resume often exaggerates this experience.

  • Second, he does not know that he does not know, which is common in the resume of all kinds of descriptions at the beginning of “proficient”. Because of the limitation of knowledge system and vision, he boasts that he is proficient even though he knows very little. Most of the time, he does not think there is a problem with what he says, but really thinks he is already proficient, a bit like a frog in a well.

  • 3 it is to resume the true to match your expectations, a technical know how to just calculate the degree of master, it is hard to parcel out, so the “real” only is the fit between candidates and interviewer standard, the subjective luck, perhaps the interviewer levels not wrong judgment you, also need not feel uncomfortable, the interview is not a kind of two-way choice.

2. Depth of technology

The depth of technology has always been the most important part for me. Nowadays, any technical field is very broad, and it is almost impossible for a person to master so much knowledge at the same time and go deep into it, which requires both learning efficiency and working years. And you did things, doing things, is absolutely can understand more, a curious about technology, skilled, enthusiastic people will not only stay in this thing rather easy to use, but can’t help to explore the technology behind it, if not personally go to the source code, will also take time to understand others to sort out the experience, So just by looking at the depth of the technology, you can look at whether you are passionate about the technology, whether you are curious about the technology, and so on.

I have seen a saying before: “The deeper one knows what he is doing, the better he is at it.” It fits perfectly here.

3. Breadth of technology

Depth is there, but also need breadth? My personal understanding is that depth is necessary and breadth is a plus. Also have technical curiosity good programmers, will not be satisfied with only limited to their own worlds, outside of work, also want to try some other fields and the direction, because into problems may be not enough in-depth, but a lot of domain knowledge and don’t know, you know about your personal knowledge system under a lot of forming relationships.

For example, if you want to implement a feature that is difficult or ineffective in your current technical domain and you are about to give up, your colleague tells you that it can be done with a simple Sqi statement. Why bother? This is a lame example, but I think you get the idea. The more knowledge there is, the more ready the technical system in the mind, the same problem, you can think of N solutions, thinking about the optimal solution.

If you’ve never heard something before, you’ll often say “that’s hard” or “that’s impossible”, but sometimes it’s a matter of knowledge limitation. That’s what it means to go from 0 to 1 hard.

Logical thinking ability

This is also I value quite a bit, this does not mean that those notorious brain after a sharp turn, but through communication, judge whether a person view logic clear, to answer the question whether there is rhyme, this is very difficult to describe, but if you are careful observation, you will find that it is easy to through some simple communication, whether one can see a clear logic.

Sometimes you think that someone is communicating well, but it’s not the communication, it’s the words that come out of their mouth that are sorted out in their brain so that you can easily understand them. This habit can’t be picked up overnight, so you can’t fake it during an interview.

If the other person is logical, agile and quick, that is a big plus, congratulations, you met a smart person.

                             

So what are some of the most in-depth and wide-ranging Android interview questions that interviewers often ask candidates?

Because of the recommendation mechanism of the Nuggets platform, here are only a few classic Android interview questions I have met, but I have collected all the Android advanced interview questions over the years into the core knowledge uploaded to my [Github].

If you need to interview friends, you can click “[Github]” reference review

Chapter 1 Android Components

  • 1. The four major startup modes of the Activity, and the problems needing attention in the development, such as the call of onNewIntent();

  • 2. Activity A redirects to B. Activity B redirects to C. Activity A cannot redirects to C. How does A send A message to C? (Meituan)

  • 3. How does the Activity save its state?

  • 4. Describe the start process of the Activity, starting with clicking the icon. B (stand)

  • 5. How does the APP start?

  • 6. Start an Activity process analysis

  • 7. What is the Service life cycle? Service lifecycle and differences

  • 8. When will you use Service?

  • 9. The difference between startServer and bindServier? (Meituan)

  • What is the difference between a Service and a Thread?

  • 11. What is the difference between IntentService and Service?

  • 12. How does the ContentProvider customize and what are the usage scenarios?

  • 13. BroadcastReciver static registration and dynamic registration?

  • 14. Classification and working principle of broadcasting

  • 15. Can I start threads in onReceive? What’s the problem?

  • 16. What is ordered broadcasting?

  • 17. What is the difference between Application, Activity, and Service context? Can YOU start an activity, dialog?

  • 18. Fragment lifecycle? (Meituan)

  • 19. Why does the Fragment constructor not allow parameters to be passed? B (stand)

  • 20. Difference between Fragment Add and replace, impact on Fragment lifecycle (Meituan)

Chapter 2 View System

  • 1. View drawing process and attention points of custom View. (Eastern Toutiao, Meituan)

Every UI control in Android is integrated from View, and these views have the same drawing process, must go through measure,layout and draw. View drawing process is in the Window adding process, ViewRootImpl class setView method start

  • 2. Can you measure the width and height in onResume

  • 3. What process is the event distribution mechanism? (Oriental Headline)

  • 4. How to resolve the conflict? (Oriental Headline)

  • 5. View distribution reverse restriction method? (Bytedance)

  • 6. Customize Behavior, NestScroll, NestChild. (Oriental Headline)

  • 7. Inflater processes and asynchronous inflaters

  • 8. Why are Inflaters slower than custom views? (Oriental Headline)

  • 9. OnTouchListener onTouchEvent onClick execution sequence (58 JINGdong)

  • If onTouchEvent returns false, will onClick be executed? (58 JINGdong)

  • 11. Event distribution mechanism, advantages and disadvantages of chain of Responsibility mode (Meituan)

  • 12. Classification and difference of animation (car and home)

  • 13. What is the difference between property animation and normal animation? (Car and home)

  • 14. Difference between interpolator and estimator (car and home)

  • 15. Contrast RecyclerView and ListView, cache strategy, advantages and disadvantages. (Meituan)

  • 16. How does WebView cache resources? (Bytedance)

  • 17. Several ways of WebView and JS interaction and interception methods. (Bytedance)

  • 18. Customize the difference between view and viewgroup

  • 19. Rendering principle of View

  • 20. Execute order of onTouch, onTouchEvent and onClick in View

  • 21. View sliding mode

  • Make the difference between invalidate() and postInvalicate()

  • 23. Which lifecycle method of the Activity does the View draw from

  • 24. The connection and difference between Activity,Window and View

  • 25. How to quickly darken the Activity window

  • 26. Causes of ListView stagnation and optimization strategies

  • 27. Why should ViewHolder be declared as a static inner class

  • 28. What are animations available on Android? Animation takes up a lot of memory, how to optimize

  • 29. Customizing a View to execute invalidate() is not always a callback to onDraw()

  • 30. DecorView, ViewRootImpl, viewGroup.add () will add another ViewRootImpl

  • 31. How to add Windows (code implementation) via WindowManager?

  • 32. Why can’t Dialog use the Application Context?

  • What exactly is a token in WindowMangerService? What’s the difference?

  • 34. What is RecyclerView? How to use it? How do I return different items

  • 35. Recycle mechanism of RecyclerView

  • 36. How to add pull refresh & pull down loading mechanism to ListView & RecyclerView

  • 37. How to refresh ListView & RecycleView locally?

  • 38. What problems usually occur when a RecycleView is nested under ScrollView?

  • 39. When a ListView or a RecyclerView displays news data, there is a picture dislocation, what are the possible reasons and how to solve it?

  • 40. Requestlayout, onLayout, onDraw, DrawChild

  • 41. How to optimize a custom View

  • 42. Realization principle of Android attribute animation and realization principle of tween animation

Chapter 3 Android FrameWork

  • 1. What are the ways of multi-process communication in Android? What have you used for process communication? How does it work? (Bytedance, Xiaomi)

  • 2. Describe the principle of Binder mechanism? (Oriental Headline)

  • 3. How do Binder thread pools work? (Oriental Headline)

  • 4. How does Handler communicate with threads? (Oriental Headline)

  • 5. Handler If there is no message processing is blocking or non-blocking? (Bytedance, Xiaomi)

  • Handler. post(Runnable) How is Runnable executed? (Bytedance, Xiaomi)

  • 7. The handler Callback and handleMessage exist, but does the handleMessage return true? (Bytedance, Xiaomi)

  • 8. What is the difference between sendMessage and postDelay in Handler? (Bytedance)

  • 9. What is IdleHandler? How to use it? What problems can it solve?

  • 10. Why doesn’t Looper. Loop block the main thread? – Why there is no ANR for Looper infinite loop

  • 11. How can Looper be created in child threads? (Bytedance, Xiaomi)

  • 12. Looper, handler, thread. For example, how many loopers can a thread have for each Handler? (Bytedance, Xiaomi)

  • 13. How do I update the UI? Why can’t child threads update the UI? (Meituan)

  • 14. The principle of ThreadLocal and how is it applied in Looper? (Bytedance, Xiaomi)

  • 15. What are the ways Android stores data?

  • 16. SharedPreference principle, what is the difference between commit and apply? What should I pay attention to when using it?

  • 17. How to determine whether an APP is in the foreground or background?

  • 18. How to do application maintenance?

  • 19. The size of an image 100×100 in memory? (Bytedance)

  • What types of parameters can be passed with Intent?

  • 21. What if you need to pass a large amount of data between activities?

  • 22. Open multiple pages, how to achieve one-click exit?

  • 23. How is the life cycle of LiveData monitored? B (stand)

Chapter 4 Performance optimization

  • 1. Memory optimization, memory jitter, and memory leakage. When will a memory leak occur? Just a few examples (Meituan)

  • 2. Bitmap compression, the difference between 100% and 90% quality? (Oriental Headline)

  • 3. Use of TraceView to find CPU usage (Eastern Headline)

  • 4. Memory Leak Search (Kuwo Music)

  • 5. What is ANR and how to solve it? ANR Search (Meituan)

  • 6. The CPU

  • 7. How is performance optimization analysis performed in the current project

  • 8. Concept of cold start and hot start (Kuwo Music)

  • 9. View level is too deep, how to optimize, choose which layout is better? (Meituan)

  • 10. How to detect if function execution is stutter (Bytedance)

Chapter 5 Open source framework

  • 1. LeakCanray 2.0 Why does not install need to be installed in the Application? B (stand)

  • 2. Principle of OkHttp (Station B)

  • 3. Glide Cache mechanism (Station B)

  • 4. How does Android initiate network requests and use relevant frame codes? What problem does the OkHttp framework solve for you? (Meituan)

Chapter 6 the NDK


  • 1. Does Jni understand? How efficient is Hello World compared to JAVA? (Meituan)

  • 2. The difference between references and Pointers in C++

conclusion

Said so much, but the most important or that sentence, although the interview job-hopping salary is everyone of us look forward to, but you also have to have the relative ability, if you do not have, do not waste our two precious time, hope to remember;

Making address:Github.com/733gh/xiong…