Android development introductory tutorial! I will take you to the BAT interview site, a summary of the interview questions from Dachang

beginning

Yesterday I went to a company and my values ​​have been affected.

The interviewer didn't say technically that he may be a perfectionist. No matter what happens to him, there seems to be a solution. I was said to be at a loss and felt that he was very powerful.

But what I can't agree with is that the interviewer thinks that working overtime is a matter of course, and that someone wants to do things better and is willing to work overtime on their own. I don't deny this, but why is it so natural to say that overtime is said, and is it so natural to violate the national system?

He asked me what I think about working overtime. I said that you can work overtime as long as it makes sense. He then asked, some people think that it is meaningless to work for the boss, so is it meaningless to work overtime? Of course I said no, because he saves others by himself, I am speechless.

I said again, you can add it when you are busy, will it continue to add? Is there any saying about periodic rest and adjustment?
He said no, it will remain in this state until the company goes public.

Suddenly I don't know what to say, maybe it's the difference in values. It seems that if I don't work overtime, it means that my work is inefficient and inefficient.

It may be your colleague who asked you to work overtime, which seems a bit sad.

primary

My definition of the primary R&D siege lion is to master basic android knowledge and be able to complete a function independently. Most people at this level can quickly reach it by reading some information books and then going through project exercises.

The required skills are:

  1. Grasp the knowledge of the four major components of android, and have an in-depth understanding of the relevant life cycle; you must also master the Application, Fragment, and Intent.
  2. Master the attributes and usage of android basic layout and controls. Commonly used layouts include LinearLayout\RelativeLayout\ConstraintLayout, etc., and controls include TextView\ImageView\RecyclerView\ScrollView, etc.
  3. Have a basic understanding of Android's resource access and use, and understand the adaptation principles of Android for different countries, languages, screens, and APIs.
  4. Master the use of android system services and tools, and have a basic understanding of network access and database operations.
  5. Familiar with R&D tools, such as IDE, simulator, network agent, log, etc.

intermediate

It takes some effort to reach the intermediate level, and you need to know more. You can model the open source library to build wheels to practice. Intermediate engineers must be able to complete function research and development proficiently.

The required skills are:

  1. Familiar with SOLID basic design principles and master 23 design modes.
  2. Have a deep understanding of the development language features of java/kotlin, such as reflection, dynamic proxy, apt, etc.
  3. Have a basic understanding of the android architecture, and an in-depth understanding of the apk structure and packaging principles.
  4. Have a basic understanding of the features of each version of android, such as MD design, permission management, doze mode, etc.
  5. Familiar with various R&D debugging tools, such as git, gradle, mat, layout inspector, etc. 6. Grasp the principle of Handler\AsyncTask, and be familiar with multi-threaded development.
  6. Have a preliminary understanding of the principle of drawing pages, and be able to implement a complex custom control.
  7. Be able to master the use of open source libraries, such as image libraries (Glide\Fresco), network libraries (Volley\okhttp\Retrofit), tools (Dagger\RxJava\EventBus), etc.
  8. Familiar with the common methods of image optimization and avoid writing code with memory leaks.

advanced

If you reach the intermediate level, congratulations, you can handle most situations. But to go further, you need to have a deep understanding of the operating principles of the android system, to achieve a thorough understanding, and you can act as an architect on the android side.

  1. Master the advanced features of java, such as JUC, thread pool, NIO\BIO, etc.; master the knowledge of jvm virtual machine, such as memory model, GC principle, class loading mechanism, thread model, etc.
  2. Have an in-depth understanding of the android operating environment, understand the android sandbox mechanism, master the principles of AIDL and Binder communication, and understand the principles of app and activity startup.
  3. Grasp the principle of hot repair, the advantages and disadvantages of major manufacturers' solutions.
  4. Have an in-depth understanding of android event distribution, focusing on the touch event mechanism.
  5. In-depth understanding of android drawing principles, understanding of VSYNC and surface mechanisms and window principles.
  6. In-depth understanding of android animation principles, including tween animation and attribute animation.
  7. Have a basic understanding of android security mechanism and understand android security principles.
  8. In-depth understanding of the design paradigm ideas on the end, such as mvc\mvp\mvvm\clean-arch, etc.
  9. Understand the evolution of architecture, have a good idea of ​​layering and splitting, master modularization, plug-in, dynamic deployment, etc.
  10. Be sensitive to new technologies, understand and master the dynamic features of the next-generation architecture, etc.

At this point, you are already well-versed in the development of the android terminal, able to face all kinds of situations, and reach the realm of unchanging colors before the landslide. If you want to move on, you need to break through the technology stack and consider issues from a higher architectural level.

Senior

At the senior level, the technology stack is no longer an obstacle. Able to look at problems from a higher level, understand the design of the entire system, and exist as a system architect.

  1. Understand microservices and SOA ideas, and have a certain understanding of back-end development.
  2. Understand front-end R&D tools and ideas, and know R&D frameworks such as vue react.
  3. In-depth understanding of cross-terminal technologies, such as phonegap, weex/RN flutter, small program quick application, etc.

At last

Taking into account the length of the article, I made these questions and answers, as well as the questions I encountered in many years of interviews, and some interview materials into PDF documents. If you need a friend, you can privately mail me [Interview] to receive it for free

Click here to receive a summary of Android interview materials

Link image is being transferred...(img-9eC5sHkS-1613961780625)]

[External link image is being transferred...(img-RbzgQrbb-1613961780628)]

Friends who like it can follow, forward, and like thank you!

Guess you like

Origin blog.csdn.net/chayel123/article/details/113931492