устройство терминала, имеющее основанную на виртуальной машине (vm) структуру уровней для выполнения разнородных приложений

Классы МПК:G06F9/44 устройства для выполнения специальных программ
Автор(ы):, , ,
Патентообладатель(и):ИНФРАВЭАР ТЕКНОЛОДЖИ, ИНК. (KR)
Приоритеты:
подача заявки:
2009-12-11
публикация патента:

Изобретение относится к области выполнения приложений Android. Техническим результатом является оптимизация инфраструктуры Android для устройств младших моделей так, чтобы приложения Google Android могли выполняться на терминалах, которые не работают на платформе Android, но работают на других платформах. Раскрывается устройство терминала, имеющее основанную на виртуальной машине структуру уровней для выполнения разнородных приложений. Устройство терминала содержит модуль уровня приложений, включающий в себя первое приложение и второе приложение; модуль уровня платформы, соединенный с процессором терминала и сконфигурированный для работы с первого приложения; и модуль промежуточного программного обеспечения, сконфигурированный для соединения модуля уровня платформы и второго приложения. 2 н. и 6 з.п. ф-лы, 4 ил. устройство терминала, имеющее основанную на виртуальной машине   (vm) структуру уровней для выполнения разнородных приложений, патент № 2486579

устройство терминала, имеющее основанную на виртуальной машине   (vm) структуру уровней для выполнения разнородных приложений, патент № 2486579 устройство терминала, имеющее основанную на виртуальной машине   (vm) структуру уровней для выполнения разнородных приложений, патент № 2486579 устройство терминала, имеющее основанную на виртуальной машине   (vm) структуру уровней для выполнения разнородных приложений, патент № 2486579 устройство терминала, имеющее основанную на виртуальной машине   (vm) структуру уровней для выполнения разнородных приложений, патент № 2486579

Формула изобретения

1. Устройство терминала не-Android платформы для выполнения приложений Android, содержащее:

модуль уровня приложений, имеющий, по меньшей мере, одно приложение Android;

модуль уровня собственной платформы для не-Android платформы для работы с ресурсами аппаратных средств устройства терминала; и

модуль промежуточного программного обеспечения для соединения модуля уровня приложений и модуля уровня собственной платформы,

причем модуль промежуточного программного обеспечения содержит модуль уровня библиотеки классов, модуль уровня собственной библиотеки и модуль уровня переноса,

и в котором

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

модуль уровня переноса, сконфигурированный для соединения модуля уровня собственной библиотеки и модуля уровня собственной платформы, включает в себя модули управления аппаратными средствами, включающими в себя, по меньшей мере, одно из файловой системы, модуля распределения памяти, сетевого модуля, базовых библиотек, таймеров и модуля управления устройствами, причем модуль управления аппаратными средствами обеспечивает API стандарта Linux для управления аппаратными средствами устройства терминала с использованием кодов, зависящих от операционной системы (OS),

модуль уровня собственной библиотеки содержит виртуальную машину (VM) и собственную библиотеку, причем виртуальная машина использует ресурсы аппаратных средств посредством API стандарта Linux, обеспеченного посредством модуля уровня переноса, при выполнении приложений Android на основе библиотек классов и API JAVA, виртуальная машина сконфигурирована для выполнения приложений Android не посредством Linux, а посредством модуля уровня собственной платформы с использованием модуля потокового управления, модуля управления динамической библиотекой, интерфейса внешних функций, модуля синхронизации, модуля управления памятью, которые являются независимыми от платформы модулями, и при этом упомянутая собственная библиотека поддерживает реализацию библиотеки модуля инфраструктуры приложений.

2. Устройство терминала по п.1, в котором виртуальная машина работает с единственной задачей во взаимодействии с модулем уровня собственной платформы посредством модуля уровня переноса.

