Профили устройств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 создает ошибку.
|
|