УПРАВЛЕНИЕ ЖИЗНЕННЫМ ЦИКЛОМ ПРИЛОЖЕНИЙ
APPLICATION LIFECYCLE MANAGEMENT

Уровень техники
[0001] Вычислительные устройства могут выполнять несколько приложений одновременно. С ростом числа одновременно выполняющихся приложений, использование различных ресурсов вычислительного устройства (например, процессоров, памяти и т.д.) также может расти. Эти приложения могут продолжать использовать ресурсы вычислительного устройства, даже если приложения активно не используются пользователем вычислительного устройства. Это может быть проблематичным, поскольку использование ресурсов вычислительного устройства несколькими одновременно выполняющимися приложениями может ухудшить производительность вычислительного устройства, что может привести к раздражению и неприятным впечатлениям пользователя.
Сущность изобретения
[0002] Этот раздел обеспечен для введения подборки понятий в упрощенной форме, которые дополнительно описаны ниже по тексту в Подробном Описании. Этот раздел не предназначен для идентификации ключевых признаков или существенных признаков заявленного изобретения и не предназначена для использования, чтобы ограничивать объем заявленного изобретения.
[0003] В соответствии с одним или более аспектами в вычислительном устройстве, выполняющем несколько приложений, осуществляют проверку, удовлетворено ли пороговое значение из нескольких пороговых значений. Каждое из нескольких пороговых значений связано с характеристикой одного из упомянутых нескольких приложений или характеристикой ресурса вычислительного устройства. Если пороговое значение не удовлетворено, то упомянутым нескольким приложениям позволяют продолжать выполнение на вычислительном устройстве. Однако, если пороговое значение удовлетворено, то выбирают одно или более из упомянутых нескольких приложений для завершения работы, основываясь, по меньшей мере частично, на характеристике, связанной с пороговым значением, которое было удовлетворено, и завершают работу выбранного приложения.
[0004] В соответствии с одним или более аспектами генерируется список приложений заднего плана (фоновых приложений), выполняющихся на вычислительном устройстве. Список фоновых приложений приоритизируется, основываясь, по меньшей мере частично, на использовании ресурса вычислительного устройства фоновыми приложениями в списке. Выбирается приложение в списке фоновых приложений и завершается работа выбранного приложения.
Краткое описание чертежей
[0005] Идентичные числовые обозначения используются на всех чертежах для ссылки на одинаковые признаки.
[0006] Фиг. 1 иллюстрирует примерное вычислительное устройство, реализующее управление жизненным циклом приложений в соответствии с одним или более вариантами осуществления.
[0007] Фиг. 2 иллюстрирует примерную систему, реализующую управление жизненным циклом приложений в соответствии с одним или более вариантами осуществления.
[0008] Фиг. 3 представляет собой блок-схему последовательности операций, иллюстрирующую примерный процесс для устройства, реализующего управление жизненным циклом приложений в соответствии с одним или более вариантами осуществления.
[0009] Фиг. 4 представляет собой блок-схему последовательности операций, иллюстрирующую примерный процесс для выбора одного или более приложений для завершения их работы в соответствии с одним или более вариантами осуществления.
[0010] Фиг. 5 иллюстрирует примерное вычислительное устройство, которое может быть сконфигурировано для реализации управления жизненным циклом приложений в соответствии с одним или более вариантами осуществления.
Подробное Описание
[0011] В данном документе рассматривается управление жизненным циклом приложений. Контролируются различные характеристики приложений и/или ресурсов вычислительного устройства, такие как время существования приложения, использование процессора, использование памяти и т.п. Каждая из этих контролируемых характеристик имеет связанное пороговое значение и, если по меньшей мере одно из пороговых значений удовлетворено, то одно или более приложений выбираются для автоматического завершения работы. Одно или более приложений, которые выбраны для автоматического завершения работы, основаны, по меньшей мере частично, на пороговом значении, которое было удовлетворено, и характеристике, связанной с пороговым значением.
[0012] Фиг. 1 иллюстрирует примерное вычислительное устройство 100, реализующее управление жизненным циклом приложений в соответствии с одним или более вариантами осуществления. Вычислительное устройство 100 может представлять собой ряд различных типов устройств. Например, вычислительное устройство 100 может быть настольным компьютером, нетбуком или переносным компьютером, компьютером в виде записной книжки или планшетным компьютером, мобильной станцией, развлекательным устройством, телевизионной абонентской приставкой, подключенной с возможностью связи к устройству отображения, телевизором, сотовым или другим беспроводным телефоном, игровой консолью, автоматизированным компьютером и т.п. Таким образом, вычислительное устройство 100 может относиться к устройствам от устройства с полным ресурсом с существенными ресурсами памяти и процессора (например, персональные компьютеры, игровые консоли) до устройства с низким ресурсом с ограниченными ресурсами памяти и/или обработки (например, традиционные телевизионные абонентские приставки, карманные игровые консоли).
[0013] Вычислительное устройство 100 запитывается одним или более источниками питания. Эти источники питания могут представлять собой внешний источник питания или подключаемый источник питания и при работе на питании от такого источника питания вычислительное устройство 100 рассматривается как работающее в качестве системы или устройства с питанием от сети. Эти источники питания также могут представлять собой внутренний источник питания, такой как батарея, и при работе на питании от такого источника питания вычислительное устройство 100 рассматривается как работающее в качестве системы или устройства с питанием от батареи. Многие типы устройств могут представлять собой системы с питанием от сети или системы с питанием от батареи в разные моменты времени в зависимости от источника питания, от которого устройство работает в любой конкретный момент времени. Другие типы устройств, однако, могут быть лишь системами с питанием от сети (не имеющими внутреннего источника питания) или лишь системами с питанием от батареи (не использующими внешний источник питания).
[0014] Вычислительное устройство 100 включает в себя операционную систему 102 и одно или более приложений 104. Во время работы операционная система 102 и приложения 104 работают на вычислительном устройстве 100 с операционной системой 102, управляющей приложениями 104. Управление приложениями 104 включает в себя автоматическое завершение работы одного или более приложений 104, что рассмотрено более детально ниже по тексту. Жизненный цикл или продолжительность существования приложения 104 относится к временному периоду, когда выполняется приложение, начинается, когда приложение начинает выполняться, и заканчивается, когда приложение завершает работу.
[0015] Операционная система 102 включает в себя модуль 106 сбора системной информации и модуль 108 управления жизненным циклом приложений. Несмотря на то, что модуль 106 сбора системной информации и модуль 108 управления жизненным циклом приложений проиллюстрированы в качестве части операционной системы 102, в качестве альтернативы один или оба из модуля 106 и модуля 108 могут быть реализованы отдельно от операционной системы 102.
[0016] Модуль 106 сбора системной информации собирает различную информацию, касающуюся характеристик приложений 104 и/или ресурсов вычислительного устройства 100. Информация, касающаяся характеристик приложений 104, включает в себя, например, время существования каждого приложения 104. Время существования приложения 104 относится к тому, как давно (например, в исчислении на минуты, часы, дни и т.д.) приложение 104 последний раз было на переднем плане. Приложение находится на переднем плане, когда оно отображается или иным образом представляется через пользовательский интерфейс вычислительного устройства. Приложения, которые были свернуты (и, необязательно, приложения, имеющие свои окна отображения, покрытыми окнами отображения других приложений) не находятся на переднем плане и рассматриваются как фоновые приложения (фоновые приложения). Информация, касающаяся характеристик приложений 104, также может включать в себя другие свойства приложений 104, например подсчет того, сколько приложений 104 выполняются на вычислительном устройстве 100.
[0017] Ресурсы вычислительного устройства 100 включают в себя аппаратные и/или программные ресурсы вычислительного устройства 100, например процессоры и/или ядра процессора, память, сетевые соединения и т.д. Информация, касающаяся характеристик ресурсов вычислительного устройства 100, включает в себя, например информацию, касающуюся использования ресурсов вычислительного устройства 100, информацию, описывающую свойства ресурсов вычислительного устройства 100 и т.п. Например, характеристики ресурсов вычислительного устройства 100 могут включать в себя, насколько процессор (или ядро процессора) вычислительного устройства 100 используется всеми приложениями 104 в совокупности, насколько каждый процессор (или каждое ядро процессора) вычислительного устройства 100 используется каждым отдельным приложением 104, средний жизненный цикл страниц памяти из списка ожидания, тип сетевого соединения (например, является ли конкретное сетевое соединение сотовым беспроводным соединением, беспроводным соединением локальной сети (например Wi-Fi) и т.д.) и т.п.
[0018] Модуль 108 управления жизненным циклом приложений включает в себя модуль 112 отслеживания информации приложений, триггерный модуль 114, модуль 116 выбора приложения и модуль 118 завершения работы. Модуль 112 отслеживания информации приложений принимает информацию, касающуюся характеристик приложений 104 и/или ресурсов вычислительного устройства 100 от модуля 106 сбора системной информации. Триггерный модуль 114 контролирует информацию, принимаемую модулем 112 отслеживания информации приложений, и определяет, когда пороговое значение, связанное с конкретной характеристикой приложения 104 и/или ресурса вычислительного устройства 100 удовлетворено. Когда пороговое значение, связанное с конкретной характеристикой приложения 104 и/или ресурса вычислительного устройства 100 удовлетворено, модуль 116 выбора приложения выбирает одно или более приложений 104 для завершения работы. Модуль 118 завершения работы управляет завершением работы одного или более приложений, выбранных модулем 116 выбора приложения. Модуль 108 завершения работы автоматически завершает работу одного или более приложений, выбранных модулем 116 выбора приложения - при этом отсутствует необходимость приема ввода пользователя или подтверждения приложения для модуля 108 завершения работы для завершения работы выбранного одного или более приложений.
[0019] Модуль 112 отслеживания информации приложений поддерживает информацию, касающуюся различных характеристик приложений 104 и/или ресурсов вычислительного устройства 100 из модуля 106 сбора системной информации. Модуль 112 отслеживания информации приложений может запрашивать эту информацию через регулярные или нерегулярные интервалы (например, каждые пять секунд) из модуля 106 сбора системной информации или, в качестве альтернативы, может принимать эту информацию от модуля 106 другими способами (например, модуль 112 может регистрироваться в модуле 106 для приема сообщений или других обновлений с этой информацией).
[0020] В одном или более вариантах осуществления информация, поддерживаемая модулем 112 отслеживания информации приложений, включает в себя время существования каждого приложения 104, использование ядра процессора (Центрального Процессора или CPU) для каждого ядра процессора в вычислительном устройстве 100, использование памяти, использование запоминающего устройства (например, жесткого диска) для каждого запоминающего устройства в вычислительном устройстве 100 и использование сетевого соединения для каждого сетевого соединения, используемого вычислительным устройством 100. Использование ядра процессора является, например объединенным использованием мощности ядра процессора (например в качестве процента от полной мощности ядра процессора) всеми приложениями 104 и/или индивидуальным использованием мощности процессора (например в качестве процента от полной мощности ядра процессора) каждым приложением 104. Такое использование ядра процессора (либо всеми приложениями либо индивидуальными приложениями) может быть определено, например усреднением использования за конкретные интервалы (например каждые пять секунд) по конкретному числу интервалов (например 12 интервалов).
[0021] Использование памяти, например является объединенным использованием памяти всеми приложениями 104 и/или индивидуальным использованием памяти каждым приложением 104. Такое использование памяти (либо всеми приложениями либо индивидуальными приложениями) может быть определено, например посредством определения среднего жизненного цикла страниц памяти (например, за конкретный временной период, такой как предшествующая минута, продолжительность существования приложения и т.п.) в списке ожидания, поддерживаемом диспетчером памяти операционной системы 102. Такое использование памяти также может быть определено различными способами, например посредством определения среднего числа страниц памяти (например, за конкретный временной период, такой как предшествующая минута, продолжительность существования приложения и т.п.) в рабочем наборе страниц памяти для приложения.
[0022] Использование запоминающего устройства является, например объединенным использованием запоминающего устройства всеми приложениями 104 и/или индивидуальным использованием запоминающего устройства каждым приложением 104. Использование запоминающего устройства (либо всеми приложениями либо индивидуальными приложениями) может быть определено, например посредством усреднения частоты доступов к запоминающему устройству (например за конкретный временной период, такой как предшествующая минута, продолжительность существования приложения и т.п.). Такое использование запоминающего устройства также может быть определено различными способами, например посредством определения объема данных, передаваемых к и/или от запоминающего устройства (например, за конкретный временной период, такой как предшествующая минута, продолжительность существования приложения и т.п.).
[0023] Использование сетевого соединения является, например объединенным использованием сетевого соединения всеми приложениями 104 и/или индивидуальным использованием сетевого соединения каждым приложением 104. Использование сетевого соединения (либо всеми приложениями либо индивидуальными приложениями) может быть определено, например, посредством определения средней частоты передачи (отправления или приема) данных по сетевому соединению (например за конкретный временной период, такой как предшествующая минута, продолжительность существования приложения и т.п.). Такое использование сетевого соединения также может быть определено различными способами, например посредством определения среднего объема данных, передаваемых (отправляемых или принимаемых) по сетевому соединению (например, за конкретный временной период, такой как предшествующая минута, продолжительность существования приложения и т.п.).
[0024] Триггерный модуль 114 использует информацию, поддерживаемую модулем 112 отслеживания информации приложений для определения, когда пороговое значение, связанное с конкретной характеристикой приложения 104 и/или ресурса вычислительного устройства 100 было удовлетворено. В одном или более вариантах осуществления каждая характеристика, для которой поддерживается информация модулем 112 отслеживания информации приложений, имеет свое собственное пороговое значение (хотя следует отметить, что несколько таких пороговых значений могут быть одним и тем же значением). Пороговые значения, используемые триггерным модулем 114, могут быть предварительно сконфигурированы в триггерном модуле 114, или, в качестве альтернативы, могут быть обеспечены или иным образом получены триггерным модулем 114 от другого компонента или модуля (вычислительного устройства 100 или другого устройства).
[0025] В одном или более вариантах осуществления пороговое значение удовлетворяется, если связанная характеристика имеет значение, которое равно или превышает пороговое значение. В других вариантах осуществления пороговое значение может быть удовлетворено другими способами, например, если связанная характеристика имеет значение, которое превышает пороговое значение.
[0026] Пороговые значения могут быть установлены посредством ряда различных способов и в одном или более вариантах осуществления установлены, чтобы поддерживать высокую степень скорости ответа системы, а также длительный срок службы батареи. Завершая работу некоторых приложений, когда некоторые характеристики удовлетворяют некоторым пороговым значениям, модуль 108 управления жизненным циклом приложений пытается поддерживать высокую степень скорости ответа системы, а также длительный срок службы батареи. Конкретные пороговые значения могут быть установлены, например, на основе эмпирического анализа работы разных устройств.
[0027] Таблица I включает в себя примеры пороговых значений, которые могут быть использованы для конкретных характеристик приложения 104 и/или ресурса вычислительного устройства 100. Следует принять во внимание, что примеры, включенные в Таблицу I, являются примерами, и что другие пороговые значения и/или другие характеристики могут быть использованы в качестве альтернативы. Таблица I иллюстрирует примеры пороговых значений, связанных с конкретными характеристиками для систем с питанием от сети.
Таблица I
Характеристика
Пороговое значение
Время существования приложения
3 часа (с момента, когда приложение последний раз было на переднем плане)
Использование процессора
75% (общее использование мощности ядра процессора всеми приложениями) более 20 секунд; и/или25% (использование мощности ядра процессора одним приложением) более 20 секунд
Использование памяти
Быстрое обновление/подкачка каждые 300 секунд (средний жизненный цикл страниц памяти в списке ожидания, поддерживаемом диспетчером памяти)
Использование диска
75% (использование диска всеми ядрами процессора на любом одном диске в системе) более 20 секунд
[0028] Таблица II включает в себя дополнительные примеры пороговых значений, которые могут быть использованы для конкретных характеристик приложения 104 и/или ресурса вычислительного устройства 100. Следует отметить, что примеры, включенные в Таблицу II, являются примерами, и что другие пороговые значения и/или другие характеристики могут быть использованы в качестве альтернативы. Таблица II иллюстрирует примеры пороговых значений, связанных с конкретными характеристиками для систем с питанием от батареи.
Таблица II
Характеристика
Пороговое значение
Время существования приложения
3 часа (с момента, когда приложение последний раз было на переднем плане)
Использование процессора
75% (общее использование мощности ядра процессора всеми приложениями) более 5 секунд; и/илиболее 50% в интервалах (запись использования ядра процессора по каждому приложению каждые 5 секунд в последовательной истории из 12 интервалов; запуск если использование является ненулевым в более чем 50% интервалов)
Использование памяти
Быстрое обновление/подкачка каждые 300 секунд (средний жизненный цикл страниц памяти в списке ожидания, поддерживаемом диспетчером памяти)
Периодическое использование диска
Ненулевая активность в следующих друг за другом интервалах (для каждого приложения, использование диска записывается в 5 минутных интервалах)
Периодическое использование сети
Ненулевая активность в следующих друг за другом интервалах (для каждого приложения, использование сети записывается в 5 минутных интервалах)
[0029] Модуль 116 выбора приложения в ответ на определение триггерным модулем 114, что пороговое значение удовлетворено, выбирает одно или более приложений 104 для завершения работы. Этот выбор основан, по меньшей мере частично, на характеристике, связанной с конкретным пороговым значением, которое было превышено, и таким образом, также основан, по меньшей мере частично, на конкретном пороговом значении, которое было превышено. Модуль 116 выбора приложения выбирает одно или более из приложений 104 для завершения работы, когда по меньшей мере одно пороговое значение удовлетворено. Например, модуль 116 выбора приложения выбирает одно или более из приложений 104 для завершения работы, если пороговое значение для одного ресурса (например, использование процессора, использование памяти и т.д.) удовлетворено.
[0030] В одном или более вариантах осуществления модуль 116 выбора приложения выбирает приложение 104, подлежащее завершению работы, и обеспечивает указание выбранного приложения 104 модулю 118 завершения работы. Модуль 118 завершения работы завершает работу выбранного приложения 104 любым из ряда способов, например передавая запрос к выбранному приложению 104, чтобы оно завершило свою работу, осуществляя связь с другими компонентами или модулями операционной системы 102 для завершения исполнения выбранного приложения 104 и т.п. После того, как выбранное приложение 104 завершило работу, триггерный модуль 114 проверяет, является ли пороговое значение, которое было ранее удовлетворено (и привело к завершению работы выбранного приложения 104), все еще удовлетворенным. Если пороговое значение все еще удовлетворено, то модуль 116 выбора приложения выбирает другое приложение 104, подлежащее завершению работы. Однако, если значение приложения еще не удовлетворено, то нет необходимости завершения работы дополнительных приложений.
[0031] В качестве альтернативы вместо того, чтобы выбирать приложения одно за другим, модуль 116 выбора приложения может выбирать несколько приложений, которые подлежат завершению работы. Например, модуль 116 выбора приложения может определить конкретное число приложений, которые должны быть сохранены выполняющимися, основываясь на конкретном ресурсе вычислительного устройства 100 (например, конкретном объеме оперативной памяти (RAM) в вычислительном устройстве, конкретном числе ядер процессора в вычислительном устройстве 100 и т.п.). Одно или более приложений выбирают так, что лишь конкретное число приложений сохраняются выполняющимися.
[0032] Модуль 116 выбора приложения может выбирать, работу какого приложения 104 следует завершить, множеством разных способов. В одном или более вариантах осуществления модуль 116 выбора приложения выбирает приложение, подлежащее завершению работы, из набора приложений, который включает в себя приложения, выполняющиеся на заднем плане. Приложения, выполняющиеся на переднем плане (и таким образом, возможно, имеющие отображаемые пользовательские интерфейсы, которые могут быть видимы пользователю) не находятся в наборе, из которого выбирается приложение, подлежащее завершению работы. Выполняется ли приложение на переднем плане или на заднем плане, является характеристикой приложения, которая поддерживается посредством и может быть извлечена модулем 108 управления жизненным циклом приложений из модуля 106 сбора системной информации.
[0033] Дополнительно в одном или более вариантах осуществления характеристики приложений 104 и ресурсов вычислительного устройства 100, поддерживаемые модулем 112 отслеживания информации приложений получают с помощью модуля 116 выбора приложения. Для характеристики, связанной с пороговым значением, которое было удовлетворено, осуществляется приоритизация набора приложений, выполняющихся на заднем плане, основываясь на его значении для этой характеристики. Модуль 116 выбора приложения выбирает из набора приложений, выполняющихся на заднем плане, наиболее проблемное приложение 104. Наиболее проблемное приложение 104 представляет собой приложение, имеющее наибольшее или наивысшее значение для этой характеристики. Например, приложение 104, имеющее наивысшее использование ресурса, приложение 104, имеющее наибольшее значение времени существования (например, приложение 104, имеющее самое длительное время существования) и т.п. Наименее проблемным приложением 104 следовательно является приложение 104, имеющее наименьшее использование ресурса, приложение, имеющее самое короткое время существования и т.п. Например, если порог использования процессора удовлетворен, то модуль 116 выбора приложения выбирает приложение, имеющее наибольшее использование процессора в качестве наиболее проблемного приложения, и выбирает это приложение в качестве приложения, подлежащего завершению работы. Например, если имеется пять выполняющихся приложений 104, имеющих использования процессора 20%, 5%, 4%, 4% и 3% соответственно, то приложение, имеющее использование процессора 20% является приложением, имеющим наивысшее использование процессора, и является приложением, которое выбирается для завершения работы. В качестве альтернативы, несколько приложений могут быть выбраны для завершения работы (например, приложение имеющее использование процессора 20% и приложение, имеющее использование процессора 5%).
[0034] В качестве альтернативы, другие технологии могут быть использованы для выбора из набора приложений, выполняющихся на заднем плане, приложения для завершения работы. Например, может быть осуществлена приоритизация набора приложений, выполняющихся на заднем плане, основываясь на том, как часто используется каждое приложение (например, какой процент времени, во время выполнения приложения, приложение выполняется на переднем плане), основываясь на том, насколько давно каждое приложение последний раз было на переднем плане и т.п. Приложение, выбранное в качестве приложения для завершения работы, может быть приложением, которое наименее часто используется, приложением, которое наиболее давно не было на переднем плане и т.п.
[0035] Кроме того в одном или более вариантах осуществления один или более разных типов приложений исключаются из выбора модулем 116 выбора приложения в качестве приложения, подлежащего завершению работы. Модуль 116 выбора приложения может быть сконфигурирован с или в качестве альтернативы может получать от другого модуля или устройства указание этих одного или более типов приложений, которые исключены из выбора модулем 116 выбора приложения в качестве приложения, подлежащего завершению работы. Конкретные типы приложений, выбор которых модулем 116 выбора приложения в качестве приложения, подлежащего завершению работы, исключен, могут быть определены различными способами на основе пожеланий конструктора модуля 116 выбора приложения или администратора или пользователя вычислительного устройства 100.
[0036] Следует отметить что, хотя различные примеры характеристик приложений 104 и/или ресурсов вычислительного устройства 100 и связанные пороговые значения рассмотрены в данном документе, они представляют собой лишь примеры, и другие характеристики могут быть использованы в качестве альтернативы с технологиями, рассмотренными в данном документе. Например, такие характеристики, как число приложений 104, выполняющихся на вычислительном устройстве 100, могут быть использованы, и триггерный модуль 114 может определять, что пороговое значение было удовлетворено, если по меньшей мере пороговое число приложений 104 выполняются на вычислительном устройстве 100. В качестве другого примера разные пороговые значения могут быть связаны с разными типами сетевых соединений, например, одно пороговое значение для использования сотового беспроводного сетевого соединения и другое пороговое значение для использования сетевого Wi-Fi соединения.
[0037] Фиг. 2 иллюстрирует пример системы 200, реализующей управление жизненным циклом приложений в соответствии с одним или более вариантами осуществления. Система 200 может быть реализована, например вычислительным устройством 100 согласно фиг. 1. Система 200 включает в себя модуль 202 управления жизненным циклом приложений, который может быть, например модулем 108 управления жизненным циклом приложений согласно фиг. 1.
[0038] Модуль 202 управления жизненным циклом приложений принимает характеристики 204 ресурса и/или приложения от модуля 206 сбора системной информации. Эти характеристики ресурса и/или приложения могут представлять собой, например информацию, касающуюся различных характеристик приложений 104 и/или ресурсов вычислительного устройства 100, принимаемую модулем 112 отслеживания информации приложений согласно фиг. 1. Эти характеристики 204 ресурса и/или приложения могут быть приняты через другой компонент или модуль, например модуль 106 сбора системной информации согласно фиг. 1.
[0039] Модуль 202 управления жизненным циклом приложений также принимает идентификаторы 208 приложений от модуля 210 управления пользовательским интерфейсом. Идентификаторы 208 приложений идентифицируют приложения, которые, например, выполняются в текущий момент на переднем плане. Модуль 210 управления пользовательским интерфейсом поддерживает запись приложений, которые выполняются в текущий момент на переднем плане и обеспечивает приложения в этой записи в качестве идентификаторов 208 приложений. Эти идентификаторы приложений могут быть приняты через другой компонент или модуль, например модуль 106 сбора системной информации согласно фиг. 1.
[0040] Модуль 202 управления жизненным циклом приложений использует одну или более характеристик 204 ресурса/приложения и идентификаторы 208 приложений для выбора одного или более приложений 212, подлежащих завершению работы. Эти одно или более приложений могут быть выбраны различными способами, как рассмотрено выше по тексту. Эти приложения 212 могут быть, например одним или более приложениями 104 согласно фиг. 1. Модуль 202 управления жизненным циклом приложений передает команду 214 или запрос завершения работы одному или более приложениям 212.
[0041] Фиг. 3 представляет собой блок-схему последовательности операций, иллюстрирующую примерный процесс 300 для устройства, реализующего управление жизненным циклом приложений, в соответствии с одним или более вариантами осуществления. Процесс 300 выполняется вычислительным устройством, таким как вычислительное устройство 100 согласно фиг. 1 и может быть реализован в программном обеспечении, аппаратно-программном обеспечении или в их комбинации. Процесс 300 показан в качестве набора этапов и не ограничен порядком, показанным для выполнения операций различных этапов. Процесс 300 является примерным процессом для устройства, реализующего управление жизненным циклом приложений; дополнительные рассмотрения по реализации управления жизненным циклом приложений включены в данный документе со ссылкой на разные чертежи.
[0042] В процессе 300 проверку выполняют относительно того, превышено ли пороговое значение (этап 302). Как рассмотрено выше по тексту, это пороговое значение является пороговым значением, связанным с характеристикой приложения, выполняющегося на вычислительном устройстве и/или ресурсом вычислительного устройства.
[0043] Если отсутствует превышенное пороговое значение, то приложениям, выполняющимся на вычислительном устройстве, позволяют продолжать выполнение на вычислительном устройстве (этап 304). Этап 302 затем повторяют (например, через регулярные или нерегулярные интервалы).
[0044] Однако, если пороговое значение превышено, то выбирают одно или более приложений для завершения работы (этап 306). Эти одно или более приложений могут быть выбраны различными способами, как рассмотрено выше по тексту.
[0045] Завершают работу одного или более приложений, выбранных на этапе 306(этап 308). Этап 302 затем повторяют (например с регулярным или нерегулярными интервалами).
[0046] Фиг. 4 представляет собой блок-схему, иллюстрирующую примерный процесс 400 для выбора одного или более приложений, подлежащих завершению работы в соответствии с одним или более вариантами осуществления. Процесс 400 выполняется вычислительным устройством, таким как вычислительное устройство 100 согласно фиг. 1, и может быть реализован в программном обеспечении, аппаратно-программном обеспечении, аппаратном обеспечении или в их комбинациях. Процесс 400 показан как набор этапов и не ограничен порядком, показанным для выполнения операций различных этапов. Процессом 400 является примерный процесс для выбора одного или более приложений, подлежащих завершению работы; дополнительные рассмотрения выбора одного или более приложений, подлежащих завершению работы, включены в данный документ со ссылкой на разные фигуры.
[0047] Процесс 400 типично инициируют в ответ на удовлетворение порогового значения, связанного с характеристикой приложения, выполняющегося на вычислительном устройстве и/или ресурса вычислительного устройства. В процессе 400 генерируется список фоновых приложений (этап 402). Фоновые приложения являются приложениями, которые выполняются на вычислительном устройстве на заднем плане.
[0048] Необязательно, одно или более приложений, завершение работы которых исключено, удаляются из сгенерированного списка (этап 404). Различные типы приложений могут быть исключены из завершения работы, как рассмотрено выше по тексту.
[0049] Осуществляют приоритизацию (этап 406) приложений, оставшихся в сгенерированном списке. Приоритизация приложений может быть осуществлена разными способами, например согласно использованию конкретного ресурса (например, ресурса, связанного с пороговым значением, которое было удовлетворено), времени существования, частоты использования и т.п.
[0050] Выбирают (этап 408) приложение в сгенерированном списке. Приложение, выбранное на этапе 408, является приложением, приоритет которого определен как наивысший (например, имеет наивысшее использование ресурса, имеет самое длительное время существования, имеет наименьшую частоту использования и т.п.).
[0051] Завершают работу выбранного приложения (этап 410). Работа выбранного приложения может быть завершена разными способами, как рассмотрено выше по тексту.
[0052] Проверка затем выполняется относительно того, удовлетворено ли пороговое значение (этап 412). Если пороговое значение все еще удовлетворено, то процесс 400 возвращается к этапу 408 для выбора другого приложения. В качестве альтернативы, процесс 400 может возвращаться к этапу 402 для повторного генерирования списка фоновых приложений.
[0053] Если пороговое значение еще (уже) не удовлетворено, то процесс 400 выполнен (этап 414). Дополнительно если все приложения, работа которых может быть завершена (например, все фоновые приложения, все приложения, завершение работы которых не исключено и т.д.) завершили работу, процесс 400 выполнен (этап 414) даже если пороговое значение все еще удовлетворено.
[0054] Процесс 400 рассматривается со ссылкой на генерирование списка и удаление из списка приложений, завершение работы которых исключено. В качестве альтернативы может быть осуществлено генерирование и приоритизация списка фоновых приложений, выбор приложения в сгенерированном списке и затем завершение работы приложения, только если завершение работы выбранного приложения не исключено.
[0055] Технологии, рассмотренные в данном документе, поддерживают различные сценарии использования. Например, если конкретное фоновое приложение использует большую величину мощности процессора (или памяти), это конкретное фоновое приложение может быть выбрано в качестве приложения, подлежащего завершению работы. Таким образом, фоновое приложение, которое не было на переднем плане и в текущий момент не используется пользователем устройства 100, автоматически завершает работу и ресурсы, используемые фоновым приложением, освобождаются для использования другими приложениями. Вместо того чтобы просто завершать работу наиболее давно неиспользуемого приложения, приложение, имеющее высокую вероятность освобождения ресурсов для использования другими приложениями, является приложением, которое завершает работу.
[0056] Следует отметить, что технологии управления жизненным циклом приложений, рассмотренные в данном документе, уменьшают нагрузку на пользователя по управлению несколькими приложениями на его или ее вычислительном устройстве. Пользователь может запускать приложения так, как он или она желает, не заботясь о завершении работы этих приложений, когда он или она больше не использует эти приложения. Точнее технологии управления жизненным циклом приложений, рассмотренные в данном документе, автоматически завершают работу приложения для пользователя, принимая меры по завершению работы фоновых приложений, а не приложений, которые в текущий момент используются пользователем.
[0057] Фиг. 5 иллюстрирует примерное вычислительное устройство 500, которое может быть сконфигурировано для реализации управления жизненным циклом приложений, в соответствии с одним или более вариантами осуществления. Вычислительное устройство 500 может быть, например, вычислительным устройством согласно фиг. 1.
[0058] Вычислительное устройство 500 включает в себя один или более процессоров или обрабатывающих блоков 502 (каждый из которых может включать в себя одно или более ядер процессора), один или более считываемых компьютером носителей 504, которые могут включать в себя один или более компонентов 506 памяти и/или хранения, одно или более устройств 508 ввода/вывода (I/O) и шину 510, которая позволяет различным компонентам и устройствам осуществлять связь друг с другом. Считываемые компьютером носители 504 и/или одно или более устройств 508 I/O могут быть включены в качестве части или в качестве альтернативы могут быть подключены к вычислительному устройству 500. Шина 510 представляет один или более нескольких типов шинных структур, в том числе шину памяти или контроллер памяти, шину периферийных компонентов, ускоренный графический порт, процессор или локальную шину и т.п. с использованием рада различных шинных архитектур. Шина 510 может включать в себя проводную и/или беспроводную шины.
[0059] Компонент 506 памяти/хранения представляет один или более компьютерных запоминающих носителей. Компонент 506 может включать в себя энергозависимые носители (например оперативную память (RAM)) и/или энергонезависимые носители (например постоянную память (ROM), флэш-память, оптические диски, магнитные диски и т.п.). Компонент 506 может включать в себя несъемные носители (например RAM, ROM, несъемный накопитель на жестком диске и т.д.), а также съемные носители (например, флэш-память, съемный накопитель на жестком диске, оптический диск и т.п.).
[0060] Технологии, рассмотренные в данном документе, могут быть реализованы в программном обеспечении с исполнением инструкций одним или более обрабатывающими блоками 502. Следует отметить, что разные инструкции могут быть сохранены в разных компонентах вычислительного устройства 500, например в обрабатывающем блоке 502, в разных кэш-памятях обрабатывающего блока 502, в других кэш-памятях устройства 500 (не показано), на других считываемых компьютером носителях и т.п. Дополнительно следует отметить, что местоположение, где хранятся инструкции в вычислительном устройстве 500, может меняться со временем.
[0061] Одно или более устройств 508 ввода/вывода позволяют пользователю вводить команды и информацию в вычислительное устройство 500 и также позволяют представлять информацию пользователю и/или другим компонентам или устройствам. Примеры устройств ввода включают в себя клавиатуру, устройство управления курсором (например мышь), микрофон, сканер и т.п. Примеры устройств вывода включают в себя устройство отображения (например монитор или проектор), громкоговорители, принтер, сетевую карту и т.п.
[0062] Различные технологии могут быть описаны в данном документе в общем контексте программного обеспечения или программных модулей. В общем, программное обеспечение включает в себя подпрограммы, программы, объекты, компоненты, структуры данных и т.п., которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Реализация этих модулей и технологий может быть сохранена на или передана на некоторой форме считываемых компьютером носителей. Считываемые компьютером носители могут быть любым доступным носителем или носителями, к которым может быть осуществлен доступ вычислительным устройством. Посредством примера, и не ограничения, считываемые компьютером носители могут содержать «компьютерные запоминающие носители» и «носители связи».
[0063] «Компьютерные запоминающие носители» включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные в любом способе или технологии для хранения информации, такой как считываемые компьютером инструкции, структуры данных, программные модули или другие данные. Компьютерные запоминающие носители включают в себя, но не ограничены этим, RAM, ROM, EEPROM, флэш-память или другую технологию памяти, CD-ROM, универсальные цифровые диски (DVD) или другое оптическое запоминающее устройство, магнитные кассеты, магнитную ленту, магнитное дисковое запоминающее устройство или другие магнитные запоминающие устройства, или любой другой носитель, который может быть использован для хранения желаемой информации и к которому может быть осуществлен доступ компьютером.
[0064] «Носители связи» типично воплощают считываемые компьютером инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, например несущая волна или другой механизм транспортировки. Носители связи также включают в себя любые носители доставки информации. Термин «модулированный сигнал данных» означает сигнал, который имеет одну или более из своих характеристик установленной или измененной таким образом, чтобы кодировать информацию в сигнале. Посредством примера, и не ограничения, носители связи включают в себя проводные носители, например проводную сеть или прямое проводное соединение и беспроводные носители, например акустические, RF, инфракрасные и другие беспроводные носители. Комбинации любого из вышеперечисленного также включены в объем считываемых компьютером носителей.
[0065] В общем, любая из функций или технологий, описанных в данном документе, может быть реализована с использованием программного обеспечения, аппаратно-программного обеспечения, аппаратного обеспечения (например фиксированная логическая схема), ручной обработки, или комбинации этих реализаций. Термин «модуль» и «компонент», которые используются в данном документе, в общем представляют программное обеспечение, программно-аппаратное обеспечение, аппаратное обеспечение, или их комбинации. В случае программной реализации модуль или компонент представляет программный код, который выполняет конкретные задачи при исполнении на процессоре (например, CPU или нескольких CPU). Программный код может быть сохранен в одном или более считываемых компьютером устройств памяти, дополнительное описание которых может быть найдено со ссылкой на Фиг. 5. Признаки технологий управления жизненным циклом приложений, описанных в данном документе, являются независимыми от платформы, что означает, что технологии могут быть реализованы на ряде доступных для приобретения вычислительных платформ, имеющих ряд процессоров.
[0066] Несмотря на то, что изобретение описано на языке характерном для структурных признаков и/или методологических этапов, следует понимать, что изобретение, определенное в приложенной формуле изобретения не обязательно ограничено конкретными признаками или этапами, описанными выше по тексту. Наоборот, конкретные признаки и этапы, описанные выше по тексту раскрыты в качестве примеров форм реализации формулы изобретения.