СПОСОБ УСТАНОВКИ ПРИЛОЖЕНИЙ, УСТРОЙСТВО-УСТАНОВЩИК И СИСТЕМА, РЕАЛИЗУЮЩИЕ УПОМЯНУТЫЙ СПОСОБ Российский патент 2024 года по МПК G06F9/445 G06F8/61 

Описание патента на изобретение RU2816293C1

Область техники

[0001] Настоящая заявка относится к способу установки приложений, а также к устройству-установщику и системе, реализующим упомянутый способ.

Уровень техники

[0002] Массовая установка приложений представляет собой процесс установки множества приложений на устройства одновременно, без необходимости установки каждого приложения по отдельности. Такая установка может происходить при первичной настройке телефона. Для массовой установки приложений пользовательское устройство обычно связывается с серверным устройством, которое осуществляет установку приложений (непосредственно запись в память пользовательского устройства), контроль процесса установки, а также настройку приложений.

[0003] Из уровня техники известен способ одновременной установки множества приложений на пользовательское устройство с помощью восстановления резервного архива пользовательского устройства - патент RU2584447 (C2) (ООО “Яндекс”, опубл. 20.05.2016). В указанном патенте покрыт актуальный на тот момент способ записать сразу несколько приложений в архив, который затем передается по пользовательское устройство. На пользовательском устройстве, соответственно, используя доступные на тот момент возможности операционной системы, пользовательское устройство восстанавливало из памяти «архивное» состояние, в котором уже были установлены приложения. С тех пор архитектуры операционных систем изменились, восстановление из архива более не доступно в таком виде, поэтому требуются более совершенные способы массовой установки приложений с возможностью их одновременной, при необходимости, настройки.

Сущность изобретения

[0004] Благодаря предложенному в настоящей заявке техническому решению время ожидания до завершения установки приложений может быть снижено, а ресурсы устройств, которые задействуются в такой установке, могут, соответственно, быть использованы более эффективно. В частности, за счет параллельной установки приложений, может быть уменьшено время ожидания до завершения установки приложений, а переключение на последовательную установку в случае недостатка ресурсов памяти позволяет избежать ошибок и некорректной работы задействованных в установке устройств. Таким образом, обеспечивается оптимальное использование доступных ресурсов и максимально эффективный процесс установки. Кроме того, можно сказать, что раскрытое в данной заявке техническое решение обладает большей гибкостью или адаптивностью, т.к. задействованные в установке устройства могут адаптироваться к различным требованиям и условиям, обеспечивая наилучший результат в каждом конкретном случае.

[0005] В первом аспекте настоящего изобретения предложен способ установки множества приложений на пользовательское устройство, содержащий этапы, на которых: - устанавливают связь между пользовательским устройством и устройством-установщиком; - получают доступ к пользовательскому устройству для передачи на пользовательское устройство команд и данных, необходимых для установки упомянутого множества приложений на пользовательское устройство; - определяют, является ли текущее состояние пользовательского устройства предопределенным состоянием пользовательского устройства, -- в случае если определено, что текущее состояние пользовательского устройства является упомянутым предопределенным состоянием: --- передают на пользовательское устройство весь пакет установочных файлов упомянутого множества приложений, подлежащих установке на пользовательское устройство, и --- передают на пользовательское устройство множество команд на установку упомянутого множества приложений; или -- в случае если определено, что текущее состояние пользовательского устройства не является упомянутым предопределенным состоянием, для каждого приложения из множества приложений последовательно: --- передают (A) на пользовательское устройство установочный файл приложения, подлежащего установке на пользовательское устройство, --- передают на пользовательское устройство команду на установку упомянутого приложения из переданного установочного файла, и --- определяют, все ли приложения из упомянутого множества приложений установлены, ---- в случае если определено, что не все приложения из упомянутого множества приложений установлены: ----- удаляют установочный файл установленного приложения после установки приложения, и ----- определяют, достаточен ли объем свободной энергонезависимой и/или энергозависимой памяти пользовательского устройства для сохранения и распаковки установочного файла следующего приложения из упомянутого множества приложений, ------ в случае если определено, что объем свободной энергонезависимой и/или энергозависимой памяти пользовательского устройства достаточен: ------- переходят к выполнению этапов, начиная с этапа (A), для следующего приложения из упомянутого множества приложений; ------ в случае если определено, что объем свободной энергонезависимой и/или энергозависимой памяти пользовательского устройства не достаточен: ------- установка следующих приложений прекращается; ------- в случае если определено, что все приложения из упомянутого множества приложений установлены: ------- установка приложений завершается.

[0006] В варианте реализации первого аспекта настоящего изобретения связь между пользовательским устройством и устройством-установщиком является проводной или беспроводной.

[0007] В варианте реализации первого аспекта настоящего изобретения текущее состояние пользовательского устройства определяется как предопределенное состояние в случае выполнения основного условия, при котором объем свободной энергонезависимой и/или энергозависимой памяти пользовательского устройства не меньше объема энергонезависимой и/или энергозависимой памяти, требуемого для сохранения и распаковки всего пакета установочных файлов упомянутого множества приложений.

[0008] В варианте реализации первого аспекта настоящего изобретения текущее состояние пользовательского устройства определяется как предопределенное состояние в случае выполнения, наряду с основным условием, одного или нескольких дополнительных условий, при которых: - уровень загрузки процессора пользовательского устройства не превышает предопределенное пороговое значение уровня загрузки процессора пользовательского устройства; - режимом работы пользовательского устройства является режим ожидания; - в случае если пользовательское устройство оборудовано аккумуляторной батареей, уровень зарядки аккумуляторной батареи не меньше предопределенного порогового значения уровня зарядки аккумуляторной батареи; - версия операционной системы пользовательского устройства является последней актуальной версией соответствующей операционной системы; - пользовательское устройство заряжается; - пользовательское устройство подключено к Интернету через Wi-Fi.

[0009] В варианте реализации первого аспекта настоящего изобретения команда на установку приложения является командой на установку приложения без контроля установочного файла приложения со стороны операционной системы пользовательского устройства.

[0010] В варианте реализации первого аспекта настоящего изобретения команда на установку приложения является командой на установку с настройкой устанавливаемого приложения, причем в качестве настройки устанавливаемого приложения в данной команде выступает инструкция на установку определенного параметра устанавливаемого приложения в любое предопределенное значение.

[0011] В варианте реализации первого аспекта настоящего изобретения установку множества приложений на пользовательское устройство выполняют при производстве пользовательского устройства, или при первичной настройке пользовательского устройства, или на любой стадии использования пользовательского устройства.

[0012] В варианте реализации первого аспекта настоящего изобретения устанавливаемые приложения являются приложениями, устанавливаемыми на пользовательское устройство по умолчанию, или приложениями, выбираемыми пользователем пользовательского устройства для установки на пользовательское устройство.

[0013] В варианте реализации первого аспекта настоящего изобретения операционной системой пользовательского устройства является операционная система типа Android или операционная система типа iOS.

[0014] В варианте реализации первого аспекта настоящего изобретения доступ к пользовательскому устройству для передачи на пользовательское устройство команд и данных реализуют через Android Debug Bridge (ADB), интегрированную среду разработки Xcode, iOS Debug Bridge (IDB) или iOS Development Bridge (iDB).

[0015] В варианте реализации первого аспекта настоящего изобретения доступ к пользовательскому устройству получают на этапе получения доступа, обращаясь к системному процессу операционной системы пользовательского устройства, причем системным процессом является процесс типа daemon операционной системой пользовательского устройства.

[0016] В варианте реализации первого аспекта настоящего изобретения ярлыки устанавливаемого множества приложений добавляются в меню приложений на пользовательском устройстве.

[0017] В варианте реализации первого аспекта настоящего изобретения способ дополнительно содержит этапы, на которых: собирают при установке приложений/приложения статистику; проверяют факт установки приложений/приложения; и передают собранную статистику на устройство-установщик в качестве обратной связи.

[0018] В варианте реализации первого аспекта настоящего изобретения собираемая статистика включает в себя одно или более из идентификатора пользовательского устройства, наименования и версии операционной системы пользовательского устройства, скорости установки приложений/приложения, информации об ошибках установки приложений/приложения, информации об ошибках системных процессов операционной системы, возникающих при установке приложений/приложения, и журнала показателей функционирования пользовательского устройства, регистрируемых при установке каждого приложения.

[0019] Во втором аспекте настоящего изобретения предложено устройство-установщик для установки множества приложений на пользовательское устройство, содержащее: - блок связи, выполненный с возможностью установки связи между пользовательским устройством и устройством-установщиком; - блок отладки, выполненный с возможностью получения доступа к пользовательскому устройству для передачи на пользовательское устройство команд и данных, необходимых для установки упомянутого множества приложений на пользовательское устройство; - блок определения, выполненный с возможностью определения, является ли текущее состояние пользовательского устройства предопределенным состоянием пользовательского устройства, - в случае если определено, что текущее состояние пользовательского устройства является упомянутым предопределенным состоянием, блок отладки выполнен с возможностью: - передачи на пользовательское устройство всего пакета установочных файлов упомянутого множества приложений, подлежащих установке на пользовательское устройство, и - передачи на пользовательское устройство множества команд на установку упомянутого множества приложений или одной общей команды на установку упомянутого множества приложений; или - в случае если определено, что текущее состояние пользовательского устройства не является упомянутым предопределенным состоянием, для каждого приложения из множества приложений последовательно: - блок отладки выполнен с возможностью передачи на пользовательское устройство установочного файла приложения, подлежащего установке на пользовательское устройство, и команды на установку упомянутого приложения из переданного установочного файла, и - блок определения выполнен с возможностью определения, все ли приложения из упомянутого множества приложений установлены, - в случае если определено, что не все приложения из упомянутого множества приложений установлены: - блок отладки выполнен с возможностью удаления установочного файла установленного приложения после установки приложения, и - блок определения выполнен с возможностью определения, достаточен ли объем свободной энергонезависимой и/или энергозависимой памяти пользовательского устройства для сохранения и распаковки установочного файла следующего приложения из упомянутого множества приложений, - в случае если определено, что объем свободной энергонезависимой и/или энергозависимой памяти пользовательского устройства достаточен: - переходят к выполнению, для следующего приложения из упомянутого множества приложений, операций, которые выполняются блоком отладки и блоком определения после определения, что текущее состояние пользовательского устройства не является упомянутым предопределенным состоянием; - в случае если определено, что объем свободной энергонезависимой и/или энергозависимой памяти пользовательского устройства не достаточен: - установка следующих приложений прекращается; - в случае если определено, что все приложения из упомянутого множества приложений установлены: - установка приложений завершается.

