编程知识 cdmana.com

[tips of big companies] Android has been developed for 3 years and has been a salted fish for 2 years. Crud every day and review for 2 months. I was lucky to win the meituan offer!


This is my experience last year , I think it's inspiring , Hope to help some students who are confused .

I went to meituan to deliver takeout ? Do you have a battery car ?

answer : Pro - , There is a match , It's smooth to drive . Ah bah , What did you say , We're in a serious technology department .

The self salvation of salted fish

Back in Shanghai just after the new year , At this time, I have graduated for two and a half years , Like most salted fish , Going to work is CRUD, After work is watching a play 、 Play a game ( Hero alliance 、 Hand games all play ).

At that time, I got my salary in a month 5k Head start , But because of the development in Party A's field , In addition, the difference is close to the meal 8k, It's still covered . Every weekend, a few friends play cards together 、 Love together 、 Wash your feet together , Life is very moist , At that time, I was quite satisfied .

The reason why I want to change jobs has been forgotten , I haven't thought of it for a long time , It may be due to the influence of other partners , With that in mind, you're ready .

At first, I just read other people's blogs and learn something after work every day , It's usually 22:30 Watch it for an hour or so , At that time, the first thing to look at was threads 、 Four components 、Java Basic knowledge , And so on, this kind of relatively basic knowledge .

The idea of job hopping is out of control , If I just started watching it every night 1 I'm just testing , Then half a month later, I will devote myself to preparing for the interview .

There wasn't a lot of work at that time , It takes two or three hours a day to basically cope with , So I spent the rest of my working time preparing for the interview . The main way to prepare for an interview is to read other people's blogs 、 Look at the source code , The main content is Android Core knowledge and Android Interview questions .

From the beginning of February to the end of March , During this period, I mainly did the following things :

1. Look at the interview questions

I've seen a lot of them in the meantime  Android Interview questions , I remember :

①Android Framework Summary of high frequency interview questions

② The real question of the interview is beating

③ Meituan Android Analysis of the real interview questions

④Android High frequency interview questions


It's important , Look at the problem with understanding 、 Look at... With thought , Combine the topic with the content of actual development to understand , It's easy to write down , It's not good at rote learning . And you can't just look at the interview questions once , It needs to be looked at over and over again , You prepare for high school exams like that . After reading these interview questions , I can confidently write on my resume :

  • Have good C/C++/java Programming based , Familiar with common design patterns , Familiar with multithreading programming 、 Familiar with network programming ;
  • Familiar with Android App Develop knowledge and skills
  • be familiar with android Structure system , be familiar with android Common components such as :activity,service,fragment And so on

about Framework This sounds like something big , At that time, what I could do was to recite the following questions thoroughly with understanding , Before that, I knew all about Framework.

  • Binder What are the advantages ?( Bytes to beat )
  • Binder How to make a copy ?( tencent )
  • MMAP Explain the principle of ;( tencent )
  • Why? Intent Can't deliver big data ?( Ali )
  • describe AIDL Generated java Class details ;( Bytes to beat )
  • The underlying communication mechanism of the four components ;( Bytes to beat )
  • Why? Intent Can't deliver big data ?( Ali )

For the back question , I can only say two words .

2. Source code exploration

After reading the interview questions above , Already able to deal with a lot of problems , But there seems to be something missing ? you 're right , Is to let you install the source code . At that time, I chose the source code of the common collection , It's basically looking at the source code 、 While facing other people's blog posts, follow the line by line learning . I'm learning Android When collecting source code , It's very helpful for me. It's this 《Android The source code parsing 》

It mainly contains wechat MMKV Source code 、AsyncTask Source code 、Volley Source code 、Retrofit Source code 、OkHttp Source code and so on .

After reading the source code , I've written some of the best I've learned into my resume , Because it was one of the few highlights I felt I had at that time .

