Профили устройств

Adobe AIR 2 и более поздние версии

Профиль — это механизм определения классов компьютерных устройств, на которых работает приложение. В профиле задается набор API-интерфейсов и функций, которые обычно поддерживаются определенным классом устройств. Доступны следующие профили:

  • desktop

  • extendedDesktop

  • mobileDevice

  • extendedMobileDevice

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

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

В возможных случаях ограничения по профилям применяются при упаковке приложения. Например, если включен только профиль extendedDesktop, приложение невозможно упаковать в виде файла AIR. Можно создать только собственый файл установщика. Аналогичным образом, если профиль mobileDevice не включен, приложение не может быть упаковано в формате Android APK.

Одно компьютерное устройство может поддерживать несколько профилей. Например, среда AIR на настольных компьютерах поддерживает приложения с профилями desktop и extendedDesktop. Однако приложения с расширенным профилем настольного компьютера могут взаимодействовать с собственными процессами и ДОЛЖНЫ быть упакованы в собственном формате установщика (exe, dmg, deb или rpm). С другой стороны, приложение с профилем настольного компьютера не может взаимодействовать с собственными процессами. Приложение с профилем настольного компьютера можно упаковать в виде файла AIR или собственного файла установщика.

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

Для приложений AIR, использующих элемент supportedProfiles в дескрипторе приложения, можно назначить следующие профили.

Настольный компьютер
Профиль рабочего стола задает набор возможностей приложений AIR, устанавливаемых как файлы AIR на настольном компьютере. Эти приложения устанавливаются и выполняются на поддерживаемых платформах рабочих столов (ОС Mac OS, Windows и Linux). Приложения AIR, созданные в версиях, предшествующих AIR 2, имеют именно этот профиль. Некоторые API в этом профиле не работают. Например, настольные приложения не могут взаимодействовать с собственными процессами.

Расширенный профиль настольного компьютера
Профиль расширенного рабочего стола задает набор возможностей приложений AIR, упакованных и устанавливаемых с помощью собственной программы установки. Собственные программы установки представляют собой EXE-файлы в ОС Windows, DMG-файлы в ОС Mac OS и BIN-, DEB- или RPM-файлы в ОС Linux. Приложения с профилем расширенного настольного компьютера обладают дополнительными возможностями, которые недоступны в приложениях с профилем настольного компьютера. Дополнительные сведения см. в разделе « Упаковка собственного установщика для настольной системы ».

Профиль мобильного устройства
Профиль мобильного устройства определяет набор возможностей для приложений, устанавливаемых на мобильных устройствах, таких как сотовые телефоны и планшетные ПК. Эти приложения устанавливаются и работают на поддерживаемых мобильных платформах, включая Android, Blackberry Tablet OS и iOS.

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

Ограничение целевых профилей в файле дескриптора приложения

Начиная с версии AIR 2 в файле дескриптора приложения содержится элемент supportedProfiles , позволяющий ограничивать целевые профили. Например, установка следующего параметра указывает, что приложение можно откомпилировать и развернуть только для профиля настольного компьютера:
<supportedProfiles>desktop</supportedProfiles>

Если этот элемент настроен, приложение можно упаковать только в перечисленные профили. Значения элемента supportedProfiles.

  • desktop — профиль рабочего стола

  • extendedDesktop — профиль расширенного рабочего стола

  • mobileDevice — профиль мобильного устройства

Элемент supportedProfiles необязателен. Если этот элемент не включен в файл дескриптора приложения, его можно упаковать откомпилировать и развернуть для любого профиля.

Чтобы указать несколько профилей в элементе supportedProfiles , разделите их между собой пробелами, как это показано ниже:

<supportedProfiles>desktop extendedDesktop</supportedProfiles>

Возможности различных профилей

В следующей таблице представлен список классов и функций, которые поддерживаются не во всех профилях.

Класс или функция

desktop

extendedDesktop

mobileDevice

Акселерометр (Accelerometer.isSupported)

Нет

Нет

Проверка

Специальные возможности (Capabilities.hasAccessibility)

