デバイスプロファイル

Adobe AIR 2 以降

プロファイルは、アプリケーションが動作するコンピューティングデバイスのクラスを定義するメカニズムです。プロファイルでは、特定のデバイスのクラスで通常サポートされる API と機能のセットを定義します。次のプロファイルを使用できます。

  • desktop

  • extendedDesktop

  • mobileDevice

  • extendedMobileDevice

アプリケーション記述子でアプリケーションのプロファイルを定義できます。対象となるプロファイル内のコンピューターとデバイスのユーザーは、アプリケーションをインストールできます。他のコンピューターやデバイスのユーザーはインストールできません。例えば、アプリケーション記述子にデスクトッププロファイルのみを含めると、ユーザーはデスクトップコンピューターでのみアプリケーションをインストールおよび実行できます。

実際にはアプリケーションがサポートしていないプロファイルを含めると、そのような環境ではユーザーの操作感が低下します。アプリケーション記述子にプロファイルを一切指定しない場合、AIR ではアプリケーションは制限されません。サポートされるフォーマットでアプリケーションをパッケージ化できます。また、プロファイルのデバイスを使用するユーザーは、アプリケーションをインストールできますが、実行時に適切に動作しない場合があります。

可能であれば、アプリケーションをパッケージ化するときにプロファイルを制限することをお勧めします。例えば、extendedDesktop プロファイルのみを含める場合、アプリケーションを AIR ファイルとしてはパッケージ化できません。ネイティブインストーラーとしてのみパッケージ化できます。同様に、mobileDevice プロファイルを含めない場合、アプリケーションを Android APK としてパッケージ化できません。

単一のコンピューティングデバイスで、複数のプロファイルをサポートできます。例えば、デスクトップコンピューターの AIR は、デスクトップおよび extendedDesktop プロファイル両方のアプリケーションをサポートします。ただし、拡張デスクトッププロファイルアプリケーションは、ネイティブプロセスと通信できます。また、ネイティブインストーラー(exe、dmg、deb、または rpm)としてパッケージ化する必要があります。一方、デスクトッププロファイルアプリケーションはネイティブプロセスと通信できません。デスクトッププロファイルアプリケーションは AIR ファイルまたはネイティブインストーラーとしてパッケージ化できます。

プロファイルに機能を含めることは、プロファイルの定義の対象となるデバイスのクラスで、その機能のサポートが一般的であることを示します。ただし、プロファイルのすべてのデバイスがすべての機能をサポートするという意味ではありません。例えば、(すべてではなく)ほとんどの携帯電話には加速度センサーが含まれています。通常、ユニバーサルサポートがないクラスおよび機能には、機能を使用する前にチェックできるブールプロパティがあります。例えば加速度センサーの場合、静的プロパティ Accelerometer.isSupported を使用して、現在のデバイスにサポートされる加速度センサーがあるかどうかを判断します。

アプリケーション記述子で supportedProfiles エレメントを使用して AIR アプリケーションに割り当てることができるプロファイルは次のとおりです。

デスクトップ
デスクトッププロファイルは、AIR ファイルとしてデスクトップコンピューターにインストールされた AIR アプリケーションの機能のセットを定義します。これらのアプリケーションは、サポートされているデスクトッププラットフォーム(Mac OS、Windows および Linux)にインストールされ、そのプラットフォームで実行されます。AIR 2 より前のバージョンの AIR で開発された AIR アプリケーションは、デスクトッププロファイルと見なすことができます。API の中にはこのプロファイルでは機能しないものがあります。例えば、デスクトップアプリケーションは、ネイティブプロセスとは通信できません。

拡張デスクトップ
拡張デスクトッププロファイルは、ネイティブインストーラーにパッケージ化され、ネイティブインストーラーによってインストールされる AIR アプリケーションの機能のセットを定義します。これらのネイティブインストーラーは、Windows では EXE ファイル、Mac OS では DMG ファイル、Linux では BIN、DEB または RPM ファイルです。拡張デスクトップアプリケーションは、デスクトッププロファイルアプリケーションでは使用できない追加の機能を備えています。詳しくは、デスクトップネイティブインストーラーのパッケージ化を参照してください。

モバイルデバイス
モバイルデバイスのプロファイルは、携帯電話やタブレットなどのモバイルデバイス上にインストールされるアプリケーションの機能のセットを定義します。これらの合うプリケーションは、Android、Blackberry Tablet OS および iOS などのサポート対象のモバイルプラットフォームにインストールされて実行されます。

拡張モバイルデバイス
拡張モバイルデバイスプロファイルは、モバイルデバイスにインストールされるアプリケーションの機能の拡張セットを定義します。現時点では、このプロファイルをサポートするデバイスはありません。

アプリケーション記述ファイルでのターゲットプロファイルの制限

AIR 2 以降では、アプリケーション記述ファイルには supportedProfiles エレメントが含まれています。このエレメントにより、ターゲットプロファイルを制限できます。例えば、次の設定は、そのアプリケーションをデスクトッププロファイルでのみ提供できることを指定します。
<supportedProfiles>desktop</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)

チェック

チェック

不可

ドラッグ&ドロップ(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.isSupported)

不可

不可

XMLSignatureValidator(XMLSignatureValidator.isSupported)

不可

表の各エントリは次の意味を表します。

  • チェック - 機能はプロファイルの一部のデバイスではサポートされますが、すべてのデバイスではサポートされません。機能を使用する前に、ランタイムを調べ、機能がサポートされているかどうかを確認してください。

  • 制限付き - 機能はサポートされますが、重要な制限があります。詳しくは、関連するドキュメントを参照してください。

  • 不可 - 機能はプロファイルでサポートされません。

  • - 機能はプロファイルでサポートされます。個々のコンピューティングデバイスによっては、機能に必要となるハードウェアを搭載していない可能性があります。例えば、カメラを搭載していない電話もあります。

ADL を使用したデバッグ時のプロファイルの指定

ADL では、アプリケーション記述ファイルにある supportedProfiles エレメントでサポート対象のプロファイルが指定されているかどうかが確認されます。指定した場合、デフォルトでは、プロファイルとして最初に示されているサポート対象のプロファイルがデバッグ時に使用されます。

ADL デバッグセッション用にプロファイルを指定するには、-profile コマンドライン引数を使用します(AIR Debug Launcher(ADL)を参照してください)。この引数は、アプリケーション記述ファイルにある supportedProfiles エレメントでプロファイルを指定するかどうかに関係なく使用できます。ただし、supportedProfiles エレメントを指定する場合は、指定するプロファイルがコマンドラインに含まれていなければなりません。含まれていない場合、ADL でエラーが生成されます。