The preparation of the source code is basically all used , I have encountered these related questions in the interview :

  • AsyncTask Is it serial or parallel ?
  • AsyncTask As the Android version changes
  • Retrofit And OkHttp How to cooperate ?
  • Retrofit How to deal with the data in ? How it returns RxJava.Observable Of ?
  • ..........

I've been asked too many questions , I will add some of my own thinking .

I've dug deep ( For example, I have seen the source code ) When you are asked about your knowledge , Be sure to seize the opportunity to show , Let the interviewer feel his depth , These are all bonus points .

3. Project preparation

In addition to technical knowledge , Projects are also essential , But you don't have to prepare a lot , Just pick 2-3 Prepare for your best needs .

  • The image processing SDK( Independent aar, The whole interface of jigsaw puzzle is pure Canvas Drawing and gesture animation , utilize renderscript Filter algorithm and Gaussian Blur , Deep copy backup for rollback .......)
  • Painting screen APP( to Android app Design and write Architecture , R & D framework , Complete product function iteration and performance tuning .......)

The first 2 In fact, I'm here to make up the number , Excuse me .

But don't always think about shrinking when you encounter problems in the project , The process of solving these problems 、 The problem to be solved , Will make you grow fast and benefit for life .

That's all I've prepared for the interview , from 2 At the beginning of the 3 End of month , Almost ready 1 Months and a half , The resume at that time was like this . Now it looks a little bit low, But that was my limit .

Salted fish training out of the mountain

When you're ready, you're ready to send your resume , All kinds of well-known recruitment websites have to invest in , There's no choice ( The only possibility is to choose Internet companies as much as possible , There are also big companies like Alibaba Tencent , We dare not cast ), As long as it's a move 2 year Android I'll be done with my shot . Just give me an interview , We have to thank God .

from 3 It's the end of the month 4 End of month , All in all 20 Come to a company . Basically every day 2 An interview , One in the morning and one in the afternoon . My roommate hasn't got up in the morning , I was already out of the house . Breakfast is all in Sanlin East subway station nearby Barbie steamed bread to solve ; Lunch in the vicinity of the interview company to find a McDonald's solution . During that time, I spent at least four or five hours on the road every day , But I don't feel tired at all , The whole person is full of hope for the future .

Thanks to this month's interview time , I've been through a lot of places in Shanghai : Caohejing 、 The zhangjiang high-tech 、 Tang Town 、 People's Square 、 lujiazui 、 Zhongshan Park , I stayed in Shanghai before 2 I haven't been to as many places as I did during the interview .

Interview experience

Interviews are sometimes just like taking a chance , Be lucky , All the questions are yes , Luck almost , Two words were blown out .

Here are only part of the company's interview questions , Some really don't remember ...

A small company 1

  • java What are the characteristics , What's the use of inheritance , What's the use of polymorphism
  • What is reflex , Where to use , How to create an object with reflection
  • The difference between agency mode and decoration mode , Write a static proxy , A dynamic proxy
  • Object loading process , Property or method load first
  • Garbage collection mechanism and jvm structure
  • Customize View, Let's talk about the event distribution mechanism
  • http And https What's the difference?
  • Activity Boot mode , And the life cycle of each startup mode
  • Static methods , Why static objects can't inherit
  • Activity How to start Service,Activity And Service Interaction ,Service And Thread The difference between
  • Introduce to you android Animation
  • Launcher start-up App The process of , There are several kinds of cross process communication (socket)
  • Handler signal communication ,Binder signal communication
  • What memory leaks have you encountered , How to deal with
  • RXJava How to switch threads
  • Fragment hide show Life cycle
  • What kind of lock does it usually use ,synchronized What is the underlying principle

