Big factory interview questions are wide? Let’s take a look at these Android advanced interview questions. Have you mastered it?

1. Performance optimization

1. What performance optimizations have you made? How is it evaluated and optimized?
2. Why is WebView slow to load?
3. How to optimize the custom view
4. When will FC (Force Close) appear?
5. How to solve the performance problems caused by Java multithreading?

Two, Android Framework related

1. Android system architecture
2. View event distribution mechanism? How to resolve sliding conflicts?
3. View drawing process?
4. Cross-process communication
5. What is the startup process of Android system? (Hint: init process -> Zygote process -> SystemServer process -> various system services -> application process)
6. Start a program, you can click on the icon on the main interface to enter, or you can jump from a program, there are two What's the difference?
7. Explanation of important terms in the AMS family
8. App startup process (Activity's cold start process)
9. ActivityThread working principle
10. Let's talk about the startup process of the four major components, and
how to start and destroy the four major components. 11. How is AMS managed Activity?
12. Understand Window and WindowManager
13. How does WMS manage Window?
14. Explain roughly what happens when an application is installed on the phone?
15. Android packaging process? (That is, describe what happens after clicking the build button of Android Studio?) What is in the apk? The principle of the signature algorithm?
16. What are the principles and differences between the Android virtual machine and the java virtual machine? (The principle and difference of JVM, Davilk and ART)
17. Android adopts automatic garbage collection mechanism, please tell me the principle of Android memory management?
18. How are apps sandboxed in Android, and why do you want to do this?
19. How is a picture found after calling R.id in the app?
20, JNI
21. Please introduce NDK?

Three, Android excellent tripartite library source code

1. Which open source libraries are used in your project? Talk about its realization principle?
2. Application scenarios of soft and weak references in Android

Four, hot fix, plug-in, modularization, componentization, Gradle

1. Hot repair and plug-in

How is the hot patching technology realized, and what is the difference between it and plug-in?
Why choose plug-in?

2. Modularization and componentization

  • The benefits of modularity
  • The principle of componentization, the realization of routing (ARouter) in componentization
  • The principle of Android componentization, there are some problems that componentization usually uses.
  • Understanding of project componentization
  • In multi-module development, different persons in charge may introduce duplicate resources, the same string, the same icon, etc. but the file name is different, how to remove the duplication?

3、gradle

  • Are you familiar with gradle, do you know about automatic packaging?
  • How to speed up the compilation speed of Gradle?
  • Can Gradle's Flavor configure sourceset?
  • Gradle life cycle

Five, design patterns and architecture design

1. Design pattern

  • Talk about your understanding of Android design patterns
  • Design patterns commonly used in projects
  • Handwritten producer/consumer model

2. Architecture design

  • MVC MVP MVVM principle and difference?
  • How to separate C and V of Activity in the case of MVC?
  • What are the benefits of defining Presenter as an interface in the MVP architecture;
  • How does MVP manage the life cycle of the Presenter and when will the network request be cancelled?
  • aop thought
  • How should Fragment be decoupled if used in Adapter?
  • Are there any Base class, BaseActivity and BaseFragment encapsulation problems in the project framework, and solutions?
  • Design a music playback interface, how would you implement it, those classes used, how to design, how to define the interface, how to interact with the background, how to cache and download, how to optimize (15 minutes)
  • How to design an App's overall architecture from 0?
  • Talk about an application that you think is currently popular and design it (for example: live streaming APP, P2P finance, small video, etc.)
  • To implement a library to complete the real-time reporting and delayed reporting of logs, which aspects should be considered?

Other high-frequency interview questions

1. How to ensure that a background service is not killed? (The same question: how to ensure that the service is not killed in the background?) What is the more power-saving way?
2. The realization principle of Android animation framework.
3. What is the difference between Activity-Window-View?
4. How does the low version SDK implement the high version api?
5. Tell me about your understanding of Context?
6. The life cycle and startup mode of Android
7. ListView and RecyclerView series
8. How to implement a push and the principle of message push? The push arrival rate problem?
9. Dynamic permission series
10, custom View series
11, Google’s newly launched Room architecture
12. How to locate without permission, how to locate specific models failed, how to solve?
13. The difference between Debug and Release APK?
14. Android file storage, the evolution of the permission control of the storage location of each version, external storage, internal storage
15. Is there any way to improve the compilation speed?
16. Scroller principle
17, Hybrid series
18. If Handler postdelayed two messages are used in the current thread, one is delayed for 5s and the other is delayed for 10s, and then the current thread sleeps for 5 seconds, how will the execution time of the above messages change?
19. In the allocation of process memory in Android, can I allocate a fixed amount of memory by myself?
20. Does the pull-down status bar affect the life cycle of the activity? If a network request is made during onStop, how to resume during onResume
21. Android long connection, how to deal with the heartbeat mechanism
22. CrashHandler implementation principle?
23. The most essential difference between SurfaceView and View?
24. Android program runtime permissions and file system permissions
25. Curved screen adaptation
26. The internal execution flow of TextView calling the setText method
27. How to control the View display (RemoteView) of another process?
28. How to realize the right sliding finish activity?
29. How to realize the rounded corner effect of the interface at the entire system level. (That is, all APP opening interfaces will have rounded corners)
30. Can non-UI threads update the UI?
31. How to resolve git conflicts?
32. Have you ever done unit testing, and talk about a familiar unit testing framework?
33. Implement a Json parser (you can increase the speed through regularization).
34. Jenkins continuous integration.
35. Why does Google launch Fragment? What are the benefits and uses? Can't it be replaced by View directly?
36. Have you used or written any tools in your work? Scripts, plug-ins, etc.; for example: multi-person collaborative development may have a copy of some of the same resources. Is there a way to automatically detect this kind of duplication?

At last

Needless to say, I believe everyone has a consensus: no matter what the industry, the most powerful person is definitely the person at the end of the pyramid. Therefore, if you want to be a great programmer, you must make yourself stand taller. Becoming a technical expert is not a matter of overnight. It requires time and technology accumulation.

Regarding this point, when I established the Android direction at that time, I had already begun to sort out my growth path, including how to systematically learn the technology, which was listed in great detail.

Here, I will finally share a series of Android learning resources that took more than a year to organize: Android source code analysis, Android third-party library source notes, Android advanced architect seven topic learning, BAT interview questions analysis package over the years, Android master study notes, etc. Wait, these contents are free to share with everyone, friends who need the full version, click here to see all the contents .

Guess you like

Origin blog.csdn.net/weixin_44339238/article/details/112253808