preface

About the Android architecture, may be in many people’s minds has been illusory existence, half-understanding, for the sake of use, everywhere mechanically, this situation is really limited significance.

What is architecture

Architecture is introduced

What exactly is architecture? How to better understand architecture. We know that The Chinese language is extensive and profound and we can understand its meaning from its composition. Architecture is no exception. “Architecture” consists of “frame” and “structure”.

  • Frame: build, set up, support. Abbreviation: overall structure
  • Structure: houses, wood and brick structures for human habitation. Abbreviation: Component

The combination of the overall structure and components forms the architecture. Taking the Android architecture as an example, an APP is usually composed of classes, and how these classes are combined and interact with each other is the key point that affects the APP itself. Subdivided into classes, interfaces (connectors), and task flows. Classes are the core “bricks and mortar” of an architecture, and interfaces are the paths, mechanisms, and expected results of communication between these classes. A task flow describes how the system uses classes and interfaces to fulfill a requirement such as a network request. As mentioned in the architecture introduction above, the house, wood and brick are connected with each other.

Architectural Design Objectives

The purpose of software architecture can be roughly divided into scalability, customizable, scalable and maintainable:

  1. Scalability: The APP must be able to maintain reasonable software performance even as the number of UV/PV users increases rapidly. This is the only way to be safe in rapid zero-to-one requirements iterations.

  2. Customization: The same software system may face different user groups and needs to be customized according to different user groups and market requirements. For example, some functions in an APP are only available to certain users.

  3. Scalability: As new technologies emerge, a software system should allow new technologies to be added to extend the functionality and performance of the existing system.

  4. Maintainability: Maintenance of a software system consists of fixing existing bugs and developing new iterative requirements into the existing system. An easy to maintain system can effectively reduce labor and material resources.

Dachang hot architecture evolution road

Learning the Android framework is important in this era of ubiquitous smartphones. Here is an introduction to the Initialization process of the Android framework and how the main components work. After analyzing the main source code of the Android framework and understanding the various basic knowledge required by the working principle of the framework and the service framework that constitutes the backbone of the actual Android platform, this note was organized into the Android Architecture Development Manual. The details are as follows:

Chapter 1: Jetpack for Android

1.Android Jetpack – Navigation

2.Android Jetpack – Data Binding

3.Android Jetpack – ViewModel & LiveData

4.Android Jetpack – Room

5.Android Jetpack – Paging

6.Android Jetpack – WorkManger

7.Android Jetpack – Paging 3

Chapter 2. MVC/MVP/MVVM

1.MVC Framework – Introduction

2.MVC framework -ASP.NET form

  1. MVC Framework – The first application

  2. MVC framework – Folder

  3. MVC framework – Model

  4. MVC framework – controller

  5. MVC framework-view

  6. MVC framework – Layout

  7. MVC framework – Routing engine

  8. MVC framework – Action filter

  9. MVC Framework – Advanced examples

  10. MVC framework -Ajax support

  11. MVC Framework – Bundling

  12. MVC Framework – Exception handling

  13. MVP Architecture design: Google’s official MVP thinking read

  14. Open source MVP framework

  15. MVC, MVP, MVVM, how to choose?

Chapter three. Domestic well-known architecture articles

1. Douyin iOS engineering architecture evolution

1.1 Introduction

1.2 Tiktok Engineering Architecture Evolution

1.3 componentization

1.4 Pipelined iterative development

1.5 Tiktok Engineering Architecture Evolution

1.6 Problems encountered in the process of componentization exploration:

2. Evolution practice of Meituan Takeout’s Android platform architecture

2.1 Platform background

2.2 Repeated Exploration

2.3 Search library splitting practice

2.4 Page componentization practice

2.5 MVP layered reuse practice

2.6 Middle layer practice

2.7 Platform practice

2.8 Platform summary

2.9 looking

3. Anjuke Android project architecture evolution

3.1 Merging three networks

3.2 MVP architecture driven by RxJava

3.3 componentization and modularization

4. Ctrip Android App plug-in and dynamic loading practice

4.1 Demand-driven

4.2 the principle

4.3 implementation

4.4 Benefits and costs

5. Evolution of wechat Android client architecture

5.1 pioneer

5.2 growth

5.3 change

5.4 the evolution

5.5 open

6. Being as the Android client of the user is how to develop | architect practice day

6.5 Decoupling within modules

6.6 Grayscale publishing mechanism

6.7 Communication between Modules

6.8 summarize

7. Mobile Taobao framework evolution practice

7.1. The Bundle

7.2 WebApp

7.3 PackageApp

7.4 R&D Support

7.5 Test Support

7.6 O&M Support

7.7 Release Support

8. Speak Fluent English about Android architecture evolution

8.1 Speak English fluently in early architecture

8.2 Speak fluent English about core architecture

8.3 Core Architecture

8.4 Introduce the multi-process layer

8.5 Common auxiliary structures for fluent English speaking

8.6 Speak English fluently in common supported architectures

If you need reference, you can go to me directlyGitHubVisit and look up, I hope to help you learn to improve.