A small company 2

  • Briefly describe Handler,Handler How to switch threads ,Handler Synchronization barrier
  • Glide The cache of , used Glide What's in-depth API, Customize model Is in Glide At what stage
  • Tell me about mvc,mvp Pattern ,presenter Memory leaks
  • ANR Do you know ? There's no real ANR The experience of positioning problems
  • Performance optimization what have you done ?
  • What's the practical solution UI The experience of Caton optimization
  • What did you do Bitmap Practical experience of optimization
  • What experience did you have in the process of project construction , What's useful gradle Script , What is the operation of subcontracting
  • Do you know more about componentization ?ARouter Detailed principle
  • Let's talk about the event distribution mechanism ,RecyclerView How to deal with the inside ViewClick Conflicting
  • mainfest Middle configuration LargeHeap, Can you really allocate a lot of memory ?

Day by day

  • say something HashMap Principle
  • say something Java Memory partition of
  • Tell me about your understanding of the garbage collection mechanism , What's the algorithm in the old days ?
  • Tell me about your right volatile What is the purpose of the field ?
  • Talk about the event distribution mechanism , How to write something that doesn't slide ViewPager
  • What do you know about class loading mechanism ?DexClassLoader And PathClassLoader The difference between
  • Talk about the principle of plug-in , Plug in of resources id Repeat how to solve ?
  • mvp And mvvm What's the difference between patterns ?
  • JetPack What components have been used ?lifeCycle What is the principle of ? If in onStart Inside subscription , Callbacks onCreate Do you ?
  • What's wrong with singleton ?
  • say something App Start up process of , stay ActivityThread Of main What is done in the method , When to start the first Activity?
  • Tell me about your right Handler Understanding of the mechanism , Sync message , Asynchronous messages, etc
  • What do you know about the screen refresh mechanism , Double buffering , Triple buffering , Butter model
  • onCreate,onResume,onStart Inside , Where to get width and height
  • Why? view.post You can get width and height , Have seen view.post Source code of ?
  • attachToWindow When to call ?
  • DataBinding Do you understand the principle of ?

Pudong development credit card

  • Customize view, Chinese and English string width and height measurement display , Measurement algorithm , Extensibility
  • Event distribution mechanism
  • Activity,view,window contact
  • Hot fix and plug-in principle
  • Synchronized Underlying principle ,java Locking mechanism
  • java Containers ,hashmap and hashtable difference ,hashmap principle , Expansion process , The advantages of the perturbation algorithm
  • ArrayList and LinkendList difference ,List Generic erase , Why can reflection be in ArrayList< String > Add int type
  • Http and Https difference ,SSL/TLS The process
  • Android performance optimization
  • jvm virtual machine , Heap and stack structure , Stack frame ,JMM
  • Componentization considerations , Communication mechanism between components
  • What are the thread safe singleton patterns
  • Familiar design patterns


  • Thread hanging , Sleep , Releasing resources is related to , Wake up the , Thread synchronization , Data transfer , Asked a lot of thread questions , Asked 20 About minutes
  • static synchronized The multithreaded access and function of the , Two of the same class synchronized Method , The problem of two threads accessing at the same time
  • Inner classes and static inner classes and anonymous inner classes , And the application in the project
  • What is generics and their application in projects
  • handler Send message to child thread ,looper How to start
  • down、move、up The transmission of events
  • activity Stack
  • encapsulation view How do you know view Size
  • intent-filter
  • arraylist and linkedlist The difference between , And application scenarios
  • How to start service,service and activity How to interact data
  • Does the drop-down status bar affect activity Life cycle of , If in onStop When I made a network request ,onResume How to recover when
  • view Rendering

After the interview, I got a few offer, But refused , I chose the last two companies for the interview : Shanghai Pudong Development and meituan , I'm not a person who believes in luck , But this time luck did favor me , Let me grab the last straw .

It's not easy to get into the meituan , It took a lot of effort to get the interview qualification , At that time, my resume was too ordinary , Maybe I can't get into meituan hr The eye of the law , But I have the cheek to invest in many departments , Some departments have invested many times . finally , In my obsession , There is a good one hr Gave me a chance , This is the first person I entered the meituan .

That's it , I got it incredible US mission offer, The salary also exceeded my expectations .

The secret of getting into a big factory

