Android interview rollover record: 5 years of development, a fiasco. I didn’t write componentized "this" project on my resume. Tencent senior development post must ask knowledge points!

It has been almost 12 years since Android was released in October 2008, and developers have moved from Android 1.0 to Android 11. In this process, we have experienced a lot.

Regarding how to measure the level of a developer, we generally look at what he can and can do.

If it is a newbie who is just entering the industry, and the level is probably a junior developer, then the company's requirements for him will not be too high.

But in our Android industry, there are too many newbies in disguise, "newbies" with 3-5 years of work experience. So how do novices generally develop, the project structure is out of order, the code has no design pattern, and the performance experience is unpleasant.

So we will find that the  level of high and low can be measured by the good or bad of the code.  So for developers, the first step in writing good code is to choose a good architecture design.

It is said that programmers have high salaries and good treatment.  2021 gold three silver four is coming soon , is your small goal 30K, 40K, or 16 salary 20K? As a Java development engineer, it is not difficult to get an offer that exceeds expectations when the ability can meet the company's business needs. However, what is the fastest and most effective way to improve Java's core competencies in the short term?

First of all, you need to step out of your daily work and get in touch with more in-depth and cutting-edge top projects. A simple logic: The reason why big companies can pay higher than industry standards is precisely because even ordinary developers have to deal with many complex scenarios. These complex scenes and projects are like the "world outside the wall". You can't learn systematically and build cognition if you haven't seen or contacted them, and technical barriers naturally appear.

Therefore, if you expect to achieve income growth and job promotion through personal efforts, the best way is to learn more about the actual project experience of several major factories.

Now the most popular project combat architecture model in the Android industry is component development. why?

1. In the projects of large factories, componentization is necessary.
2. For team development, componentization is also necessary.
3. Componentization is also a must for beginners, advanced middle and advanced developers.
4. For the maintenance of large projects, componentization is still necessary.
5. To improve development efficiency, componentization is still necessary.

Why choose component development?

In the development of many junior developers, it is generally a traditional single module development, and one word is convenient.

But when you come into contact with large projects, or when your project develops to a later stage, you will find the following unacceptable problems:

1. It takes a long time to compile. Every time you change a parameter, you need to compile the entire project
. 2. The coupling of the project is too serious. Every time you reuse a function, you have to copy a lot of related classes
. 3. Team development is inconvenient, and the division of labor cannot be done

So based on the above analysis, you will find that componentization is already a skill we must master. It can make it convenient for us to develop projects and make our function reuse simple (because in a componentized project, each function is not related to each other):

(A componentized architecture project)

From the above figure, we will find that in the componentized architecture project, each of our business logic modules has been upgraded from the traditional division of package names to the division of modules. The advantage of this is that when we want to in a new project When a function of a previous project is used, if both projects are componentized architectures, they can be directly copied and used without decoupling.

And you will find that each module is an Application that can run independently. The advantage of this design is that each module can be tested independently, which can improve our compilation speed. From the perspective of team development, each small project team is responsible for the function of a module without interfering with each other. Why not do it?

But here is the problem. Many developers have never been exposed to componentized development before, so  how should we master this technology?

The following is the most comprehensive advanced Android component enhancement practical manual on the entire network, covering the entire Internet company. Due to space limitations, not all content will be displayed. Only screenshots can be displayed. The complete content has been organized into a PDF document.

If you need the "Advanced Android Componentization and Strengthening Practice" manual, please click here to get it~

The first chapter Android componentization

  • The difference between componentization and modularization
  • The difference between componentization and plug-in
  • Advantages of component development
  • Business logic layer
  • Problems encountered in component development
  • Solve the problem from componentized actual combat
  • Android componentization foundation
  • ……

Chapter 2 Android componentization preliminary directory

Componentized demonstration case

  • Overview
  • Modularization and componentization
  • Componentized Demo
  • Dynamic switching of component application and library
  • ……

WanAndroid APP component project actual combat with demo

  • new version update
  • Effect picture
  • The main function
  • Project directory structure
  • Main open source framework
  • ……

Chapter 3 Architecture Evolution (Dachang Chapter)

Looking at the practice of componentized architecture from the Zhixing Android project

  • Reasons and goals of component adjustment
  • Overall planning of componentized architecture adjustment
  • Some problems encountered in the adjustment of componentized architecture

Get App

  • Android completely componentized demo released
  • JIMU User Guide
  • The perception of component split
  • ……

WeChat App

  • Refactoring Practice of WeChat Android Modular Architecture
  • History of WeChat Android Architecture
  • Why refactor WeChat again
  • ……

Mogujie App

  • Componentized implementation of Mogujie App
  • Component lifecycle management
  • Shell Engineering
  • Problems encountered
  • Continuous integration
  • Surrounding facilities
  • ……

IQiyi App

  • Service-based IPC communication
  • The core appeal of componentized cross-process communication
  • Andromeda
  • Architecture analysis
  • ……

Meituan App

  • The evolution of the takeaway client containerized architecture
  • A panoramic view of the containerized architecture of Meituan Takeaway
  • Takeaway cross-end container construction
  • Takeaway page container construction
  • Metrics for takeaway containerized architecture
  • Monitoring operation and maintenance of takeaway containerized architecture
  • The release capability of the takeaway containerized architecture
    ...
  •  

  • Meituan Android component solution and component message bus modular-event actual combat

  • The evolution of Meituan’s Android message bus: replacing RxBus and EventBus with LiveDataBus

  • WMRouter: Meituan takeaway Android open source routing framework

  • Meituan Maoyan android modular combat-probably the most detailed modular combat

Ctrip App

  • Ctrip Mobile App Architecture Optimization Journey
  • ……

Alipay App

  • Introduction to Quinox
  • Bundle introduction
  • Resource management
  • Containerization
  • ……

Atlas-Hand Tao componentized framework

  • What is Atlas
  • The birth of componentization
  • Decoupling and dependency
  • Performance evolution
  • ……

Youzan WeChat Mall

  • Overview of component transformation
  • Implementation plan
  • Practical application case
  • ……

to sum up

After componentization, the code structure is very clear. The hierarchical structure and the interaction between them are very clear. Anyone in the team can easily draw the code structure diagram. This was impossible before, and each The compilation time of the components has been reduced from 10 minutes to tens of seconds, and the work efficiency has been greatly improved. The most important thing is that after decoupling, each time the development needs, the code faced is less and less, so there is no need to carry so much burden. Code baggage can be said to have reached the ideal situation of "the less code you write".

If you are an Android developer, it is very necessary to learn componentization, and a deep understanding of the actual combat of componentization is the most important thing.

Finally, if you want to get the complete " Advanced Android Componentization and Strengthening Actual Combat " manual, you can get it directly ,

There are also a series of Android learning resources that took more than a year to organize: Android源码解析、Android第三方库源码笔记、Android进阶架构师七大专题学习、历年BAT面试题解析包、Android大佬学习笔记wait, these contents are free to share with everyone, friends who need the full version, click here to see all the contents

Guess you like

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