The ViewModel class is designed to store and manage interface-related data in a life-cycle manner. The ViewModel class allows data to persist after configuration changes...
Shopping cart logic, for the practical development of simple, the main details (certainly not difficult) lies in the processing logic: A, click on the full...
The proxy pattern is often used in daily development. Do you know the difference between static and dynamic proxies? How is their internal code implemented?...
What is CAS in Java? CAS, also known as compareAndSwap, compares and replaces the implementation in Java. Here is a partial implementation of the AtomicInteger...
In this article, you will learn about the importance of dependency injection (DI) for creating a robust and scalable large-scale application. We will use the...
Android development often has a scenario where a network request is sent, the server processes the request and returns the data, and the client receives...
##HTTP and HTTPS#### describe a complete HTTP request process. A classic HTTP request process diagram is available on ios and Android, although from a browser...
Introduction This blog mainly explains several questions: What is decorator mode? How to realize the advantages and disadvantages of decorator mode? What is the application...
Kotlin efficient parsing mathematical expressions (support functions/brackets/constant) ⚠️ source code according to the use of scenarios customized, to maximize the efficiency of the use of...
If it is not a Mainlooper, it creates a new Handler(callbackLooper). However, the Handle neither passes a callback nor overwrites its handleMessage method, but is...
On Android 4.0+, we are able to make UI optimizations with "Run fast, smooth, and responresponde" as our core goals. Hardware acceleration is enabled by...
Volley is an asynchronous network request framework released at Google I/O 2013. Although it has a long history, it is still a classic. This article...
UI component encapsulation usually requires three considerations: how the interface is defined, separated from the business, and easy to use. This article showed you how...
Horizontal ViewPager2 nested using vertical list, when sliding up and down to the bottom of the list, the finger slightly inclined will trigger ViewPager2 sliding...
Brief introduction of Builder pattern of design pattern series; Usage scenarios: When creating a complex object with many default values (initialization), you can use builder...
For each process in the system: reading property values is not restricted to any process, directly read by the process from the shared area. Modifying...