Android development engineer: You all want to enter a large company, so have you figured out the interview direction and interviewer routines for large companies?

Today I will tell you about the review direction of middle and senior Android development engineer positions in large companies:

Android has been popular for so many years. Now if you are still engaged in Android development, they are basically middle and senior Android development engineers. Then, let’s take a look at what level of requirements the employer has for mid- and senior Android development engineers?

Basic problem

Interviewers generally start with the simplest, such as asking what methods are available for object? After answering, the interviewer will continue to ask, what is the comparison principle of the equals method? The principle of hashCode is different from equals. Then turn to the related principles of hashMap in Map.

I have asked what methods the listview (recycleview) has, and the role of each method (the method here will be based on the in-depth questions you answered earlier), and the role of the parameters. When asked about this, some companies will ask how to solve this problem because there are too many two controls that need to be used in a project. It will be very troublesome to write each time, and to write many times.

The answer to this question, you can Baidu. My general solution is to customize an adapter with generics and without specifying the number of parameters. Then define some methods, so that there is no need to do too many operations in the adapter. The specific custom package will be explained in detail in the following blog post. The custom package method and application method here. Of course, I encourage everyone to explore for themselves and leave me a message so I can complete this question.

The second problem

What are the third-party libraries you often use? Then begin to test your familiarity with the source code of third-party libraries, proficiency in use, and expansion capabilities.

The interviewer may ask: If the backend gives you a wrong data type, as the front-end, how can we do a fault-tolerant process to ensure the normal use of the APP (according to the interface document, the back-end is wrong, and the front-end must be compatible with this Kind of error data analysis.)

This question is also a problem faced by many large companies, especially the fast-growing startup companies . In entrepreneurship, the front-end and back-end personnel have changed a lot, and development needs have changed significantly. The background API and front-end versions are not updated synchronously, which can cause these problems. Therefore, if you want to change jobs, you have a preparation for compatibility and fault tolerance. (Note: This question can use generics, reflection. But there are still certain problems.

Generally speaking, this kind of question is also the problem that the company is facing urgently to solve. Usually, the interviewer who asks this kind of question will not only ask one such question, but he will gradually ask this type of question and ask around this topic, so when I encounter this kind of unprepared question, I don’t know how. If you do, you can think about a few questions before and after the interviewer and the direction of guidance, synthesize these questions, and think about solutions).

algorithm

Judging from the recruitment of various large companies, there are requirements in this direction. And some children's shoes really asked algorithmic questions during the interview. This mainly examines one's problem-solving ability, thinking ability, whether it is open and active.

And this kind of question has 2 kinds of examination methods. The first is to use Java or Android code to solve the problem. Second, you don't need to consider how to implement the code, but depends on your ability to analyze and solve problems. Of course, the second case is relatively rare.

Mixed development experience

This is currently a very popular demand for Android development engineers. Hybrid development experience. There have been many successful Hybrid App development applications, such as Meituan, iQiyi, WeChat and other well-known mobile applications, all of which adopt the Hybrid App development model.

At present, most large Internet companies are mostly pure applications and web-based. Therefore, hybrid development experience is still relatively easy to find a job at present. If you don't have this knowledge, you will start to make up.

to sum up

First: Java foundation, need to have depth, and know the principle.

Second: Do you often check the source code? Can you encapsulate and extend some third-party libraries ?

