23.2.理解AIR命令行工具

23.2.1.问题
我想使用Flex 3 SDK中的命令行工具部署,调式和打包AIR程序。
23.2.2.解决办法
使用/bin目录下的amxmlc, adl,和adt工具。
23.2.3.讨论
Flex 3 SDK包含的命令行工具涉及编译,运行和打包等等。如果要编译一个AIR程序,可使用amxmlc工具并加上文件名路径作为参数,文件可以是HTML,ActionScript,或者MXML。

本章的例子重点讲解利用Flex Framework来开发AIR程序,因此文件类型一般为.mxml格式。

Adl工具被用来在开发期间运行测试AIR程序,而adt工具则是用于打包AIR程序为安装文件。

Amxmlc工具用于生成AIR程序主SWF文件,这和mxmlc命令行有些相似。事实上amxmlc命令是调用mxmlc命令并指示编译器使用/frameworks目录下的air-config.xml配置文件,所有mxmlc命令行参数都可用,比如指定默认或额外的配置文件,不过这一章的例子使用最简单的选项生成SWF文件。

Amxmlc的文件参数就是指主应用程序文件,其父标签为<mx:WindowedApplication>。下面的例子是一个很简单的AIR程序主文件:
+展开
-XML
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
layout="verticaltitle="Hello World">

<mx:Label text="Welcome to AIR" />
</mx:WindowedApplication>

mx.core.WindowedApplication类基于Flex的AIR应用程序容器。WindowedApplication类继承自mx.core.Application类,且是AIR程序的最主要的本地桌面窗口。

要编译此程序并在AIR环境下运行,可像mxmlc那样使用amxmlc工具:
>amxmlc –output HelloWorld.swf HelloWorld.mxml
这会在当前目录下生成名为HelloWorld.swf的SWF文件。Output选项是可选的,没有它仍可获得相同结果,如果没有这个output选项,编译器会根据文件名来命名生成的SWF文件,利用这个选项可以重命名生成的SWF文件。

在前面的章节中已经讲到,应用程序描述符是一个XML文件用于存储和安装,运行和识别AIR程序所需的特定属性,如果在Flash Player下运行amxmlc生成的SWF文件,你会看到只有背景颜色,这是因为该SWF文件只能运行在AIR环境之下,要想运行程序,你需要一个指向此程序的应用程序描述文件。

下面的例子是一个简单的应用程序描述文件,保存为HelloWorld-app.xml,指定之前生成的SWF文件为程序content文件:
+展开
-XML
<application xmlns="http://ns.adobe.com/air/application/1.0">
<id>com.oreilly.flexcookbook.HelloWorld</id>
<filename>HelloWorld</filename>
<name>Hello World</name>
<version>0.1</version>
<description>A Hello World Application</description>
<initialWindow>
<content>HelloWorld.swf</content>
<systemChrome>standard</systemChrome>
<transparent>false</transparent>
<visible>true</visible>
<width>400</width>
<height>400</height>
</initialWindow>
</application>


在描述文件中的初始化应用程序窗口(WindowedApplication实例)有些和程序相关的属性和参数,你会注意到有个content元素值就是指向之前用amxmlc工具生成的SWF文件路径。

在开发AIR程序期间,你可能用到Adobe Debug Launcher (adl)工具用于运行程序,在打包和安装前进行预览。Adl工具也支持trace语句输出的控制台的打印信息,要想通过adl预览AIR程序,输入下面的命令并加上描述文件即可:
>adl HelloWorld-app.xml
如果命令运行成功的话,我们会看到下面的画面Figure23-1:

Figure23-1.Hello World AIR application

程序按照预定设想运行的话,下一步就可以通过AIR Developer Tool (adt)打包为AIR程序为安装文件。AIR安装文件需要数字证书签名来验证程序的真伪,要生成一个AIR安装文件,你需要从安全的证书管理机构如VeriSign或Thawte获取证书,或者你使用自签名证书。证书颁发机构的代码签名在安装程序时验证签名者的身份以及保证最终用户所得到的程序没有被恶意修改。通过adt工具创建的自签名证书也可以保证签名后程序没有被修改过,但是不能用来确认签名者的身份并且发布者属性在安装窗口显示为unknown。

我们还是推荐从证书颁发机构获取的证书对AIR程序进行代码签名,不过在这章的例子中,我们将使用自签名证书生成安装文件。

用adt工具输入以下命令创建一个自签名证书:
>adt -certificate -cn HelloWorld 1024-RSA certificate.pfx password
这个命令在当前目录下生成名为certificate.pfx的文件,还有相应的证书和密匙,这里的证书名为HelloWorld,密匙类型被设定为1024-RSA。可用的密匙类型有1024-RSA 和2048-RSA 。

扩展名为.pfx 和.p12,这就是个人信息交换文件类型。

被adt工具创建的证书和密匙被存储在PKCS12-type 类型的密匙存储器文件。证书和密匙用来签名和打包AIR程序。输入下面的命令对程序打包为安装文件:
>adt –package –storetype pkcs12 –keystore certificate.pfx HelloWorld.air HelloWorld-app
.xml HelloWorld.swf
Storetype参数指向Public-Key Cryptography Standards (PKCS) 的版本密匙存储器。密匙存储器是通过之前的adt工具创建的。最后三个参数值f分别代表安装文件的名称,描述文件和SWF文件。在末尾你还可以继续添加程序所需的其他资源。这里的定位是相对的即当前目录,不过你可以使用-C选项改变引入文件的具体位置。

运行此命令后,终端会提示你输入密码用于生成证书;对于这个例子,如果命令运行成功,则密码被接受,然后在当前目录下生成一个叫HelloWorld.air的文件。这个文件就是HelloWorld程序的安装文件。要想安装这个程序,只要双击它,你会看到一个熟悉的窗口Figure 23-2.

AIR初始化安装窗口


Figure 23-2.初始化安装窗口

Figure 23-2 是一个最初的安装窗口,应用程序的名称通过描述文件的<name>属性给出,publisher身份被认为是unknown,这是因为在打包时使用了自签名证书,如果你点击Install按钮,你会看到下一个窗口Figure 23-3.

AIR初始化安装窗口


Figure 23-3.第二个安装窗口

点击第二个窗口的Continue按钮将安装程序并添加快捷方式到桌面上。你可以指定安装目录,如果默认的话,程序会安装到C:\Program Files\HelloWorld而Mac OS X 会安装在HD/Applications/HelloWorld。应用程序安装目录就是程序目录,储存文件的目录被称为存储目录, 可在以下目录中找到程序, Windows 的C:\Documents and Settings\<username>\Application Data\com.oreilly.flexcookbook.HelloWorld 以及Mac OS X的在/Users/<username>/Library/Preferences/com.oreilly.flexcookbook.HelloWorld。这些目录名称就是来自描述文件的ID--用反写的域名。在安装期间创建的程序目录和存储目录都是通过AIR的system API写成的,你还可以读写存储目录,但程序目录是只读的。

AIR程序的删除操作和其他桌面程序一样,通过控制面板的添加删除工具,在Mac OS中直接拖程序目录到回收站中即可,但是这不会删除安装后生成的辅助文件,包括存储目录。

加支付宝好友偷能量挖...


评论(0)网络
阅读(158)喜欢(0)flash/flex/fcs/AIR