拡張記述ファイルは、ネイティブ拡張パッケージのコンテンツについて記述するものです。
拡張記述ファイルの例
以下に示した拡張記述ドキュメントの例では、次のものに対応するネイティブ拡張が記述されています。
<extension xmlns="http://ns.adobe.com/air/extension/3.1">
<id>com.example.MyExtension</id>
<versionNumber>0.0.1</versionNumber>
<platforms>
<platform name="Android-ARM">
<applicationDeployment>
<nativeLibrary>MyExtension.jar</nativeLibrary>
<initializer>com.sample.ext.MyExtension</initializer>
</applicationDeployment>
<platform name="default">
<applicationDeployment/>
</platform>
</platforms>
</extension>
ネイティブ拡張記述エレメント
以下のエレメントの辞書では、AIR アプリケーション記述ファイルの有効なエレメントについて説明します。
applicationDeployment
拡張パッケージ内に含まれ、その結果アプリケーションと共にデプロイされる、ネイティブコードライブラリを宣言します。
platform
エレメントごとに、
applicationDeployment
エレメントまたは
deviceDeployment
エレメントのいずれかを含める必要があります。ただし、両方は含めないでください。
親エレメント:
platform
コンテンツ
ネイティブコードライブラリ、初期化関数およびファイナライズ処理関数を指定します。プラットフォーム名が
default
の場合、
applicationDeployment
エレメントには子エレメントはありません。これは、
default
プラットフォームにネイティブコードライブラリがないからです。
例
<applicationDeployment>
<nativeLibrary>myExtension.so</nativeLibrary>
<initializer>com.example.extension.Initializer</initializer>
<finalizer>com.example.extension.Finalizer</finalizer>
</applicationDeployment>
copyright
拡張の著作権に関する宣言。
親エレメント:
extension
子エレメント:
なし
例
<copyright>© 2010, Examples, Inc. All rights reserved.</copyright>
description
拡張の記述。
親エレメント:
extension
子エレメント:
text
コンテンツ
単純なテキストノードか、複数の
text
エレメントを使用します。
複数の
text
エレメントを使用すると、
description
エレメントで複数の言語を指定できます。各テキストエレメントの
xml:lang
属性は、
RFC4646
(http://www.ietf.org/rfc/rfc4646.txt)に定義された言語コードを指定します。
例
単純な text ノードを使用する記述:
<description>This is a sample native extension for Adobe AIR.</description>
英語、フランス語およびスペイン語でローカライズされた text エレメントを使用する記述:
<description>
<text xml:lang="en">This is a example.</text>
<text xml:lang="fr">C'est un exemple.</text>
<text xml:lang="es">Esto es un ejemplo.</text>
</description>
deviceDeployment
コードライブラリがデバイス上に個別にデプロイされ、この拡張パッケージには含まれないネイティブ拡張を宣言します。
デバイスのデプロイは一部のプラットフォームではサポートされていません。
platform
エレメントごとに、
applicationDeployment
エレメントまたは
deviceDeployment
エレメントのいずれかを含める必要があります。ただし、両方は含めないでください。
親エレメント:
platform
子エレメント:
なし
コンテンツ
なし。
deviceDeployment
エレメントは空である必要があります。
extension
拡張記述ドキュメントのルートエレメント。
親エレメント:
なし
コンテンツ
サポートされるプラットフォームと、プラットフォームごとのコードライブラリを指定します。
extension
エレメントには、
xmlns
という名前空間属性が含まれています。
xmlns
値には、次の値のいずれか 1 つを指定できます。
xmlns="http://ns.adobe.com/air/extension/3.1"
xmlns="http://ns.adobe.com/air/extension/2.5"
SWF のバージョン同様、名前空間は、AIR SDK と ANE ファイル間の互換性を決定する要素の 1 つです。AIR アプリケーションは、拡張の名前空間と同じかそれ以降のバージョンの AIR SDK でパッケージ化される必要があります。そのため、AIR 3 アプリケーションは、2.5 の名前空間の拡張を使用できますが、3.1 の名前空間の拡張を使用することはできません。
例
<extension xmlns="http://ns.adobe.com/air/extension/2.5">
<id>com.example.MyExtension</id>
<versionNumber>1.0.1</versionNumber>
<platforms>
<platform name="Polyphonic-MIPS">
<deviceDeployment/>
</platform>
<platform name="NeoTech-ARM">
<deviceDeployment/>
</platform>
<platform name="Philsung-x86">
<deviceDeployment/>
</platform>
<platform name="default">
<applicationDeployment/>
</platform>
</platforms>
</extension>
finalizer
ネイティブライブラリで定義されたファイナライズ処理関数。
親エレメント:
applicationDeployment
子エレメント:
なし
コンテンツ
拡張のネイティブライブラリで C API が使用されている場合のファイナライザー関数の名前。
拡張で Java API を使用している場合、このエレメントには、FREExtension インターフェイスを実装するクラスの名前が含まれます。
値に含めることができる文字は、A - Z、a - z、0 - 9、ピリオド(.)およびハイフン(-)です。
例
<finalizer>...</finalizer>
id
拡張の ID。
親エレメント:
extension
子エレメント:
なし
コンテンツ
拡張の ID を指定します。
値に含めることができる文字は、A - Z、a - z、0 - 9、ピリオド(.)およびハイフン(-)です。
例
<id>com.example.MyExtension</id>
initializer
ネイティブライブラリで定義された初期化関数。
nativeLibrary
エレメントが使用されている場合は、initializer エレメントは必須です。
親エレメント:
applicationDeployment
子エレメント:
なし
コンテンツ
拡張のネイティブライブラリで C API が使用されている場合の初期化関数の名前。
拡張で Java API を使用している場合、このエレメントには、FREExtension インターフェイスを実装するクラスの名前が含まれます。
値に含めることができる文字は、A - Z、a - z、0 - 9、ピリオド(.)およびハイフン(-)です。
例
<initializer>...</initializer>
name
拡張の名前。
親エレメント:
extension
子エレメント:
text
コンテンツ
1 つのテキストノードを指定した場合(複数の
<text>
エレメントを指定しない場合)、システム言語に関係なく、この名前が AIR アプリケーションインストーラーで使用されます。
各テキストエレメントの
xml:lang
属性は、
RFC4646
(http://www.ietf.org/rfc/rfc4646.txt)に定義された言語コードを指定します。
例
次に、簡単な text ノードを使用して名前を定義する例を示します。
<name>Test Extension</name>
次の例では <text> エレメントノードを使用して、3 つの言語(英語、フランス語およびスペイン語)で名前を指定します。
<name>
<text xml:lang="en">Hello AIR</text>
<text xml:lang="fr">Bonjour AIR</text>
<text xml:lang="es">Hola AIR</text>
</name>
nativeLibrary
あるプラットフォーム向けの拡張パッケージに含まれるネイティブライブラリファイル。以下を考慮してください。
-
拡張に含まれるのが ActionScript コードのみの場合は、
nativeLibrary
エレメントは必須ではありません。
-
nativeLibrary
エレメントが使用されない場合は、
initializer
エレメントと
finalizer
エレメントも使用できません。
-
nativeLibrary
エレメントが使用されている場合は、
initializer
エレメントも必要です。
親エレメント:
applicationDeployment
子エレメント:
なし
コンテンツ
拡張パッケージに含まれるネイティブライブラリのファイル名。
値に含めることができる文字は、A - Z、a - z、0 - 9、ピリオド(.)およびハイフン(-)です。
例
<nativeLibrary>extensioncode.so</nativeLibrary>
platform
特定のプラットフォームの拡張向けネイティブコードライブラリを指定します。
親エレメント:
platforms
コンテンツ
name
属性ではプラットフォームの名前を指定します。特別な
default
プラットフォーム名を使用することで、拡張の開発者は、サポート対象外のプラットフォームでのネイティブコードの動作をシミュレートする ActionScript ライブラリを含めることができます。シミュレートされた動作は、デバッグをサポートし、複数プラットフォーム対応アプリケーションのフォールバック動作を提供するために使用できます。
name
属性には次の値を使用します。
-
Android-ARM
(Android デバイスの場合)
-
default
-
iPhone-ARM
(iOS デバイスの場合)
-
iPhone-x86
(iOS シミュレーターの場合)
-
MacOS-x86-64
(Mac OS X デバイスの場合)
-
QNX-ARM
(Blackberry Tablet OS デバイスの場合)
-
Windows-x86
(Windows デバイスの場合)
注意:
デバイスバンドル拡張では、デバイス製造元が定義している
name
属性値を使用します。
子エレメントでは、ネイティブコードライブラリのデプロイ方法を指定します。アプリケーションデプロイは、コードライブラリが、それを使用する各 AIR アプリケーションと共にデプロイされることを意味します。コードライブラリは拡張パッケージに含める必要があります。デバイスデプロイは、コードライブラリがプラットフォームに個別にデプロイされ、拡張パッケージに含まれないことを意味します。この 2 つのデプロイタイプは相互に排他的です。つまり、デプロイエレメントは 1 つしか含めることができません。
例
<platform name="Philsung-x86">
<deviceDeployment/>
</platform>
<platform name="default">
<applicationDeployment/>
</platform>
platforms
この拡張でサポートされるプラットフォームを指定します。
親エレメント:
extension
子エレメント:
platform
コンテンツ
サポートされるプラットフォームごとに
platform
エレメントを指定します。オプションで、特定のコードライブラリでサポートされていないプラットフォーム上で使用する ActionScript 実装を含める、特別な「default」プラットフォームを指定できます。
例
<platforms>
<platform name="Android-ARM">
<applicationDeployment>
<nativeLibrary>MyExtension.jar</nativeLibrary>
<initializer>com.sample.ext.MyExtension</initializer>
<finalizer>com.sample.ext.MyExtension</finalizer>
</applicationDeployment>
</platform>
<platform name="iPhone-ARM">
<applicationDeployment>
<nativeLibrary>MyExtension.a</nativeLibrary>
<initializer>InitMyExtension></initializer>
</applicationDeployment>
<platform name="Philsung-x86">
<deviceDeployment/>
</platform>
<platform name="default">
<applicationDeployment/>
</platform>
</platforms>
text
ローカライズされたストリングを指定します。
テキストエレメントの
xml:lang
属性は、
RFC4646
(http://www.ietf.org/rfc/rfc4646.txt)に定義された言語コードを指定します。
AIR では、オペレーティングシステムのユーザーインターフェイス言語に最も近い
xml:lang
属性値を持つ
text
エレ ントが使用されます。
例えば、
text
エレメントに en(英語)ロケール の値が含まれているインストールを行うとします。オペレーティングシステムのユーザーインターフェイス言語が en(英語)になっている場合は、AIR で名前 en が使用されます。システムのユーザーインターフェイス言語が en-US(アメリカ英語)の場合にも名前 en が使用されます。ただし、ユーザーインターフェイス言語が en-US で、アプリケーション記述ファイルに en-US と en-GB の両方が定義されている場合は、AIR アプリケーションインストーラーで en-US が使用されます。
システムのユーザーインターフェイス言語に一致する
text
エレメントがアプリケーションに定義されていない場合、AIR では拡張記述ファイルに定義された最初の
name
の値が使用されます。
子エレメント:
なし
コンテンツ
ロケールとローカライズされたテキストのストリングを示す
xml:lang
属性。
例
<text xml:lang="fr">Bonjour AIR</text>
versionNumber
拡張のバージョン番号。
親エレメント:
extension
子エレメント:
なし
コンテンツ
バージョン番号には、3 個以下の連結した整数をピリオドで区切って含めることができます。各整数には、0 以上 999 以下の数を指定する必要があります。
例
<versionNumber>1.0.657</versionNumber>
<versionNumber>10</versionNumber>
<versionNumber>0.01</versionNumber>
|
|
|