The beginning of the story


Yes, I was laid off during the pandemic!! What a sad story, did I just give up? No way. Let’s see how I pulled off a perfect counterattack.

Friend A: I can’t find A suitable job because of the bad market conditions

Friend B: The salary is too low, not as good as the last salary

Friend C: I can’t find a job now. I’m not the only one. I just need to rest for a while

Friend D: Oh, it’s just the right time to spend time with my wife and kids

The above is my side of the friend said the most words, a blink of an eye 2020 half of the past results also squatted at home, self comfort never mind the market so, while looking at the bank card less and less money began to panic, oneself a person is ok, I those around the wife children have begun to look for me to borrow money!! I’m not stingy! Me, too! Don’t think it’s just talk, it’s all happened to my friends. Are you laughing at them too? I can only say who, if you don’t work hard to improve their skills, keep learning to make themselves irreplaceable “K” will not be the next you!

Review and prepare interview questions from the beginning of March. The materials reviewed are mainly 330-page PDFAndroid advanced core notes, which are MADE into PDF materials collected and sorted by my friends in BAT and other big factories. It covers everything you need to know about a job interview, as well as some classic questions that interviewers like to ask. And what to look out for during the interview, and what they learned from their experiences during the interview. It’s all in there. So I basically gnawed through 330 pages of PDF. Finally got the Offer, and of course there are other blogs online.

330 pages of advanced Android core notes


I scanned the interview questions before the interview

Above is the information I read before the interview, if you need it, you can click the link below to get it

Android learning PDF+ architecture video + interview document + source notes

If you need anything else, you can also check it out on GitHub. The following information will be uploaded to GitHub as well.

Now is looking for a job or ready to change the job of friends can refer to my learning direction, right when it comes to learning direction, I did a map before, (put the article at the end, we save) you can have a look at the hope that you have a little help! Finally, I hope all friends can find their own satisfactory work

My basic information

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

Agree to tutu

· Bid for Ali P7 and Tencent T3, annual salary of 40W+ Senior enterprise architect skills growth path Android

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!