Профиль — это механизм определения классов компьютерных устройств, на которых работает приложение. В профиле задается набор 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 создает ошибку.
|
|
|