After an interview, I wasted a lot of brain cells~

Author: Yaoer

foreword

I started watching it at the end of last year. There are not many good opportunities for Android, but it’s okay. There are still some interview opportunities for 3+ years of Android development experience, but it’s not as low as it was a few years ago. The general experience is Small start-up companies pay more attention to whether your project experience fits with your own, and you can come here directly to take charge of it. In addition to fancy project experience, big factories also pay more attention to the breadth of your knowledge, which is the inspection of breadth, depth, and solutions. Usually enough work needs to accumulate temporary questions and just talk about superficial questions. .

The following summarizes some of the problems encountered, and there are various styles. Here are the questions first.

real interview questions

It also coordinates in Hangzhou, and the letters of the names of each factory indicate that you can guess by yourself. The arrangement of this topic does not guarantee that you will encounter the same problem. Depending on the position and the situation of the interviewer, the problem may vary greatly. Generally speaking, Ali's interview is very formal, from the basics of android to a certain degree of understanding of summary questions, and then back to the basics and principles of java, mainly focusing on questions on the resume, or divergent questions from the resume, the questions will be organized by table and Gradually go deep in it, and examine the understanding of the project you are responsible for and the knowledge principles used in it. Because it is written from memory, the following questions are in no particular order. Here, it is classified by position, which can have a gradual feeling.

TB: Telephone One

  1. What is dp, what is sp, what is the difference
  2. Custom View, ViewGroup pay attention to those callbacks?
  3. Reasons and solutions for interface freeze
  4. storage type in android
  5. Have you ever used the service, the basic calling method
  6. Handler mechanism
  7. LinearLayout, FrameLayout, RelativeLayout performance comparison, why
  8. Activity life cycle, will other life cycles go after the finish call?
  9. Are you familiar with the FW layer? Have you seen the source code?
  10. Are you familiar with the GC recovery mechanism, and the generational algorithm?
  11. Java's class class loading principle
  12. How to troubleshoot memory leaks, MAT analysis methods and principles, what are the causes of various leaks, such as
  13. Why does Handler leak
  14. Are you familiar with gradle, do you know about automatic packaging
  15. Introduce the first app architecture and communication
  16. Which modules have you been responsible for, and what are your advantages compared with your colleagues?
  17. What impressive problems did you encounter and how did you solve them?

On-site interview: three

First:

  1. What kind of work have you done recently?
  2. What an impressive problem encountered. A: I will follow the project you introduced to ask about the specific implementation.
  3. Does push message have rich text?
  4. Do you understand the hotfix, what is it used for?
  5. Is there a limit to the size of the apk package? How to reduce the package size?
  6. Have you ever used or written any tools at work? scripts, plugins and more
  7. For example: multi-person collaborative development may each have a copy of some of the same resources. Is there a way to automatically detect such duplication?
  8. Have you ever written native underlying code?
  9. Are you familiar with the drawing of view? Let me introduce
  10. gc related algorithms
  11. What is the cause of anr, and how to check it
  12. Are there any optimization measures for the interface? For example, list display and the like, have you ever encountered memory problems, and how to optimize it?
  13. What design patterns do you usually use?

