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

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

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

  • desktop

  • extendedDesktop

  • mobileDevice

  • extendedMobileDevice

  • tv

  • extendedTV

Профили для приложения можно определить в дескрипторе приложения. Пользователи смогут установить приложение на свои компьютеры и устройства, если их профили включены в дескриптор. В противном случае они не смогут установить приложение. Например, если в дескриптор приложения включен только профиль 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, iPhone, iPod touch и iPad можно использовать ActionScript 3.0 и различные API-интерфейсы AIR. В настоящее время приложения с профилем мобильного устройства поддерживаются только этими устройствами.

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

ТВ-устройство
Профиль ТВ-устройства задает набор возможностей для телевизионных устройств. Данный профиль также включает устройства, которые в качестве основного монитора используют телевизор, например Blu-ray плееры, цифровые видеомагнитофоны и телевизионные приставки. Приложения с таким профилем не могут использовать расширения ActionScript.

Расширенное ТВ-устройство
Профили расширенных ТВ-устройств определяют такие же типы устройств, как и профиль ТВ-устройств, включая при этом дополнительные функции, например расширения ActionScript.

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

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

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

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

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

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

  • tv — профиль телевизионного устройства

  • extendedTV — профиль расширенного телевизионного устройства

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

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

<supportedProfiles>desktop extendedDesktop</supportedProfiles>

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

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

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

desktop

extendedDesktop

mobileDevice

tv

extendedTV

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

Нет

Нет

Проверка

Нет

Нет

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

Да

Да

Нет

Нет

Нет

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)

Да

Да

Нет

Нет

Нет

ExtensionContext

Нет

Нет

Нет

Нет

Да

Flash Access (DRMManager.isSupported)

Да

Да

Нет

Да

Да

Geolocation (Geolocation.isSupported)

Нет

Нет

Проверка

Нет

Нет

HTMLLoader (HTMLLoader.isSupported)

Да

Да

Нет

Нет

Нет

IME (IME.isSupported)

Да

Да

Проверка

Нет

Нет

LocalConnection (LocalConnection.isSupported)

Да

Да

Нет

Да

Да

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

Да

Да

Проверка

Нет

Нет

NativeMenu (NativeMenu.isSupported)

Да

Да

Нет

Нет

Нет

NativeProcess (NativeProcess.isSupported)

Нет

Да

Нет

Нет

Нет

NativeWindow (NativeWindow.isSupported)

Да

Да

Нет

Нет

Нет

NetworkInfo (NetworkInfo.isSupported)

Да

Да

Проверка

Да

Да

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

Ограничения

Да

Нет

Нет

Нет

PrintJob (PrintJob.isSupported)

Да

Да

Нет

Нет

Нет

SecureSocket (SecureSocket.isSupported)

Да

Да

Нет

Проверка

Проверка

ServerSocket (ServerSocket.isSupported)

Да

Да

Нет

Нет

Нет

Шейдер

Да

Да

Ограничения

Нет

Нет

Ориентация рабочей области (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 создает ошибку.