Basic introduction

I was laid off during the pandemic.

Review and prepare interview questions from the beginning of March. The review materials are mainly “Exploring the Art of Android Development” and the blog of @Jsonchao, as well as other blog materials online. First introduce their basic situation: slag this graduation fast 4 years, has been in a small factory fish muddle along, education background and resume background is not very good-looking, so the interview invitation is not a lot of, the interview is also everywhere. Interviews begin in mid-March and continue until the end of April. I interviewed 9 companies and nearly 20 rounds of interviews. I got offers from 2 small companies and 1 listed company (not a famous one), and finally prepared to work for a listed company. I also applied for the positions of BAT, 360, Douyin, Kuaishou, Ping An and other large factories, but most of them did not give me the opportunity of interview. A few large factories also rejected me in the follow-up interview, because of my lack of solid basic knowledge and technical depth.

Share the interview

Every round of interview will have a self-introduction, so you can prepare a self-introduction before the interview, to introduce yourself to the interviewer. I’m only going to share the Android technology interview questions here (grouped by company and aggregated over several rounds of interviews), and the interviewer will continue to ask you “No” at each interview. As for the answers to the interview questions, Google your answers and try to be as complete as possible during the interview to score points with the interviewer. It is suggested that before you start interviewing for a job, you should first find a few small companies to get a sense of the interview, and then invest in the company you expect.

Here are the interview questions:

The company a

  1. Componentization and Arouter’s principle
  2. Recyclerview is different from ListView
  3. Glide process, compression before cache, cache hit
  4. APP performance optimization, memory optimization, layout optimization, drawing optimization, memory leakage
  5. Http is different from Https
  6. The socket heartbeat packets
  7. JVM virtual machine, heap and stack structure
  8. Activity startup mode, what are the differences
  9. Stack Features: Custom stack structure
  10. Kotlin disadvantages

The company

  1. Custom view, Chinese and English string width and height measurement display, measurement algorithm, scalability
  2. Event distribution mechanism
  3. The Activity, view, contact window
  4. Hot repair and plug-in principles
  5. Synchronized underlying principle, Java lock mechanism
  6. Java container, difference between HashMap and HashTable, principle of HashMap, capacity expansion process, advantages of perturbation algorithm
  7. ArrayList< String > = ArrayList< String > = ArrayList< String > = ArrayList< String > = ArrayList< String > = ArrayList< String
  8. Http is different from Https, SSL/TLS process
  9. Android Performance Optimization
  10. JVM, heap and stack structures, stack frames, JMM
  11. Componentization note, communication mechanism between components
  12. What are the thread-safe singleton patterns
  13. Familiar design patterns

Three company

  1. MVC,MVP,MVVM
  2. The Activity and the fragment lifecycle difference, the difference between normal add fragments and viewpager added, fragments lazy loading principle, FragmentPagerAdapter and FragmentStatePagerAdapter
  3. Hot fixes and plugins
  4. Umeng bug statistics, how to locate the bug after confusion. In the APP without access to hot repair, how to solve the bug after going online
  5. View drawing principle (can talk about basic view drawing first, then talk about screen refresh mechanism)
  6. Use Analyze to reduce APK volume, principle
  7. Android Version Differences

The company four

  1. Base type bytes, how many bytes are Chinese characters, threads and processes
  2. There are four major components, fileProvider and Contentprovide, and activity startup process
  3. MVC,MVP,MVVM
  4. TCP three handshakes, four waves
  5. Eventbus, Glide principle
  6. Performance optimization, memory jitter, memory leak, memory overflow, handler mechanism, IntentService and handlerThread, methods for child threads to update view contents
  7. GC recovery algorithm
  8. Recyclerview is different from ListView
  9. Componentization, modularization, plug-in, hot repair
  10. How did you solve the problems you encountered at work
  11. When does Kotlin use semicolons, run,with,apply, inline functions, and higher-order functions
  12. APK volume optimization
  13. Interprocess communication
  14. Singleton pattern, which is safe
  15. Retrofit design patterns
  16. The custom view
  17. Have you done audio, video and IM?
  18. APK performance optimization
  19. CurrentHashMap1.7 is different from 1.8
  20. What is atomicity guaranteed for the volatile keyword?
  21. Network optimization
  22. Ideas about new technology
  23. Java generics, covariant and contravariant