Second:

  1. Introduce what work you have done in the past year
  2. Detailed inquiries will be made on the outstanding skills on the resume: for example: the specific steps of audio synthesis, as well as some problems encountered and detailed handling. According to the interview, some questions will be diverged. I asked, if the seek method plays to the end and then replays, there will be some unsmooth problems. How to avoid it, from the perspective of interaction design or technology. (Personally, I don't pay much attention to this).
  3. How many people are in the project team and how to allocate work
  4. How do threads communicate?
  5. What is the architecture of the app, and why, and what are the pros and cons?
  6. Are you familiar with the algorithm? Given a binary sorting tree, an algorithm problem is given to find its next element (referring to the next one in the order of size) for a given node.
  7. Why are you looking for a job and what are your advantages

Third:

  1. Technical questions are no longer limited to resumes, and may gradually and diffuse according to resumes and answers.
  2. I feel that the various technical interviewers have not communicated before and may ask similar questions
  3. Introduce yourself mainly responsible for the work
  4. What are the life cycles of Activity? Do you know onRestart? Let me introduce it
  5. Do you know savedInstanceState, what it is used for, when it has a value, when it is empty, and how it is usually used
  6. Are you familiar with View drawing? Let me introduce it. Can you talk about the implementation principle?
  7. What development tools and analysis tools have you usually used?
  8. What is ANR? How to check? Will Service cause ANR?
  9. What are the startup modes of Activity? There are ABC in the stack. First, I want to go directly to A, and clean up BC. How many ways can I do it? How many instances of A are there as a result of these methods?
  10. Is there any tool to see the Activity stack information? If there are multiple stacks, is there a way to get the activity list of each stack?
    Which commands are you familiar with? Do you know how to start an Activity with a command?
  11. What is the difference between apply and commit of SharedPrefrences
  12. Have you seen the function with $ in java? What does it mean?
  13. Is MD5 an encryption method, and Base64?
  14. There are blogs and github, what are they mainly writing about? what concerns
  15. What are the new features of android 8.0
  16. That's about it. . At the end each interviewer will let you ask him questions.

some company

  1. glide caching strategy? Is the same picture related to size?
  2. What are the animations in android
  3. View event delivery mechanism
  4. How to troubleshoot and optimize interface lag?
  5. Fragment's replace and end? ? difference?
  6. MVP, MVVM, MVC explained and practiced
  7. Beyond projects, insights into technology, expanding knowledge

Two sides:

  1. How to implement the WeChat jump-by-hop plug-in, and how to detect it?
  2. How to effectively detect each rectangle under a solid color background?
  3. Do you know the so algorithm for docking, and have you come into contact with related libraries?
  4. Choose one of the three algorithm questions and write a test case: print all the prime numbers between nm; count the number of occurrences of 1 between nm; specify the sorting of the number sequence;
  5. Who are you familiar with the source code of the android api layer? explain
  6. When does ACTION_CANCEL trigger, touch the button and then slide to the outside to lift it up will trigger a click event, will + + slide back and lift it up
  7. How to deal with the sliding conflict problem of nested View
  8. Are you familiar with the principles related to hot fixes?
  9. Are you familiar with the gradle packaging process?
  10. Arbitrary questioning session: In fact, you can ask questions encountered in previous interviews: for example, when developing multiple modules, different persons in charge may introduce duplicate resources, the same string, the same icon, etc. but the file names are different. Heavy?

NetBase:

  • The underlying mechanism of Canvas, the drawing framework, what is the principle of hardware acceleration, what is the buffer of canvas lock
  • surfaceview, suface, surfacetexure, etc., and the underlying principles
  • Android file storage, the evolution of permission control for each version storage location, external storage, internal storage
  • What pitfalls did upper-level business activities and fragments encounter? ? Some pitfalls and optimization experience on the page display
  • Open source framework for network requests: Introduction to OKHttp, have you written an interceptor?

Netbase:AI

  • Does the data layer have unified management, how is data caching done, and whether http requests provide unified management?
  • Is there a useful pattern, all the logic is in the Activity layer? how to separate
  • If some decoupling strategies are used, how to manage the life cycle?
  • Is there any way to improve compilation speed?
  • Is there a unified management of threads in the application?
  • The algorithm of jni is provided by the main thread? Do you want to ask about service?
  • What is edge detection used for? Do you know anything about deep learning?
  • Is there any app performance analysis and testing after launch?

YZ

  • Inter-process communication method? How many parts are there in the composition of Binder?
  • The difference between HttpClient and HttpConnection
  • View's event delivery mechanism
  • What are MVC, MVP, and MVVM?
  • Design patterns commonly used in Android, say three more advanced ones?
  • Memory optimization, OOM causes and troubleshooting methods
  • How to change the height of listview
  • What is Https?
  • In addition to daily development, what other work have you done? Such as continuous integration, automated testing, etc.

DD

  • ActivityA jumps to ActivityB and then B returns to A according to back. The order of their respective life cycles, A and B are opaque.
  • What is the difference between the Synchronize keyword and the class or object.
  • In the singleton DCL mode, whether to add the volatile keyword to the private variable of the singleton, what is the use of this keyword
  • JVM's reference tree, what variables can be used as GCRoot? Several methods of GC garbage collection
  • What is ThreadLocal? Why is there no ANR in the endless message loop in Looper?
  • Where is the main method entry in Android
  • jdk1.5? The respective data structures of SparseArray and ArrayMap, how the search of the former is realized, and the difference from HashMap
  • The difference between Runnable and Callable, Future, FutureTask, which one does AsyncTask use? - Is AsyncTask executed sequentially? Execute new AsyncTask 200 times in the for loop and execute, will there be any exceptions?
  • What is the IntentService life cycle, usage occasions, etc.
  • What is the difference between RecyclerView and ListView? Partial refresh? When the former is used, how to avoid sliding lag in the multi-type scene. How to implement lazy loading, how to optimize the sliding experience.
  • Has the database upgrade of SQLite been used?
  • Open question: How to design a lazy loading framework or sdk and issues to be aware of if the startup speed is improved.
  • What is the method of Scroller and how to use it.
  • Share the problems encountered in the project
  • webwiew understand? How to achieve communication with javascript? mutual communication. @JavascriptInterface in ? There is a bug in the version, is there any other way to call the android method besides this?
  • What ReactiveNative Knows
  • Are you familiar with JNI and NDK? How to call each other before Java and C methods?

some suggestions

1. The resume should be written truthfully, and the relevant knowledge points must be thoroughly familiar.
2. The foundation is solid. There are a lot of information on the Internet about the knowledge tree related to android and java.
3. To summarize in advance, what other technologies are you good at? This kind of open question depends on knowledge.
4. Learn to ask questions. Do you have any questions to ask me? This polite question is also a great opportunity to get to know the other person.
5. Good psychological quality. No matter what the situation is, the interviewer is late, the interviewer is cold and impolite, questioning your answer, etc. Don’t panic and don’t reject it. Be sure to calm down, think patiently and positively. Answer each other's questions.

Below I have compiled some relevant learning document notes and corresponding interview exercises (including answers) for different technical modules in Android . You can refer to and review them in a targeted manner.

Guess you like

Origin blog.csdn.net/weixin_61845324/article/details/132438104