For example, commonly used listview, recycleview, gson, okhttp, image loading framework, memory optimization, memory overflow, sensor (sensormanager), compatibility (in two aspects, the first UI adaptation (today's headline adaptation scheme), the second performance Adaptation (so file)).

Third: Algorithm, logical thinking ability.

This can be a big company will ask some questions in this regard. Think about why. Data structure, several sorts must be written. Also, take a look at how some of their algorithms are done in common apps, and think about it.

Fourth: Hybrid hybrid development (partial front-end) is currently very popular. This is about to start writing a project .

Simple will do. Download a project from Github and type it again yourself.

Fifth: Very important. As far as I know, many applications are ready to add the function of small videos .

Many big companies' apps are also. Therefore, video and audio, this must be possible. There are a lot of source codes in this area on GitHub, you can download and see for yourself, don't say you type it again, at least you need to know what to use and how to do it.

end

Interviews are nothing more than asking questions like the above. Hiring a mid-to-senior Android developer will ask them in depth, and will ask one to extend the second. The following junior sisters first put forward a few key points, which are the basic questions that interviewers must ask. Please be sure to understand!

  • Basic knowledge  -four major components (life cycle, usage scenarios, how to start)
  • Java basics  -data structure, thread, mvc framework (HttpClient, HttpUrlConnetion), Socket
  • Data persistence  -SQLite, SharedPreferences, ContentProvider
  • Performance optimization  -layout optimization, memory optimization, power optimization
  • Security  -data encryption, code obfuscation, WebView/Js call, https
  • UI -Animation
  • Others  -JNI, AIDL, Handler, Intent, etc.
  • Open source frameworks  -Volley, Gilde, RxJava, etc. (write on your resume that you know how to use it)
  • Expansion  -Android6.0/7.0/8.0/9.0/10.0 features, kotlin language, I/O conference

If you hurriedly submit your resume and rush for an interview, it is better to settle for a day or two and go through the above content again. If you want to get an offer securely, it is best to understand the implementation principle and know the usage scenarios. Don't go back! To understand! The interviewer is very tired of listening to these contents for a day, and it is best to express some of his own opinions.

Interview system review route

Sometimes, choice is more important than effort, and opportunity is more important than struggle. However, opportunities are only reserved for those who are prepared. Only when we are always prepared can we seize the opportunity when it comes.

Here to share with you my interview review route , friends in need can refer to:

1. Watch the video for systematic learning

The experience of Crud in the past few years has made me realize that I am really a fighter in the rookie. It is also because of Crud that my technology is relatively fragmented and not deep enough to be systematic, so it is necessary to study again. What I lack is system knowledge, poor structural framework and ideas, so learning through videos is better and more comprehensive. Regarding video learning, individuals can recommend to study at station B. There are many learning videos on station B. The only drawback is that they are free and easily outdated.

2. To systematically sort out knowledge and improve reserves

There are so many knowledge points in client development, and there are still so little things in the interview. Therefore, there are no other tricks for the interview, just to see how well you prepare for these knowledge points. So, when you go out for an interview, it is good to see which stage you have reached in your review.

System learning direction:

  • Essential skills for architects: in-depth Java generics + annotations in simple language + concurrent programming + data transmission and serialization + Java virtual machine principle + reflection and class loading + dynamic proxy + efficient IO

  • Android advanced UI and FrameWork source code: advanced UI promotion + Framework kernel analysis + Android component kernel + data persistence

  • 360° overall performance tuning: design ideas and code quality optimization + program performance optimization + development efficiency optimization

  • Interpretation of open source framework design ideas: hot repair design + plug-in framework interpretation + component framework design + image loading framework + network access framework design + RXJava responsive programming framework design + IOC architecture design + Android architecture component Jetpack

  • NDK module development: NDK basic knowledge system + underlying image processing + audio and video development

  • WeChat Mini Program: Mini Program Introduction + UI Development + API Operation + WeChat Docking

  • Hybrid development and Flutter: Html5 project combat + Flutter advanced

After the knowledge is sorted out, it is necessary to check and fill in the vacancies. Therefore, for these knowledge points, I have prepared a lot of e-books and notes on hand. These notes provide a perfect summary of each knowledge point.

3. Read the source code, read the actual combat notes, and learn the ideas of God

"Programming language is the way the programmer expresses, and the architecture is the programmer's perception of the world." Therefore, if programmers want to quickly understand and learn the architecture, reading the source code is essential. Reading the source code is to solve problems + understand things, and more importantly: see the ideas behind the source code; programmers say: read thousands of lines of source code, and practice thousands of ways.

4. On the eve of the interview, sprint questions

Within a week before the interview, you can start sprinting. Please keep in mind that when brushing the questions, the technology is the first priority, and the algorithm is basic, such as sorting, etc., and the intellectual questions are generally not asked unless they are school recruits.

Regarding the interview questions, I personally prepared a set of systematic interview questions to help you learn from one another:

The above content is free to share with everyone, friends who need the full version, click here to see all the content .

Guess you like

Origin blog.csdn.net/weixin_44339238/article/details/112205948