Да

Да

Нет

Акустическое эхоподавление (Microphone.getEnhancedMicrophone())

Да

Да

Нет

ActionScript 2

Да

Да

Нет

Матрица CacheAsBitmap

Нет

Нет

Да

Камера (Camera.isSupported)

Да

Да

Да

CameraRoll

Нет

Нет

Да

CameraUI (CameraUI.isSupported)

Нет

Нет

Да

Пакеты со связанными средами выполнения

Да

Да

Да

ContextMenu (ContextMenu.isSupported)

Да

Да

Нет

DatagramSocket (DatagramSocket.isSupported)

Да

Да

Да

DockIcon (NativeApplication.supportsDockIcon)

Проверка

Проверка

Нет

Drag-and-drop (NativeDragManager.isSupported)

Да

Да

Проверка

EncyptedLocalStore (EncyptedLocalStore.isSupported)

Да

Да

Да

Flash Access (DRMManager.isSupported)

Да

Да

Нет

GameInput (GameInput.isSupported)

Нет

Нет

Нет

Geolocation (Geolocation.isSupported)

Нет

Нет

Проверка

HTMLLoader (HTMLLoader.isSupported)

Да

Да

Нет

IME (IME.isSupported)

Да

Да

Проверка

LocalConnection (LocalConnection.isSupported)

Да

Да

Нет

Микрофон (Microphone.isSupported)

Да

Да

Проверка

Многоканальный звук (Capabilities.hasMultiChannelAudio())

Нет

Нет

Нет

Собственные расширения

Нет

Да

Да

NativeMenu (NativeMenu.isSupported)

Да

Да

Нет

NativeProcess (NativeProcess.isSupported)

Нет

Да

Нет

NativeWindow (NativeWindow.isSupported)

Да

Да

Нет

NetworkInfo (NetworkInfo.isSupported)

Да

Да

Проверка

Открытие файлов в приложении по умолчанию

Ограничения

Да

Нет

PrintJob (PrintJob.isSupported)

Да

Да

Нет

SecureSocket (SecureSocket.isSupported)

Да

Да

Проверка

ServerSocket (ServerSocket.isSupported)

Да

Да

Да

Шейдер

Да

Да

Ограничения

Stage3D (Stage.stage3Ds.length)

Да

Да

Да

Ориентация рабочей области (Stage.supportsOrientationChange)

Нет

Нет

Да

StageVideo

Нет

Нет

Проверка

StageWebView (StageWebView.isSupported)

Да

Да

Да

Запуск приложения при входе (NativeApplication.supportsStartAtLogin)

Да

Да

Нет

StorageVolumeInfo (StorageVolumeInfo.isSupported)

Да

Да

Нет

Режим бездействия системы

Нет

Нет

Да

SystemTrayIcon (NativeApplication.supportsSystemTrayIcon)

Проверка

Проверка

Нет

Ввод с помощью Text Layout Framework

Да

Да

Нет

Updater (Updater.isSupported)

Да

Нет

Нет

XMLSignatureValidator (XMLSignatureValidator.isSupported)

Да

Да

Нет

Обозначения, используемые в таблице:

  • Проверка — функция поддерживается на некоторых, но не на всех устройствах профиля. Во время выполнения необходимо проверить, поддерживается ли эта функция, прежде чем использовать ее.

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

  • Нет — функция не поддерживается в профиле.

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

Указание профилей при отладке с помощью ADL

ADL проверяет профили, указанные в элементе supportedProfiles файла дескриптора приложения. Если профили указаны, то при отладке ADL по умолчанию использует первый поддерживаемый профиль.

Можно указать профиль в сеансе отладки ADL с помощью аргумента командной строки -profile . (См. раздел « AIR Debug Launcher (ADL) ».) Этот аргумент можно использовать независимо от того, указан ли профиль в элементе supportedProfiles в файле дескриптора приложения. Однако, если используется элемент supportedProfiles , указанный в нем профиль должен совпадать с профилем, указанным в командной строке. В противном случае ADL создает ошибку.