デバイスプロファイル
Adobe AIR 2 以降
プロファイルは、アプリケーションが動作するコンピューティングデバイスのクラスを定義するメカニズムです。プロファイルでは、特定のデバイスのクラスで通常サポートされる API と機能のセットを定義します。次のプロファイルを使用できます。
desktop
extendedDesktop
mobileDevice
extendedMobileDevice
tv
extendedTV
アプリケーション記述子でアプリケーションのプロファイルを定義できます。対象となるプロファイル内のコンピューターとデバイスのユーザーは、アプリケーションをインストールできます。他のコンピューターやデバイスのユーザーはインストールできません。例えば、アプリケーション記述子にデスクトッププロファイルのみを含めると、ユーザーはデスクトップコンピューターでのみアプリケーションをインストールおよび実行できます。
実際にはアプリケーションがサポートしていないプロファイルを含めると、そのような環境ではユーザーの操作感が低下します。アプリケーション記述子にプロファイルを一切指定しない場合、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 ファイルです。拡張デスクトップアプリケーションは、デスクトッププロファイルアプリケーションでは使用できない追加の機能を備えています。詳しくは、デスクトップネイティブインストーラーのパッケージ化を参照してください。
- モバイルデバイス
- モバイルデバイスプロファイルは、モバイルデバイスにインストールされるアプリケーションの機能のセットを定義します。ActionScript 3.0 および AIR API を使用すると、Android、iPhone、iPod touch、および iPad 用のアプリケーションを作成できます。現在のところは、これらのデバイスのみがモバイルデバイスプロファイルアプリケーションをサポートします。
- 拡張モバイルデバイス
- 拡張モバイルデバイスプロファイルは、サブセットモバイルデバイスにインストールされるアプリケーションの機能のセットを定義します。このモバイルデバイスのサブセットでは、モバイルデバイスプロファイルで定義された機能に加えて、HTMLLoader クラスを使用できます。現時点では、このプロファイルをサポートするデバイスはありません。
- テレビ
- テレビプロファイルは、テレビの機能のセットを定義します。また、テレビプロファイルには、テレビをプライマリディスプレイとして使用するデバイス(Blu-ray ディスクプレーヤー、デジタルビデオレコーダー、セットトップボックスなど)が含まれます。このプロファイルのアプリケーションは、ActionScript 拡張を使用できません。
- 拡張テレビ
- 拡張テレビプロファイルは、テレビプロファイルと同じ種類のデバイスを対象としますが、ActionScript 拡張などの追加機能が含まれます。
アプリケーション記述ファイルでのターゲットプロファイルの制限
AIR 2 以降では、アプリケーション記述ファイルには
supportedProfiles エレメントが含まれています。このエレメントにより、ターゲットプロファイルを制限できます。例えば、次の設定は、そのアプリケーションをデスクトッププロファイルでのみ提供できることを指定します。
<supportedProfiles>desktop</supportedProfiles>
このエレメントが設定されている場合、アプリケーションは、リストするプロファイルだけにパッケージ化できます。次の値を使用します。
supportedProfiles エレメントはオプションです。このエレメントをアプリケーション記述ファイルに含めない場合、そのアプリケーションは、どのプロファイル用にでもパッケージ化およびデプロイできます。
supportedProfiles エレメントで複数のプロファイルを指定するには、次のように、各プロファイルを空白文字で区切ります。
<supportedProfiles>desktop extendedDesktop</supportedProfiles>
様々なプロファイルの機能
次の表に、プロファイルによってサポートの有無があるクラスと機能の一覧を示します。
クラスまたは機能
|
desktop
|
extendedDesktop
|
mobileDevice
|
tv
|
extendedTV
|
Accelerometer(Accelerometer.isSupported)
|
不可
|
不可
|
チェック
|
不可
|
不可
|
Accessibility(Capabilities.hasAccessibility)
|
可
|
可
|
不可
|
不可
|
不可
|
ActionScript 2
|
可
|
可
|
不可
|
可
|
可
|
CacheAsBitmap マトリクス
|
不可
|
不可
|
可
|
可
|
可
|
Camera(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 アクセス(DRMManager.isSupported)
|
可
|
可
|
不可
|
可
|
可
|
Geolocation(Geolocation.isSupported)
|
不可
|
不可
|
チェック
|
不可
|
不可
|
HTMLLoader(HTMLLoader.isSupported)
|
可
|
可
|
不可
|
不可
|
不可
|
IME(IME.isSupported)
|
可
|
可
|
チェック
|
不可
|
不可
|
LocalConnection(LocalConnection.isSupported)
|
可
|
可
|
不可
|
可
|
可
|
Microphone(Microphone.isSupported)
|
可
|
可
|
チェック
|
不可
|
不可
|
NativeMenu(NativeMenu.isSupported)
|
可
|
可
|
不可
|
不可
|
不可
|
NativeProcess(NativeProcess.isSupported)
|
不可
|
可
|
不可
|
不可
|
不可
|
NativeWindow(NativeWindow.isSupported)
|
可
|
可
|
不可
|
不可
|
不可
|
NetworkInfo(NetworkInfo.isSupported)
|
可
|
可
|
チェック
|
可
|
可
|
デフォルトアプリケーションでファイルを開く
|
制限付き
|
可
|
不可
|
不可
|
不可
|
PrintJob(PrintJob.isSupported)
|
可
|
可
|
不可
|
不可
|
不可
|
SecureSocket(SecureSocket.isSupported)
|
可
|
可
|
不可
|
チェック
|
チェック
|
ServerSocket(ServerSocket.isSupported)
|
可
|
可
|
不可
|
不可
|
不可
|
Shader
|
可
|
可
|
制限付き
|
不可
|
不可
|
ステージの向き(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 でエラーが生成されます。