3. Устройство терминала по п.1, в котором модуль уровня собственной библиотеки содержит одну или более собственных библиотек, которые работают во взаимодействии с модулями управления аппаратными средствами модуля уровня переноса.

4. Устройство терминала по п.3, в котором модуль инфраструктуры приложений содержит один или более модулей служб для выполнения службы телефонии, службы, основанной на определении местоположения, сетевой службы Bluetooth, сетевой службы WiFi, службы USB и службы сенсора, и выполняет соответствующую службу в фоновом режиме в соответствии с выполнением приложения Android.

5. Машиночитаемый носитель записи для хранения программы для выполнения приложений Android на не-Android платформе, причем программа содержит:

модуль уровня приложений, имеющий, по меньшей мере, одно приложение Android;

модуль уровня собственной платформы для не-Android платформы, для работы с ресурсами аппаратных средств устройства терминала; и

модуль промежуточного программного обеспечения для соединения модуля уровня приложений и модуля уровня собственной платформы,

причем модуль промежуточного программного обеспечения содержит модуль уровня библиотеки классов, модуль уровня собственной библиотеки и модуль уровня переноса,

и в котором

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

модуль уровня переноса, сконфигурированный для соединения модуля уровня собственной библиотеки и модуля уровня собственной платформы, включает в себя модули управления аппаратными средствами, включающими в себя, по меньшей мере, одно из файловой системы, модуля выделения памяти, сетевого модуля, базовых библиотек, таймеров и модуля управления устройствами, причем модуль управления аппаратными средствами обеспечивает API стандарта Linux для управления аппаратными средствами устройства терминала с использованием кодов, зависящих от операционной системы (OS),

модуль уровня собственной библиотеки содержит VM (виртуальную машину) и собственную библиотеку, причем виртуальная машина использует ресурсы аппаратных средств посредством API стандарта Linux, обеспеченного посредством модуля уровня переноса при выполнении приложений Android на основе библиотек классов и API JAVA, причем виртуальная машина сконфигурирована для выполнения приложений Android не посредством Linux, а посредством модуля уровня собственной платформы с использованием модуля поточного управления, модуля управления динамическими библиотеками, интерфейса внешних функций, модуля синхронизации, модуля управления памятью, которые являются независимыми от платформы модулями, и при этом упомянутая собственная библиотека поддерживает реализацию библиотеки модуля инфраструктуры приложений.

6. Машиночитаемый носитель записи по п.5, в котором виртуальная машина работает с единственной задачей во взаимодействии с модулем уровня собственной платформы посредством модуля уровня переноса.

7. Машиночитаемый носитель записи по п.5, в котором модуль уровня собственной библиотеки содержит одну или более собственных библиотек, которые работают во взаимодействии с модулями управления аппаратными средствами модуля уровня переноса.

8. Машиночитаемый носитель записи по п.7, в котором модуль инфраструктуры приложений содержит один или более модулей служб для выполнения службы телефонии, службы, основанной на определении местоположения, сетевой службы Bluetooth, сетевой службы WiFi, службы USB и службы сенсора, и выполняет соответствующую службу в фоновом режиме в соответствии с выполнением приложения Android.

Описание изобретения к патенту

Перекрестная ссылка на связанные заявки

Настоящая заявка испрашивает приоритет на основании корейской заявки на патент № 10-2009-0121002, поданной 8 декабря 2009 года, которая полностью включена в состав настоящего документа посредством ссылки.

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

Область техники, к которой относится изобретение

Иллюстративные варианты осуществления настоящего изобретения относятся к устройству терминала, имеющему основанную на виртуальной машине (VM) структуру уровней для выполнения разнородных приложений и, более конкретно, к технологии терминалов, которая оптимизирует инфраструктуру Android для устройств младших моделей так, чтобы приложения Google Android могли выполняться на терминалах, которые не работают на платформе Android, но работают на других платформах, и включает в себя уровень переноса («портирования»), сконфигурированный для соединения платформы терминала с межплатформенным программным обеспечением и виртуальной машиной, обеспеченной посредством изменения конфигурации виртуальной машины Dalvik для выполнения ее в однозадачной среде.

