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
- Componentization and Arouter’s principle
- Recyclerview is different from ListView
- Glide process, compression before cache, cache hit
- APP performance optimization, memory optimization, layout optimization, drawing optimization, memory leakage
- Http is different from Https
- The socket heartbeat packets
- JVM virtual machine, heap and stack structure
- Activity startup mode, what are the differences
- Stack Features: Custom stack structure
- Kotlin disadvantages
The company
- Custom view, Chinese and English string width and height measurement display, measurement algorithm, scalability
- Event distribution mechanism
- The Activity, view, contact window
- Hot repair and plug-in principles
- Synchronized underlying principle, Java lock mechanism
- Java container, difference between HashMap and HashTable, principle of HashMap, capacity expansion process, advantages of perturbation algorithm
- ArrayList< String > = ArrayList< String > = ArrayList< String > = ArrayList< String > = ArrayList< String > = ArrayList< String
- Http is different from Https, SSL/TLS process
- Android Performance Optimization
- JVM, heap and stack structures, stack frames, JMM
- Componentization note, communication mechanism between components
- What are the thread-safe singleton patterns
- Familiar design patterns
Three company
- MVC,MVP,MVVM
- The Activity and the fragment lifecycle difference, the difference between normal add fragments and viewpager added, fragments lazy loading principle, FragmentPagerAdapter and FragmentStatePagerAdapter
- Hot fixes and plugins
- 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
- View drawing principle (can talk about basic view drawing first, then talk about screen refresh mechanism)
- Use Analyze to reduce APK volume, principle
- Android Version Differences
The company four
- Base type bytes, how many bytes are Chinese characters, threads and processes
- There are four major components, fileProvider and Contentprovide, and activity startup process
- MVC,MVP,MVVM
- TCP three handshakes, four waves
- Eventbus, Glide principle
- Performance optimization, memory jitter, memory leak, memory overflow, handler mechanism, IntentService and handlerThread, methods for child threads to update view contents
- GC recovery algorithm
- Recyclerview is different from ListView
- Componentization, modularization, plug-in, hot repair
- How did you solve the problems you encountered at work
- When does Kotlin use semicolons, run,with,apply, inline functions, and higher-order functions
- APK volume optimization
- Interprocess communication
- Singleton pattern, which is safe
- Retrofit design patterns
- The custom view
- Have you done audio, video and IM?
- APK performance optimization
- CurrentHashMap1.7 is different from 1.8
- What is atomicity guaranteed for the volatile keyword?
- Network optimization
- Ideas about new technology
- Java generics, covariant and contravariant
The company five
- HTTPS Procedure
- Common design patterns, proxy patterns and decorator patterns are different
- If the server returns the wrong JSON data, how can the client customize the model
- Hook technology
- Kotlin understands coroutines
- Screen adaptation
- Usage and principles of the packet capture tool
- Network optimization
- Future expectations, understanding of the company
- Okhttp rxjava, glide, retrofit, the principle of Okhttp underlying data transmission principle, HTTP style structure
- APK volume optimization
- Android Jetpack usage and principle, new technology view
- CrashHandler Obtains information about the application crash
- Recyclerview and ListView cache difference
- Android common crash analysis and general solutions
- NestedScrollView touch mechanism, AOP related knowledge
- Design APP and select the overall architecture
- The Android sandbox communicates with underlying Linux
- When is ACTION_CANCLE triggered
- Thread Pool Principle
The company six
- Componentization, Arouter, componentization UI, and routing frameworks. AS debugging method
- MVC,MVP,MVVM,Jetpack
- JVM,JMM, Java steps for loading objects, classLoader,GC collection algorithm
- Plug-in and hot fix
- Unique Android ID, Knowledge of Android security, encryption algorithm, determine the activity foreground process
- TCP three handshakes and four waves
- Hash algorithm, HashMap, how to resolve hash conflicts
- Load big picture, Glide caching mechanism, design mode, double detection of the singleton mode why check twice, their own design picture loading framework ideas
- Start an unregistered Activity
- AOP, Bluetooth development, IOT
- Glide cache clearance: Lrucache algorithm
- Glide cache file is too large, search efficiency is slow how to optimize? Glide download HD picture optimization
- Recently studied technology, encountered the most difficult thing, expectations of the company
Company seven
- Componentization, advantages and disadvantages of Arouter
- MVC,MVP,MVVM
- Highlights of the project, understanding of architecture
- Handler principle and related knowledge, message recycling policy
- Hashmap principle, ArrayMap principle, compare performance.
- Why is a hashMap greater than 8 converted to a red-black tree and why is the loading factor 0.75
- Synchronized underlying principle, Java lock mechanism
- Services and Broadcasting
- Activity start mode (give example specific analysis, A(standard)- B(singleton)- C(singleTop)- D(singleTask), analyze several stacks, each stack of activities)
- Common design pattern, thread-safe singleton pattern
The company eight
- The static and final; Inheritance and polymorphism
- Componentization, advantages and disadvantages of Arouter
- Context
- This section describes the principles of the Handler cache pool.
- Performance optimization, startup speed optimization, architecture
- Java Virtual machines are different from Dalvik and ART
- Kotlin coroutines, extension functions and properties, and associated objects
- How to design an APP architecture for the home page of e-commerce APP
- A: Network requests and Javabeans are related to data models
- 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.
- How does Retrofit translate the Service interface into the Javabeans we need?
- How to do management, new technology learning
The company nine
- SqLite is different from contentProvider
- Fragment interval. The switchover interval between two fragments changes. The two fragments communicate
- HTTPS certificate verification, encryption related, network request framework
- Glide loading process, large picture display, picture size calculation
- View drawing (starting with onSync())
- Thread memory model, communication between threads
- The width and height of the view, the way to update the view, the main thread message mechanism
- OOM, Memory leak, Memory overflow, Java reference type, ANR analysis
- APP performance optimization, WebView related, Webview optimization, Intermodulation between Android and JS in WebView
- 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!