御坂初琴
Articles133
Tags48
Categories12
【原创实验】国产APP唤醒小实验

【原创实验】国产APP唤醒小实验

看了我之前的文章的很多读者,当然也包括很多没看过我之前文章的读者都不了解当 App 装了很多以后,Android 为什么会变得很卡。这篇文章给大家做一个科普。

在进行科普之前,我们先做一个实验:

实验开始:

原料:一台 Andriod 手机,锁大师,百度文库,百度地图,百度贴吧

原理:锁大师在监测到一个软件启动时,会判断你是否给这个软件加过密码,如果加过则弹出密码输入框。但当期检测到这个软件挂到后台时,弹出框会立刻消失。

步骤:

1. 安装锁大师,百度文库,百度地图,百度贴吧

2. 使用手机自带安全中心禁止所有自启动权限

3. 使用锁大师给其中的两个软件加密码,留下一个不加(以百度文库,百度地图加锁,百度贴吧不加锁为例)

4. 在手机设置中找到应用列表,并在下一级界面中强制停止百度文库,百度地图和百度贴吧

5. 回到桌面,打开百度贴吧,注意观察桌面,你会发现,锁大师会弹出一下密码登录框,然后 1 秒左右立刻消失,然而在这个实验中百度贴吧并没有被加锁。

那么这个密码登录框是哪来的呢?这么明显你不会看不出来了吧?

没错,这就是 Android 系统的 App 唤醒机制。

在当前 Android 环境下,最大的引起手机卡顿的问题不是 App 各种自启动权限,而是互相唤醒机制。

我们举一个简单的例子:

百度文库,百度地图,百度贴吧以及百度旗下所有游戏之间存在互相唤醒关系,当其中一个软件运行时,其他软件都被这个软件唤醒,并挂在后台。当然这个操作你很可能感受不到,等你得知其挂在后台时,往往是过了很久,这个软件给你发一条推送消息,而你收到这条消息并且长按消息看到其来源时,才知道这个软件启动了,这就很容易让一般的手机使用者觉得是 “软件自启”。其实这个软件是被唤醒的。软件被唤醒后大量占用内存空间,频繁读写储存器,造成系统卡顿。

与此类似的还有腾讯家的各种软件,阿里家的各种软件。

如果你明白了这个原理,你也就明白为什么 iPhone 不卡:因为 IOS 两个软件间互相唤醒是需要使用者同意的!比如你把一篇 UC 上的文章分享到微博,就会收到一条是否允许的提示。这样如果两个软件想互相唤醒,用户一眼就能看出来。同时 IOS 对软件的权限管理更加严格,自启动,唤醒都是有控制的。

所以还是那句话,不是安卓系统不好,而是好系统被国产软件商搞臭了。

引一句 Android 官博上的话作为这篇文章的结尾:

Android 在我们这 1G 内存都不卡,不知道为什么在中国就会很卡。

Author:御坂初琴
Link:https://ybcq.github.io/2021/08/15/%E3%80%90%E5%8E%9F%E5%88%9B%E5%AE%9E%E9%AA%8C%E3%80%91%E5%9B%BD%E4%BA%A7APP%E5%94%A4%E9%86%92%E5%B0%8F%E5%AE%9E%E9%AA%8C/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可
×