After years of “ seasoning ”, I find that there are some tips for entering a large factory , For the students of the same background as me , As long as you get the hang of it , Entering a big factory is not a dream .

1) Be sure to prepare in advance , Prepare for at least a month , Take a look at the online interview questions , For those high-frequency topics , Learn with understanding , If you really can't understand it, recite it , We don't all recite it in the college entrance examination .

2) Large factories usually have many departments , Of each department hc The number and recruitment criteria are different , Even in the same department , If hr Different , The standards are definitely different , Repeat resumes can increase our chances of getting an interview . Empathy , Repeat interviews with different departments , It can also increase our probability of entering a large factory .

3) Big factories often set up new businesses , New business needs to be launched quickly ,hc There are usually a lot of , So the standard of recruitment will be slightly lower , This is a great opportunity . I was in a new business unit .

At the end

occasionally , Choice is more important than effort , Opportunity is more important than struggle . however , Opportunities are reserved for those who are prepared . We have to be ready at all times , When the opportunity comes , Go and grab it .

I'm very lucky that , When I'm ready , The opportunity came . From then on , I became a man of luck .

I Believe , Harder , The more fortunate .

Here's to share with you my Interview review route , Friends in need can refer to :

1、 Watch the video for systematic learning

Last few years Crud experience , Let me understand that I'm really a fighter in the chicken , And because Crud, Lead to their own technology more fragmented , It's not deep enough, it's not systematic enough , So it is necessary to study again . What I need is system knowledge , Poor structural framework and ideas , So learn through video , better , And more comprehensive . About video learning , Individuals can recommend B Stand for learning ,B There are a lot of learning videos on the station , The only drawback is that it's free and it's easy to get out of date .

2、 Systematically sort out the knowledge , Raise reserves

There are so many knowledge points in client development , There are still so many things to ask about in the interview . So there's no other trick to an interview , It depends on how well you are prepared for these knowledge points .so, When you go out for an interview, you should first see which stage you have reviewed .

System learning direction :

  • The necessary skills for an architect to build a foundation : thorough Java Generic + The notes are simple + Concurrent programming + Data transmission and serialization +Java Principle of virtual machine + Reflection and class loading + A dynamic proxy + Efficient IO

  • Android senior UI And FrameWork Source code : senior UI promotion +Framework Kernel parsing +Android Component kernel + Data persistence

  • 360° Comprehensive performance tuning : Design ideas and code quality optimization + Program performance optimization + Development efficiency optimization

  • Interpretation of open source framework design ideas : Thermal repair design + Plug in framework interpretation + Component frame design + Image loading framework + Network access framework design +RXJava Responsive programming framework design +IOC Architecture design +Android Architecture components Jetpack

  • NDK Module development :NDK Basic knowledge system + Bottom image processing + Audio and video development

  • Wechat applet : Introduction to applet +UI Development +API operation + Wechat docking

  • Hybrid Development and Flutter:Html5 Project practice +Flutter Advanced

After sorting out the knowledge , We need to make up for it , So for these knowledge points , I also have a lot of e-books and notes on hand , These notes make a perfect summary of each knowledge point .

3、 Read source code , Look at the actual combat notes , Learn the idea of the great God

“ Programming language is the way programmers express themselves , And architecture is the programmer's perception of the world ”. therefore , Programmers want to quickly recognize and learn Architecture , Reading the source code is essential . Read the source code , It's about solving problems + Understand things , More important, : See the idea behind the source code ; The programmer said : Read Wanxing source code , Practice in thousands of ways .

I have shared and displayed the source code information above , No more pictures here .

4、 Before the interview , Brush the topic, sprint

Within the week before the interview , You can start to brush questions and sprint . please remember , When I brush the questions , Technology first , Look at the basic algorithm , Such as sorting , And intelligence questions , Except for school recruitment , Otherwise, I don't usually ask .

All the above are free to share with you , Need a full version of friends , Click here to see the whole thing .

本文为[osc_ x8s7voop]所创,转载请带上原文链接,感谢

Scroll to Top