扩展描述符文件描述本机扩展包的内容。
扩展描述符示例
以下扩展描述符文档描述以下各项的本机扩展:
-
Android 设备
-
其他平台的
默认
ActionScript 实现
<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)。
示例
使用简单文本节点的说明:
<description>This is a sample native extension for Adobe AIR.</description>
对英语、法语和西班牙语使用本地化文本元素的描述:
<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
值设置为以下值之一:
xmlns="http://ns.adobe.com/air/extension/3.1"
xmlns="http://ns.adobe.com/air/extension/2.5"
命名空间是决定程序兼容性的一个因素,它与 SWF 版本一起决定 AIR SDK 和 ANE 文件之间的兼容性。打包 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
内容
如果指定单个文本节点(而非多个
<text>
元素),则无论系统语言为哪种语言,AIR 应用程序安装程序都将使用此名称。
每个文本元素的
xml:lang
属性用于指定语言代码,有关具体定义,请参阅
RFC4646
(http://www.ietf.org/rfc/rfc4646.txt)。
示例
以下示例使用简单文本节点定义名称。
<name>Test Extension</name>
以下示例使用 <text> 元素节点指定三种语言(英语、法语和西班牙语)的名称:
<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 Simulator。
-
MacOS-x86-64
,对于 Mac OS X 设备。
-
QNX-ARM
,对于 Blackberry Tablet OS 设备。
-
Windows-x86
,对于 Windows 设备。
注:
设备绑定扩展使用设备制造商定义的
name
属性值。
子元素指定本机代码库的部署方式。应用程序部署是指代码库随使用它的每个 AIR 应用程序一起部署。代码库必须包含在扩展包中。设备部署是指将代码库单独部署到平台,而不包含在扩展包中。这两种部署类型相互排斥;只能包括一个部署元素。
示例
<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
子元素:
无
内容
版本号可以包含按时期分隔的三个整数组成的序列。每个整数必须是介于 0 到 999(两者都包括)之间的数字。
示例
<versionNumber>1.0.657</versionNumber>
<versionNumber>10</versionNumber>
<versionNumber>0.01</versionNumber>
|
|
|