After nearly ten years of development, Android technology has been optimized with each passing day. Now Android 10.0 has been released, and the performance of The Android system has been very smooth, which can completely match the experience of iOS. To the hands of the major manufacturers, change the source code, custom system, so that the Android native system becomes mixed, and then to the hands of different levels of development engineers, because of the uneven technical level, even if many mobile phones in the running software performance is very high, open the application is still stuck.
APP performance optimization has become a comprehensive quality for Android developers, and it is also a guarantee that developers can complete high-quality application works.
Android phones are developed in Java (which Kotlin also encapsulates), and Java itself has a nice mechanism for managing memory — GC. However, GC often encounters memory that cannot be reclaimed, that is, memory leaks, memory jitter, and the result can be OOM.
To avoid these problems, we must first have a clear understanding of the JVM’s memory management mechanisms.
The JVM divides runtime data into thread-private and shared data areas.
The thread private data area contains the program counter, virtual machine stack, local method area, and the data area shared by all threads contains the Java heap, method area, and a constant pool in the method area.
A memory leak is when the system fails to reclaim memory that has been allocated but is not being used.
As the program runs, there is less and less memory available, and the machine gets more and more jammed until memory runs out, and then the program hangs, and then the operating system may not respond, and then you hit reboot…
Memory leaks are classified as:
- Frequent memory leaks
- An occasional memory leak
- One-time memory leak
- Implicit memory leak
Implicit memory leaks are very dangerous because they are much harder to detect than common and occasional memory leaks. An accumulation of memory leaks that will consume all of the system’s memory! Mobile phone card, it is inevitable.
In addition, JAVA programming can be cross-platform, but the running efficiency is lower than iOS Objective-C programming, which requires a large amount of memory to exchange for execution speed. In addition, the automatic memory reclamation mechanism is not scheduled, which leads to the phenomenon of lag. With the installation of more programs, a large number of system garbage and background running occupy a lot of resources, there is a lag phenomenon, some even directly black screen of death, seriously affecting the normal use of mobile phone experience. The longer you use it, the more android phones get stuck.
Now the performance of Android phones has been improved a lot than before, an excellent Android developer, need to master the principle of JVM and performance optimization technology, will develop their app performance to the extreme.
- What do you know about the core principles of the JVM?
- How can JVM principles guide our code development practices?
- How can we optimize product performance at an architectural level?
- How did Google engineers achieve performance and functionality improvements?
- What optimization techniques should be used in the overall framework design of the project?
Here are some dry goods to help you understand these questions
Here I share a big man himself collected and arranged Android learning PDF+ architecture video + interview document + source notes, and advanced architecture technology advanced brain map, Android development interview topic information, advanced architecture information these are my leisure will read the quality of the information. In the brain map, each knowledge topic is equipped with detailed knowledge points and corresponding actual combat projects, which can effectively help you master knowledge and understand principles. Of course, you can also use it to fill in the gaps and improve your competitiveness, enough to help you win a higher salary Offer.
In short, it is also here to help everyone learn to improve and advance, but also to save the time we search for information on the Internet to learn, but also to share with friends around to learn together
If you need, you can add Vx: 15388039515 (note: nuggets, information required)
If you like this post, give me a thumbs-up, leave a comment or share your support