Описание предшествующего уровня техники

Платформа «Google Android» является комплектом программного обеспечения, выпущенным ОНА (Open Headset Alliance) под руководством Google, и означает программный пакет, включающий в себя ядро Linux, виртуальную машину, инфраструктуру и приложения.

Платформа Google Android может применяться исключительно к смартфонам старших моделей, которые включают в себя устройство отображения большого размера с разрешением 800x480 WVGA (широкоформатным VGA) и обеспечивают сенсорный ввод.

Для выполнения приложения Google Android к терминалу должен применяться весь комплект программного обеспечения Android. Поскольку комплект программного обеспечения Android включает в себя ядро Linux и множество базовых служб, таких как system daemon, платформа Google Android подходит для смартфонов старших моделей.

Соответственно, приложения Android имеют ограничение в том смысле, что они должны выполняться исключительно в смартфонах старших моделей. Следовательно, приложения Android не могут выполняться в обычных мобильных телефонах, которые работают на других платформах.

Раскрытие изобретения

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

Другой вариант осуществления настоящего изобретения ориентирован на устройство терминала, имеющее основанную на виртуальной машине структуру уровней для выполнения разнородных приложений. Устройство терминала включает в себя: модуль уровня приложений, включающий в себя первое приложение и второе приложение; модуль уровня платформы, соединенный с процессором терминала, сконфигурированным для работы с первым приложением; и модуль промежуточного программного обеспечения, сконфигурированный для соединения модуля уровня платформы и второго приложения. Модуль промежуточного программного обеспечения включает в себя: модуль уровня библиотеки классов, включающий в себя модуль инфраструктуры приложений, имеющий библиотеку классов для выполнения второго приложения, и модуль базовой библиотеки классов, обеспечивающий API (прикладной программный интерфейс) JAVA; модуль уровня собственной библиотеки, включающий в себя виртуальную машину, сконфигурированную для работы со вторым приложением посредством библиотеки классов и API JAVA и собственной библиотеки, используемой для реализации библиотеки модуля инфраструктуры приложений; и модуль уровня переноса, сконфигурированный для соединения модуля уровня собственной библиотеки и модуля уровня платформы, и обеспечения функции управления аппаратными средствами терминала посредством модуля уровня платформы.

Первое приложение может включать в себя собственное приложение, второе приложение может включать в себя приложение Android, а виртуальная машина может включать в себя виртуальную машину Dalvik.

Виртуальная машина может работать с единственной задачей (т.е. работать в однозадачной среде) во взаимодействии с модулем уровня платформы посредством модуля уровня переноса.

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

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

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

Модуль инфраструктуры приложений может включать в себя один или несколько модулей служб для выполнения службы телефонии, службы, основанной на определении местоположения, сетевой службы Bluetooth, сетевой службы WiFi, службы USB и службы сенсора и выполняет соответствующую службу в фоновом режиме в соответствии с выполнением второго приложения.

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

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

Фиг.2 является блок-схемой, иллюстрирующей подробную конфигурацию модуля промежуточного программного обеспечения из Фиг.1.

Фиг.3 является расширенной блок-схемой, иллюстрирующей конфигурацию левой стороны модуля уровня библиотеки классов и модуля уровня собственной библиотеки из Фиг.2.

Фиг.4 является расширенной блок-схемой, иллюстрирующей конфигурацию правой стороны модуля уровня библиотеки классов и модуля уровня собственной библиотеки из Фиг.2.

Осуществление изобретения

Ниже будут более подробно описаны иллюстративные варианты осуществления настоящего изобретения со ссылкой на сопроводительные чертежи. Однако настоящее изобретение может быть реализовано в различных формах и не должно ограничиваться сформулированными в настоящем документе вариантами осуществления. Скорее эти варианты осуществления представлены, чтобы раскрытие изобретения было полным и законченным и полностью передавало специалистам в данной области техники объем настоящего изобретения.

