本章将涵盖以下食谱:
针对安卓设备开发 Flash 平台项目,有 IDE(集成开发环境)多种选择。我们将重点介绍几款最受欢迎的产品:Adobe Flash Professional、Adobe Flash Builder 和 power Flash FDT。本章将包括在每个集成开发环境中启动一个新的安卓项目的方法,并充分利用工作流和工具集。您将学习如何配置每个环境,以便为安卓操作系统开发。
Flash Builder 和 FDT 以及 Flex 框架为安卓开发提供了最多的东西,因为有一个简化的工作流程、一组控件和容器,特别适用于使用 Adobe AIR for Android 作为开发平台的移动安卓项目的开发。
Flash Professional 提供了一些工作流工具,但主要优势在于对环境的潜在熟悉度,以及不依赖于 Flex 框架的项目生成。这个 IDE 经常被用于游戏开发,因为它的开放性。
对于纯粹主义者或替代 IDEs 的用户来说,也可以使用免费的 AIR SDK 工具通过命令行界面生成安卓应用。
使用 Flash Professional CS5.5 开发安卓应用Flash Professional 是构建比基于 Flex 的应用更轻量级的安卓应用的好选择。与集成开发环境(如闪存生成器)中包含的工作流相比,闪存专业版的工作流不那么健壮,但根据正在开发的应用,它可能是更好的工作工具。
Flash Professional CS5.5 包含了针对已经出炉的安卓所需的一切!
在 Flash Professional CS5.5 中为 Android 项目设置 AIR 非常直接:
We will first create a new project by choosing AIR for Android under the Create New section of the Flash Professional welcome screen:
We can then verify that we are targeting AIR for Android by taking a look at the document properties under the Properties panel:
我们也可以通过选择Android AIR作为播放器选项来修改现有的 Flash 文档以针对 Android。
借助 Flash Professional CS5.5,我们可以使用的编译器选项比以往任何时候都多。通过在我们的发布设置中添加许多特定于安卓的编译器选项,采取上一节中概述的步骤将确保您的项目能够以安卓的 AIR 为目标,而不是桌面 Flash Player 或桌面 AIR。
如果为安卓开发移动 Flash Player,我们不需要为 AIR 运行时配置任何东西。要瞄准 Flash Player,我们必须简单地记住移动安卓设备固有的限制和差异。
用 Flash Professional CS5.5 瞄准安卓 AIRFlash Professional 是构建比基于 Flex 的应用更轻量级的安卓应用的好选择。与集成开发环境(如 Flash Builder)中包含的工作流程相比,Flash Professional 的工作流程并不强大,但这取决于正在开发的应用;它可能是这项工作更好的工具。
针对搭载 Flash Professional 的安卓系统,有两种瞄准 AIR 的方法:
Firstly, create a new project by choosing AIR for Android under the Create from Template section of the Flash Professional welcome screen:
This will present a choice of several templates targeting AIR for Android. Choose the appropriate template for your device:
或者,创建一个新的动作脚本 3.0 项目,并通过转到文件|发布设置打开您的发布设置。
This will open a dialog allowing you to choose your target platform. In this case, we want to select AIR Android as the appropriate Player:
现在你可以针对安卓调整应用和安装程序设置,将项目编译成.apk
文件。
有了最新版本的 Flash Professional,我们可以使用的编译器选项比以往任何时候都多。采取上述步骤将通过在我们的发布设置中添加许多特定于安卓的编译器选项,确保您的项目能够针对安卓的 AIR,而不是桌面 Flash Player 或桌面 AIR。
如果为安卓开发移动 Flash Player,我们不需要为 AIR 运行时配置任何东西。要瞄准 Flash Player,我们必须简单地记住移动安卓设备固有的限制和差异。
有关使用 Flash Professional 为 Android 应用编译 AIR 的更多信息,您将需要参考第 11 章、最终注意事项:应用编译和分发
使用 Flash Builder 4.5 开发安卓应用Flash Builder 4.5 已经配备了一切,我们需要开始使用 ActionScript 或移动 Flex 框架开发移动应用。对于那些不熟悉 ActionScript 和 Flex 之间区别的人来说,基本上,Flex 框架提供了一组组件、布局和数据控制,这些都是为构建 Flash 应用而预先配置的,而当单独使用 ActionScript 时,一切都必须从头开始编写。Flex 4.5 包括移动功能,例如优化的组件皮肤,可以在设备上很好地运行,这是一种新的ViewNavigator
应用类型,是为移动体验量身定制的,并且包括对移动优化组件集的触摸和手势支持。
我们必须专门创建一个 ActionScript Mobile 项目或 Flex Mobile 项目来代替普通的 ActionScript 项目或 Flex 项目:
In the Flash Builder Package Explorer, right-click on some empty space and choose New | Flex Mobile Project or New | ActionScript Mobile Project:
然后,我们将为移动项目提供一个名称,并选择 Flash Builder 在本地机器上存储项目文件的位置。
View
名称..One last selection to make on this screen is whether we would like to use density aware skins in our mobile components by selecting the Automatically scale application for different screen densities checkbox and selecting the appropriate Application DPI setting.
项目设置的其余部分实际上与 Flash Builder 中的任何其他项目相同。
在 Flash Builder 中设置新项目时,我们所做的选择决定了在应用中导入和使用哪些库。定义一个移动应用不仅会包括针对移动的特定组件皮肤,还会限制我们使用不适合这种用途的组件。我们还可以完全访问特定于移动设备的应用结构,例如移动设备ViewNavigator, ActionBar
或TabBar
。对移动 Flex 框架的这些添加可以用来大大加快有状态移动 Android 应用的开发,因为它们处理应用结构、导航控件和布局。
您实际上可以使用以前版本的 Flash Builder 为 Android 应用编译 AIR。查看下一个配方,启用 Flash Builder 4 或 Flex Builder 来访问 Flex Mobile SDK以了解这方面的示例。
启用 Flash Builder 4 或 Flex Builder 访问 Flex Mobile SDKs你不一定需要拥有最新版本的 Flash Builder 来为 Android 编写应用。本食谱将展示如何将最新的 Flex SDK 集成到旧版本的 Flash Builder(甚至是 Flex Builder)中,以利用移动框架的改进。
尽管我们将能够为安卓系统使用新的组件集和简化的结构,但许多工作流增强功能,如支持新的移动应用视图结构、具有触摸和手势支持的优化组件皮肤,以及在较新版本的闪存生成器中发现的其他细节,都将不复存在,我们将不得不使用 AIR SDK 和命令行工具编译应用进行分发。
以下步骤用于获取为安卓开发配置的旧版 Flash Builder:
ZIP
文件,并将其解压到一个你会记得的硬盘位置。例如C:\SDKs\Flex
。Scroll down the Flash Builder menu item and select Installed Flex SDKs. You will now see a list of each of the SDKs currently available in your copy of Flash Builder:
点击添加按钮,浏览到最近下载的 Flex SDK 的位置。
Provide the dialog with a meaningful name and click OK. For example, Flex 4.5
. If we want to be very specific, we can always name it the full build name, such as: Flex 4.5.0.16076
.
The Flex 4.5
SDK will now be available for use in your application. To use it in a project, simply select this SDK when creating a new project or when modifying the Flex Compiler properties in an existing project.
在 Flash Builder 中使用较新版本的 Flex SDK 使我们能够访问移动主题化选项和其他以前的 SDK 版本中没有的特定 API。这也将把移动类暴露给代码提示和其他 IDE 工作流构造。
如果更改要在项目中使用的 Flex SDK 版本,我们可能会收到许多警告或错误,原因是框架从一个版本到另一个版本的变化。只需浏览项目文件并纠正出现在问题面板中的每个警告或错误,即可纠正任何问题。
如果开发针对安卓系统上 Flash Player 的项目,你只需要注意设备和操作系统的限制。
需要注意的是,Flash Builder 4.5 之前的 Flash Builder 版本将不包括将项目编译到.APK
(安卓应用文件扩展名)的功能,您需要使用免费提供的 AIR SDK 编译您的项目。有关如何操作的信息,请参见第 11 章。
还值得一提的是,虽然您可以使用旧版本的 Flash Builder 为安卓开发应用,但您不会获得新版本提供的许多好处,例如代码完成。
使用 Flash Builder 4 及以下版本开发安卓应用要在 Flash Builder 4 中开发移动安卓应用,我们需要配置 Flash Builder,以便能够访问移动 Flex SDK。如果您还没有以这种方式配置闪存生成器或灵活生成器,请参阅前面的方法。
在 Flash Builder 4.5 之前的版本中,没有内置特定的移动工作流或工具。通过采取以下步骤,我们可以确保我们的项目是移动兼容的:
In Flash Builder, right-click in the Package Explorer panel and choose New | Flex Project. Alternatively, we can choose ActionScript Project, but this will not include any mobile benefits, as the actual Flex SDK components will not be employed. However, it is useful to note that ActionScript projects will generally perform better than their Flex counterparts simply due to the fact that they do not rely on such a heavy framework.
将出现新建 Flex 项目对话框,您必须提供一个项目名称,并选择是创建针对网站还是桌面的项目。如果这个项目是为安卓的 AIR 编译的,我们会希望确保选择桌面,因为这个应用类型将针对 Adobe AIR 运行时。如果在浏览器中创建针对 Flash Player 的项目,我们会选择 Web 。
When choosing Desktop, we will also want to be sure to choose a mobile-enhanced version of the Flex SDK for our Android project. Flex 4.5 and above include everything we need to begin developing robust Android applications.
我们必须做的最后一件事是确保支持移动的 Flex SWCs 将在我们的项目中使用。为了声明
或
用于我们项目的主容器,这些特定的 SWC 必须是可访问的,否则 Flash Builder 会报告错误。
The final section of the New Flex Project dialog allows us to be sure the mobile SWCs are included. You will notice that mobilecomponents.swc
is not included in our project. Select the tab labeled Library path and click on the button labeled Add SWC:
当添加 SWC 对话框出现时,浏览至所选 Flex SDK 的位置。假设我们将软件开发工具包解包到C:\SDKs\Flex4
,我们现在将浏览到C:\SDKs\Flex\frameworks\libs\mobile
选择mobilecomponents.swc
文件,并点击打开。这将为我们的应用增加对移动组件的支持。
{MyProject}-app.xml
的东西,并且位于项目根。打开此文件,将
属性更改为真。如果此节点已被注释掉,可能需要取消注释。theme=C:\{SDK Location}\frameworks\themes\Mobile\mobile.swc
切换到
。我们现在可以使用 mobile flex 框架组件创作和编译应用。当指定我们要在 Flash Builder 中创建哪种类型的项目时,IDE 会自动使 Flex 框架的某些部分可用,以便我们可以使用项目所需的所有组件。Flash Builder 4 和更早版本不附带任何支持移动的 Flex SDK,也不为 Android 项目提供工作流。正因为如此,我们必须明确告诉 Flash Builder 利用这些额外的框架组件。
上一节步骤中提到的应用描述符文件用于以各种方式配置 AIR 应用:设置初始窗口属性、chrome 属性,甚至系统图标。
需要注意的是,在 Flash Builder 4.5 之前的 Flash Builder 版本不包括将项目编译到的功能。APK(安卓应用文件扩展名),你将需要使用免费提供的 AIR SDK 编译你的项目。有关如何做到这一点的信息,请参见第 11 章。
还值得一提的是,虽然您可以使用旧版本的 Flash Builder 为安卓开发应用,但您不会获得新版本提供的许多好处,例如代码完成。
启用电源闪光器 FDT 4.1 访问灵活移动 SDKpower Flash FDT 是一个越来越受欢迎的开发环境,用于为 Flash 平台创作项目。FDT 4 配备了您所期望的一切,可以开始开发 ActionScript 和 Flex 应用,但是 FDT 4.1 及以下版本不支持任何移动工作流或附带支持移动的 Flex SDK。
只有几个步骤可以让 powerflash FDT 4 配置为安卓开发:
ZIP
文件,并将其解压到一个你会记得的硬盘位置。例如C:\SDKs\Flex
。Scroll down the FDT menu item and select Installed SDKs. You will now see a list of each of the SDKs currently available in your copy of FD:
点击添加按钮,浏览到您最近下载的 Flex SDK 的位置。
Provide the dialog with a meaningful name and click OK. For example, Flex 4.5:
The Flex 4.5
SDK will now be available for use in your application. To use it in a project, simply select this SDK when creating a new project or when modifying the Flex Compiler properties in an existing project:
powerflash FDT 4 是一个基于 Eclipse 的 IDE(就像 Flash Builder 一样),并采用了许多相同的方法来扩展应用和添加 SDK 包。在 FDT 使用较新版本的 Flex SDK 允许我们访问移动主题化选项和其他以前的 SDK 版本中没有的特定 API。
需要注意的是,Flash Builder 4.5 之前的 Flash Builder 版本将不包括将项目编译到.APK
(安卓应用文件扩展名)的功能,您需要使用免费提供的 AIR SDK 编译您的项目。有关如何做到这一点的信息,请参见第 11 章。
还值得一提的是,虽然您可以使用旧版本的 Flash Builder 为安卓开发应用,但您不会获得新版本提供的许多好处,例如代码完成。
使用 powerflash FDT 4.1 及以下版本开发安卓应用要在 FDT 4.1 中开发移动安卓应用,我们需要配置 FDT,以便能够访问移动 Flex SDK。如果您还没有以这种方式配置 FDT,请参阅前面的食谱。
在 FDT 4.2 之前的 FDT 版本中没有特定的移动工作流或工具。通过采取以下步骤,我们可以确保我们的项目是移动兼容的:
In FDT, right-click in the Flash Explorer panel and choose NEW | New Flash Project:
The New Flash Project dialog will appear in which you must provide a Project name, and select whether to create the project using ActionScript 3 or Flex. We need to make sure to choose Flex 4, as this will include Spark components, which can be mobile-friendly if using a proper version of the Flex SDK.
The next section will allow us to choose a specific Flex SDK to use in our project. We should choose a mobile-enhanced version of the Flex SDK for our Android project. Flex 4.5 and above include everything we need to begin developing robust Android applications.
我们必须做的最后一件事是确保支持移动的 Flex SWCs 将在我们的项目中使用。为了声明
或
用于我们项目的主容器,这些特定的 SWC 必须是可访问的,否则 FDT 会报告错误。
You will notice that mobile\mobilecomponents.swc
is not included in our project. Select the checkbox next to this SWC and press the OK button to continue:
现在,我们将能够使用移动特定的容器和控件,而不会收到来自 FDT 的错误。
当指定我们要在 FDT 创建的项目类型时,程序会自动提供 Flex Framework 的某些部分,以便我们可以使用项目所需的所有组件。FDT 4.1 和更早版本不附带任何支持移动的 Flex SDK,也不为 Android 项目提供工作流。因此,我们必须明确告诉 FDT 利用以下额外的框架组件:
ViewNavigator
堆栈结构,在这个结构中,我们可以将不同的视图推送和弹出到一个堆栈的顶部,将最上面的视图展示给用户。ViewNavigator
堆栈的能力,通过TabBar
用户界面元素进行控制。需要注意的是,Flash Builder 4.5 之前的 Flash Builder 版本将不包括将项目编译到.APK
(安卓应用文件扩展名)的功能,您需要使用免费提供的 AIR SDK 编译您的项目。有关如何做到这一点的信息,请参见第 11 章。
还值得一提的是,虽然您可以使用旧版本的 Flash Builder 为安卓开发应用,但您不会获得新版本提供的许多好处,例如代码完成。
将标准灵活项目转换为灵活移动项目Flash Builder(或 FDT)目前没有将现有应用转换为移动安卓应用的工作流程。根据要转换的应用的复杂性和 Flex 的版本,它可能会经历从非常简单到异常复杂的转换。在本食谱中,我们将展示一个使用基本 Flex 结构的更简单的例子。
创建一个新的移动项目,并将所有必要的文件复制到其中,保留那些用于移动项目的代码部分,并修改任何不支持的组件。
在这个例子中,我们将使用一个简单的 Flex 项目,目标是桌面的 AIR,在这个阶段只包含一个按钮组件:
xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<s:Button x="10" y="10" width="300" height="200" label="Button"/>
s:WindowedApplication>
要将其转换为新的 Flex Mobile 项目,请执行以下步骤:
Provide the project setup dialog with information about the new mobile project.
该项目不能与您环境中的任何现有项目同名。
将原始项目中项目文件夹中的所有文件复制到这个新的移动项目中,不包括项目描述符文件({myApp }.xml)
和Default Application
文件。
Default Application
文件中的所有内容,并将其粘贴到与移动项目一起创建的Default Application
文件中。复制完所有内容后,右键单击主应用文件,选择设置为默认应用。Change all instances of
to
(alternatively,
).
就像标准的 AIR
一样,一个项目中只能存在一个
或
的实例。
查看您的问题面板,查看是否需要进一步修改。
标签的名称空间声明。
标签添加一个firstView
属性。这应该指向设置移动项目时自动创建的View
。下载示例代码
您可以从您在http://www.PacktPub.com的账户中下载您购买的所有 Packt 书籍的示例代码文件。如果您在其他地方购买了这本书,您可以访问http://www.PacktPub.com/support并注册,以便将文件直接通过电子邮件发送给您。
您的Default Application
文件现在应该如下所示:
xml version="1.0" encoding="utf-8"?>
<s:ViewNavigatorApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" firstView="views.MobileFlexProjectHomeView">
<fx:Declarations>
<s:Button x="10" y="10" width="447" height="106" label="Button"/>
fx:Declarations>
s:ViewNavigatorApplication>
此外,此应用的视图可能如下所示:
xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" title="MobileFlexProjectHomeView ">
s:View>
有关 Flex Mobile 项目如何结构化的更多信息,请查看以下资源:http://open source . adobe . com/wiki/display/Flex SDK/Developer+Documentation。
使用 Flex 时,应用的根标签在很大程度上决定了在整个项目中什么样的 API 和结构可供您使用。确保我们选择正确的根标签对于我们项目的目标平台和功能非常重要。对于安卓上的 AIR,我们会希望使用ViewNavigatorApplication
或TabbedViewNavigatorApplication
。桌面应用将使用应用或WindowedApplication
标签。如果你正在用 Flex 构建 Flash 内容,并在浏览器中部署到 Flash Player,那么无论是在移动端还是在桌面端,你都将为你的项目使用一个直接的Application
标签。
如果您不想处理大量转换,并且刚刚开始一个新项目,该项目将跨桌面和移动共享相同的代码库,您可以考虑使用 Flex Library 项目来允许不同的项目共享相同的底层代码库。
阅读关于 Flex 4 Library 用法的文档,网址为:http://help . adobe . com/en _ US/flashbuilder/using/ws6f 97 D7 CAA 66 ef 6 EB 1e 63 E3 d 11 B6 C4 d0 d21-7 Fe 6 . html。
配置 AIR SDK,为 Windows 上的安卓应用打包 AIR如果我们将开源 AIR SDK(软件开发工具包)与另一个 IDE 一起使用,甚至在简单的文本编辑器中编辑我们的项目,我们仍然可以通过命令行工具编译应用,以便在 Android 上分发。
如果您还没有 Adobe AIR SDK,您必须首先从http://www.adobe.com/products/air/sdk/下载它,并将文件提取到硬盘上的目录中,例如C:\SDKs\AIR
。您还必须在操作系统中设置一个指向 AIR SDK 下的bin
目录的PATH
变量。
如果您使用的是 Windows 系统,请通过以下步骤设置环境变量:
Click upon the PATH variable in this window and select Edit:
Now, simply add the location of your bin
directory into the set of variables: If the last item in your variable value list has not been terminated with a semicolon, you must add one before every new item. For example: C:\SDKs\AIR\bin
.
应该可以了。点击确定几次,调出命令提示符,验证我们是否设置正确。输入adt -version
并点击进入。如果一切正常,ADT 会吐出一个看起来像adt version "2.5.0.00000"
的版本字符串。
在操作系统上设置一个PATH
变量,让我们能够从系统的任何地方调用 AIR Android 编译器 ADT,而无需遍历文件目录和指定长路径名。
如果使用的是 Linux 或 Mac 操作系统,还可以从终端内部设置特定的环境变量。有关这方面的示例,请参见下一个方法配置 AIR SDK 以在 Linux 或 MacOS 上为 Android 应用打包 AIR。
配置 AIR SDK,为 Linux 或 Mac OS 上的安卓应用打包 AIR如果我们将开源 AIR SDK 与另一个 IDE 一起使用,甚至在简单的文本编辑器中编辑我们的项目,我们仍然可以通过命令行工具编译应用,以便在 Android 上分发。
如果您还没有 Adobe AIR SDK,您必须首先从http://www.adobe.com/products/air/sdk/下载它,并将文件提取到硬盘上的目录中:例如:/home/joseph/SDKs/AIR
。您还必须在操作系统启动脚本中设置一个指向 AIR SDK 下的bin
目录的PATH
变量。
我们将通过以下步骤设置环境变量:
cat >> .bash_profile
或 Ubuntu 的cat >> .bashrc
(每个 Linux 发行版可能有自己特定的启动脚本命名约定)。export PATH=$PATH:/home/joseph/SDKs/AIR/bin
设置指向 AIR 开发工具 bin 目录的PATH
变量。点击进入。Now we will check to be sure everything was added appropriately. Type cat .bashrc
into the Terminal and hit Enter. You should see the PATH
command spit back at you:
您可能需要注销您的配置文件,然后重新登录,以便系统获取新的环境变量。
echo $PATH
,点击进入。这将显示包含在PATH
变量中的所有内容,包括我们的 AIR bin
目录的位置。That should do it. We will now verify that we've set the AIR SDK up correctly. Type in adt -version
and hit Enter. If all is well, ADT will spit back a version string that looks something like adt version "2.5.0.00000":
在操作系统上设置一个 PATH 变量,让我们能够从系统的任何地方调用 AIR Android 编译器 ADT,而无需遍历文件目录和指定长路径名。
请注意,您可能需要退出会话,然后重新登录,新的PATH
变量才会生效。如果使用的是 Windows 操作系统,还可以设置特定的环境变量。有关这方面的示例,请参见之前的配方配置 AIR 软件开发工具包,在 Windows 上为安卓应用打包 AIR。