[0020] В варианте реализации второго аспекта настоящего изобретения устройство-установщик выполнено с возможностью осуществления способа по любому варианту реализации первого аспекта настоящего изобретения.

[0021] В третьем аспекте настоящего изобретения предложена система установки множества приложений, содержащая по меньшей мере одно устройство-установщик и одно или более пользовательских устройств, при этом при получении устройством-установщиком запроса на установку приложений от одного или более пользовательских устройств, устройство-установщик выполнено с возможностью осуществления способа по первому аспекту или по любому варианту реализации первого аспекта настоящего изобретения для установки на это одно или более пользовательских устройств приложений.

[0022] В четвертом аспекте настоящего изобретения предложен считываемый компьютером носитель, хранящий исполняемые компьютером инструкции, которые, при исполнении компьютером, побуждают компьютер к осуществлению способа установки множества приложений на пользовательское устройство по первому аспекту или по любому варианту реализации первого аспекта настоящего изобретения.

[0023] Другие аспекты настоящего изобретения и дополнительные варианты реализации настоящего изобретения в аспектах с первого по четвертый, а также другие связанные с настоящим изобретением детали будут понятны обычному специалисту в данной области при ознакомлении с нижеследующим подробным описанием и иллюстративными чертежами.

Краткое описание чертежей

[ФИГ. 1] Фиг. 1 представляет собой блок-схему последовательности операций способа установки множества приложений на пользовательское устройство согласно первому аспекту настоящего изобретения.

[ФИГ. 2] Фиг. 2 представляет собой упрощенное схематичное представление устройства-установщика согласно второму аспекту настоящего изобретения.

[ФИГ. 3] Фиг. 3 представляет собой упрощенное схематичное представление системы установки множества приложений согласно третьему аспекту настоящего изобретения.

Подробное описание вариантов осуществления

[0024] На Фиг. 1 показана блок-схема последовательности операций способа установки множества приложений на пользовательское устройство (UE) 200 согласно первому аспекту настоящего изобретения. Способ начинается с этапа S100, на котором устанавливают связь между пользовательским устройством 200 и устройством-установщиком 300. Связь между пользовательским устройством 200 и устройством-установщиком 300 может быть проводной или беспроводной. Неограничивающие примеры проводной связи между пользовательским устройством 200 и устройством-установщиком 300 могут включать в себя связь через Ethernet, универсальную последовательную шину (USB), интерфейс Thunderbolt, разъем Lighting и т.д. Неограничивающие примеры беспроводной связи между пользовательским устройством 200 и устройством-установщиком 300 могут включать в себя связь через Интернет с использованием протоколов TCP/IP, UDP, а также стандартов связи 4G/LTE, 5G, Wi-Fi (Wireless Fidelity), в том числе Wi-Fi Direct, Bluetooth и т.д.

[0025] Должно быть понятно, что приложения, которые включаются в упомянутое множество приложений, могут быть выбраны на пользовательском устройстве 200, а затем запрос на установку этих приложений может быть направлен пользовательским устройством 200 на устройство-установщик 300. В качестве неограничивающего примера указанный выбор может осуществляться пользователем пользовательского устройства 200 при начальной настройке пользовательского устройства или на любой другой стадии использования пользовательского устройства 200. В качестве еще одного неограничивающего примера указанный выбор представлять собой автоматический (в зависимости от модели и конфигурации пользовательского устройства 200) выбор подлежащих установке по умолчанию приложений, который может осуществляться при производстве пользовательского-устройства 200 или при его начальной настройке. В другом варианте осуществления, например, когда необходимо передать на устройство важные приложения, устройство-установщик 300 может передать на пользовательское устройство 200 запрос на принудительную установку, например в рамках запроса на установление на этапе S100 связи между пользовательским устройством 200 и устройством-установщиком 300, или как отдельный запрос. Такие важные приложения обычно включают в себя приложения пользовательского устройства, которые необходимо установить как можно скорее для обеспечения безопасности и/или безотказной работы пользовательского устройства 200. Предполагается, что используемый в данном раскрытии термин “приложение(я)” включает в себя обычное приложение(я), обновление приложения(й), а также, в некоторых контекстах, установочные файлы или распакованные файлы такого приложения(й) или обновления(й) приложения(й).

[0026] Затем способ переходит к выполнению этапа S105, на котором получают доступ к пользовательскому устройству 200 для передачи на пользовательское устройство 200 команд и данных, необходимых для установки упомянутого множества приложений на пользовательское устройство 200. Доступ к пользовательскому устройству 200 с операционной системой типа Android для передачи на это пользовательское устройство 200 команд и данных, в том числе для отладки, может быть реализован согласно неограничивающему варианту через Android Debug Bridge (ADB). Доступ к пользовательскому устройству 200 с операционной системой типа iOS для передачи на это пользовательское устройство 200 команд и данных, в том числе для отладки, может быть реализован согласно неограничивающим вариантам через интегрированную среду разработки Xcode, IDB или iDB.

[0027] В неограничивающем примере доступ к пользовательскому устройству 200 может обеспечиваться следующей примерной последовательностью команд: команда ‘adb start-server’ может быть передана для организации на устройстве-установщике 300 сервера, который будет взаимодействовать с пользовательским устройством 200, а точнее с системным процессом типа daemon операционной системы пользовательского устройства 200, который в данном случае выступает в качестве клиента; команда ‘adb devices’ может быть передана для просмотра (обнаружения) доступных пользовательских устройств 200, а затем может быть передана команда ‘adb connect <device_ip_address>’, где ‘<device_ip_address>’ это IP-адрес пользовательского устройства 200, доступ к которому требуется получить. Здесь и далее примеры команд приводятся для ADB, но должно быть понятно, что аналогичные по функциям команды для Xcode, IDB и iDB известны и могут быть применены без отступления от сути раскрытого здесь технического решения.

[0028] Фраза “передача команды” в данном раскрытии означает отправку команды на целевое устройство и ее исполнение на целевом устройстве. Отправка команды к пользовательскому устройству 200 может выполняться, например, но без ограничений, из командной строки, сценария, или последовательности исполняемых инструкций на устройстве-установщике 300 и/или пользовательском устройстве 200. В некоторых случаях исполнение на пользовательском устройстве 200 и/или устройстве-установщике 300 команды влечет за собой передачу по обратной связи соответственно на устройство-установщик 300 и/или пользовательское устройство 200 полученных в результате исполнения команды данных или других данных, например, статистики (истории), собранной перед исполнением команды, статистики, собираемой во время исполнения или после исполнения команды.

[0029] После получения на этапе S105 доступа к пользовательскому устройству 200 способ переходит на этап S110, на котором определяют, является ли текущее состояние пользовательского устройства 200 предопределенным состоянием пользовательского устройства 200. Результат определения на данном этапе S110 влияет на то, будут ли приложения устанавливаться по существу параллельно, либо последовательно. Переход на параллельную установку множества приложений на пользовательском устройстве 200 выполняется в случае если на этапе S110 определено, что текущее состояние пользовательского устройства 200 является упомянутым предопределенным (т.е. допустимым для параллельной установки приложений) состоянием (ветвь ‘ДА’ на этапе S110 на Фиг. 1). Экспериментальные данные, полученные авторами настоящего технического решения, подтвердили, что параллельная установка с передачей пакета установочных файлов множества приложений и последующей передачей соответствующего множества команд (или одной общей команды) на установку приложений упомянутого множества позволяет выполнить установку быстрее (т.е. снизить время ожидания до завершения установки всех приложений), чем если бы те же самые приложения упомянутого множества устанавливались бы на том же самом устройстве последовательно (т.е. по одному за раз). Возможность достижения такого технического преимущества предложенного в данной заявке способа можно объяснить по меньшей мере тем фактом, что в процессорах современных электронно-вычислительных устройств применяются многоядерные процессоры и операционные системы с поддержкой технологии многопоточности.

[0030] Тем не менее, бывают ситуации, когда параллельная установка приложений не является выполнимой, т.е. пользовательское устройство 200 не в состоянии принять, сохранить и/или распаковать сразу весь пакет установочных файлов множества приложений. Это происходит из-за, главным образом, недостатка ресурсов энергонезависимой и/или энергозависимой памяти. Попытка пользовательского устройства 200 принять, сохранить и/или распаковать сразу весь пакет установочных файлов множества приложений в этом случае может привести к ошибкам и некорректной работе пользовательского устройства 200 и/или устройства-установщика 300. Поэтому в предложенном способе установки множества приложений предложено переключаться на последовательную установку множества приложений в случае если на этапе S110 определено, что текущее состояние пользовательского устройства 200 не является упомянутым предопределенным состоянием (ветвь ‘НЕТ’ на этапе S110 на Фиг. 1).

[0031] Благодаря такому подходу ресурсы памяти и процессора как устройства-установщика 300, так и пользовательского устройства 200 при установке множества приложений на пользовательское устройство 200 могут быть использованы более эффективно. За счет параллельной установки приложений, может быть уменьшено время ожидания, так как не нужно ждать завершения установки одного приложения перед переходом к установке другого, а переключение на последовательную установку в случае недостатка ресурсов энергонезависимой и/или энергозависимой памяти позволяет избежать ошибок и некорректной работы устройства-установщика 300 и/или пользовательского устройства 200, и обеспечить корректную установку всех или по меньшей мере части приложений. Кроме того, в зависимости от ресурсов пользовательского устройства 200 и конкретных условий установки приложений, устройство-установщик 300 может переключать процесс установки приложений на пользовательском устройстве 200 между параллельной и последовательной установкой, обеспечивая оптимальное использование доступных ресурсов и максимально эффективный процесс установки. Таким образом, раскрытый способ установки также обладает гибкостью и позволяет устройству-установщику 300 адаптироваться к различным требованиям и условиям, обеспечивая наилучший результат в каждом конкретном случае.