Фиг.1 является блок-схемой, схематично иллюстрирующей полную конфигурацию устройства терминала 100, имеющего основанную на виртуальной машине структуру уровней для выполнения разнородных приложений в соответствии с вариантом осуществления настоящего изобретения.

Устройство терминала 100 включает в себя модуль 10 уровня приложений, модуль 20 промежуточного программного обеспечения, модуль 30 уровня платформы, процессор 40 терминала и аппаратные средства 50 терминала.

В целом, устройство терминала 100 относится к мобильному устройству, такому как мобильный телефон или MP3-плейер. Однако устройство терминала 100 может включать в себя обычные устройства терминалов, которые в зависимости от платформы осуществляют работу посредством процессора 40 терминала.

Во-первых, модуль 10 уровня приложений включает в себя первое приложение и второе приложение. В данном случае первое приложение обозначает собственное приложение, которое может выполняться непосредственно на платформе устройства терминала, а второе приложение обозначает дополнительное приложение, которое может выполняться посредством промежуточного программного обеспечения, включающего в себя уровень переноса («портирования») и виртуальную машину.

В случае мобильного терминала на платформе WISE (научная среда для сетевых запросов) компании LG собственные приложения, работающие на платформе WISE, соответствуют первому приложению, а приложения Google Android соответствуют второму приложению.

Модуль 30 уровня платформы соединен с процессором 40 терминала и сконфигурирован для работы с первым приложением.

Модуль 20 промежуточного программного обеспечения установлен между модулем 30 уровня платформы и модулем 10 уровня приложений и сконфигурирован для соединения второго приложения, обеспеченного в модуле 10 уровня приложений.

В то же время модуль 20 промежуточного программного обеспечения включает в себя не только виртуальную машину и библиотеку для выполнения второго приложения, но также включает в себя и уровень переноса для соединения модуля 20 промежуточного программного обеспечения с модулем 30 уровня платформы. Подробная структура модуля 20 промежуточного программного обеспечения будет описана со ссылкой на Фиг.2-4.

Процессор 40 терминала является центральным процессором (CPU). В случае мобильного терминала в качестве процессора 40 терминала может быть использован специализированный процессор для мобильных устройств, допускающий обработку множества мультимедийных данных и функций связи.

Аппаратные средства 50 терминала включают в себя блок вывода данных на экран, блок вывода звука и блок ввода пользователя, которые составляют устройство терминала.

Фиг.2 является блок-схемой, иллюстрирующей подробную конфигурацию модуля 20 промежуточного программного обеспечения из Фиг.1.

Модуль 20 промежуточного программного обеспечения может быть разделен на уровень 21 библиотеки классов, уровень 22 собственной библиотеки и уровень 23 переноса. В то же самое время соответствующие уровни становятся ближе к физическому уровню в направлении вниз. Самый нижний уровень 23 переноса расположен смежно с модулем 30 уровня платформы, а самый верхний уровень 21 библиотеки классов расположен смежно с модулем 10 уровня приложений.

Модуль 21 уровня библиотеки классов включает в себя модуль 21-2 инфраструктуры приложений, включающий в себя библиотеку классов, необходимую для выполнения второго приложения, и модуль 21-1 базовой библиотеки классов, обеспечивающий API (прикладной программный интерфейс) JAVA.

В обычном примере, модуль 21-2 инфраструктуры приложений используется посредством изменения или повторного использования модуля инфраструктуры приложений платформы Google Android. Модуль инфраструктуры приложений платформы Google Android включает в себя библиотеку классов и службы, необходимые для выполнения приложения Android. В то же самое время некоторые службы не являются необходимыми для совместимости с приложениями, и, следовательно, могут быть удалены для уменьшения «веса».

