Android development app tutorial! Essential knowledge points for Android programmer interviews, with super complete tutorial documents

How to improve learning?

The improvement of learning is to a large extent to change jobs and raise salaries. Of course, bad luck may be persuaded to find a job again. In either case, the ability to learn independently is necessary, and there must be a direction, there must be Focus.

For Android mobile development, the hot fix framework, plug-in framework, component framework, image loading framework, network access framework, RxJava responsive programming framework, IOC dependency injection framework, recent architecture component Jetpack and other Android third-party open source frameworks are What must be mastered to enter a large factory is also often asked in interviews. I have compiled a list of information and paths here, which is 1042 pages long! I believe that after reading this document, you will have a deeper and more systematic understanding of these Android third-party frameworks.

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.

End of sentence

So is there really no hope for those who want to stick to the profession of programmers?
In fact, under the scourge of the Internet, what is left will always be the best. We don’t think about which industry is inferior to which industry is difficult, so we should avoid these. No matter which industry, there will be other problems, but no matter which industry will be There is the group at the top. What we have to do is to strive to improve ourselves and stand at the top. If we don’t have enough academic qualifications, we will read, and if we don’t have enough knowledge, we will learn. Isn't the reason why people are human because they have the ability to solve problems? Because only oneself is blocking oneself. Click on the following information on my GitHub to receive Android for free
Hope = Skills + Interview

  • skill

  • Interview skills + interview questions

  • Skill
    [External link image transfer...(img-Is85DmYK-1614050686754)]

  • Interview skills + interview questions

Guess you like

Origin blog.csdn.net/a120464/article/details/113978419