Analysis of why Android phones become slower over time

Although Android phones have been continuously increasing their RAM, from 1GB in the early days to 6GB now, some people still feel that their Android phones are becoming less smooth over time, even with increased RAM! In fact, this is not an illusion! Compared to iPhones, which only need 1GB of RAM and can run smoothly for years, the experience of using Android phones in this regard is quite poor!

安卓手机越用越卡原理分析 - cfcd208495d565ef66e7dff9f98764da - Jake blog

While some manufacturers boast that their Android phones will never lag, these same companies are currently being heavily criticized for their overblown claims, so the credibility of their "never laggy" claims is questionable. In reality, most Android phones inevitably encounter this problem. So how does this problem arise, and how should we deal with it? Read on!

Android's inherent shortcomings and subsequent chaos

Generally speaking, when developers were developing the Android system in the early stages, they would run a virtual machine on Linux and use Java for development. Although this could reduce the development burden, it would increase the cost of optimization in the later stages. Java does not provide operations to release memory (while iOS's development language Objective C can control memory release itself), and only relies on the system's memory reclamation mechanism for management. However, memory reclamation is a double-edged sword. When this operation is performed, all threads of the processor must be paused. In this situation, users will naturally feel lag.

Unlike the closed environment of iOS, the openness of Android inevitably brings negative effects such as chaos. Fragmentation is a well-known consequence. In order to be compatible with more older devices, some applications have to continue to use low-level APIs. The earlier Android 5.1 supported API level 22, but some software still uses API level 9. This is to better support older Android versions, but the efficiency is definitely terrible. In addition, the openness of development is a very big hidden danger.

To achieve the best smoothness, Apple made many compromises to improve the user experience, such as tombstone memory management and priority UI rendering, which made iOS smoother.

Google has also been working on this. For example, in 2012, they proposed Project Butter to address the long-standing problem of Android lag. Starting with Android 5.0, they fully transitioned the Dalvik virtual machine to the ART virtual machine. The latter pre-compiles applications during installation, converting the code into machine language and storing it locally. This way, the program doesn't need to be compiled every time it runs, greatly improving execution efficiency. At the same time, the new ART mode also reduces the thread pause time during each memory reclamation, and some additional optimizations can also prevent frequent thread pauses.

安卓手机越用越卡原理分析 - cfcd208495d565ef66e7dff9f98764da 1 - Jake blog

So, in theory, Android should become smoother with each version, but now that we're at Android 7.0, why do people still experience lag on their phones?

Open platforms breed scoundrels.

Someone previously conducted a test: an Android 7.0 phone with 2GB of RAM could run more than ten foreign apps smoothly, but after installing just a few apps from domestic manufacturers, the entire system started to lag! I believe that domestic manufacturers' technology is inferior to that of foreign manufacturers, but to say that it is this drastically inferior is a pipe dream. So why do apps from domestic manufacturers make Android run so poorly?

Clearly, this is something domestic manufacturers did intentionally! Android's openness is a double-edged sword. Developers have the power to decide what to do and what to do. Given the nature of Chinese people, seizing the market and increasing app activity are often the most important things. Since others will act like scoundrels if I don't, why don't I act even more scoundrels?

Android application development has four main components, and the BroadcastReceiver (hereinafter referred to as Receiver) is one of them. It is used to receive broadcasts from the system and applications. You can also think of it as a listener. For example, when the battery level changes, the system will generate a broadcast. Receiving this broadcast can inform the user to save progress or enter power saving mode when the battery is low. When a call comes in, a broadcast will also be generated to notify the caller to answer or to determine the phone number.

In Android, there are nearly a hundred global Receivers that can monitor a wide variety of state changes, such as power on/off, power on/off, network status changes, battery level changes, app installation/uninstallation, incoming/outgoing phone calls, and SD card changes. Android's open architecture allows applications to register any number of Receivers, which has become a breeding ground for malicious applications. Unscrupulous developers register multiple static Receivers with the system to receive various broadcast notifications and then execute corresponding Activities, such as auto-starting.

安卓手机越用越卡原理分析 - cfcd208495d565ef66e7dff9f98764da 2 - Jake blog

For example, a foreign app might register only one or two receivers, while companies like Baidu and Tencent register dozens of receivers to receive various broadcasts and allow users to perform various actions during the mobile application process.

The main reason Android devices become increasingly sluggish over time is that numerous apps run silently in the background, and these apps are impossible to completely eliminate. They restart after receiving various Receiver notifications. In contrast, Apple's iOS system has very limited methods for restarting background processes that have been killed. Simply put, iOS can truly clear memory, while many apps on Android are persistent, constantly respawning, and various processes and services run secretly in the background, causing system lag and battery drain.

The main reason for the problem is the lack of unscrupulous domestic manufacturers.

Well, to put it bluntly, many domestic apps, aside from their intended use, mainly make your phone lag and drain your battery... and from a profit perspective, they won't change that! So, while part of the reason Android phones lag can be attributed to Google's lack of openness, the bigger reason is that there are too many unscrupulous domestic manufacturers!

Here we'll make a comparison between two e-commerce software programs: eBay (overseas) and Taobao (domestic). Let's see how these two programs handle auto-start!

安卓手机越用越卡原理分析 - cfcd208495d565ef66e7dff9f98764da 3 - Jake blog

It's obvious at a glance that eBay only has three normal auto-start options, while the Taobao app? It starts even when you change something, set a timer, or uninstall the app… In other words, when a user doesn't need Taobao running on their Android phone but is doing other things, the Taobao app launches without their knowledge… Speaking of which, I'm almost cursing. If you're so capable, why don't you auto-start while I'm eating?! All sorts of user actions that have absolutely nothing to do with Taobao trigger its auto-start. There are countless similar apps on Chinese users' phones; how can your phone not lag? What's the point of having so much memory?

Yeah, let me tell you, some Android apps from Baidu can have 19 different auto-start modes... I'm so angry! Now you know why Android phones are so laggy, right?

Just between you and me: If your phone has a bunch of Android apps from Tencent, Baidu, and Alibaba installed, congratulations! When you open one of these apps, other apps from that company are very likely to launch simultaneously... For example, if you open Baidu Maps and have Baidu News, Baidu Input Method, Baidu Nuomi, etc., these apps will all start automatically, like they've taken aphrodisiacs... Tell me, will your phone lag? If it doesn't, you win!

How to deal with Android phone lag?

When faced with these constantly resurrecting apps, clearing memory is actually useless, because it will just start again after you clear it. What we need is to prevent these apps from being woken up. I think there are a few ways to do this!

  1. With the use of more reasonable underlying ROMs, some mobile phone ROMs have begun to solve this kind of problem. For example, Meizu's Flyme could cut off associated wake-up, which is an improvement!
  2. Try to avoid using apps from BAT (Baidu, Alibaba, Tencent). This is obviously difficult, as Taobao and Alipay are unavoidable. So, you can only try to avoid using a few rogue apps and find alternatives. For example, use Gaode Maps instead of Baidu Maps! Also, avoid using browsers from these companies.
  3. Use some third-party management tools that can cut off associated wake-up calls, such as 360 Security Guard. Of course, this doesn't mean I recommend 360... LBE is also fine! Just something similar will do!
  4. Android users, why not get a new phone? Or try an Apple?

Now you know why Android phones get slower and slower over time! Fundamentally, it's due to the unscrupulous profit-seeking of domestic manufacturers, coupled with the decline of Google's domestic business and insufficient regulation, making the Android phone lag problem somewhat unsolvable! I don't want to say anything else, but I just hope domestic manufacturers have some conscience!

This siteOriginal articleAll follow "Attribution-NonCommercial-ShareAlike 4.0 License (CC BY-NC-SA 4.0)Please retain the following annotations when sharing or adapting:

Original author:Jake Tao,source:Analysis of why Android phones become slower over time

226
0 0 226

Further Reading

Post a reply

Log inYou can only comment after that.
Share this page
Back to top