[0032] В предпочтительном варианте осуществления текущее состояние пользовательского устройства 200 определяется на этапе S110 как предопределенное состояние в случае выполнения основного условия, при котором объем Mfree свободной энергонезависимой и/или энергозависимой памяти пользовательского устройства 200 не меньше объема Mtotal_required энергонезависимой и/или энергозависимой памяти, требуемого для сохранения и распаковки всего пакета установочных файлов упомянутого множества приложений. Понятно, что основное условие технически может быть сформулировано, без отступления от сути настоящего раскрытия, как обратное основное условие, при котором объем Mtotal_required энергонезависимой и/или энергозависимой памяти, требуемый для сохранения и распаковки всего пакета установочных файлов упомянутого множества приложений не больше объема Mfree свободной энергонезависимой и/или энергозависимой памяти пользовательского устройства 200.

[0033] В неограничивающем примере устройство-установщик 300 может обладать информацией, получаемой проводимой заранее оценкой, о примерном прогнозируемом объеме Mrequired энергонезависимой и/или энергозависимой памяти, требуемом для сохранения и распаковки установочного файла каждого приложения, хранящегося в памяти доступных для установки приложений устройства-установщика 300 и, тем самым, доступного для установки на пользовательское устройство 200, например в случае приема запроса на установку определенного приложения(ий) от пользовательского устройства 200. Проводимая заранее оценка может в неограничивающем примере включать в себя следующие операции, которые могут выполняться в выделенной и/или изолированной области памяти устройства-установщика 300: (1) предварительную проверку установочного файла (например, на наличие вирусов), (2) сохранение и (3) распаковку установочного файла каждого приложения для оценки места занимаемого в энергонезависимой памяти самим установочным файлом определенного приложения и распакованными файлами этого приложения, а также для оценки, непосредственно во время выполнения процессов (2) и (3) для определенного приложения, требуемого объема энергозависимой памяти, т.е. объема энергозависимой памяти, загружаемого такими процессами (2) и (3). Опционально, выделенная и/или изолированная область памяти устройства-установщика 300 может эмулировать работу и конфигурацию (в том числе, но без ограничения упомянутым, операционную систему, общий объем оперативной памяти, количество ядер и тактовую частоту процессора) определенного пользовательского устройства 200. В неограничивающих примерах для оценки объема энергозависимой памяти, требуемого для сохранения и распаковки установочного файла каждого приложения, во время сохранения и распаковки установочного файла этого приложения можно передать команду ‘adb shell dumpsys meminfo’ или ‘adb shell dumpsys procstats’ для получения информации об использовании памяти, в том числе в реальном времени, или применить инструмент для мониторинга и профилирования памяти, такой как, например, Android Profiler, Traceview, Instruments в среде разработки Xcode.

[0034] В качестве альтернативы, проводимая заранее оценка может выполняться на каждом из множества тестовых пользовательских устройств 200 определенных моделей и конфигураций, которые, как предполагается, могут впоследствии взаимодействовать с устройством-установщиком 300 для установки множества приложений. Результаты проводимой заранее оценки для множества доступных для установки приложений и множества конкретных моделей пользовательских устройств 200 могут сводиться в любой доступный для последующего использования формат, например, в массив или табличную форму, содержащие сведения о полученном оценкой примерном объеме энергонезависимой и/или энергозависимой памяти, требуемом для сохранения и распаковки установочного файла того или иного доступного для установки приложения на том или ином пользовательском устройстве 200. Общий объем Mtotal_required энергонезависимой и/или энергозависимой памяти, требуемый для сохранения и распаковки всего пакета установочных файлов множества приложений, может складываться из отдельных спрогнозированных объемов Mrequired требуемой памяти (полученных в результате проведенной заранее оценки, как описано выше) для сохранения и распаковки каждого приложения из пакета установочных файлов множества приложений.

[0035] Что касается упомянутого объема Mfree свободной памяти, в неограничивающих примерах: для получения информации об объеме свободной энергонезависимой памяти можно передать команду ‘adb shell df’, а для получения информации об объеме свободной энергозависимой памяти пользовательского устройства 200 можно передать команду ‘adb shell dumpsys meminfo’ или ‘adb shell dumpsys procstats’ или использовать аналогичный инструмент для мониторинга и профилирования памяти, которые, как описано выше, могут использоваться устройством-установщиком 300 при оценке объема Mrequired требуемой памяти.

[0036] Таким образом, в разных вариантах реализации раскрытого выше предпочтительного варианта осуществления способа выполнение любого из следующих основных условий может проверяться при определении, является ли текущее состояние пользовательского устройства 200 предопределенным состоянием пользовательского устройства 200:

[условие 1]: Mfree_ROM ≥ Mtotal_required_ROM

[условие 2]: Mfree_RAM ≥ Mtotal_required_RAM

[условие 3]: Mfree_ROM ≥ Mtotal_required_ROM и Mfree_RAM ≥ Mtotal_required_RAM

[0037] В дополнительном варианте осуществления раскрытого способа вместо получаемого оценкой объема Mtotal_required энергонезависимой и/или энергозависимой памяти, требуемого для сохранения и распаковки всего пакета установочных файлов множества приложений, сравнение на этапе S110 свободного на пользовательском устройстве 200 объема Mfree памяти может выполняться с определяемым эмпирическим путем и устанавливаемым заранее общим пороговым значением Mthres, указывающим минимальный объем свободной (Mthres_min_free) или максимальный объем занятой (Mthres_max_occupied) энергонезависимой и/или энергозависимой памяти (от общего объема Mfree соответственно энергонезависимой и/или энергозависимой памяти, доступного на пользовательском устройстве 200), при котором параллельная установка приложений (ветвь ‘ДА’ на этапе S110 на Фиг. 1) будет выполнима.

[0038] В качестве неограничивающего примера порогового значения Mthres_min_free, указывающего минимальный объем свободной энергонезависимой и/или энергозависимой памяти, пороговое значение Mthres_min_free может быть установлено равным, например, или 50%. В этом неограничивающем примере текущее состояние пользовательского устройства 200 будет определяться на этапе S110 в качестве предопределенного состояния в случае если объем Mfree свободной энергонезависимой и/или энергозависимой памяти пользовательского устройства составляет не меньше Mthres_min_free = или 50%. Конкретные значения или 50% не следует интерпретировать в качестве ограничения, поскольку в качестве порогового значения Mthres_min_free может быть установлено любое значение из диапазона от 0% до 100%.

[0039] В качестве неограничивающего примера порогового значения Mthres_max_occupied, указывающего максимальный объем занятой энергонезависимой и/или энергозависимой памяти, данное пороговое значение Mthres_max_occupied может быть установлено равным, например, или 50%. В этом неограничивающем примере текущее состояние пользовательского устройства 200 будет определяться на этапе S110 в качестве предопределенного состояния в случае если объем Moccupied занятой энергонезависимой и/или энергозависимой памяти пользовательского устройства составляет не больше Mthres_max_occupied = или 50%. Конкретные значения или 50% не следует интерпретировать в качестве ограничения, поскольку в качестве порогового значения Mthres_max_occupied может быть установлено любое значение из диапазона от 0% до 100%. Объем Moccupied занятой энергонезависимой и/или энергозависимой памяти пользовательского устройства может быть определен как Moccupied = Mtotal_available - Mfree, где Mtotal_available представляет собой общий объем памяти, который доступен в пользовательском устройстве 200. Значение Mtotal_available может быть получено с помощью передачи указанных выше команд ‘adb shell df’, ‘adb shell dumpsys meminfo’, ‘adb shell dumpsys procstats’.

[0040] Таким образом, в разных вариантах реализации раскрытого выше дополнительного варианта осуществления способа выполнение любого из следующих основных условий может проверяться при определении, является ли текущее состояние пользовательского устройства 200 предопределенным состоянием пользовательского устройства 200:

[условие 4]: Mfree_ROM ≥ Mthres_min_free_ROM

[условие 5]: Mfree_RAM ≥ Mthres_min_free_RAM

[условие 6]: Mfree_ROM ≥ Mthres_min_free_ROM и Mfree_RAM ≥ Mthres_min_free_RAM

[условие 7]: Moccupied_ROM ≤ Mthres_max_occupied_ROM

[условие 8]: Moccupied_RAM ≤ Mthres_max_occupied_RAM

[условие 9]: Moccupied_ROM ≤ Mthres_max_occupied_ROM и Moccupied_RAM ≤ Mthres_max_occupied_RAM

[0041] Способ согласно описанному выше дополнительному варианту осуществления является более легковесным, чем способ согласно предпочтительному варианту осуществления, поскольку в нем не требуется оценивать примерный объем Mrequired энергонезависимой и/или энергозависимой памяти, требуемый для сохранения и распаковки установочного файла каждого приложения из множества приложений, подлежащих установке на пользовательское устройство 200, и не требуется определять общий объем Mtotal_required энергонезависимой и/или энергозависимой памяти, требуемый для сохранения и распаковки всего пакета установочных файлов множества приложений.

[0042] В дополнительных вариантах осуществления раскрытого способа текущее состояние пользовательского устройства 200 может определяться как предопределенное состояние только в случае выполнения, наряду с любым из описанных выше основных условий с 1 по 9, одного или нескольких дополнительных условий, при которых:

[доп. условие a] уровень загрузки процессора пользовательского устройства 200 не превышает предопределенное пороговое значение уровня загрузки процессора пользовательского устройства 200; уровень загрузки процессора пользовательского устройства 200 может быть определен в одном неограничивающем примере с помощью команды ‘adb shell top’;

