【问题标题】:why does the android os need to have apps running in the backround that are not ever selected为什么android操作系统需要在后台运行从未选择过的应用程序
【发布时间】:2010-12-19 09:31:13
【问题描述】:

为什么 android 操作系统不能更像 ituch/iphone 上的苹果操作系统?应用程序在被选中之前不会运行。它也关闭了;保持关闭,直到它再次打开。

我认为这会让安卓手机运行得更快更高效(电池续航时间更长)。

【问题讨论】:

    标签: android operating-system


    【解决方案1】:
    1. 许多 Android 应用程序(我认为它们中的大多数)都按照您的描述运行 - 它们有一个活动,一旦您离开它就会关闭或暂停 - 暂停的活动只消耗内存并且可以在立即的。 (iOS 的做法几乎相同)
    2. 即使在 iPhone 上,也有在后台运行的应用程序,最突出的例子是 Mobile Safari。不同的是,只有 Apple 可以编写不受限制地在后台运行的应用程序,而普通用户无法监控这些后台应用程序。 (如果用户在加载流媒体内容的页面上离开 Mobile Safari,这会导致大量收费问题。)
    3. 在某些合法用例中,您需要应用程序继续在后台运行(下载、上传、播放音乐、等待 VoIP 呼叫) - 第三方无法在 iPhone 上执行此操作直到 iOS4,使 Pandora 或 Skype 等应用程序几乎无用。
    4. 无论好坏,Apple 始终限制允许第三方开发人员在 iOS 设备上执行的操作(App Store 政策、私有 API、第 3 点中提到的用于后台任务的专用 API)。另一方面,Google 似乎更希望第三方 Android 开发者能够访问与 Google 的 Android 应用开发者相同的 API。
    5. IMO 最大的 Android 性能问题是响应能力,解决这个问题比说“后台没有应用程序谢谢”要复杂得多。 (更多信息请参见http://android-developers.blogspot.com/2010/12/new-gingerbread-api-strictmode.html

    【讨论】:

      【解决方案2】:

      Android developer's blog 解释了 Android 多任务处理背后的原因。

      • 我们不想要求用户在“完成”应用程序后关闭它们。
      • 移动设备……对内存使用有相当严格的限制。

      这些相互竞争的约束是 Android 设计的关键动机。

      您可以看到应用程序的进程“正在运行”这一事实并不意味着该应用程序正在运行或正在做任何事情。

      从那里链接的文章也有关于这个主题的有趣的事情要说

      The RadioActive Yak:

      您的应用何时应包含退出按钮?简短的回答:从不。

      Wickenden:

      天真但技术上好奇的新 android 用户做的第一件事就是开始想知道他们正在运行的所有东西应该如何“关闭”。

      Google 的 android 系统专为多任务处理而设计,允许程序准备好立即响应变化的环境条件(唤醒您的警报、您已到达目的地的通知等等)作为以及在需要时实际“运行”和消耗资源。此外,android 系统本身在处理低内存条件方面很聪明,并且能够以这样一种方式完全摧毁应用程序,即它们的状态被记住并且可以在有更多内存时恢复。 任务杀手(其行为在 Android 2.2 “Froyo” 中被彻底限制)实际上可以通过破坏其他应用程序正常运行所需的进程来造成伤害。

      【讨论】:

        猜你喜欢
        • 2012-02-06
        • 2016-10-03
        • 1970-01-01
        • 1970-01-01
        • 2020-02-15
        • 1970-01-01
        • 2019-03-02
        • 2011-07-06
        • 1970-01-01
        相关资源
        最近更新 更多