Logo cn.androidermagazine.com
Logo cn.androidermagazine.com

手机制造商正在搞乱Android的内存管理,谷歌没有采取任何措施

目录:

Anonim

让你的Android手机正在做Android内存管理错误的公司。 由于未遵循最佳做法以及在某些情况下访问Google Play的实际要求,如果他们构建的应用在您查看其他屏幕或显示器已关闭时需要工作,则应用开发人员会看到一系列令人头疼的新问题关闭。 值得庆幸的是,Urbandroid团队已经通过Dontkillmyapp.com引起了我们的注意。 在这里,您将找到问题的详细描述以及流行的Android供应商的记分卡,用1-5堆废话评估每个人的滥用程度。 配件

该网站的GitHub页面上的声明解释说:

最终,每个独立Android开发人员至少部分受到此问题的影响。

我们Urbandroid团队受到了Sleep as Android应用程序的严重影响,我们收集了大量有关黑客和变通方法的信息,我们认为需要共享这些信息。 我们首先联系各个独立开发者,提供交换信息的建议,从而形成了一个开源网站形式的更有效方法的想法。

“问题”是制造手机的公司改变了像Doze这样重要的Android组件的工作; 已经构建了旨在积极扫描和杀死使用系统资源的应用程序的应用程序; 甚至建立白名单,说明哪些应用程序不在屏幕上运行。 这使得应用程序需要在后台运行 - 比如Urbandroid的Sleep as Android应用程序无法按照他们的意图去做。

这一切都落在应用程序开发人员的耳朵上,因为不满意的客户不了解Android中的内存管理(他们也不应该这样做)以及为什么它不仅仅与他们受影响的应用程序隔离。 不满意的客户为不开心的开发人员做出了贡献,这对我们所有人来说都是五堆垃圾。

并非所有的Android都是开放的

您可能会想,“那么什么?Android是开源的,使用它的公司可以用代码做任何他们想做的事情”,并且在某种程度上你是对的。 但是,只要手机制造商想要访问Google Play,所有这些都会发生变化。

Google Play商店访问权限不是免费提供的 - 双方都需要遵守协议。

访问Google Play需要遵循一些规则,其中许多规则乍一看似乎是随意的。 对于另外一篇或两篇文章,这是一个更大的讨论,但它的要点是谷歌希望在每部手机上都有最少的东西,以便只要手机支持,Play商店中的每个应用都可以正常工作版。 换句话说,如果应用程序的列表显示需要运行Android 4或更高版本,则每台运行Android 4或更高版本的手机都应该能够安装和使用该应用程序。 没有例外。

有一些详细的方法可以让想要或需要应用程序的开发人员在后台工作 - 无论何时你没有主动查看屏幕 - 这样做的方式在所有手机上都是一致的。 然后谷歌也可以改进Android的其他部分,并知道如果它希望所有应用程序仍然可用,那么它可以尝试保持向后兼容。

这并不总是奏效。 每个拥有Nexus或Pixel手机的人都会告诉您,Android的新版本通常会导致应用程序无法正常运行,有些应用程序永远不会更新。 有时候必须做出决定并切断旧功能,以便用新的东西替换它。 谷歌已经介入了自己的一两次捣乱,比如Android 6.0中最初发布的Doze。

如果您想使用Google的其他产品,保持一致非常重要。 即使使用开源软件。

我们是怎么来到这里的?

智能手机制造商并不是为了娱乐而这样做。 每个制作手机的公司都希望您喜欢从他们那里购买的产品,以便在下次购买手机时看到它的品牌。 如果应用程序被无缘无故地杀死,那将无济于事。

当我们购买手机时,通常有一件事情就是我们想要的东西:电池寿命长。 延长电池寿命的一种方法是限制手机的功能; 这就是为什么你每周只需要给一个“哑”手机充电几次。 它并没有真正做得太多,特别是当它不在你手中时。 但是,智能手机需要做很多事情。

杀死后台任务可能对您的电池有利,但它会让您的智能手机变得愚蠢。

谷歌有一个系统,当应用程序没有积极做任何事情,但将来可能需要时,将应用程序置于“睡眠”状态。 它做了大量的工作 - 有些好,有些不好 - 来平衡事物,这样你就可以做一个可以做一些事情的电话,比如跟踪你的步数,监控你的睡眠,或者在屏幕关闭时充当音乐播放器而不会耗尽你的电池。 它希望使用这些方法并遵循规则,以便我们从Play商店中的每个应用程序获得一致性。

从 Dontkillmyapp 的名单来看,诺基亚就是我将在这里使用的例子,但违法者名单中也包括OnePlus,索尼和三星。 甚至谷歌本身也因为难以免除应用程序“打瞌睡”而被召唤出来。 诺基亚在公司生产的每部手机上都安装了一款应用程序,可运行Android Oreo或更高版本,可在屏幕关闭后20分钟杀死每个后台进程。 这意味着健身应用永远不会起作用,但这也意味着如果您拥有Android P,您的闹钟就不会响起。

我们是如何达到智能手机不被智能化的程度的? 因为我们要求更长的电池寿命,而制造手机的公司也做出错误的决定给我们。 手机制造商对Android的影响不大,这对电池寿命有很大的影响。 可以做的一件事就是杀掉可能不需要活着的应用程序。 当其中一个被杀死的应用确实需要保持活着时,它就无法按预期工作。

谷歌需要收紧钳位

我讨厌这样说。 Android是一个开源项目,多年来,谷歌公司已经看到了一些令人难以置信的开发项目。 使用Android的公司应该按照自己的意愿行事,并推动每一个边界,使其更好。 但是,我们再次回到Play商店的应用程序的一致性。

用户 - 包括了解并理解此类问题类型的用户 - 值得更好。 谷歌需要在涉及到商店的应用程序时实现这一点,并改变和执行所需的一切。 在没有任何用户参与的情况下做到这一点,无论公司“犯罪”有多大或销售多少手机,都要做到这一点。

我们应得的。