[доп. условие b] режимом работы пользовательского устройства 200 является режим ожидания; в одном неограничивающем примере нахождение пользовательского устройства 200 в режиме ожидания может определяться на основе статуса блокировки экрана пользовательского устройства 200, для этих целей в этом примере можно использовать команду ‘adb shell dumpsys power | grep mHoldingDisplaySuspendBlocker’, в случае если выводимым после исполнения указанной команды значением является ‘false’ (0), тогда может быть определено, что экран в данный момент выключен, т.е. пользовательское устройство 200 заблокировано и режимом его работы является режим ожидания, в противном случае (т.е. когда выводимым значением является ‘true’ (1)) тогда может быть определено, что экран в данный момент включен, т.е. пользовательское устройство 200 не заблокировано и режимом его работы является не режим ожидания;

[доп. условие c] в случае если пользовательское устройство 200 оборудовано аккумуляторной батареей, уровень зарядки аккумуляторной батареи не меньше предопределенного порогового значения уровня зарядки аккумуляторной батареи; в одном неограничивающем примере уровень зарядки аккумуляторной батареи может быть определен с помощью команды ‘adb shell dumpsys battery’;

[доп. условие d] версия операционной системы пользовательского устройства 200 является последней актуальной версией соответствующей операционной системы; в одном неограничивающем примере текущая версия операционной системы пользовательского устройства может быть определена с помощью команды ‘adb shell getprop ro.build.version.release’, после этого определенная текущая версия операционной системы пользовательского устройства 200 может сравниваться с известной последней актуальной версией соответствующей операционной системы;

[доп. условие e] пользовательское устройство 200 заряжается; в одном неограничивающем примере статус зарядки пользовательского устройства 200 может быть определен с помощью команды ‘adb shell dumpsys battery’, если пользовательское устройство 200 в данный момент заряжается такие свойства как ‘AC powered’ или ‘USB powered’ в выводе указанной команды будут иметь значение ‘true’ (1), в противном случае значением будет false (0).

[доп. условие f] - пользовательское устройство 200 подключено к Интернету через Wi-Fi; данная проверка может осуществляться чтобы при загрузке установочных файлов приложений и других данных с устройства-установщика 300 на пользовательское устройство 200 не занимать полосу пропускания сети мобильной связи и избежать расходования мобильного трафика пользовательского устройства 200; в одном неограничивающем примере статус подключения к сети Wi-Fi может быть определен с помощью команды ‘adb shell dumpsys connectivity’ или ‘adb shell dumpsys wifi’.

[0043] Таким образом, в дополнительных вариантах осуществления раскрытого способа текущее состояние пользовательского устройства 200 может определяться как предопределенное состояние на этапе S110 только если наряду с выполнением любого из описанных выше основных условий с 1 по 9 дополнительно выполняется одно или более из описанных выше дополнительных условий с a по f.

[0044] В случае если на основе проверки любой комбинации из описанных выше условий на этапе S110 определено, что текущее состояние пользовательского устройства 200 является упомянутым предопределенным состоянием выполняется параллельная установка приложений (ветвь ‘ДА’ на этапе S110 на Фиг. 1), в противном случае выполняется последовательная установка приложений (ветвь ‘НЕТ’ на этапе S110 на Фиг. 1). Сначала будет описан процесс параллельной установки приложений.

[0045] Для реализации параллельной установки приложений способ переходит на этап S115, на котором передают на пользовательское устройство 200 весь пакет установочных файлов множества приложений, подлежащих установке на пользовательское устройство 200. Под передачей именно пакета установочных файлов здесь в общем понимается одновременная передача всех установочных файлов, но не обязательно чтобы пакет имел какой-либо определенный формат или структуру. Тем не менее, возможны варианты реализации, при которых пакет передается как одна папка с установочными файлами или как архив с установочными файлами, который подлежит распаковке на пользовательском устройстве 200. В неограничивающем примере, в котором на этапе S115 на пользовательское устройство 200 будет передаваться множество установочных файлов.apk, например, но без какого-либо ограничения упомянутыми: ‘YandexBrowser.apk’, ‘YandexNavigator.apk’, ‘YandexGo.apk’, ‘YandexFood.apk’: множество команд, отправляемых и исполняемых для осуществления данного этапа S115, в рамках данного неограничивающего примера, может иметь следующую форму:

- adb push YandexBrowser.apk /path_in_UE/

- adb push YandexNavigator.apk /path_in_UE/

- adb push YandexGo.apk /path_in_UE/

- adb push YandexFood.apk /path_in_UE/

[0046] ‘/path_in_UE/’ представляет собой путь к определенной папке, хранимой в энергонезависимой памяти пользовательского устройства 200, в которую установочные файлы.apk будут копироваться. В неограничивающем примере, когда операционной системой пользовательского устройства 200 является операционная система типа Android, путь может указываться к папке Download: ‘/storage/emulated/0/Download/’.

[0047] В указанном выше примере используемых на этапе S115 команд предполагается, что файлы YandexBrowser.apk, YandexNavigator.apk, YandexGo.apk, YandexFood.apk хранятся в энергонезависимой памяти устройства-установщика 300 в одной папке с исполняемым файлом adb.exe, из которой они копируются на пользовательское устройство. Если это не так, т.е. если файлы YandexBrowser.apk, YandexNavigator.apk, YandexGo.apk, YandexFood.apk не хранятся в энергонезависимой памяти устройства-установщика 300 в одной папке с исполняемым файлом adb.exe, указанные выше команды могут быть модифицированы путем добавления в них указания папки, хранимой в энергонезависимой памяти устройства-установщика 300, из которой упомянутые установочные файлы должны в пользовательское устройство 200 копироваться. В этом случае указанные выше команды могут быть модифицированы указанием такой папки (‘/path_in_installer/’), например, следующим образом:

- adb push /path_in_installer/YandexBrowser.apk /path_in_UE/

- adb push /path_in_installer/YandexNavigator.apk /path_in_UE/

- adb push /path_in_installer/YandexGo.apk /path_in_UE/

- adb push /path_in_installer/YandexFood.apk /path_in_UE/

[0048] Установочным файлом приложения для операционной системы типа Android является, как указано выше, файл с расширением ‘.apk’ (от англ. Android Package Kit) - формат архивных исполняемых файлов-приложений для Android и ряда других операционных систем, основанных на Android. Каждое приложение Android компилируется и упаковывается в один файл, который включает в себя весь код приложения (.dex-файлы), ресурсы, активы (assets), файл манифеста AndroidManifest.xml и нативные библиотеки (jniLibs). В альтернативном варианте осуществления, в котором операционной системой пользовательского устройства 200 является операционная система типа iOS, установочным файлом может быть файл с расширением ‘.ipa’ (от англ. iOS App Store Package) - формат архивных файлов приложений от Apple. Каждый.ipa-файл представляет собой бинарный файл для ARM-архитектуры, который является сжатой в формате ZIP-папкой определённой структуры и содержащей исполняемый файл, файлы ресурсов, таких как видео, аудио и изображения и т. д. Таким образом, в зависимости от операционной системы, используемой на пользовательском устройстве 200, на этапе S115 на пользовательское устройство 200 может быть передано устройством-установщиком 300 множество установочных файлов с расширением.apk или множество установочных файлов с расширением.ipa.

[0049] После выполнения этапа S115 способ переходит на этап S120, на котором на пользовательское устройство 200 передают устройством-установщиком 300 множество команд на установку соответствующего множества приложений из ранее переданных и сохраненных на пользовательском устройстве 200 установочных файлов приложений. В варианте реализации передаваемые на данном этапе команды на установку приложений являются командами на установку приложений без контроля. Т.е. установочный файл приложения дополнительно операционной системой пользовательского устройства 200 не проверяется (т.к. такая проверка установочного файла может осуществляться, как указано выше, на устройстве-установщике 300 до его установки на пользовательском устройстве 200) и, опционально, пользовательское устройство 200 на основе переданной команды предоставляет права/разрешения на установку соответствующих установочных файлов, если такие права/разрешения требуются. В ранее упомянутом неограничивающем примере, в котором на этапе S115 на пользовательское устройство 200 в папку /path_in_UE/ было скопировано множество установочных файлов, т.е.: ‘YandexBrowser.apk’, ‘YandexNavigator.apk’, ‘YandexGo.apk’, ‘YandexFood.apk’: множество команд, отправляемых и исполняемых на данном этапе S120, может иметь следующую форму:

- adb shell pm install -r -i “com.android.vending” -r /path_in_UE/YandexBrowser.apk

- adb shell pm install -r -i “com.android.vending” -r /path_in_UE/YandexNavigator.apk

- adb shell pm install -r -i “com.android.vending” -r /path_in_UE/YandexGo.apk

- adb shell pm install -r -i “com.android.vending” -r /path_in_UE/YandexFood.apk

[0050] Следует подчеркнуть, что приводимые в данном описании конкретные команды и используемые в них дополнительные опции / параметры (например, ‘-r’, ‘-i’) не следует интерпретировать в качестве единственно возможных команд и опций / параметров для реализации конкретных этапов (например, этапов S115 и S120), поскольку после ознакомления с данным раскрытием специалисту станут ясны другие варианты реализации функций упомянутых этапов. В качестве примера в командах могут использоваться другие опции / параметры, которые явным образом не указаны, или команды могут передаваться без каких-либо дополнительных опций / параметров. Кроме того, могут использоваться другие команды, например, для реализации передачи установочного файла и его установки на пользовательском устройстве 200 может, в альтернативном варианте осуществления настоящего технического решения, использоваться команда ‘adb install’.

