Android architecture evolution and future

According to the "45th Statistical Report on China's Internet Development Status", the number of apps monitored on the market in 2019 decreased by 850,000 compared to 2018...

In the past two years, especially in the past six months, people have often consulted me in the background:

"Great God, is it worthwhile to enter the Android pit? If you want to learn, how should you learn?"

"I feel that there is no way out for this technology, do you want to change the industry?"

"What kind of knowledge should I learn now?"

Confusion and worry, everyone will have, I am no exception.

To become a good Android development, a knowledge system is essential -

How easy was it to find a job in Android development before? As long as you understand the four major components, views, and network requests, you can get a well-paid offer; at that time, if you were proficient in Java, know how to deal with OOM, the principle of component life cycle, and be familiar with android source code and architecture system. Ali and Tencent are very relaxed.

right now?

The Android market is indeed not what it used to be, but not only Android, but the Internet industry is the same.

The number of recruitments on the mobile terminal has decreased, but there are still many mid-to-high-end job vacancies. The improvement of your technical level and ability becomes more important.

Friends who switch careers should also pay attention:

Recently, I heard from colleagues in other departments that they recruited a Java development post and received more than 200 resumes, but the boss couldn’t face it... Do you have the confidence to win this kind of high-intensity competition?

Where is the future of mobile development? React Native, PWA? After talking about Kotlin, we discussed Flutter again this year, but there is no big step forward...

First of all, I think that the thinking of Android development must not be limited. Mobile development is not just App development, such as IOT, audio and video, edge computing, VR/AR, etc. Many popular technology waves also belong to the category of mobile development. You can study this knowledge if you have time.

Android architecture evolution

MVC

Clear structure and low coupling are conducive to component reuse; but there are many codes in Activity/Fragment and the structure is more complicated;

MVP

Solve the problem of Activity in MVC, but the interface has been greatly increased, so the number of project files will be a lot, and the code structure will be more complicated...

From work to the present, I have experienced MVC, MVP, Clean, etc. Due to the different project characteristics and requirements of each App, its architecture mode is layered, componentized, and modular. Each design is based on the project's scenario. , It is difficult to fit all project scenarios. What should we do at this time?

We may be able to find the answer in Google's "appointed" Android development future first architecture-MVVM.

Why learn MVVM?

MVVM

It is an abbreviation of Model-View-ViewModel, which consists of three parts, and is essentially an improved version of MVC. MVVM abstracts the state and behavior of the View, allowing us to separate the view UI from the business logic. On the basis of MVP, MVVM also decouples the View and the ViewModel.

advantage:

  1. Low coupling. View can be changed and modified independently of Model, and a ViewModel can be bound to different "View".
  2. Reusability. Some view logic is placed in a ViewModel, allowing many views to reuse this view logic.
  3. Independent development. The expansion of the App business scale, followed by the expansion of the team scale, involves multi-person collaboration. The MVVM architecture allows developers and designers to focus on their own sections.
  4. Can be tested.

However, due to the decoupling of View and ViewModel, it is difficult to see the event delivery of View at a glance when debugging; the code complexity increases, so MVVM architecture debugging is more difficult.

Few people can answer some of its interview questions:

Mvvm project Gradle optimization and local warehouse construction

  1. How should the APP architecture be built?
  2. What are MVx? What is the difference?
  3. Android project Gradle usage specification and local warehouse construction
  4. How to build modular and hierarchical projects?

Advanced architecture of Mvvm based on Jetpack

  1. How do junior engineers implement the architecture?
  2. How does the architect realize control and how to define a custom base class?
  3. What is the function of Mvvm Model? What are the levels of the cache and how to extract the base class of the Model?
  4. How to combine Mvvm ViewModel with Jetpack and how to avoid OOM problem in MVVM?

App componentization and startup performance optimization

  1. Is there a perfect solution for the error handling page of Fragment and Activity? How should their base classes be implemented?
  2. How to solve the white screen problem of App?
  3. App startup speed performance optimization

In order to give you a deep understanding of modularity, hierarchy, control, and componentization, and apply Jetpack and Mvvm to your work, I specially share the "Notes on Core Knowledge of Android Development" and take you to build the APP framework from scratch. Improve everyone's ability to build a robust Android development framework and quickly grow into a mobile god!

Friends in need can learn PDF+architecture video+interview document+source notes for free on this Android

In addition, I also share an Android learning PDF+architecture video+interview document+source notes , advanced architecture technology advanced mind map, Android development interview topic data, advanced advanced architecture data collected and organized by several big guys .

If you need it, you can learn PDF+architecture video+interview document+source notes for free on this Android

If you like this article, you might as well give me a thumbs-up, leave a message in the comment area or forward and support it~

Guess you like

Origin blog.csdn.net/River_ly/article/details/106690630