The company five

  1. HTTPS Procedure
  2. Common design patterns, proxy patterns and decorator patterns are different
  3. If the server returns the wrong JSON data, how can the client customize the model
  4. Hook technology
  5. Kotlin understands coroutines
  6. Screen adaptation
  7. Usage and principles of the packet capture tool
  8. Network optimization
  9. Future expectations, understanding of the company
  10. Okhttp rxjava, glide, retrofit, the principle of Okhttp underlying data transmission principle, HTTP style structure
  11. APK volume optimization
  12. Android Jetpack usage and principle, new technology view
  13. CrashHandler Obtains information about the application crash
  14. Recyclerview and ListView cache difference
  15. Android common crash analysis and general solutions
  16. NestedScrollView touch mechanism, AOP related knowledge
  17. Design APP and select the overall architecture
  18. The Android sandbox communicates with underlying Linux
  19. When is ACTION_CANCLE triggered
  20. Thread Pool Principle

The company six

  1. Componentization, Arouter, componentization UI, and routing frameworks. AS debugging method
  2. MVC,MVP,MVVM,Jetpack
  3. JVM,JMM, Java steps for loading objects, classLoader,GC collection algorithm
  4. Plug-in and hot fix
  5. Unique Android ID, Knowledge of Android security, encryption algorithm, determine the activity foreground process
  6. TCP three handshakes and four waves
  7. Hash algorithm, HashMap, how to resolve hash conflicts
  8. Load big picture, Glide caching mechanism, design mode, double detection of the singleton mode why check twice, their own design picture loading framework ideas
  9. Start an unregistered Activity
  10. AOP, Bluetooth development, IOT
  11. Glide cache clearance: Lrucache algorithm
  12. Glide cache file is too large, search efficiency is slow how to optimize? Glide download HD picture optimization
  13. Recently studied technology, encountered the most difficult thing, expectations of the company

Company seven

  1. Componentization, advantages and disadvantages of Arouter
  2. MVC,MVP,MVVM
  3. Highlights of the project, understanding of architecture
  4. Handler principle and related knowledge, message recycling policy
  5. Hashmap principle, ArrayMap principle, compare performance.
  6. Why is a hashMap greater than 8 converted to a red-black tree and why is the loading factor 0.75
  7. Synchronized underlying principle, Java lock mechanism
  8. Services and Broadcasting
  9. Activity start mode (give example specific analysis, A(standard)- B(singleton)- C(singleTop)- D(singleTask), analyze several stacks, each stack of activities)
  10. Common design pattern, thread-safe singleton pattern

The company eight

  1. The static and final; Inheritance and polymorphism
  2. Componentization, advantages and disadvantages of Arouter
  3. Context
  4. This section describes the principles of the Handler cache pool.
  5. Performance optimization, startup speed optimization, architecture
  6. Java Virtual machines are different from Dalvik and ART
  7. Kotlin coroutines, extension functions and properties, and associated objects
  8. How to design an APP architecture for the home page of e-commerce APP
  9. A: Network requests and Javabeans are related to data models
  10. Glide’s memory EngineKey is guaranteed to be unique. A: There is a queue that stores the EngineKey for comparison after each generation. I did not find the right position in the source code, if you know, please help to explain.
  11. How does Retrofit translate the Service interface into the Javabeans we need?
  12. How to do management, new technology learning

The company nine

  1. SqLite is different from contentProvider
  2. Fragment interval. The switchover interval between two fragments changes. The two fragments communicate
  3. HTTPS certificate verification, encryption related, network request framework
  4. Glide loading process, large picture display, picture size calculation
  5. View drawing (starting with onSync())
  6. Thread memory model, communication between threads
  7. The width and height of the view, the way to update the view, the main thread message mechanism
  8. OOM, Memory leak, Memory overflow, Java reference type, ANR analysis
  9. APP performance optimization, WebView related, Webview optimization, Intermodulation between Android and JS in WebView
  10. Plug-in and hot fix

conclusion

Resume to write things, must first understand, especially resume on the professional skills. The most feedback I received in this interview is that the basic knowledge is not solid enough, and the technical depth is not enough. Now most of Android development needs to know some C++ and Linux knowledge, large factories also need to brush algorithm interview questions, in the following learning process, I will start from the above aspects. Of course also must learn basic knowledge firm, technical depth makes depth bit.

Finally, I wish everyone can get the desired offer!