[0051] При параллельной установке множества приложений на пользовательское устройство 200 устройство-установщик 300 может инициировать осуществление дополнительных этапов, на которых собирают при установке приложений статистику, проверяют факт установки приложений и передают собранную статистику на устройство-установщик 300 в качестве обратной связи. Собираемая статистика может включать в себя, но без ограничения упомянутым, одно или более из: идентификатора пользовательского устройства 200, наименования и версии операционной системы пользовательского устройства 200, скорости установки приложений/приложения, информации об ошибках установки приложений/приложения, информации об ошибках системных процессов операционной системы, возникающих при установке приложений/приложения, и журнала показателей функционирования пользовательского устройства 200, регистрируемых при установке каждого приложения. На основании переданной статистики устройство-установщик 300 может, в качестве примера, определить, что одно или более приложений из установленного множества приложений следует переустановить/удалить/обновить/откатить, и инициировать переустановку/удаление/обновление/откат этих приложений, например, в соответствии со способом, раскрытым в данной заявке. Решение о необходимости переустановки/удаления/обновления/отката одного или более приложений может быть принято устройством-установщиком 300 на основе наличия в собранной и переданной по обратной связи статистике одной или нескольких ошибок, возникших при установке того или иного приложения, или по другим причинам (например из-за регистрируемого устройством-установщиком 300 и включаемого в статистику отклонения в нормальном функционировании пользовательского устройства 200 после установки или при установке того или иного приложения). Неограничивающие примеры команд, которые могут использоваться устройством-установщиком 300 для сбора такой статистики включают в себя: ‘adb devices’, ‘adb shell getprop’, ‘adb logcat’, ‘adb shell top’. После завершения параллельной установки множества приложений и, опционально, других дополнительных этапов (не показанных на фиг. 1), установка приложений завершается как показано на фиг. 1.

[0052] Далее будет описан процесс последовательной установки приложений, выполнение которого осуществляется последовательно для каждого приложения, подлежащего установке на пользовательское устройство 200. Переход на ветвь последовательной установки приложений выполняется того, когда в качестве результата проверки условия на этапе S110 получен результат ‘НЕТ’, т.е. когда определено, что текущее состояние пользовательского устройства 200 не является упомянутым предопределенным состоянием. Для реализации последовательной установки приложений способ переходит к выполнению этапов S125 и S130, на которых, для первого приложения из множества приложений, подлежащих установке, передают на пользовательское устройство 200 установочный файл этого приложения и передают на пользовательское устройство 200 команду на установку упомянутого приложения из переданного установочного файла. На данных этапах могут использоваться аналогичные команды для принудительной передачи (от англ. push) на пользовательское устройство 200 установочного файла.apk и его установки, которые указывались выше в качестве примерных (т.е. неограничивающих) команд при описании этапов S115 и S120 процесса параллельной установки приложений. Таким образом, в одном примере, в котором упомянутым первым приложениям является Яндекс Браузер на этапах S125 и S130 могут быть переданы следующие команды:

на этапе S125:

- adb push YandexBrowser.apk /path_in_UE/ или - adb push /path_in_installer/YandexBrowser.apk /path_in_UE/

на этапе S130:

- adb shell pm install -r -i “com.android.vending” -r /path_in_UE/YandexBrowser.apk

[0053] Тем не менее, как указано выше, в альтернативном варианте осуществления функции указанных этапов S125 и S130 могут быть реализованы одной командой на передачу установочного файла и его установку:

- adb install YandexBrowser.apk

[0054] В указанных выше командах могут применяться дополнительные опции / параметры: опция / параметр ‘-g’ для предоставления всех и разрешений, перечисленных в файле манифеста устанавливаемого приложения, опция / параметр ‘-fastdeploy’ для обновления приложения, т.е. если старая версия приложения уже на пользовательском устройстве 200 установлена, опция / параметр ‘-fastdeploy’ может применяться для установки только тех, частей приложения, которые в установочном файле.apk являются новыми или измененными. Могут использоваться и другие опции / параметры явным образом здесь не указанные.

[0055] После выполнения этапов S125 и S130 способ переходит к выполнению этапа S135, на котором определяют, все ли приложения из упомянутого множества приложений установлены. Реализация данной проверки может быть осуществлена любым способом. В неограничивающем примере реализации, чтобы узнать, установлено ли определенное приложение, например Яндекс Браузер, может быть использована команда ‘adb shell pm list packages [com.yandex.browser]’. По выводу, полученному в результате исполнения данной команды, может быть определено, установлено ли данное приложение или нет, если выводом является пустая строка, тогда может быть определено, что данное приложение (Яндекс Браузер в данном примере) на пользовательском устройстве 200 не установлено, в противном случае, т.е. когда имеется какой-либо иной вывод, например ‘package:[com.yandex.browser]’, может быть определено, что данное приложение на пользовательском устройстве 200 установлено. Данной командой можно проверить установку на пользовательском устройстве 200 каждого приложения из множества приложений, подлежащих установке на пользовательское устройство 200. Тем не менее не следует ограничивать реализацию данного этапа S135 указанной выше командой, поскольку возможны другие варианты реализации. В качестве примера, в альтернативном варианте реализации можно использовать счетчик, который увеличивается каждый раз, когда очередное приложение из множества приложений устанавливается последовательно до тех пор, пока значение этого счетчика не будет равно общему числу приложений в упомянутом множестве приложений (при условии, что изначально данный счетчик был инициализирован в значение ‘0’). Таким образом, в этом альтернативном варианте осуществления этапа S135 определение, все ли приложения из упомянутого множества приложений установлены, может быть осуществлено по меньшей мере на основе текущего значения данного счетчика и общего, известного числа приложений в упомянутом множестве приложений, которые следует установить.

[0056] В случае если определено на этапе S135, что не все приложения из упомянутого множества приложений установлены (ветвь ‘НЕТ’ на этапе S135 на Фиг. 1), способ переходит к этапам S140 и S145, на которых удаляют установочный файл установленного приложения после установки приложения и определяют, достаточен ли объем свободной энергонезависимой и/или энергозависимой памяти пользовательского устройства 200 для сохранения и распаковки установочного файла следующего приложения из упомянутого множества приложений. В неограничивающем примере для удаления приложения может быть передана команда ‘adb uninstall’, например команда ‘adb uninstall com.yandex.browser’, либо ее альтернативная реализация (через shell pm) ‘adb shell pm uninstall com.yandex.browser’, а для определения, достаточен ли объем свободной энергонезависимой и/или энергозависимой памяти пользовательского устройства 200 для сохранения и распаковки установочного файла следующего приложения из упомянутого множества приложений, можно использовать аналогичные подходы и команды, которые применялись на этапе S110.

[0057] В случае если на этапе S145 определено, что объем свободной энергонезависимой и/или энергозависимой памяти пользовательского устройства 200 достаточен, переходят к выполнению этапов, начиная с этапа S125, для следующего (второго) приложения из упомянутого множества приложений и т. д для каждого последующего приложения из множества приложений. Такая последовательная установка приложений выполняется до тех пор, пока не будут последовательно установлены все приложения из упомянутого множества приложений (ветвь ‘ДА’ на этапе S135 на Фиг. 1, в этом случае установка приложений завершается), либо пока не будет определено на этапе S145, что объем свободной энергонезависимой и/или энергозависимой памяти пользовательского устройства 200 не достаточен для сохранения и распаковки установочного файла следующего приложения из упомянутого множества приложений (ветвь ‘НЕТ’ на этапе S145 на Фиг. 1, в этом случае установка следующих приложений прекращается).

[0058] При последовательной установке множества приложений на пользовательское устройство 200 устройство-установщик 300 может инициировать при установке каждого приложения осуществление дополнительных этапов, на которых собирают при установке приложения статистику, проверяют факт установки приложения и передают собранную статистику на устройство-установщик 300 в качестве обратной связи. Собираемая статистика может включать в себя, но без ограничения упомянутым, одно или более из: идентификатора пользовательского устройства 200, наименования и версии операционной системы пользовательского устройства 200, скорости установки приложения, информации об ошибках установки приложения, информации об ошибках системных процессов операционной системы, возникающих при установке приложения, и журнала показателей функционирования пользовательского устройства 200, регистрируемых при установке данного приложения. Неограничивающие примеры команд, которые могут использоваться устройством-установщиком 300 для сбора такой статистики включают в себя: ‘adb devices’, ‘adb shell getprop’, ‘adb logcat’, ‘adb shell top’. На основании переданной статистики устройство-установщик 300 может, в качестве примера, определить, что данное приложение следует переустановить/удалить/обновить/откатить, и инициировать переустановку/удаление/обновление/откат данного приложения, например, в соответствии со способом, раскрытым в данной заявке. Решение о необходимости переустановки/удаления/обновления/отката приложения может быть принято устройством-установщиком 300 на основе наличия в собранной и переданной по обратной связи статистике одной или нескольких ошибок, возникших при установке данного приложения, или по другим причинам (например из-за регистрируемого устройством-установщиком 300 и включаемого в статистику отклонения в нормальном функционировании пользовательского устройства 200 после установки или при установке данного приложения).

[0059] В дополнительном варианте осуществления одна или более команд на установку одного или более приложений (например команд, используемых и передаваемых на этапах S120, S130 на фиг. 1) может быть командой на установку с настройкой устанавливаемого приложения. В качестве настройки в такую команду может быть добавлена инструкция на установку определенного параметра (или нескольких параметров) устанавливаемого приложения(-й) в любое предопределенное значение (или несколько соответствующих значений). Данная особенность позволяет сразу настраивать (т.е. по меньшей мере частично автоматизировать настройку, что может быть особо актуальным при массовой установке приложений на множество пользовательских устройств 200) устанавливаемое приложение при его установке. В качестве неограничивающих примеров такой команды можно привести следующие (альтернативные) команды на установку на пользовательское устройство 200 приложения Яндекс Браузер с одновременной установкой в нем домашней страницы на страницу “ya.ru”:

- adb shell pm install -r -i “com.android.vending” -r /path_in_UE/YandexBrowser.apk, set parameter = homepage ya.ru

- adb install YandexBrowser.apk, set parameter = homepage ya.ru

[0060] Должно быть понятно, что приложение не ограничено приложением Яндекс Браузер, параметр не ограничен домашней страницей, а значение параметра не ограничено значением “ya.ru”, поскольку любые предусмотренные разработчиком приложения параметры и настройки могут быть сконфигурированы таким образом. В других неограничивающих примерах с помощью такой команды на установку с настройкой могут быть настроены реферальные ссылки, учетные записи, рекламные материалы, любые элементы пользовательского интерфейса приложения и т.д.