Кроме того, модуль 21-1 базовой библиотеки классов применяется посредством повторного использования базовой библиотеки, которая принадлежит среде выполнения Android на платформе Google Android. Базовая библиотека платформы Google Android включает в себя базовый API JAVA для программирования на JAVA.

Модуль 22 уровня собственной библиотеки включает в себя виртуальную машину 22-1, сконфигурированную для работы со вторым приложением, расположенным в модуле 10 уровня приложений, посредством библиотеки классов, обеспеченной в модуле 21-2 инфраструктуры приложений, и API JAVA, обеспеченного в модуле 21-1 базовой библиотеки классов. Кроме того, модуль 22 уровня собственной библиотеки включает в себя собственные библиотеки 22-2, которые должны представлять собой основу для реализации библиотек модуля 21-2 инфраструктуры приложений.

В обычном примере, виртуальная машина 22-1 применяется посредством изменения виртуальной машины Dalvik платформы Google Android. Таким образом, основанные на Linux модули удаляются из существующей виртуальной машины Dalvik, функции, которые не предоставляются посредством других платформ, добавляются и выполняется повторная конфигурация виртуальной машины Dalvik в структуре, которая должна выполняться даже в однозадачных средах.

Кроме того, собственные библиотеки 22-2 применяются посредством повторного использования библиотек, расположенных под уровнем инфраструктуры приложений Google Android. В то же самое время собственные библиотеки 22-2 используют программные средства с открытым исходным кодом. В случае необходимости, собственные библиотеки 22-2 могут быть изменены и перенесены («портированы»), а затем установлены в модуле 22 уровня собственной библиотеки.

Модуль 23 уровня переноса соединяет модуль 22 уровня собственной библиотеки с модулем 30 уровня платформы и обеспечивает функцию контроля аппаратных средств терминала посредством модуля 23 уровня платформы.

Таким образом, модуль 23 уровня переноса является уровнем, в котором работающие коды, зависимые от системы, организованы таким образом, чтобы легко перемещаться (т.е. «портироваться»), и включает в себя множество модулей управления аппаратными средствами, таких как файловая система, модуль выделения памяти, сетевой модуль, базовые библиотеки (stdio, stdlib, math и т.д.), таймеры, модули управления устройствами (устройством отображения, носителями информации, устройствами ввода, трехмерным изображением и т.д.) и другие утилиты (сервисные программы).

Модуль 23 уровня переноса сконфигурирован для получения доступа к соответствующим аппаратным средствам устройства терминала 100 посредством вышеописанных модулей управления аппаратными средствами и контроля и управления аппаратными средствами.

Например, модуль 23 уровня переноса включает в себя ядро (динамически подключаемую библиотеку (DLL), pthread и т.д.), систему (file, memory, socket, stdio, stdlib, string, math, time), устройство (framebuffer, media, input, 3D и т.д.) и сервисные программы (log, debug и т.д.).

Менеджер 60 первого приложения и менеджер 70 второго приложения обеспечивают множество функций управления загрузкой, автоматического обновления и стирания соответствующего приложения.

Фиг.3 является расширенной блок-схемой, иллюстрирующей конфигурацию левой стороны модуля 21 уровня библиотеки классов и модуля 22 уровня собственной библиотеки из Фиг.2.

Виртуальная машина 22-1 применяется посредством изменения виртуальной машины Dalvik. Виртуальная машина Dalvik является виртуальной машиной, обеспеченной посредством платформы Google Android и сконфигурированной таким образом, чтобы иметь концепцию, немного отличную от Виртуальной машины JAVA. Таким образом, виртуальная машина Dalvik может работать в среде с меньшим объемом памяти, чем виртуальная машина JAVA.

