background

As an important branch of Android client technology, componentization has been actively explored and practiced by the industry in recent years. The various Android development teams within each major factory are also trying and practicing different componentization solutions, and there are many high-quality outputs on componentized communication frameworks. This paper mainly introduces our componentization scheme, hoping to inspire students engaged in Android componentization development.

Why componentize

Why do so many teams have componentized practices in recent years? What benefits does componentization bring to our projects and code? We believe that componentization offers two major benefits:

1. Improve component reusability

Some people might think that improving reusability is simply a matter of making the code that needs to be reused into an Android Module, packaging the AAR and uploading the code repository so that these features can be easily introduced and used. However, we think that this is not enough. Whether the AAR library of the upload warehouse can be easily reused needs to be constrained by component-based rules, so as to improve the convenience of reuse.

2. Reduce coupling between components

We need to use componentized rules to break the code into modules with high cohesion and low coupling. Modules cannot be called directly between modules, which requires the support of the componentized communication framework. Reduced coupling between components has two immediate benefits: 1. Easier code maintenance 2. Reduces the Bug rate of modules

How to achieve componentization

To realize componentization, the following issues need to be considered:

  • Code decoupling. It is time-consuming and labor-intensive to take apart and decouple a huge project, but it is also the most basic and important step
  • Data transfer. Each component has the potential to be used by other components, the transfer of data from main project to component and from component to component

The UI jump.

  • Component life cycle. Component load, unload, and dimension reduction lifecycle
  • Integration debugging. How do you compile components on demand during development? Only one or two components may be integrated at a time, which greatly reduces compile time and improves development efficiency.
  • Code isolation. How to prevent coupling.

The following is the introduction of the most complete advanced Android componentization enhanced combat manual, covering the entire Internet company, limited by space will not show all the content, only screenshots to show part, the complete content has been sorted into PDF documents.

Friends if you need “advanced Android componentization to strengthen the actual combat” manual, click on me to get ~

Chapter 1 Understanding the componentization of Android

Componentization and modularization difference componentization and plug-in difference componentization development advantage business logic layer componentization development to encounter problems from componentization actual combat to solve the problem Android componentization foundation……

Chapter two: Android componentization

Modular and componentized Demo Components Application and Library dynamic switch…… Main functions Project directory structure main open source framework……

Chapter 3 Evolution of Architecture (Dachang)

  • Componentized Architecture practice from Zhixing Android Project

Reasons and objectives of componentized adjustment Overall planning of componentized architecture adjustment Some problems encountered in componentized architecture adjustment

  • Get the App

Android fully componentized Demo Release JIMU Usage Guide Componentized Split Feeling……

  • WeChat App

Wechat Android modular architecture reconstruction practice wechat Android architecture history why to reconstruct wechat again……

  • Mushroom street App

Componentized implementation of Mogujie App Component life cycle management shell project Problems encountered continuous integration of surrounding facilities……

  • IQIYI App

Andromeda Architecture Analysis of the Core Appeal of Service-based IPC Communication Componentization and Cross-process Communication

  • Meituan App

Evolution of takeout client containerization architecture Panorama of Takeout cross-end container construction Takeout page Container construction Measurement indicators of takeout container architecture Monitoring of takeout container architecture Operation and maintenance Of takeout container architecture publishing capability……

Modular Message bus modular Message bus Modular Message bus Modular Message bus Modular Message bus Modular Message bus Modular Message bus Modular Meituan takeout Android open source routing framework Meituan Cat’s Eye Android modular combat – probably the most detailed modular combat

  • Ctrip App

Ctrip mobile App architecture optimization trip……

  • Pay treasure to App

Introduction to Quinox Bundle Describes resource management containerization……

  • Atlas is what the birth of componentization decoupled and dependent performance evolution…

  • Yizan Micro mall componentization transformation overview implementation scheme practical application cases……

conclusion

Componentization after make the code structure clear, hierarchical structure and the interaction between the very clear, any one of the team can easily create the code structure diagrams, this is not going to do it before, and each component of compile time from 10 minutes to a few seconds, has made great improve the work efficiency, the key still after decoupling, Each time you develop requirements, you are faced with less and less code, and you don’t have to carry so much code burden, which can be said to achieve the ideal situation of “less code to write”.

If you’re an Android developer, it’s important to learn about componentization, and it’s important to understand how it works.

Due to length reasons, this advanced Android componentization actual combat manual has been organized into A PDF document, if you need to complete the document, please click the likes + comments [1] to obtain the information free of charge!

This article is in the open source project: github.com/Android-Alv… Has been included, which contains different directions of self-study programming routes, interview questions set/interviews, and a series of technical articles, etc., resources continue to update…