[0061] В дополнительном варианте осуществления раскрытых технических решений вместо выполнения процесса последовательной установки приложений можно определить по меньшей мере часть приложений (минимум = одно приложение, максимум = число приложений в упомянутом множестве приложений минус одно приложение) упомянутого множества приложений в качестве блока приложений, который может быть сохранен и распакован на пользовательском устройстве 200 целиком (и параллельно), т.е. требуемый объем энергонезависимой и/или энергозависимой памяти для сохранения и распаковки этого блока приложений не превышает свободный объем энергонезависимой и/или энергозависимой памяти пользовательского устройства 200. Как только такой блок определен он может быть установлен на пользовательское устройство 200 согласно процессу параллельной установки (т.е. согласно по меньшей мере этапам S115 и S120 способа, показанного на фиг. 1), который был подробно раскрыт выше и здесь повторно не описывается. Данный дополнительный вариант осуществления раскрытых технических решений на фигурах не показан. Таким образом, в данном дополнительном варианте осуществления хоть и не все приложения из изначального множества приложений будут установлены на пользовательское устройство 200, но, тем не менее, максимальное число приложений (т.е. блок приложений), которые пользовательское устройство 200 в текущем состоянии способно вместить, будет установлено быстрее (т.е. с меньшим временем ожидания) благодаря параллельной установке приложений, чем если бы приложения упомянутого блока приложений устанавливались бы последовательно.

[0062] Таким образом, способ установки приложений на пользовательское устройство 200 согласно описанному выше дополнительному варианту осуществления может содержать этапы, на которых: - устанавливают (a) связь между пользовательским устройством 200 и устройством-установщиком 300; - получают (b) доступ к пользовательскому устройству 200 для передачи на пользовательское устройство 200 команд и данных, необходимых для установки упомянутого множества приложений на пользовательское устройство 200; - определяют (c), является ли текущее состояние пользовательского устройства 200 предопределенным состоянием пользовательского устройства 200, - в случае если определено, что текущее состояние пользовательского устройства 200 является упомянутым предопределенным состоянием: - передают (d) на пользовательское устройство 200 весь пакет установочных файлов упомянутого множества приложений, подлежащих установке на пользовательское устройство 200, и - передают (e) на пользовательское устройство 200 множество команд на установку упомянутого множества приложений; или - в случае если определено, что текущее состояние пользовательского устройства 200 не является упомянутым предопределенным состоянием: - определяют (f), на основе свободного на пользовательском устройстве 200 объема энергонезависимой и/или энергозависимой памяти, часть приложений из упомянутого множества приложений в качестве блока приложений, который может быть целиком сохранен и распакован на пользовательском устройстве 200; - передают (g) на пользовательское устройство 200 упомянутый блок приложений, подлежащих установке на пользовательское устройство 200, и - передают (h) на пользовательское устройство 200 множество команд на установку упомянутого блока приложений. Устройство-установщик 300 также может быть выполнено с возможностью осуществления такого способа установки приложений.

[0063] В раскрытом способе установку множества приложений на пользовательское устройство 200 можно выполнять при производстве пользовательского устройства 200 или при первичной настройке пользовательского устройства 200, или на любой последующей стадии использования пользовательского устройства 200. Устанавливаемыми приложениями могут быть приложения, устанавливаемые на пользовательское устройство 200 по умолчанию, или приложениями, выбираемые пользователем пользовательского устройства 200 для установки на пользовательское устройство 200, поскольку пользователь может пожелать, чтобы некоторые приложения на его пользовательское устройство 200 не устанавливались. В упомянутом способе ярлыки устанавливаемого множества приложений добавляются в меню приложений, которое может отображаться на экране пользовательского устройства 200.

[0064] На фиг. 2 представлено упрощенное схематичное представление устройства-установщика 300 согласно второму аспекту настоящего изобретения. Как показано на фиг. 2 устройство-установщик 300 содержит блок 300.1 связи, блок 300.2 отладки и блок 300.3 определения, связанные друг с другом функционально, т.е. с возможностью передачи сигналов и любых других данных. На фиг. 2 не показаны, с целью упрощения описания, другие возможные компоненты устройства-установщика (например память, устройства ввода/вывода, блок питания и т. д.), которые могут быть аналогичны компонентам традиционного компьютерного сервера, например сервера Dell™ PowerEdge™, работающего под управлением операционной системы Microsoft™ Windows Server™ или Linux. Устройство-установщик 300 выполнено с возможностью осуществления описанного со ссылкой на фиг. 1 способа установки приложений или любого его варианта реализации, поэтому далее устройство-установщик 300 будет описано без повторения подробностей одинаковых со способом признаков и особенностей.

[0065] В упомянутом устройстве-установщике 300 блок 300.1 связи выполнен с возможностью установки связи между пользовательским устройством 200 и устройством-установщиком 300, блок 300.2 отладки выполнен с возможностью получения доступа к пользовательскому устройству 200 для передачи на пользовательское устройство 200 команд и данных, необходимых для установки упомянутого множества приложений на пользовательское устройство 200. Кроме того, содержащийся в устройстве установщике блок 300.3 определения выполнен с возможностью определения, является ли текущее состояние пользовательского устройства 200 предопределенным состоянием пользовательского устройства 200, в случае если определено, что текущее состояние пользовательского устройства 200 является упомянутым предопределенным состоянием, блок 300.2 отладки выполнен с возможностью: передачи на пользовательское устройство 200 всего пакета установочных файлов упомянутого множества приложений, подлежащих установке на пользовательское устройство 200, и передачи на пользовательское устройство 200 множества команд на установку упомянутого множества приложений или одной общей команды на установку упомянутого множества приложений. В случае если определено, что текущее состояние пользовательского устройства 200 не является упомянутым предопределенным состоянием, для каждого приложения из множества приложений последовательно: блок 300.2 отладки выполнен с возможностью передачи на пользовательское устройство 200 установочного файла приложения, подлежащего установке на пользовательское устройство 200, и команды на установку упомянутого приложения из переданного установочного файла, и блок 300.3 определения выполнен с возможностью определения, все ли приложения из упомянутого множества приложений установлены. В случае если определено, что не все приложения из упомянутого множества приложений установлены: блок 300.2 отладки выполнен с возможностью удаления установочного файла установленного приложения после установки приложения, и блок 300.3 определения выполнен с возможностью определения, достаточен ли объем свободной энергонезависимой и/или энергозависимой памяти пользовательского устройства 200 для сохранения и распаковки установочного файла следующего приложения из упомянутого множества приложений. В случае если определено, что объем свободной энергонезависимой и/или энергозависимой памяти пользовательского устройства 200 достаточен: переходят к выполнению, для следующего приложения из упомянутого множества приложений, операций, которые выполняются блоком 300.2 отладки и блоком 300.3 определения после определения, что текущее состояние пользовательского устройства 200 не является упомянутым предопределенным состоянием. В случае если определено, что объем свободной энергонезависимой и/или энергозависимой памяти пользовательского устройства 200 не достаточен: установку следующих приложений прекращают. В случае если определено, что все приложения из упомянутого множества приложений установлены: установку приложений завершают.

[0066] На Фиг. 3 представлено упрощенное схематичное представление системы 400 установки множества приложений согласно третьему аспекту настоящего изобретения. На фиг. 3 показано только одно устройство-установщик 300 и только три пользовательских устройства 200. Понятно, что количество устройств 300, 200 в системе 400 может отличаться от показанного количества как в большую, так и в меньшую сторону. Любое устройство-установщик 300 может соответствовать устройству, описанному выше со ссылкой на фиг. 2. Любое пользовательское устройство, имеющееся в системе 400, может быть любым электронным устройством пользователя под управлением операционной системы типа Android или операционной системы типа iOS, или любой другой операционной системы (например UNIX), к которой применим раскрытый в данном описании способ. Неограничивающие примеры пользовательского устройства 200 включают в себя: компьютер, смартфон, умный электроприбор (например, телевизор или колонка), умные часы, AR/VR-гарнитуры и т.д.

[0067] В системе 400 выполнение способа установки приложений на одно или более пользовательских устройств 200 может инициироваться получением на устройстве-установщике 300 от упомянутого одного или более пользовательских устройств 200 запроса на установку приложений. В другом варианте осуществления в системе 400 выполнение способа установки приложений на одно или более пользовательских устройств 200 может инициироваться при выходе приложений, которые необходимо установить на пользовательское устройство 200 для обеспечения безопасности и/или безотказной работы пользовательского устройства 200, направлением устройством-установщиком 300 на пользовательское устройство 200 запроса на принудительную установку.

[0068] Различные репрезентативные реализации раскрытой технологии подробно описаны выше со ссылкой на прилагаемые чертежи. Однако настоящая технология может быть реализована во многих различных формах, и ее не следует рассматривать как ограниченную примерными реализациями, раскрытыми в данном документе. Приведенные в данном документе примеры и условные формулировки призваны главным образом помочь читателю понять принципы настоящей технологии, а не ограничить ее объем такими конкретно приведенными примерами и условиями. Должно быть понятно, что специалисты в данной области смогут разработать различные механизмы, которые, хоть и не описаны в данном документе явным образом, тем не менее воплощают принципы настоящей технологии и включаются в ее суть и объем. В качестве примера настоящее изобретение может использоваться как по меньшей мере часть магазина приложений для пользовательских устройств 200.

[0069] Кроме того, данное подробное описание может описывать реализации настоящей технологии в относительно упрощенном виде для целей упрощения понимания. Специалисты в данной области поймут, что различные реализации настоящей технологии могут иметь большую сложность. В некоторых случаях также могут быть изложены примеры модификаций настоящей технологии, которые считаются полезными. Это делается лишь для содействия понимаю и, опять же, не для строгого определения объема или очерчивания границ настоящей технологии. Эти модификации не являются исчерпывающим списком, и специалист в данной области сможет осуществить другие модификации, все еще оставаясь при этом в рамках объема настоящей технологии. Кроме того, случаи, когда примеры модификаций не приводятся, не следует толковать так, что никакие модификации не могут быть осуществлены и/или что описанное является единственным способом реализации такого элемента настоящей технологии.