Виртуальная машина 22-1 включает в себя модуль потокового управления, модуль динамического управления, интерфейс внешних функций (FFI), модуль синхронизации, модуль управления памятью и так далее. Модуль потокового управления, сконфигурирован для управления потоками, такими как pthread, и модуль динамического управления сконфигурирован для управления динамическими библиотеками, такими, как совместно используемый объект и динамически подключаемая библиотека (DLL).

Вышеописанные модули, включенные в состав виртуальной машины 22-1, являются независимыми от платформы модулями, и виртуальная машина 22-1 может работать, взаимодействуя с модулем 30 уровня платформы посредством модуля 23 уровня переноса, не завися от платформы. Таким образом, виртуальная машина может избегать зависящих от Linux функций существующей платформы Android.

Кроме того, виртуальная машина 22-1 конфигурируется посредством изменения существующей виртуальной машины Dalvik для выполнения управления памятью в соответствии с терминальным устройством 100.

Кроме того, виртуальная машина 22-1 может работать в однозадачной среде посредством изменения существующей виртуальной машины Dalvik для управления виртуальной машиной 22-1 даже в терминальном устройстве 100, которое не поддерживает многозадачность, но работает с единственной задачей. Таким образом, виртуальная машина 22-1 работает с единственной задачей во взаимодействии с модулем 30 уровня платформы посредством модуля 23 уровня переноса.

Как было описано выше, оперативная библиотека 21-1 классов обеспечивает базовый API JAVA для программирования на JAVA.

Платформенно-ориентированные библиотеки 22-2 применяются в качестве основы для реализации библиотек верхнего уровня и могут быть перенесены («портированы») и обеспечены в соответствии с другими отличными от Linux платформам.

Фиг.4 является расширенной блок-схемой, иллюстрирующей конфигурацию правой стороны модуля 21 уровня библиотеки классов и модуля 22 уровня собственной библиотеки из Фиг.2.

Как показано на Фиг.4, модуль 22 уровня собственной библиотеки включает в себя множество собственных библиотек 22-2, которые работают во взаимодействии с модулями управления аппаратными средствами модуля 23 уровня переноса.

Модуль 21-2 инфраструктуры приложений может включать в себя множество модулей служб для выполнения службы телефонии, службы, основанной на определении местоположения, сетевой службы Bluetooth, сетевой службы WiFi, службы USB, службы сенсора и так далее. В то же самое время службы, обеспеченные посредством модулей служб, могут применяться в качестве серверов или daemon-процедур во всей системе. При выполнении второго приложения соответствующая служба выполняется в фоновом режиме.

В случае необходимости, соответствующие модули служб могут быть изменены, а ненужные модули служб могут быть удалены для уменьшения «веса».

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

Кроме того, поскольку объем платформы Android может быть уменьшен, приложения Android могут применяться в обычных мобильных телефонах младших моделей, а не в смартфонах старших моделей.

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

Класс G06F9/44 устройства для выполнения специальных программ

устройство обработки информации, система обработки информации, способ обработки информации и носитель информации -  патент 2525746 (20.08.2014)
устройство воспроизведения, способ воспроизведения, устройство записи, способ записи, программа и структура данных -  патент 2525482 (20.08.2014)
расширяемость для основывающейся на web визуализации диаграмм -  патент 2524855 (10.08.2014)
моделирующий коап -  патент 2516703 (20.05.2014)
устройство и способ предоставления информации, терминальное устройство и способ обработки информации, и программа -  патент 2515717 (20.05.2014)
способ и устройство для классификации контента -  патент 2509352 (10.03.2014)
конфигурируемое разделение для параллельных данных -  патент 2503997 (10.01.2014)
кэширование и предоставление данных перед отправкой, относящихся к отправителю или получателю сообщения электронной почты -  патент 2501074 (10.12.2013)
протокол коммутации смеси мультимедийных данных для управления мультимедийными данными -  патент 2501070 (10.12.2013)
синхронизация жизненных циклов виртуальной машины и приложения -  патент 2498394 (10.11.2013)
Наверх