[0070] Используемый здесь термин «и/или» включает в себя любые и все комбинации из одного или более связанных перечисленных элементов. Кроме того, должно быть понятно, что по меньшей мере в некоторых случаях номера этапов или блоков не ограничивают очередность выполнения соответствующих им функций. Используемая здесь терминология предназначена только для описания конкретных репрезентативных реализаций и не предназначена для ограничения настоящей технологии. Предполагается, что используемые здесь формы единственного числа включают в себя формы множественного числа, если контекст явно не указывает иное. Кроме того, будет понятно, что термины «содержит», «включает в себя» и/или «содержащий», «включающий в себя», когда они используются в этом описании, определяют наличие заявленных функций, этапов, операций, блоков, элементов и/или компонентов, но не исключают наличие или добавление одной или более других функций, этапов, операций, блоков, элементов, компонентов и/или их групп.

[0071] Настоящая технология может быть реализована как компьютерный программный продукт. Компьютерный программный продукт может включать в себя считываемый компьютером носитель данных (или носители), хранящий считываемые компьютером программные инструкции, которые при исполнении процессором побуждают процессор осуществлять аспекты раскрытой технологии. Считываемый компьютером носитель данных может быть, например, электронным запоминающим устройством, магнитным запоминающим устройством, оптическим запоминающим устройством, электромагнитным запоминающим устройством, полупроводниковым запоминающим устройством или любой их подходящей комбинацией. Неисчерпывающий список более конкретных примеров считываемого компьютером носителя данных включает в себя: портативный компьютерный диск, жесткий диск, оперативную память (RAM), постоянную память (ROM), флэш-память, оптический диск, карту памяти, дискету, носитель с механическим или визуальным кодированием (например, перфокарту или штрих-код) и/или их любую комбинацию. Считываемый компьютером носитель данных, используемый в данном документе, следует рассматривать как долговременный считываемый компьютером носитель. Его не следует рассматривать как переходной сигнал, такой как радиоволны или другие свободно распространяющиеся электромагнитные волны, электромагнитные волны, распространяющиеся по волноводу или другим средам передачи (например, световые импульсы, проходящие по оптоволоконному кабелю), или электрические сигналы, передаваемые по проводу.

[0072] Будет понятно, что считываемые компьютером программные инструкции могут быть загружены в соответствующие вычислительные или обрабатывающие устройства (например в пользовательское устройство 200 и/или устройство-установщик 300) со считываемого компьютером носителя данных или во внешний компьютер или внешнее запоминающее устройство через сеть, такую как Интернет, локальная сеть, глобальная сеть и/или беспроводная сеть. Сетевой интерфейс в вычислительном/обрабатывающем устройстве может принимать считываемые компьютером программные инструкции (и любые другие необходимые для реализации способа данные) через сеть и пересылать считываемые компьютером программные инструкции (и любые другие необходимые для реализации способа данные) для сохранения на считываемом компьютером носителе данных в соответствующем вычислительном или обрабатывающем устройстве.

[0073] Модификации и улучшения вышеописанных реализаций настоящей технологии могут стать очевидными для специалистов в данной области техники после ознакомления с настоящим раскрытием. Предшествующее описание предназначено для того, чтобы быть примерным, а не ограничивающим. Поэтому предполагается, что объем настоящей технологии ограничен лишь объемом прилагаемой формулы изобретения.

Похожие патенты RU2816293C1

название год авторы номер документа
СИСТЕМА И СПОСОБ АВТОМАТИЧЕСКОЙ ОБРАБОТКИ СИСТЕМНЫХ ОШИБОК ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 2012
  • Антух Александр Эдуардович
  • Маланов Алексей Владимирович
RU2521265C2
СПОСОБ И СИСТЕМА ОДНОВРЕМЕННОЙ УСТАНОВКИ МНОЖЕСТВА ПРИЛОЖЕНИЙ С ПОМОЩЬЮ ВОССТАНОВЛЕНИЯ ЛОЖНОГО РЕЗЕРВНОГО АРХИВА 2013
  • Филиппов Василий Борисович
  • Антонов Сергей Александрович
  • Каримов Ильдар Рафаэлевич
  • Шаров Виктор Валерьевич
RU2584447C2
СИСТЕМЫ И СПОСОБЫ ДЛЯ СБОРКИ ШАБЛОНОВ И НАРЕЗКИ И НАНЕСЕНИЯ ОКОННЫХ ПЛЕНОК И ПЛЕНОК ДЛЯ ЗАЩИТЫ ЛАКОКРАСОЧНОГО ПОКРЫТИЯ 2020
  • Фарроу, Джеймс Янси
  • Уилльямс, Кэтрин Делфин
  • Ривз, Аарон Лэсли
  • Дилл, Ричард Энтони
  • Рид, Даррелл Линн
  • Реймер, Билл
  • Херберли, Джейк
  • Вэндернут, Джеймс
  • Майкьюлек, Ник
  • Батлер, Джейсон
  • Гэндиллон, Беки
RU2822005C2
СИСТЕМА И СПОСОБ ДЛЯ ВЫБОРА РЕЖИМА ПРЕДСТАВЛЕНИЯ И УСТАНОВКИ ПАРАМЕТРОВ 2004
  • Бим Тайлер К.
  • Де Ворчик Дэвид Г.
  • Энтони Колин Р.
  • Камминс Чарльз
  • Сьерра Джампьеро М.
  • Таббс Кеннет М.
RU2347261C2
СПОСОБ ЗАДЕРЖКИ БЛОКИРОВКИ ФАЙЛОВ СЕРВЕРА ПРИ РЕДАКТИРОВАНИИ 2004
  • Эдельштайн Ноа
  • Лиу Хай
  • Салиба Хани
RU2344476C2
БЫСТРЫЙ ЗАПУСК КОМПЬЮТЕРА 2010
  • Ийигун Мехмет
  • Бэк Евгений
  • Уилсон Эмили Н.
  • Старк Кристен В.
  • Чжан Сушу
  • Стимен Патрик Л.
  • Кинг Брайан Е.
  • Карагоунис Василиос
  • Джейн Нил
RU2568280C2
СИСТЕМА И СПОСОБ ДЛЯ НАВИГАЦИИ ПО КОНТЕНТУ В ЭЛЕМЕНТЕ 2004
  • Стэбб Чарльз В.
  • Ши Джеральд П.
  • Дерш Джошуа Александер
  • Маркс Алан Л.
RU2359342C2
СПОСОБ И СИСТЕМА ОПРЕДЕЛЕНИЯ ГОВОРЯЩЕГО ПОЛЬЗОВАТЕЛЯ УПРАВЛЯЕМОГО ГОЛОСОМ УСТРОЙСТВА 2018
  • Карпухин Иван Александрович
RU2744063C1
ПОЭТАПНАЯ, ОБЛЕГЧЕННАЯ СИСТЕМА РЕЗЕРВНОГО КОПИРОВАНИЯ 2008
  • Депю Адам
  • Фицджералд Пол
RU2483349C2
ОПРЕДЕЛЯЕМЫЙ ПОМОЩНИК ПО ПРИЛОЖЕНИЯМ 2008
  • Сридхар С.
RU2461058C2

Иллюстрации к изобретению RU 2 816 293 C1

Реферат патента 2024 года СПОСОБ УСТАНОВКИ ПРИЛОЖЕНИЙ, УСТРОЙСТВО-УСТАНОВЩИК И СИСТЕМА, РЕАЛИЗУЮЩИЕ УПОМЯНУТЫЙ СПОСОБ

Настоящее техническое решение относится к области вычислительной техники. Технический результат заключается в сокращении времени ожидания и ресурсов вычислительных устройств при установке приложений. Технический результат достигается за счёт следующих этапов: определяют, является ли текущее состояние пользовательского устройства (ПУ) предопределенным, если является, то: передают на ПУ весь пакет установочных файлов приложений и множество команд на установку этих приложений, и если определено, что текущее состояние ПУ не является предопределенным состоянием, то для каждого приложения из множества приложений последовательно: передают (A) установочный файл и команду на установку этого приложения из установочного файла. Определяют, все ли приложения из множества приложений установлены, и если определено, что не все приложения установлены: удаляют установочный файл после установки приложения, и определяют, достаточен ли объем свободной памяти ПУ для сохранения и распаковки установочного файла следующего приложения, и если объем свободной памяти достаточен: переходят к выполнению этапов, начиная с этапа (A), для следующего приложения, если определено, что объем свободной памяти не достаточен, прекращают установку приложений. 4 н. и 18 з.п. ф-лы, 3 ил.

Формула изобретения RU 2 816 293 C1

1. Способ установки множества приложений на пользовательское устройство (200), содержащий этапы, на которых:

- устанавливают (S100) связь между пользовательским устройством (200) и устройством-установщиком (300);

- получают (S105) доступ к пользовательскому устройству (200) для передачи на пользовательское устройство (200) команд и данных, необходимых для установки упомянутого множества приложений на пользовательское устройство (200);

- определяют (S110), является ли текущее состояние пользовательского устройства (200) предопределенным состоянием пользовательского устройства (200),

-- в случае если определено, что текущее состояние пользовательского устройства (200) является упомянутым предопределенным состоянием:

--- передают (S115) на пользовательское устройство (200) весь пакет установочных файлов упомянутого множества приложений, подлежащих установке на пользовательское устройство (200), и

--- передают (S120) на пользовательское устройство (200) множество команд на установку упомянутого множества приложений; или

-- в случае если определено, что текущее состояние пользовательского устройства (200) не является упомянутым предопределенным состоянием, для каждого приложения из множества приложений последовательно:

--- передают (S125) на пользовательское устройство (200) установочный файл приложения, подлежащего установке на пользовательское устройство (200),

--- передают (S130) на пользовательское устройство (200) команду на установку упомянутого приложения из переданного установочного файла, и

--- определяют (S135), все ли приложения из упомянутого множества приложений установлены,

---- в случае если определено, что не все приложения из упомянутого множества приложений установлены:

----- удаляют (S140) установочный файл установленного приложения после установки приложения, и

----- определяют (S145), достаточен ли объем свободной энергонезависимой и/или энергозависимой памяти пользовательского устройства (200) для сохранения и распаковки установочного файла следующего приложения из упомянутого множества приложений,

------ в случае если определено, что объем свободной энергонезависимой и/или энергозависимой памяти пользовательского устройства (200) достаточен:

------- переходят к выполнению этапов, начиная с этапа (S125), для следующего приложения из упомянутого множества приложений;

------ в случае если определено, что объем свободной энергонезависимой и/или энергозависимой памяти пользовательского устройства (200) не достаточен:

------- установка следующих приложений прекращается;

---- в случае если определено, что все приложения из упомянутого множества приложений установлены:

----- установка приложений завершается.

2. Способ по п. 1, в котором связь между пользовательским устройством (200) и устройством-установщиком (300) является проводной или беспроводной.

3. Способ по п. 1, в котором текущее состояние пользовательского устройства (200) определяется как предопределенное состояние в случае выполнения основного условия, при котором объем свободной энергонезависимой и/или энергозависимой памяти пользовательского устройства (200) не меньше объема энергонезависимой и/или энергозависимой памяти, требуемого для сохранения и распаковки всего пакета установочных файлов упомянутого множества приложений.

4. Способ по п. 1, в котором текущее состояние пользовательского устройства (200) определяется как предопределенное состояние в случае выполнения основного условия, при котором объем свободной энергонезависимой и/или энергозависимой памяти пользовательского устройства (200) не меньше предопределенного порогового значения, указывающего минимальный объем свободной энергонезависимой и/или энергозависимой памяти от общего объема соответственно энергонезависимой и/или энергозависимой памяти, доступного на пользовательском устройстве 200.

5. Способ по п. 1, в котором текущее состояние пользовательского устройства (200) определяется как предопределенное состояние в случае выполнения основного условия, при котором объем свободной энергонезависимой и/или энергозависимой памяти пользовательского устройства (200) не больше предопределенного порогового значения, указывающего максимальный объем занятой энергонезависимой и/или энергозависимой памяти от общего объема соответственно энергонезависимой и/или энергозависимой памяти, доступного на пользовательском устройстве 200.

6. Способ по любому из пп. 3-5, в котором текущее состояние пользовательского устройства (200) определяется как предопределенное состояние в случае выполнения, наряду с основным условием, одного или нескольких дополнительных условий, при которых:

- уровень загрузки процессора пользовательского устройства (200) не превышает предопределенное пороговое значение уровня загрузки процессора пользовательского устройства (200);

- режимом работы пользовательского устройства (200) является режим ожидания;

- в случае если пользовательское устройство (200) оборудовано аккумуляторной батареей, уровень зарядки аккумуляторной батареи не меньше предопределенного порогового значения уровня зарядки аккумуляторной батареи;

- версия операционной системы пользовательского устройства (200) является последней актуальной версией соответствующей операционной системы;

- пользовательское устройство (200) заряжается;

- пользовательское устройство (200) подключено к Интернету через Wi-Fi.

7. Способ по п. 1, в котором команда на установку приложения является командой на установку приложения без контроля установочного файла приложения со стороны операционной системы пользовательского устройства (200).

8. Способ по п. 1, в котором команда на установку приложения является командой на установку с настройкой устанавливаемого приложения, причем в качестве настройки устанавливаемого приложения в данной команде выступает инструкция на установку определенного параметра устанавливаемого приложения в любое предопределенное значение.

9. Способ по п. 1, в котором установку множества приложений на пользовательское устройство (200) выполняют при производстве пользовательского устройства (200), или при первичной настройке пользовательского устройства (200), или на любой стадии использования пользовательского устройства (200).

10. Способ по п. 1, в котором устанавливаемые приложения являются приложениями, устанавливаемыми на пользовательское устройство (200) по умолчанию, или приложениями, выбираемыми пользователем пользовательского устройства (200) для установки на пользовательское устройство (200).

11. Способ по п. 1, в котором операционной системой пользовательского устройства (200) является операционная система типа Android или операционная система типа iOS.

12. Способ по п. 1, в котором доступ к пользовательскому устройству (200) для передачи на пользовательское устройство (200) команд и данных реализуют через Android Debug Bridge (ADB), интегрированную среду разработки Xcode, iOS Debug Bridge (IDB) или iOS Development Bridge (iDB).

13. Способ по п. 1, в котором доступ к пользовательскому устройству (200) получают на этапе получения (S105) доступа, обращаясь к системному процессу операционной системы пользовательского устройства (200), причем системным процессом является процесс типа daemon операционной системой пользовательского устройства (200).

14. Способ по п. 1, в котором ярлыки устанавливаемого множества приложений добавляются в меню приложений, отображаемое на экране пользовательского устройства (200).

15. Способ по п. 1, дополнительно содержащий этапы, на которых:

собирают при установке приложений/приложения статистику;

проверяют факт установки приложений/приложения и

передают собранную статистику на устройство-установщик (300) в качестве обратной связи.

16. Способ по п. 15, в котором собираемая статистика включает в себя одно или более из идентификатора пользовательского устройства (200), наименования и версии операционной системы пользовательского устройства (200), скорости установки приложений/приложения, информации об ошибках установки приложений/приложения, информации об ошибках системных процессов операционной системы, возникающих при установке приложений/приложения, и журнала показателей функционирования пользовательского устройства (200), регистрируемых при установке каждого приложения.

17. Устройство-установщик (300) для установки множества приложений на пользовательское устройство (200), содержащее:

- блок (300.1) связи, выполненный с возможностью установки связи между пользовательским устройством (200) и устройством-установщиком (300);

- блок (300.2) отладки, выполненный с возможностью получения доступа к пользовательскому устройству (200) для передачи на пользовательское устройство (200) команд и данных, необходимых для установки упомянутого множества приложений на пользовательское устройство (200);

- блок (300.3) определения, выполненный с возможностью определения, является ли текущее состояние пользовательского устройства (200) предопределенным состоянием пользовательского устройства (200),

-- в случае если определено, что текущее состояние пользовательского устройства (200) является упомянутым предопределенным состоянием, блок (300.2) отладки выполнен с возможностью:

--- передачи на пользовательское устройство (200) всего пакета установочных файлов упомянутого множества приложений, подлежащих установке на пользовательское устройство (200), и

--- передачи на пользовательское устройство (200) множества команд на установку упомянутого множества приложений или одной общей команды на установку упомянутого множества приложений; или

-- в случае если определено, что текущее состояние пользовательского устройства (200) не является упомянутым предопределенным состоянием, для каждого приложения из множества приложений последовательно:

--- блок (300.2) отладки выполнен с возможностью передачи на пользовательское устройство (200) установочного файла приложения, подлежащего установке на пользовательское устройство (200), и команды на установку упомянутого приложения из переданного установочного файла, и

--- блок (300.3) определения выполнен с возможностью определения, все ли приложения из упомянутого множества приложений установлены,

---- в случае если определено, что не все приложения из упомянутого множества приложений установлены:

----- блок (300.2) отладки выполнен с возможностью удаления установочного файла установленного приложения после установки приложения, и

----- блок (300.3) определения выполнен с возможностью определения, достаточен ли объем свободной энергонезависимой и/или энергозависимой памяти пользовательского устройства (200) для сохранения и распаковки установочного файла следующего приложения из упомянутого множества приложений,

------ в случае если определено, что объем свободной энергонезависимой и/или энергозависимой памяти пользовательского устройства (200) достаточен:

------- переходят к выполнению, для следующего приложения из упомянутого множества приложений, операций, которые выполняются блоком (300.2) отладки и блоком (300.3) определения после определения, что текущее состояние пользовательского устройства (200) не является упомянутым предопределенным состоянием;

------ в случае если определено, что объем свободной энергонезависимой и/или энергозависимой памяти пользовательского устройства (200) не достаточен:

------- установка следующих приложений прекращается;

---- в случае если определено, что все приложения из упомянутого множества приложений установлены:

----- установка приложений завершается.

18. Устройство-установщик (300) по п. 17, выполненное с возможностью осуществления способа по любому из пп. 2-16.

19. Система (400) установки множества приложений, содержащая по меньшей мере одно устройство-установщик (300) и одно или более пользовательских устройств (200), причем устройство-установщик (300) выполнено с возможностью осуществления способа установки приложений на это одно или более пользовательских устройств (200) по любому из пп. 1-16.

20. Система по п. 19, в которой выполнение способа установки приложений на одно или более пользовательских устройств (200) инициируется получением на устройстве-установщике (300) от упомянутого одного или более пользовательских устройств (200) запроса на установку приложений.

21. Система по п. 19, в которой выполнение способа установки приложений на одно или более пользовательских устройств (200) инициируется при выходе приложений, которые необходимо установить на пользовательское устройство (200) для обеспечения безопасности и/или безотказной работы пользовательского устройства (200), направлением устройством-установщиком (300) на пользовательское устройство (200) запроса на принудительную установку.

22. Считываемый компьютером носитель, хранящий исполняемые компьютером инструкции, которые, при исполнении компьютером, побуждают компьютер к осуществлению способа установки множества приложений на пользовательское устройство по любому из пп. 1-16.

Документы, цитированные в отчете о поиске Патент 2024 года RU2816293C1

Станок для придания концам круглых радиаторных трубок шестигранного сечения 1924
  • Гаркин В.А.
SU2019A1
СПОСОБ И СИСТЕМА ОДНОВРЕМЕННОЙ УСТАНОВКИ МНОЖЕСТВА ПРИЛОЖЕНИЙ С ПОМОЩЬЮ ВОССТАНОВЛЕНИЯ ЛОЖНОГО РЕЗЕРВНОГО АРХИВА 2013
  • Филиппов Василий Борисович
  • Антонов Сергей Александрович
  • Каримов Ильдар Рафаэлевич
  • Шаров Виктор Валерьевич
RU2584447C2
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами 1924
  • Ф.А. Клейн
SU2017A1
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами 1924
  • Ф.А. Клейн
SU2017A1
CN 110806929 A, 18.02.2020.

RU 2 816 293 C1

Авторы

Ейбоженко Дмитрий Анатольевич

Шаров Виктор Валерьевич

Антонов Сергей Александрович

Юрков Евгений Юрьевич

Пятлина Мария Павловна

Лавренюк Ольга Валерьевна

Никитин Виталий Владимирович

Буторин Антон Александрович

Даты

2024-03-28Публикация

2023-06-09Подача