构建
ADOBE®
AIR®
应用程序
法律声明
法律声明
有关法律声明,请参阅 http://help.adobe.com/zh_CN/legalnotices/index.html 。
上次更新 2011/10/13
目录
第 1 章 : 关于 Adobe AIR
第 2 章 : Adobe AIR 安装
安装
Adobe AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
删除 Adobe AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
安装和运行 AIR 范例应用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Adobe AIR
第 3 章 : 使用 AIR API
特定于 AIR 的 ActionScript 3.0 类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
具有特定于 AIR 功能的 Flash Player 类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
特定于 AIR 的 Flex 组件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
第 4 章 : 适用于 AIR 开发的 Adobe Flash Platform 工具
安装
安装 Flex SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
设置外部 SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
更新 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
AIR SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
iii
第 5 章 : 创建第一个 AIR 应用程序
在
Flash Builder 中创建第一个桌面 Flex AIR 应用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
使用 Flash Professional 创建第一个桌面 AIR 应用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
在 Flash Professional 中创建您的第一个 AIR for Android 应用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
创建第一个用于 iOS 的 AIR 应用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
使用 Dreamweaver 创建第一个基于 HTML 的 AIR 应用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
使用 AIR SDK 创建第一个基于 HTML 的 AIR 应用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
使用 Flex SDK 创建第一个桌面 AIR 应用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
使用 Flex SDK 创建您的第一个 AIR for Android 应用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
第 6 章 : 开发针对桌面的 AIR 应用程序
开发桌面
AIR 应用程序的工作流程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
设置桌面应用程序属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
调试桌面 AIR 应用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
对桌面 AIR 安装文件进行打包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
对桌面本机安装程序进行打包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
为桌面计算机打包捕获运行时捆绑 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
针对桌面计算机分发 AIR 包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
第 7 章 : 开发针对移动设备的 AIR 应用程序
设置开发环境
移动应用程序设计注意事项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
创建移动设备 AIR 应用程序的工作流程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
目录
设置移动应用程序属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
打包移动 AIR 应用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
调试移动 AIR 应用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
在移动设备上安装 AIR 和 AIR 应用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
更新移动 AIR 应用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
第 8 章 : 开发针对电视设备的 AIR 应用程序
设备功能
用于电视的 AIR 应用程序设计注意事项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
开发用于电视的 AIR 应用程序的工作流程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
针对 TV 应用程序属性设置 AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
对用于电视的 AIR 应用程序进行打包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
调试用于电视的 AIR 应用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
第 9 章 : 使用 Adobe AIR 的本机扩展
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
AIR 本机扩展 (ANE) 文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
本机扩展与 NativeProcess ActionScript 类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
本机扩展与 ActionScript 类库 (SWC 文件) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
支持的设备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
支持的设备配置文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
使用本机扩展的任务列表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
在应用程序描述符文件中声明扩展 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
在应用程序库路径中包含 ANE 文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
打包使用本机扩展的应用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
iv
第 10 章 : ActionScript 编译器
关于
Flex SDK 中的 AIR 命令行工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
编译器安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
为 AIR 编译 MXML 和 ActionScript 源文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
编译 AIR 组件或代码库 (Flex) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
第 11 章 : AIR Debug Launcher (ADL)
用法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
ADL
ADL
示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
ADL
退出和错误代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
第 12 章 : AIR Developer Tool (ADT)
命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
ADT
ADT
选项组合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
ADT
错误消息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
ADT
环境变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
目录
第 13 章 : 对 AIR 应用程序进行签名
对
AIR 文件进行数字签名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
使用 ADT 创建未签名的 AIR 中间文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
使用 ADT 对 AIR 中间文件进行签名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
对 AIR 应用程序的更新版本进行签名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
使用 ADT 创建自签名证书 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
第 14 章 : AIR 应用程序描述符文件
应用程序描述符更改
应用程序描述符文件结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
AIR
应用程序描述符元素 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
第 15 章 : 设备配置文件
限制应用程序描述符文件中的目标配置文件
不同配置文件的功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
第 16 章 : AIR.SWF 浏览器内 API
自定义无缝安装 badge.swf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
使用 badge.swf 文件安装 AIR 应用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
加载 air.swf 文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
检查是否已安装运行时 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
从网页检查是否已安装 AIR 应用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
从浏览器安装 AIR 应用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
从浏览器启动安装的 AIR 应用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
v
第 17 章 : 更新 AIR 应用程序
关于更新应用程序
提供自定义应用程序更新用户界面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
将 AIR 文件下载到用户的计算机 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
检查应用程序是否为首次运行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
使用更新框架 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
第 18 章 : 查看源代码
加载、配置和打开
Source Viewer
第 19 章 : 使用 AIR HTML 内部检查器进行调试
关于
AIR 内部检查器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
加载 AIR 内部检查器代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
在控制台选项卡中检查对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
配置 AIR 内部检查器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
AIR
内部检查器界面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
对非应用程序沙箱中的内容使用 AIR 内部检查器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Source Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
用户界面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
目录
第 20 章 : 本地化 AIR 应用程序
本地化
AIR 应用程序安装程序中的应用程序名称和说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
使用 AIR HTML 本地化框架本地化 HTML 内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
第 21 章 : 路径环境变量
Bash shell 在 Linux 和 Mac OS 上设置路径 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
使用
在 Windows 上设置路径 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
vi
上次更新 2011/10/13
第 1 章 : 关于 Adobe AIR
Adobe® AIR® 是一个跨操作系统的多屏幕运行时,通过它可以利用您的 Web 开发技能来构建丰富 Internet 应用程序 (RIA),
并将其部署到桌面和移动设备上。可以使用
电视和移动
在 Adobe AIR 开发人员中心 (http://www.adobe.com/cn/devnet/air/ ) 上可以找到有关 Adobe AIR 入门和使用的详细信
息。
通过
AIR 应用程序。桌面 AIR 应用程序也可以使用 HTML、 JavaScript® 和 Ajax (基于 HTML)进行构建。
AIR,您可以在熟悉的环境中工作,可以利用您认为最方便的工具和方法。由于它支持 Flash、 Flex、 HTML、
JavaScript 和 Ajax,您可以创造满足您需要的可能的最佳体验。
例如:可以使用以下技术之一或其某一组合开发应用程序:
• Flash/Flex/ActionScript
• HTML/JavaScript/CSS/Ajax
用户与 AIR 应用程序交互的方式和他们与本机应用程序交互的方式相同。在用户计算机或设备上安装此运行时之后,即可像任
何其他桌面应用程序一样安装和运行 AIR 应用程序。(在 iOS 上,未单独安装 AIR 运行时;每个 iOS AIR 应用程序都是独立
应用程序。)
Adobe® Flex 和 Adobe® Flash® (基于 SWF)通过 ActionScript 3.0 构建桌面、
1
此运行时通过在不同桌面间确保一致的功能和交互来提供用于部署应用程序的一致性跨操作系统平台和框架,从而消除跨浏览
器测试。不是针对特定操作系统进行开发,而是以此运行时为目标,它具有以下优点:
• 针对 AIR 开发的应用程序可以在多个操作系统上运行,同时不需要进行额外的工作。此运行时确保在由 AIR 支持的所有操
作系统上进行一致并可预知的呈现和交互。
• 利用现有的 Web 技术和设计模式可以更快地构建应用程序。无需学习传统的桌面开发技术或复杂的本机代码,您即可将基
于 Web 的应用程序扩展到桌面。
• 与使用诸如 C 和 C++ 之类的较低级别的语言相比,使用此运行时可以更轻松地开发应用程序。无需管理特定于每个操作系
统的复杂的低级别
当针对 AIR 开发应用程序时,可以利用一组丰富的框架和 API :
API。
• 由此运行时提供的特定于 AIR 的 API 和 AIR 框架
• SWF 文件中使用的 ActionScript API 和 Flex 框架 (以及其他基于 ActionScript 的库和框架)
• HTML 、 CSS 和 JavaScript
• 大多数 Ajax 框架
• Adobe AIR 的本机扩展,其提供 ActionScript API ,该 API 提供对采用本机代码编程的特定于平台的功能的访问。本机
扩展还会提供对旧本机代码以及提供更高性能的本机代码的访问。
AIR 在很大程度上改变了应用程序的创建、部署和使用方式。您获得了更富有创造性的控制能力,并可以将您的基于 Flash、
Flex、 HTML 和 Ajax 的应用程序扩展到桌面、移动设备和电视。
有关每个新 AIR 更新中所包含内容的信息,请参阅 Adobe AIR 发行说明
(http://www.adobe.com/go/learn_air_relnotes_cn )
。
上次更新 2011/10/13
第 2 章 : Adobe AIR 安装
利用 Adobe® AIR® 运行时,可以运行 AIR 应用程序。您可以通过以下方式安装运行时:
• 单独安装运行时 (不同时安装 AIR 应用程序)
• 首次通过网页安装 “ 标志 ” 安装 AIR 应用程序 (同时提示安装运行时)
• 创建安装应用程序和运行时的自定义安装程序。必须获得 Adobe 的批准才能以此方式分发 AIR 运行时。您可通过 Adobe
运行时许可页面请求批准。请注意, Adobe 不提供用于捆绑此类安装程序的工具。但是,有许多第三方安装程序工具包可
用。
• 安装将 AIR 捆绑为捕获运行时的 AIR 应用程序。只有捆绑应用程序才使用捕获运行时。该运行时不用于运行其他 AIR 应
用程序。捆绑运行时在 Android 、 Mac 和 Windows 上是可选的。在 iOS 上,所有应用程序都包含捆绑的运行时。
• 设置 AIR 开发环境,如 AIR SDK 、Adobe® Flash® Builder™ 或 Adobe Flex® SDK (包含 AIR 命令行开发工具)。SDK
中包含的运行时仅用于调试应用程序,不可用于运行已安装的 AIR 应用程序。
Adobe AIR:系统要求 (http://www.adobe.com/cn/products/air/systemreqs/) 详细介绍了安装 AIR 和运行 AIR 应用程序
的系统要求。
2
运行时安装程序和
考这些日志以帮助确定任何安装问题的原因。请参阅安装日志 。
AIR 应用程序安装程序在安装、更新或删除 AIR 应用程序或者 AIR 运行时本身时,将创建日志文件。可参
安装 Adobe AIR
要安装或更新运行时,用户必须对计算机具有管理权限。
在 Windows 计算机上安装运行时
1 从 http://get.adobe.com/cn/air 下载运行时安装文件。
2 双击运行时安装文件。
3 在安装窗口中,按照提示完成安装。
在 Mac 计算机上安装运行时
1 从 http://get.adobe.com/cn/air 下载运行时安装文件。
2 双击运行时安装文件。
3 在安装窗口中,按照提示完成安装。
4 如果安装程序显示 “ 身份验证 ”(Authenticate) 窗口,请输入 Mac OS 用户名和密码。
在 Linux 计算机上安装运行时
注: 此时, Linux 上不支持 AIR 2.7 和更高版本。对 Linux 部署的 AIR 应用程序应该继续使用 AIR 2.6 SDK 。
使用二进制安装程序:
1 安装二进制文件可在 http://kb2.adobe.com/cps/853/cpsid_85304.html 上找到并下载。
2 设置文件权限以便可执行安装应用程序。在命令行中您可以使用以下代码设置文件权限:
chmod +x AdobeAIRInstaller.bin
某些 Linux 版本允许您在通过上下文菜单打开的 “ 属性 ” 对话框上设置文件权限。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
Adobe AIR 安装
3 从命令行中或通过双击运行时安装文件运行安装程序。
4 在安装窗口中,按照提示完成安装。
Adobe AIR
安装。当前,
使用软件包安装程序:
以本机软件包形式进行安装。即,在基于 rpm 发行版中以 rpm 的形式安装,在 Debian 发行版中以 deb 的形式
AIR 不支持任何其他软件包格式。
1 AIR 包文件可在 http://kb2.adobe.com/cps/853/cpsid_85304.html 上找到并下载。根据您的系统支持的软件包格式,
下载
rpm 或 Debian 软件包。
2 如果需要,双击 AIR 包文件以安装此软件包。
您也可以通过命令行安装:
a 在 Debian 系统中:
sudo dpkg -i <path to the package>/adobeair-2.0.0.xxxxx.deb
b 在基于 rpm 的系统中:
sudo rpm -i <path to the package>/adobeair-2.0.0-xxxxx.i386.rpm
或者,如果您更新现有版本 (AIR 1.5.3 或更高版本):
sudo rpm -U <path to the package>/adobeair-2.0.0-xxxxx.i386.rpm
3
要安装 AIR 2 和 AIR 应用程序,您必须对计算机具有管理员权限。
Adobe AIR 将安装到以下位置: /opt/Adobe AIR/Versions/1.0
AIR
注册 mime 类型 “application/vnd.adobe.air-application-installer-package+zip” ,这表示 .air 文件属于此 mime 类
型,因此在
在 Android 设备上安装运行时
您可以通过 Android Market 安装 AIR 运行时的最新发布版。
您可以通过网页上的链接或使用
;不能同时安装发布版和开发版。
有关详细信息,请参阅
在 iOS 设备上安装运行时
必要的
件。
更多帮助主题
第 60 页的 “AIR for iOS ”
AIR 运行时中注册。
ADT -installRuntime 命令来安装 AIR 运行时的开发版。一次只能安装一个版本的 AIR 运行时
第 133 页的 “ADT installRuntime 命令 ”。
AIR 运行时代码与针对 iPhone、 iTouch 和 iPad 设备创建的每个应用程序捆绑在一起。您不必安装单独的运行时组
删除 Adobe AIR
安装运行时之后,可以通过以下步骤将其删除。
在 Windows 计算机上删除运行时
1 在 Windows 的 “ 开始 ” 菜单中,选择 “ 设置 ”>“ 控制面板 ” 。
2 打开 “ 程序 ” 、 “ 程序和功能 ” 或 “ 添加或删除程序 ” 控制面板 (取决于您运行的 Windows 版本)。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
Adobe AIR 安装
3 选择 “Adobe AIR” 以删除运行时。
4 单击 “ 更改 / 删除 ” 按钮。
在 Mac 计算机上删除运行时
• 双击 “Adobe AIR Uninstaller” ,其位于 /Applications/Utilities 文件夹中。
在 Linux 计算机上删除运行时
请执行下列操作之一:
• 从 “ 应用程序 ” 菜单中选择 “Adobe AIR Uninstaller” 命令。
• 运行 AIR 安装程序二进制文件,并加入 -uninstall 选项
• 用包管理器删除 AIR 包(adobeair 和 adobecerts)。
Android 设备删除运行时
从
1 在设备上打开 “ 设置 ” 应用程序。
2 点击 “ 应用程序 ”>“ 管理应用程序 ” 下的 Adobe AIR 条目。
3 点击 “ 卸载 ” 按钮。
您还可以使用
ADT -uninstallRuntime 命令。有关详细信息,请参阅 第 134 页的 “ADT uninstallRuntime 命令 ”。
4
删除捆绑的运行时
要删除捕获捆绑的运行时,必须删除其随之一起安装的应用程序。请注意,捕获运行时仅用于运行安装应用程序。
安装和运行 AIR 范例应用程序
要安装或更新 AIR 应用程序,用户必须对计算机具有管理权限。
某些范例应用程序用于展示 AIR 功能。您可以按照以下说明访问和安装范例应用程序:
1 下载并运行 AIR 范例应用程序 。编译后的应用程序及源代码都可用。
2 若要下载并运行范例应用程序,请单击范例应用程序的 “Install Now” 按钮。系统会提示您安装并运行该应用程序。
3 如果您选择下载范例应用程序并稍后运行,请选择下载链接。您可以随时通过以下方式运行 AIR 应用程序:
• 在 Windows 中,双击桌面上的应用程序图标或从 Windows 的 “ 开始 ” 菜单中选择该应用程序。
• 在 Mac OS 中,双击应用程序图标,默认情况下该应用程序安装在用户目录的 Applications 文件夹中 (例如,在
Macintosh HD/Users/JoeUser/Applications/
注: 检查 AIR 发行说明以查看是否有这些说明的更新,发行说明位于以下位置:
中)。
http://www.adobe.com/go/learn_air_relnotes_cn。
Adobe AIR 更新
Adobe 定期使用新功能或小问题修补程序更新 Adobe AIR。使用自动通知和更新功能,Adobe 可以在提供了 Adobe AIR 的
更新版本时自动通知用户。
对
Adobe AIR 的更新可确保 Adobe AIR 正常工作,并且通常包含对安全性的重要更改。 Adobe 建议用户,只要提供了新版
本的 Adobe AIR ,就更新到这个最新版本 (特别是在涉及安全性更新时)。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
Adobe AIR 安装
默认情况下,当启动 AIR 应用程序时,运行时检查更新是否可用。至少每两周执行一次更新检查。如果更新可用, AIR 在后
台下载更新。
5
通过使用
tions/SettingsManager/SettingsManager.air
AIR SettingsManager 应用程序,用户可以禁用自动更新功能。 http://airdownload.adobe.com/air/applica-
上提供了可供下载的 AIR SettingsManager 应用程序。
Adobe AIR 的正常安装过程包括连接到 http://airinstall.adobe.com 以发送有关安装环境的基本信息,例如操作系统版本和
语言。仅在每次安装完成后发出此信息且 Adobe 可通过此信息确认安装是否成功。未收集或传输任何个人可识别的信息。
更新捕获运行时
如果使用捕获运行时捆绑分发应用程序,则捕获运行时不会自动更新。为了用户的安全,当发布相关安全更改时,必须监控
发布的更新,并使用新的运行时版本更新应用程序。
Adobe
上次更新 2011/10/13
第 3 章 : 使用 AIR API
Adobe® AIR® 包括不适用于 Adobe® Flash® Player 中运行的 SWF 内容的功能。
6
ActionScript 3.0
开发人员
Adobe AIR API 相关内容在下列两书中进行了介绍:
• ActionScript 3.0 开发人员指南
• 用于 Adobe Flash Platform 的 ActionScript 3.0 参考
HTML 开发人员
在构建基于
访问 AIR API 类),有关此类 API 的相关内容在下列两书中进行了介绍:
HTML 的 AIR 应用程序时,可用于 JavaScript 中的 API 通过 AIRAliases.js 文件获得(请参阅通过 JavaScript
• Adobe AIR HTML 开发人员指南
• 针对 HTML 开发人员的 Adobe AIR API 参考
特定于 AIR 的 ActionScript 3.0 类
下表列出了特定于 Adobe AIR 的运行时类,它们不可用于在浏览器中的 Adobe® Flash® Player 中运行的 SWF 内容。
HTML 开发人员
通过 AIRAliases.js 文件获得、可用于 JavaScript 的类在针对 HTML 开发人员的 Adobe AIR API 参考 中列出。
类
ActionScript 3.0 包 AIR 版本中添加了以下内容
ARecord flash.net.dns 2.0
AAAARecord flash.net.dns 2.0
ApplicationUpdater air.update 1.5
ApplicationUpdaterUI air.update 1.5
AudioPlaybackMode flash.media 3.0
AutoCapitalize flash.text 3.0
BrowserInvokeEvent flash.events 1.0
CameraPosition flash.media 3.0
CameraRoll flash.media 2.0
CameraRollBrowseOptions flash.media 3.0
CameraUI flash.media 2.5
CertificateStatus flash.security 2.0
CompressionAlgorithm flash.utils 1.0
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
使用 AIR API
7
类
ActionScript 3.0 包 AIR 版本中添加了以下内容
DatagramSocket flash.net 2.0
DatagramSocketDataEvent flash.events 2.0
DNSResolver flash.net.dns 2.0
DNSResolverEvent flash.events 2.0
DockIcon flash.desktop 1.0
DownloadErrorEvent air.update.events 1.5
DRMAuthenticateEvent flash.events 1.0
DRMDeviceGroup flash.net.drm 3.0
DRMDeviceGroupErrorEvent flash.net.drm 3.0
DRMDeviceGroupEvent flash.net.drm 3.0
DRMManagerError flash.errors 1.5
EncryptedLocalStore flash.data 1.0
ExtensionContext flash.external 2.5
File flash.filesystem 1.0
FileListEvent flash.events 1.0
FileMode flash.filesystem 1.0
FileStream flash.filesystem 1.0
FocusDirection flash.display 1.0
GameInput flash.ui 3.0
GameInputControl flash.ui 3.0
GameInputControlType flash.ui 3.0
GameInputDevice flash.ui 3.0
GameInputEvent flash.ui 3.0
GameInputFinger flash.ui 3.0
GameInputHand flash.ui 3.0
Geolocation flash.sensors 2.0
GeolocationEvent flash.events 2.0
HTMLHistoryItem flash.html 1.0
HTMLHost flash.html 1.0
HTMLLoader flash.html 1.0
HTMLPDFCapability flash.html 1.0
HTMLSWFCapabiltiy flash.html 2.0
HTMLUncaughtScriptExceptionEvent flash.events 1.0
HTMLWindowCreateOptions flash.html 1.0
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
使用 AIR API
8
类
ActionScript 3.0 包 AIR 版本中添加了以下内容
Icon flash.desktop 1.0
IFilePromise flash.desktop 2.0
ImageDecodingPolicy flash.system 2.6
InteractiveIcon flash.desktop 1.0
InterfaceAddress flash.net 2.0
InvokeEvent flash.events 1.0
InvokeEventReason flash.desktop 1.5.1
IPVersion flash.net 2.0
IURIDereferencer flash.security 1.0
LocationChangeEvent flash.events 2.5
MediaEvent flash.events 2.5
MediaPromise flash.media 2.5
MediaType flash.media 2.5
MXRecord flash.net.dns 2.0
NativeApplication flash.desktop 1.0
NativeDragActions flash.desktop 1.0
NativeDragEvent flash.events 1.0
NativeDragManager flash.desktop 1.0
NativeDragOptions flash.desktop 1.0
NativeMenu flash.display 1.0
NativeMenuItem flash.display 1.0
NativeProcess flash.desktop 2.0
NativeProcessExitEvent flash.events 2.0
NativeProcessStartupInfo flash.desktop 2.0
NativeWindow flash.display 1.0
NativeWindowBoundsEvent flash.events 1.0
NativeWindowDisplayState flash.display 1.0
NativeWindowDisplayStateEvent flash.events 1.0
NativeWindowInitOptions flash.display 1.0
NativeWindowRenderMode flash.display 3.0
NativeWindowResize flash.display 1.0
NativeWindowSystemChrome flash.display 1.0
NativeWindowType flash.display 1.0
NetworkInfo flash.net 2.0
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
使用 AIR API
9
类
ActionScript 3.0 包 AIR 版本中添加了以下内容
NetworkInterface flash.net 2.0
NotificationType flash.desktop 1.0
OutputProgressEvent flash.events 1.0
PaperSize flash.printing 2.0
PrintMethod flash.printing 2.0
PrintUIOptions flash.printing 2.0
PTRRecord flash.net.dns 2.0
ReferencesValidationSetting flash.security 1.0
ResourceRecord flash.net.dns 2.0
RevocationCheckSettings flash.security 1.0
Screen flash.display 1.0
ScreenMouseEvent flash.events 1.0
SecureSocket flash.net 2.0
SecureSocketMonitor air.net 2.0
ServerSocket flash.net 2.0
ServerSocketConnectEvent flash.events 2.0
ServiceMonitor air.net 1.0
SignatureStatus flash.security 1.0
SignerTrustSettings flash.security 1.0
SocketMonitor air.net 1.0
SoftKeyboardType flash.text 3.0
SQLCollationType flash.data 1.0
SQLColumnNameStyle flash.data 1.0
SQLColumnSchema flash.data 1.0
SQLConnection flash.data 1.0
SQLError flash.errors 1.0
SQLErrorEvent flash.events 1.0
SQLErrorOperation flash.errors 1.0
SQLEvent flash.events 1.0
SQLIndexSchema flash.data 1.0
SQLMode flash.data 1.0
SQLResult flash.data 1.0
SQLSchema flash.data 1.0
SQLSchemaResult flash.data 1.0
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
使用 AIR API
10
类
SQLStatement flash.data 1.0
SQLTableSchema flash.data 1.0
SQLTransactionLockType flash.data 1.0
SQLTriggerSchema flash.data 1.0
SQLUpdateEvent flash.events 1.0
SQLViewSchema flash.data 1.0
SRVRecord flash.net.dns 2.0
StageAspectRatio flash.display 2.0
StageOrientation flash.display 2.0
StageOrientationEvent flash.events 2.0
StageText flash.text 3.0
StageTextInitOptions flash.text 3.0
StageWebView flash.media 2.5
StatusFileUpdateErrorEvent air.update.events 1.5
StatusFileUpdateEvent air.update.events 1.5
StatusUpdateErrorEvent air.update.events 1.5
ActionScript 3.0 包 AIR 版本中添加了以下内容
StatusUpdateEvent air.update.events 1.5
StorageVolume flash.filesystem 2.0
StorageVolumeChangeEvent flash.events 2.0
StorageVolumeInfo flash.filesystem 2.0
SystemIdleMode flash.desktop 2.0
SystemTrayIcon flash.desktop 1.0
TouchEventIntent flash.events 3.0
UpdateEvent air.update.events 1.5
Updater flash.desktop 1.0
URLFilePromise air.desktop 2.0
URLMonitor air.net 1.0
URLRequestDefaults flash.net 1.0
XMLSignatureValidator flash.security 1.0
具有特定于 AIR 功能的 Flash Player 类
以下类可用于在浏览器中运行的 SWF 内容,但 AIR 提供了附加的属性或方法:
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
使用 AIR API
11
包 类 属性、方法或事件
AIR 版本中添加了以下内
容
flash.desktop Clipboard supportsFilePromise 2.0
ClipboardFormats BITMAP_FORMAT 1.0
FILE_LIST_FORMAT 1.0
FILE_PROMISE_LIST_FORMAT 2.0
URL_FORMAT 1.0
flash.display LoaderInfo
childSandboxBridge 1.0
parentSandboxBridge 1.0
Stage assignFocus() 1.0
autoOrients 2.0
deviceOrientation 2.0
nativeWindow 1.0
orientation 2.0
orientationChange
orientationChanging
事件 2.0
事件 2.0
setAspectRatio 2.0
setOrientation 2.0
softKeyboardRect 2.6
supportedOrientations 2.6
supportsOrientationChange 2.0
NativeWindow owner 2.6
listOwnedWindows 2.6
NativeWindowInitOptions owner 2.6
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
使用 AIR API
12
包 类 属性、方法或事件
AIR 版本中添加了以下内
容
flash.events Event CLOSING 1.0
DISPLAYING 1.0
PREPARING 2.6
EXITING 1.0
HTML_BOUNDS_CHANGE 1.0
HTML_DOM_INITIALIZE 1.0
HTML_RENDER 1.0
LOCATION_CHANGE 1.0
NETWORK_CHANGE 1.0
STANDARD_ERROR_CLOSE 2.0
STANDARD_INPUT_CLOSE 2.0
STANDARD_OUTPUT_CLOSE 2.0
USER_IDLE 1.0
USER_PRESENT 1.0
HTTPStatusEvent
HTTP_RESPONSE_STATUS 1.0
KeyboardEvent
responseHeaders 1.0
responseURL 1.0
commandKey 1.0
controlKey 1.0
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
使用 AIR API
13
包 类 属性、方法或事件
AIR 版本中添加了以下内
容
flash.net FileReference extension 1.0
httpResponseStatus 事件 1.0
uploadUnencoded() 1.0
NetStream
drmAuthenticate 事件 1.0
onDRMContentData 事件 1.5
preloadEmbeddedData() 1.5
resetDRMVouchers() 1.0
setDRMAuthenticationCredentials() 1.0
URLRequest authenticate 1.0
cacheResponse 1.0
followRedirects 1.0
idleTimeout 2.0
manageCookies 1.0
useCache 1.0
userAgent 1.0
URLStream
httpResponseStatus event 1.0
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
使用 AIR API
14
包 类 属性、方法或事件
flash.printing PrintJob active 2.0
copies 2.0
firstPage 2.0
isColor 2.0
jobName 2.0
lastPage 2.0
maxPixelsPerInch 2.0
paperArea 2.0
printableArea 2.0
printer 2.0
printers 2.0
selectPaperSize() 2.0
showPageSetupDialog() 2.0
start2() 2.0
supportsPageSetupDialog 2.0
AIR 版本中添加了以下内
容
terminate() 2.0
PrintJobOptions
flash.system Capabilities
LoaderContext
Security
flash.ui KeyLocation D_PAD 2.5
pixelsPerInch 2.0
printMethod 2.0
languages 1.1
allowLoadBytesCodeExecution 1.0
APPLICATION 1.0
以上多数新增属性和方法都只对 AIR 应用程序安全沙箱中的内容可用。但 URLRequest 类中的新增成员对于其他沙箱中运行
的内容也可用。
ByteArray.compress() 和 ByteArray.uncompress() 方法都包含一个新的 algorithm 参数,供您在 deflate 和 zlib 压缩之间选择。
此参数仅对
AIR 中运行的内容可用。
特定于 AIR 的 Flex 组件
开发 Adobe AIR 内容时可以使用以下 Adobe® Flex™ MX 组件:
• FileEvent
• FileSystemComboBox
• FileSystemDataGrid
• FileSystemEnumerationMode
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
使用 AIR API
• FileSystemHistoryButton
• FileSystemList
• FileSystemSizeDisplayMode
• FileSystemTree
• FlexNativeMenu
• HTML
• Window
• WindowedApplication
• WindowedSystemManager
另外, Flex 4 包括下列 spark AIR 组件:
• Window
• WindowedApplication
有关 AIR Flex 组件的详细信息,请参阅使用 Flex AIR 组件 。
15
上次更新 2011/10/13
第 4 章 : 适用于 AIR 开发的 Adobe Flash
16
Platform
您可以使用下列 Adobe Flash Platform 开发工具开发 AIR 应用程序。
对于
ActionScript 3.0 ( Flash 和 Flex)开发人员:
• Adobe Flash Professional (请参阅为 AIR 发布 )
• Adobe Flex 3.x 和 4.x SDK (请参阅第 17 页的 “ 安装 Flex SDK ” 和第 125 页的 “AIR Developer Tool (ADT) ”)
• Adobe Flash Builder (请参阅使用 Flash Builder 开发 AIR 应用程序)
对于 HTML 和 Ajax 开发人员:
• Adobe AIR SDK (请参阅第 16 页的 “ 安装 AIR SDK ” 和第 125 页的 “AIR Developer Tool (ADT) ” )
• Adobe Dreamweaver CS3 、 CS4 、 CS5 (请参阅 Dreamweaver 的 AIR 扩展 )
工具
安装 AIR SDK
Adobe AIR SDK 中包含以下命令行工具,可用于启动和打包应用程序:
AIR Debug Launcher (ADL) 允许您在不进行安装的情况下运行 AIR 应用程序。请参阅 第 121 页的 “AIR Debug Launcher
。
(ADL)”
AIR Development Tool (ADT) 将 AIR 应用程序打包为可分发的安装包。请参阅第 125 页的 “AIR Developer Tool
(ADT)”
。
AIR
命令行工具要求必须在计算机上安装 Java 。可以使用 JRE 或 JDK (1.5 或更高版本)中的 Java 虚拟机。可以在
/http://java.sun.com/
要运行 ADT 工具,至少需要 2GB 的计算机内存。
注: 最终用户运行 AIR 应用程序时不需要 Java 。
有关使用
”。
AIR SDK 构建 AIR 应用程序的简介,请参阅第 30 页的 “ 使用 AIR SDK 创建第一个基于 HTML 的 AIR 应用程序
上找到 Java JRE 和 Java JDK 。
下载并安装 AIR SDK
可以按照以下说明下载并安装 AIR SDK :
在
Windows 中安装 AIR SDK
• 下载 AIR SDK 安装文件。
• AIR SDK 按标准归档文件进行分发。若要安装 AIR ,请将 SDK 的内容提取到计算机上的一个文件夹 (例如:
C:\Program Files\Adobe\AIRSDK 或 C:\AIRSDK)中。
• ADL 和 ADT 工具包含在 AIR SDK 的 bin 文件夹中;请将此文件夹的路径添加到 PATH 环境变量中。
在 Mac OS X 中安装 AIR SDK
• 下载 AIR SDK 安装文件。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
适用于 AIR 开发的 Adobe Flash Platform 工具
• AIR SDK 按标准归档文件进行分发。若要安装 AIR ,请将 SDK 的内容提取到计算机上的一个文件夹 (例如:
/Users/<userName>/Applications/AIRSDK)中。
• ADL 和 ADT 工具包含在 AIR SDK 的 bin 文件夹中;请将此文件夹的路径添加到 PATH 环境变量中。
在 Linux 中安装 AIR SDK
• 此 SDK 是以 tbz2 格式提供的。
• 要安装此 SDK ,请创建一个要在其中解压缩此 SDK 的文件夹,然后使用以下命令:tar -jxvf <path to AIR-SDK.tbz2>
有关使用 AIR SDK 工具快速入门的信息,请参阅 “ 使用命令行工具创建 AIR 应用程序 ” 。
AIR SDK 中的内容
下表介绍了 AIR SDK 中所包含文件的用途:
SDK 文件夹 文件 / 工具描述
bin 使用 AIR Debug Launcher (ADL),可以在不先打包和安装 AIR 应用程序的情况下运行
它。有关使用此工具的信息,请参阅
AIR Developer Tool (ADT) 会将应用程序打包为 AIR 文件以便分发。有关使用此工具的
信息,请参阅第
125 页的 “AIR Developer Tool (ADT) ”。
第 121 页的 “AIR Debug Launcher (ADL) ”。
17
frameworks libs
include include 目录包含用于编写本机扩展的 C 语言标头文件。
install install 目录包含 Android 设备的 Windows USB 启动程序。(这些驱动程序由 Google 提
lib 包含 AIR SDK 工具的支持代码。
runtimes 适用于桌面和适用于移动设备的 AIR 运行时。
samples 此文件夹包含示例应用程序描述符文件、无缝安装功能示例 (badge.swf) 以及默认的 AIR
templates descriptor-template.xml - 应用程序描述符文件的模板,每个 AIR 应用程序都需要该模
目录包含可在 AIR 应用程序中使用的代码库。
目录包含用于编译的 SWF 和 SWC 库的代码。
projects
供,包含在
桌面运行时由
适用于 Android 的 AIR 运行时 (APK 包)可安装在 Android 设备或模拟器上,用于开
发和测试。设备和模拟器使用单独的
Android
应用程序图标。
板。有关应用程序描述符文件的详细描述,请参阅第
”。
在此文件夹中,还可找到
Android SDK 中。)
ADL 用以在打包或安装 AIR 应用程序之前启动此类应用程序。
APK 包。(从 Android Market 可以获取适用于
的公共 AIR 运行时。)
154 页的 “AIR 应用程序描述符文件
AIR 每个发行版的应用程序描述符 XML 结构的架构文件。
安装 Flex SDK
要使用 Adobe® Flex™ 开发 Adobe® AIR® 应用程序,可以选择下列方式:
• 您可以下载并安装 Adobe® Flash® Builder™ ,其中提供了创建 Adobe AIR 项目以及测试、调试和打包 AIR 应用程序的集
成工具。请参阅第 19 页的 “ 在 Flash Builder 中创建第一个桌面 Flex AIR 应用程序 ” 。
• 您可以下载 Adobe® Flex™ SDK 并使用您最喜爱的文本编辑器和命令行工具开发 Flex AIR 应用程序。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
适用于 AIR 开发的 Adobe Flash Platform 工具
有关使用 Flex SDK 构建 AIR 应用程序的简介,请参阅第 33 页的 “ 使用 Flex SDK 创建第一个桌面 AIR 应用程序 ” 。
安装 Flex SDK
使用命令行工具生成 AIR 应用程序要求计算机上必须已安装 Java 。可以使用 JRE 或 JDK (1.5 或更高版本)中的 Java 虚拟
机。
http://java.sun.com/ 上提供了 Java JRE 和 JDK。
注: 最终用户运行 AIR 应用程序时不需要 Java 。
Flex SDK 提供了相关的 AIR API 和命令行工具,可用于对 AIR 应用程序进行打包、编译和调试。
1 如果尚未下载 Flex SDK ,请从以下网址下载:http://opensource.adobe.com/wiki/display/flexsdk/Downloads 。
2 将 SDK 的内容放到一个文件夹 (例如 Flex SDK )中。
3 复制 AIR SDK 的内容并覆盖 Flex SDK 中的文件。
注: 在 Mac 计算机上,确保您复制或替换的是 SDK 文件夹中的个别文件,而不是整个目录。默认情况下,将 Mac 上的某
个目录复制到同名目录上,会删除目标目录中的现有文件,而不会合并两个目录的内容。可在终端窗口中使用 ditto 命令来
AIR SDK 合并到 Flex SDK 中: ditto air_sdk_folder flex_sdk_folder
将
4 命令行 AIR 实用程序位于 bin 文件夹中。
18
设置外部 SDK
为 Android 和 iOS 开发应用程序要求您从平台制造商处下载供给文件、 SDK 或其他开发工具。
有关下载和安装 Android SDK 的信息,请参阅 Android 开发人员:安装 SDK 。从 AIR 2.6 开始,不需要下载 Android
SDK
。 AIR SDK 现已包含安装和启动 APK 包所需的基本组件。不过,对于各种开发任务 (包括创建和运行软件仿真器以及
获取设备屏幕截图)来说, Android SDK 仍然非常有用。
iOS 开发不需要外部 SDK。但是,需要专用证书和供给配置文件。有关更多信息,请参阅从 Apple 获取开发人员文件。
上次更新 2011/10/13
第 5 章 : 创建第一个 AIR 应用程序
在 Flash Builder 中创建第一个桌面 Flex AIR 应用程序
为了通过实际操作较快地说明 Adobe® AIR® 的工作原理,请按照以下说明使用 Adobe® Flash® Builder 创建并打包一个简单的
基于 SWF 文件的 AIR“Hello World” 应用程序。
如果尚未执行这些操作,请下载并安装 Flash Builder 。此外,还需要下载并安装最新版本的 Adobe AIR ,位于此处:
www.adobe.com/go/air_cn。
创建 AIR 项目
Flash Builder 包括用于开发和打包 AIR 应用程序的工具。
19
通过定义一个新项目来开始在
项目的方式相同。
1 打开 Flash Builder 。
2 依次选择 “ 文件 ”>“ 新建 ”>“Flex 项目 ” 。
3 输入项目名称,例如 AIRHelloWorld 。
4 在 Flex 中, AIR 应用程序被视为一种应用程序类型。有两种类型可供您选择:
• 在 Adobe® Flash® Player 中运行的 Web 应用程序
• 在 Adobe AIR 中运行的桌面应用程序
选择 Desktop 作为应用程序类型。
5 单击 “ 完成 ” 以创建此项目。
Flash Builder 和 Flex Builder 中创建 AIR 应用程序,其方式与创建其他基于 Flex 的应用程序
AIR 项目最初由两个文件组成:主 MXML 文件和应用程序 XML 文件 (称为应用程序描述符文件)。后一个文件用于指定应
用程序的属性。
有关详细信息,请参阅使用 Flash Builder 开发 AIR 应用程序 。
编写 AIR 应用程序代码
若要编写 “Hello World” 应用程序代码,请编辑在编辑器中打开的应用程序 MXML 文件 (AIRHelloWorld.mxml) 。(如果
该文件尚未打开,请使用
桌面上的 Flex AIR 应用程序内含在 MXML WindowedApplication 标签内。MXML WindowedApplication 标签用于创
建一个简单窗口,此窗口包括诸如标题栏和关闭按钮之类的基本窗口控件。
Project Navigator 打开该文件。)
1 对 WindowedApplication 组件添加 title 属性,并为此属性赋予值 "Hello World" :
<?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"
title="Hello World">
</s:WindowedApplication>
2 对此应用程序添加 Label 组件 (将其置于 WindowedApplication 标签内),将 Label 组件的 text 属性设置为 "Hello
AIR"
,并设置布局限制以使其保持居中,如下所示:
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
创建第一个 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"
title="Hello World">
<s:Label text="Hello AIR" horizontalCenter="0" verticalCenter="0"/>
</s:WindowedApplication>
3 在刚输入的 Label 组件标签之前,紧跟 WindowedApplication 开始标签添加以下样式块。
<fx:Style>
@namespace s "library://ns.adobe.com/flex/spark";
s|WindowedApplication
{
skinClass:ClassReference("spark.skins.spark.SparkChromeWindowedApplicationSkin");
background-color:#999999;
background-alpha:"0.7";
}
</fx:Style>
这些样式设置将应用于整个应用程序,用稍稍透明的灰色呈现窗口。
现在,应用程序代码类似于如下内容:
<?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"
title="Hello World">
<fx:Style>
@namespace s "library://ns.adobe.com/flex/spark";
s|WindowedApplication
{
skinClass:ClassReference("spark.skins.spark.SparkChromeWindowedApplicationSkin");
background-color:#999999;
background-alpha:"0.7";
}
</fx:Style>
<s:Label text="Hello AIR" horizontalCenter="0" verticalCenter="0"/>
</s:WindowedApplication>
20
接下来,您要更改应用程序描述符中的一些设置,以允许应用程序变得透明:
1 在 Flex Navigator 窗格中,在项目的源目录中找到该应用程序的描述符文件。如果项目名为 AIRHelloWorld ,则该文件
应该名为 AIRHelloWorld-app.xml 。
2 双击该应用程序描述符文件,以便在 Flash Builder 中进行编辑。
3 在 XML 代码中,找到 systemChrome 和 transparent 属性 (属于 initialWindow 属性)的注释行。删除注释。(删除 "<!--"
和 "-->" 注释分隔符。)
4 将 systemChrome 属性的文本值设为 none ,如下所示:
<systemChrome>none</systemChrome>
5 将 transparent 属性的文本值设为 true ,如下所示:
<transparent>true</transparent>
6 保存该文件。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
创建第一个 AIR 应用程序
测试 AIR 应用程序
若要测试编写完的应用程序代码,请在调试模式下运行它。
1 单击主工具栏上的 “ 调试 ” 按钮 。
也可以选择 “ 运行 ”>“ 调试 ” >“AIRHelloWorld 命令 ” 。
生成的
AIR 应用程序应如下例所示:
21
2 通过使用 Label 控件的 horizontalCenter 和 verticalCenter 属性,文本位于窗口的中心位置。移动窗口或调整窗口大小,像
对任何其他桌面应用程序所做的那样。
注: 如果此应用程序不编译,请修正输入代码时无意间造成的语法错误或拼写错误。错误和警告显示在 Flash Builder 的 “ 问题
” 视图中。
打包 AIR 应用程序、为应用程序签名和运行应用程序
现在已准备好将 “Hello World” 应用程序打包为 AIR 文件以进行分发。 AIR 文件是一个包含应用程序文件的归档文件,这里
的应用程序文件为项目 bin 文件夹中包含的所有文件。在此简单示例中,这些文件为 SWF 和应用程序 XML 文件。将此 AIR
包分发给用户,用户随后使用此包安装此应用程序。此过程中的一个必需步骤是对包进行数字签名。
1 确保应用程序没有编译错误并按预期运行。
2 选择 “ 项目 ”>“ 导出发行版 ” 。
3 查看 AIRHelloWorld 项目和 AIRHelloWorld.mxml 应用程序是否已列出。
4 选择 “ 导出为签名的 AIR 包 ” 选项。然后单击 “ 下一步 ” 。
5 如果有现成的数字证书,请单击 “ 浏览 ” 找到并选中它。
6 如果必须创建新的自签名数字证书,请选择 “ 创建 ” 。
7 输入所需信息,然后单击 “ 确定 ” 。
8 单击 “ 完成 ” 以生成名为 AIRHelloWorld.air 的 AIR 包。
现在,既可以从
和运行该应用程序。
Flash Builder 的 Project Navigator 中安装和运行该应用程序,也可以通过双击该 AIR 文件从文件系统安装
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
创建第一个 AIR 应用程序
使用 Flash Professional 创建第一个桌面 AIR 应用程序
为了通过实际操作快速演示 Adobe® AIR® 的工作原理,请遵循本主题中的说明使用 Adobe® Flash® Professional 创建并打包
一个简单的 “Hello World”AIR 应用程序。
如果尚未执行这些操作,请下载并安装 Adobe AIR ,其位置为:www.adobe.com/go/air_cn 。
在 Flash 中创建 Hello World 应用程序
在 Flash 中创建 Adobe AIR 应用程序与创建任何其他 FLA 文件非常相似。以下步骤将指导您完成使用 Flash Professional 创
建简单的 Hello World 应用程序的过程。
创建
Hello World 应用程序
1 启动 Flash 。
2 在 “ 欢迎 ” 屏幕上,单击 “AIR” 以创建具有 Adobe AIR 发布设置的空 FLA 文件。
3 在 “ 工具 ” 面板中选择 “ 文本 ” 工具并在舞台的中央创建静态文本字段(默认值)。将其宽度设置为足以包含 15-20 个字符。
4 在该文本字段中输入文本 “Hello World” 。
5 保存该文件,为其指定一个名称 (例如, HelloAIR )。
22
测试应用程序
1 按 Ctrl + Enter 或选择 “ 控制 ”->“ 测试影片 ”->“ 测试 ” 以在 Adobe AIR 中测试应用程序。
2 若要使用 “ 调试影片 ” 功能,请首先向该应用程序添加 ActionScript 代码。可以通过添加类似以下的 trace 语句来快速尝试
该操作:
trace("Running AIR application using Debug Movie");
3 按 Ctrl + Shift + Enter 或选择 “ 调试 ”->“ 调试影片 ”->“ 调试 ” 以对该应用程序运行 “ 调试影片 ” 。
Hello World 应用程序的外观如下图所示:
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
创建第一个 AIR 应用程序
打包应用程序
1 选择 “ 文件 ”>“ 发布 ” 。
2 使用现有数字证书对 Adobe AIR 包签名或按照下列步骤创建自签名证书:
a 单击 “ 证书 ” 字段旁边的 “ 新建 ” 按钮。
b 填写 “ 发布者名称 ” 、 “ 部门 ” 、 “ 组织名称 ” 、 “ 电子邮件 ” 、 “ 国家 / 地区 ” 、 “ 密码 ” 和 “ 确认密码 ” 条目。
c 指定证书的类型。“ 证书类型 ” 选项是指安全级别:1024-RSA 使用 1024 位密钥(不太安全),2048-RSA 使用 2048
位密钥 (较为安全)。
d 通过填写 “ 另存为 ” 条目或单击 “ 浏览 ...” 按钮浏览到文件夹位置,将信息保存到证书文件中。(例如,
C:/Temp/mycert.pfx)。完成后,请单击 “ 确定 ”。
e Flash 将返回到 “ 数字签名 ” 对话框。您创建的自签名证书的路径和文件名均显示在 “ 证书” 文本框中。如果未显示,请输
入路径和文件名或者单击 “ 浏览 ” 按钮找到并选择它。
f 在“ 数字签名 ” 对话框的 “ 密码 ” 文本字段中输入步骤 b 中所指定的同一个密码。有关对 Adobe AIR 应用程序进行签名的
更多信息,请参阅第 143 页的 “ 对 AIR 文件进行数字签名 ” 。
3 若要创建应用程序和安装程序文件,请单击 “ 发布 ” 按钮。(在 Flash CS4 和 CS5 中,请单击 “ 确定 ” 按钮。)在创建 AIR 文
件之前,必须执行 “ 测试影片 ” 或 “ 调试影片 ” 来创建 SWF 文件和 application.xml 文件。
4 若要安装应用程序,请双击保存该应用程序的同一个文件夹中的 AIR 文件 (application.air) 。
5 在 “ 应用程序安装 ” 对话框中,单击 “ 安装 ” 按钮。
6 检查 “ 安装首选参数 ” 和 “ 位置 ” 设置,确保选中了 “ 安装后启动应用程序 ” 复选框。然后单击 “ 继续 ” 。
7 在出现 “ 安装已完成 ” 消息时,单击 “ 完成 ” 。
23
在 Flash Professional 中创建您的第一个 AIR for Android
应用程序
若要开发 AIR for Android 应用程序,必须从 Adobe Labs 下载 Flash Professional CS5 for Android 扩展。
同时还必须从
创建项目
1 打开 Flash Professional CS5
2 创建新的 AIR for Android 项目。
Flash Professional 主屏幕包括一个用于创建 AIR for Android 应用程序的链接。您也可以选择 “ 文件 ”>“ 新建 ”,然后
选择
3 将文档另存为 HelloWorld.fla
编写代码
由于此教程并不是关于编写代码的,因此只要使用 “ 文本 ” 工具在舞台上写入 “Hello, World!” 即可。
设置应用程序属性
1 选择 “ 文件 ”>“AIR Android 设置 ” 。
2 在 “ 常规 ” 选项卡中,设置下列内容:
• 输出文件:HelloWorld.apk
Android 网站下载并安装 Android SDK,如 Android 开发人员:安装 SDK 中所述。
“AIR for Android” 模板。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
创建第一个 AIR 应用程序
• 应用程序名称:HelloWorld
• 应用程序 ID :HelloWorld
• 版本号:0.0.1
• 高宽比:纵向
3 在 “ 部署 ” 选项卡上,设置下列内容:
• 证书:指向有效的 AIR 代码签名证书。可以单击 “ 创建 ” 按钮以创建新的证书。(通过 Android Marketplace 部署的
Android
应用程序必须具有有效期至少到 2033 年的证书。在 “ 密码 ” 字段中输入证书密码。
• Android 部署类型:调试
• 发布后:同时选择这两个选项
• 在 Android SDK 的工具子目录中输入到 ADB 工具的路径。
4 单击 “ 确定 ” 关闭 “Android 设置 ” 对话框。
应用程序在此开发阶段不需要图标或权限。大多数
能。您仅应设置应用程序真正需要的那些权限,因为如果您的应用程序要求的权限太多,用户可能会拒绝该应用程序。
AIR for Android 应用程序都需要具有一定的权限才能访问受保护的功
5 保存该文件。
在 Android 设备上安装应用程序并对其进行打包
1 确保在您的设备上已启用 USB 调试。您可以在 “ 应用程序 ”>“ 开发 ” 下的 Settings 应用程序中打开 USB 调试。
2 使用 USB 电缆将您的设备连接到计算机上。
3 如果您尚未安装 AIR 运行时,请通过转到 Android Market 并下载 Adobe AIR 进行安装。(也可以使用 第 133 页的
“ADT installRuntime 命令 ” 本地安装 AIR。 AIR SDK 中包括在 Android 设备和仿真器上使用的 Android 包。)
4 选择 “ 文件 ”>“ 发布 ” 。
Flash Professional 会创建 APK 文件,在连接的 Android 设备上安装应用程序,并启动该应用程序。
24
创建第一个用于 iOS 的 AIR 应用程序
AIR 2.6 或更高版本, iOS 4.2 或更高版本
只需使用 Adobe 工具即可编写和生成 iOS 应用程序并测试 iOS 应用程序的基本功能。但是,若要在设备上安装 iOS 应用程序
并分发该应用程序,您必须加入
Provisioning Portal
之用。这些项目和文件包括:
,通过该网站,可以从 Apple 获得在设备上安装应用程序所需的以下项目和文件,以供测试和后续分发
• 开发和分发证书
• 应用程序 ID
• 开发和分发供给文件
创建应用程序内容
创建一个显示文本 “Hello world!” 的 SWF 文件可以使用 Flash Professional 、Flash Builder 或其他 IDE 来执行此任务。此
示例只使用了文本编辑器和
1 在适当的位置创建一个目录,用于存储您的应用程序文件。创建一个名为 HelloWorld.as 的文件,然后使用您喜欢的代码
编辑器编辑该文件。
Apple iOS 开发人员计划(这是一项免费服务)。加入 iOS 开发人员计划之后,可以访问 iOS
Flex SDK 中附带的命令行 SWF 编译器。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
创建第一个 AIR 应用程序
2 添加以下代码:
package{
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.text.TextFieldAutoSize;
public class HelloWorld extends Sprite
{
public function HelloWorld():void
{
var textField:TextField = new TextField();
textField.text = "Hello World!";
textField.autoSize = TextFieldAutoSize.LEFT;
var format:TextFormat = new TextFormat();
format.size = 48;
textField.setTextFormat ( format );
this.addChild( textField );
}
}
}
25
3 使用 amxmlc 编译器编译类:
amxmlc HelloWorld.as
将在相同文件夹中创建一个 SWF 文件:HelloWorld.swf 。
注: 此示例假设您已将环境路径变量设置为包含 amxmlc 的目录。有关设置路径的信息,请参阅第 237 页的 “ 路径环境变
量
”。此外,也可以键入 amxmlc 以及此示例中使用的其他命令行工具的完整路径。
创建应用程序的图标图片和初始屏幕图片
所有 iOS 应用程序都具有在 iTunes 应用程序的用户界面和设备屏幕上显示的图标。
1 在您的项目目录中创建一个目录并将其命名为图标。
2 在该图标目录中创建三个 PNG 文件。将它们分别命名为 Icon_29.png 、 Icon_57.png 和 Icon_512.png 。
3 编辑这些 PNG 文件为应用程序创建适当的图片。这些文件必须为 29×29 像素、 57×57 像素和 512×512 像素。对于此测
试,您可以仅使用纯色正方形作为图片。
注: 将应用程序提交给 Apple 应用程序库时,使用像素为 512 的 JPG 版本文件 (而不是 PNG 版本)。测试应用程序的开
发版本时使用 PNG 版本。
iPhone 上加载应用程序时,所有 iPhone 应用程序均显示初始图像。您可以在 PNG 文件中定义初始图像:
在
1 在主开发目录中,创建名为 Default.png 的 PNG 文件。(不要将此文件放在图标子目录中。确保将此文件命名为
Default.png
,使用大写 D 。)
2 编辑该文件,使其宽 320 像素,高 480 像素。此刻,内容可能显示为纯白色矩形。(您稍后可以进行更改。)
有关这些图形的详细信息,请参阅第
71 页的 “ 应用程序图标 ”。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
创建第一个 AIR 应用程序
创建应用程序描述符文件
创建应用程序描述符文件,该文件指定了应用程序的基本属性。您可以使用 IDE (如 Flash Builder )或文本编辑器来完成此
任务。
1 在包含 HelloWorld.as 的项目文件夹中,创建一个名为 HelloWorld-app.xml 的 XML 文件。使用您喜欢的 XML 编辑器
编辑该文件。
2 添加以下 XML 代码:
<?xml version="1.0" encoding="utf-8" ?>
<application xmlns="http://ns.adobe.com/air/application/2.7" minimumPatchLevel="0">
<id>change_to_your_id</id>
<name>Hello World iOS</name>
<versionNumber>0.0.1</versionNumber>
<filename>HelloWorld</filename>
<supportedProfiles>mobileDevice</supportedProfiles>
<initialWindow>
<content>HelloWorld.swf</content>
<title>Hello World!</title>
</initialWindow>
<icon>
<image29x29>icons/AIRApp_29.png</image29x29>
<image57x57>icons/AIRApp_57.png</image57x57>
<image512x512>icons/AIRApp_512.png</image512x512>
</icon>
</application>
26
为了简单起见,此示例仅设置了少数几个可用的属性。
注: 如果您使用的是 AIR 2 或更早版本,则必须使用 <version> 元素,而非 <versionNumber> 元素。
3 更改应用程序 ID 使其与 iOS Provisioning Portal 中指定的应用程序 ID 相匹配。(不要包含位于 ID 开头的随机捆绑种子
部分。)
4 使用 ADL 测试应用程序:
adl HelloWorld-app.xml -screensize iPhone
ADL 将在桌面上打开一个窗口,其中显示以下文本: Hello World!,如果未显示该文本,请检查源代码和应用程序描述符
中的错误。
编译 IPA 文件
现在您可以使用 ADT 来编译 IPA 安装程序文件:您必须具有 Apple 开发人员证书、私钥(采用 P12 文件格式)和 Apple 开
发供给配置文件。
使用以下选项运行
adt -package -target ipa-debug
-keystore iosPrivateKey.p12 -storetype pkcs12 -storepass qwerty12
-provisioning-profile ios.mobileprovision
HelloWorld.ipa
HelloWorld-app.xml
HelloWorld.swf icons Default.png
(使用一个命令行;在此示例中添加换行符只是为了便于阅读。)
ADT 实用程序,使用自己的值替换 keystore、 storepass 和 provisioning-profile 值:
ADT 在项目目录中生成 iOS 应用程序的安装程序文件 HelloWorld.ipa。编译 IPA 文件可能需要几分钟的时间。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
创建第一个 AIR 应用程序
在设备上安装应用程序
安装 iOS 应用程序以进行测试:
1 打开 iTunes 应用程序。
2 如果您尚未执行此操作,请将该应用程序的供给配置文件添加到 iTunes 。在 iTunes 中,选择 “ 文件 ”>“ 添加到资料库 ” 。然
后选择供给配置文件 (其文件类型为
此刻,要在开发人员设备上测试该应用程序,请使用开发供给配置文件。
mobileprovision)。
27
稍后,将应用程序分发给
个设备),请使用临时供给配置文件。
有关供给配置文件的更多信息,请参阅
iTunes Store 时,请使用分发配置文件。要临时分发应用程序 (不通过 iTunes Store 分发给多
第 56 页的 “iOS 设置 ”。
3 如果已安装相同版本的应用程序, iTunes 的某些版本不会替换该应用程序。在这种情况下,从您的设备和 iTunes 中的应
用程序列表中删除该应用程序。
4 双击您的应用程序的 IPA 文件。此时,您的应用程序应显示在 iTunes 中的应用程序列表中。
5 将您的设备连接到计算机上的 USB 端口。
6 在 iTunes 中,检查 “ 应用程序 ” 选项卡中是否存在该设备,并确保在要安装的应用程序的列表中选中了该应用程序。
7 选择左侧 iTunes 应用程序列表中的设备。然后单击 “ 同步 ” 按钮。完成同步后, Hello World 应用程序会显示在您的
iPhone
上。
如果未安装新版本,请将其从您的设备以及 iTunes 中的应用程序列表中删除,然后重新执行此过程。这可能是因为目前安装
的版本使用的是相同的应用程序
ID 和版本。
编辑初始屏幕图形
在编译应用程序之前,您创建了一个 Default.png 文件 (请参见第 25 页的 “ 创建应用程序的图标图片和初始屏幕图片 ” )。 当
加载应用程序时,此 PNG 文件充当启动图像。在 iPhone 上测试应用程序时,您可能已注意到启动时会出现空白屏幕。
您应更改此图像,使之与您的应用程序 (
1 打开设备上的应用程序。当第一个 “Hello World” 文本出现时,按住 “ 主屏幕 ” 按钮(位于屏幕下方)。在按住 “ 主屏幕 ” 按钮
的同时,按下 “ 睡眠 / 唤醒 ” 按钮 (位于 iPhone 的顶部)。这会捕获一张屏幕快照并将其发送到摄像头卷。
2 通过从 iPhoto 或其他照片传输应用程序传输照片将此图像传输到您的开发计算机。(在 Mac OS 上,您也可以使用图像捕
捉应用程序。)
还可以通过电子邮件将照片发送到您的开发计算机:
“Hello World!”)的启动屏幕相匹配:
• 打开 Photos 应用程序。
• 打开摄像头卷。
• 打开您捕获的屏幕快照图像。
• 点击此图像,然后点击左下角的 “ 转发 ” (箭头)按钮。然后单击 “ 用电子邮件发送照片 ” 按钮并将图像发送给自己。
3 使用 PNG 版本的屏幕捕获图像替换 Default.png 文件 (位于您的开发目录中)。
4 重新编译该应用程序 (请参阅第 26 页的 “ 编译 IPA 文件 ” )并将其重新安装在您的设备中。
该应用程序现在使用的是其加载的新启动屏幕。
注: 您可以为 Default.png 文件创建任何图片,只要尺寸正确 (320 × 480 像素)即可。但是,通常最好将 Default.png 图像
与应用程序的初始状态相匹配。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
创建第一个 AIR 应用程序
使用 Dreamweaver 创建第一个基于 HTML 的 AIR 应用程序
为了通过实际操作较快地说明 Adobe® AIR® 的工作原理,请按照以下说明使用 Adobe® AIR® Extension for Dreamweaver®
创建并打包一个简单的基于 HTML 的 AIR“Hello World” 应用程序。
28
如果尚未执行这些操作,请下载并安装
有关安装 Dreamweaver 的 Adobe AIR 扩展的说明,请参阅安装 Dreamweaver 的 Adobe AIR 扩展 。
有关该扩展的概述 (包括系统要求),请参阅 Dreamweaver 的 AIR 扩展 。
注: 对于桌面和 extendedDesktop 配置文件,只能开发基于 HTML 的 AIR 应用程序。不支持移动配置文件和 tv 配置文件。
Adobe AIR,其位置为:www.adobe.com/go/air_cn。
准备应用程序文件
Adobe AIR 应用程序必须在 Dreamweaver 站点中定义一个起始页及其所有相关页:
1 启动 Dreamweaver 并确保定义一个站点。
2 打开一个新 HTML 页,方法是选择 “ 文件”>“ 新建 ” ,然后在“ 页面类型” 列中选择 HTML ,在 “ 布局 ” 列中选择“ 无 ” ,最后单
击 “ 创建 ” 。
3 在此新页面中,键入 Hello World!
此示例极其简单,但如果需要,也可以根据喜好设定文本样式,将其他内容添加到此页面中,将其他页面链接到此起始页,
等等。
4 将此页面另存为 hello_world.html (“ 文件 ”>“ 保存 ” )。确保将此文件保存在 Dreamweaver 站点中。
有关
Dreamweaver 站点的详细信息,请参阅 Dreamweaver 帮助。
创建 Adobe AIR 应用程序
1 确保在 Dreamweaver 文档窗口中打开 hello_world.html 页。(有关创建此页的说明,请参阅上一部分。)
2 选择 “ 网站 ”>“Air 应用程序设置 ” 。
“AIR 应用程序和设置 ” 对话框中的大多数所需设置都自动为您填充。但是,您必须选择应用程序的起始内容 (或起始
页)。
3 单击 “ 起始内容 ” 选项旁的 “ 浏览 ” 按钮,导航到 hello_world.html 页,然后选择此页。
4 在 “ 数字签名 ” 选项的旁边,单击 “ 设置 ” 按钮。
数字签名用于保证自软件作者创建应用程序起应用程序的代码未经更改或未受损坏,所有 Adobe AIR 应用程序均需要数字
签名。
5 在 “ 数字签名 ” 对话框中,选择 “ 使用数字证书为 AIR 包签名” ,然后单击 “ 创建” 按钮。(如果已具有对某一数字证书的访问
权限,则可以单击
“ 浏览 ” 按钮选择此数字证书。)
6 完成 “ 自签名数字证书 ” 对话框中的所需字段。您将需要输入您的名称,输入密码并确认,以及输入数字证书文件的名称。
Dreamweaver 将在站点根目录中保存此数字证书。
7 单击 “ 确定 ” 以返回 “ 数字签名 ” 对话框。
8 在 “ 数字签名 ” 对话框中,输入您为您的数字证书指定的密码并单击 “ 确定 ” 。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
创建第一个 AIR 应用程序
完成后的 “AIR 应用程序和安装程序设置 ” 对话框可能类似于如下内容:
29
有关所有对话框选项及如何对其编辑的详细说明,请参阅在
Dreamweaver 中创建 AIR 应用程序。
9 单击 “ 创建 AIR 文件 ” 按钮。
Dreamweaver 将创建相应的 Adobe AIR 应用程序文件并将其保存在站点根文件夹中。 Dreamweaver 还将创建
application.xml
文件并将其保存在相同的位置中。此文件的作用像清单一样,定义了应用程序的各种属性。
在桌面上安装应用程序
既然已创建应用程序文件,那就可以在任何桌面上安装该应用程序。
1 将相应的 Adobe AIR 应用程序文件移出 Dreamweaver 站点,并移到您的桌面或其他桌面上。
此步骤为可选步骤。实际上,如果愿意,可以从 Dreamweaver 站点目录直接将新建应用程序安装到计算机上。
2 双击应用程序可执行文件 (.air 文件)以安装应用程序。
预览 Adobe AIR 应用程序
可以随时预览将归属于 AIR 应用程序的页面。即,不必打包应用程序即可查看其安装后的样子。
1 确保在 Dreamweaver 文档窗口中打开 hello_world.html 页。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
创建第一个 AIR 应用程序
2 在 “ 文档 ” 工具栏上,单击 “ 在浏览器中预览 / 调试 ” 按钮,然后选择 “ 在 AIR 中预览 ” 。
也可以按
当您预览此页时,您看到的实际上就是当用户在桌面上安装应用程序之后他们将看到的应用程序起始页。
Ctrl+Shift+F12 (Windows) 或 Cmd+Shift+F12 (Macintosh)。
使用 AIR SDK 创建第一个基于 HTML 的 AIR 应用程序
为了通过实际操作较快地说明 Adobe® AIR® 的工作原理,请遵循以下说明创建并打包一个简单的基于 HTML 的 AIR“Hello
World”
应用程序。
30
开始前,必须已安装运行时并设置了
。 ADL 和 ADT 是命令行实用工具程序,可在 AIR SDK 的 bin 目录中找到(请参阅第 16 页的 “ 安装 AIR SDK ” )。
(ADT)
本教程假定您已经熟悉从命令行运行程序并了解了如何针对您的操作系统设置所需的路径环境变量。
注: 如果您是一名 Adobe® Dreamweaver® 用户,请阅读第 28 页的 “ 使用 Dreamweaver 创建第一个基于 HTML 的 AIR 应
”。
用程序
注: 对于桌面和 extendedDesktop 配置文件,只能开发基于 HTML 的 AIR 应用程序。不支持移动配置文件和 tv 配置文件。
AIR SDK。本教程将涉及使用 AIR Debug Launcher (ADL) 和 AIR Developer Tool
创建项目文件
每个基于 HTML 的 AIR 项目必须包含以下两个文件:可指定应用程序元数据的应用程序描述符文件,以及顶级 HTML 页。
除了这两个所需文件外,此项目还包含一个
JavaScript 代码文件 AIRAliases.js ,该文件可为 AIR API 类定义好记的别名变量。
1 创建一个名为 HelloWorld 的目录以包含项目文件。
2 创建一个名为 HelloWorld-app.xml 的 XML 文件。
3 创建一个名为 HelloWorld.html 的 HTML 文件。
4 将 AIR SDK 的 frameworks 文件夹中的 AIRAliases.js 复制到项目目录中。
创建 AIR 应用程序描述符文件
开始构建 AIR 应用程序前,应创建一个具有以下结构的 XML 应用程序描述符文件:
<application xmlns="...">
<id>…</id>
<versionNumber>…</versionNumber>
<filename>…</filename>
<initialWindow>
<content>…</content>
<visible>…</visible>
<width>…</width>
<height>…</height>
</initialWindow>
</application>
1 打开要编辑的 HelloWorld-app.xml 。
2 添加根 <application> 元素,包括 AIR 命名空间属性:
<application xmlns="http://ns.adobe.com/air/application/2.7"> 命名空间的最后一段 “2.7” 指定应用程序所需的运行时
版本。
3 添加 <id> 元素:
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
创建第一个 AIR 应用程序
<id>examples.html.HelloWorld</id> 应用程序 ID 与发行商 ID (由 AIR 派生自用于对应用程序包进行签名的证书)一
起唯一地标识了应用程序。应用程序
间的通信。
ID 用于安装、访问专用应用程序文件系统存储目录、访问专用加密存储以及应用程序
4 添加 <versionNumber> 元素:
<versionNumber>0.1</versionNumber> 可帮助用户确定安装哪个版本的应用程序。
注: 如果您使用的是 AIR 2 或更早版本,则必须使用 <version> 元素,而非 <versionNumber> 元素。
5 添加 <filename> 元素:
<filename>HelloWorld</filename> 用于操作系统中应用程序可执行文件、安装目录和对应用程序的其他引用的名称。
6 添加包含下列子元素的 <initialWindow> 元素,从而为初始应用程序窗口指定属性:
<content>HelloWorld.html</content> 标识 AIR 要加载的根 HTML 文件。
<visible>true</visible> 使窗口立即可见。
<width>400</width> 设置窗口宽度 (以像素为单位)。
<height>200</height> 设置窗口高度。
7 保存该文件。完整的应用程序描述符文件应如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://ns.adobe.com/air/application/2.7">
<id>examples.html.HelloWorld</id>
<versionNumber>0.1</versionNumber>
<filename>HelloWorld</filename>
<initialWindow>
<content>HelloWorld.html</content>
<visible>true</visible>
<width>400</width>
<height>200</height>
</initialWindow>
</application>
31
此示例仅设置了几个可能的应用程序属性。有关应用程序属性的完整设置 (利用这些设置可以指定窗口镶边、窗口大小、透明
度、默认安装目录、关联文件类型以及应用程序图标等),请参阅
第 154 页的 “AIR 应用程序描述符文件 ”。
创建应用程序 HTML 页
现在需要创建一个简单的 HTML 页以用作 AIR 应用程序的主文件。
1 打开要编辑的 HelloWorld.html 文件。添加以下 HTML 代码:
<html>
<head>
<title>Hello World</title>
</head>
<body onLoad="appLoad()">
<h1>Hello World</h1>
</body>
</html>
2 在该 HTML 的 <head> 部分,导入 AIRAliases.js 文件:
<script src="AIRAliases.js" type="text/javascript"></script>
AIR 针对 HTML window 对象定义一个名为 runtime 的属性。该 runtime 属性使用类的完全限定的包名称来提供对内置
类的访问。例如,若要创建 AIR File 对象,您可以在 JavaScript 中添加以下语句:
AIR
var textFile = new runtime.flash.filesystem.File("app:/textfile.txt");
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
创建第一个 AIR 应用程序
AIRAliases.js 文件为最常用的 AIR API 定义了好记的别名。使用 AIRAliases.js,可以将对 File 类的引用缩短为以下形式:
var textFile = new air.File("app:/textfile.txt");
3 在 AIRAliases 脚本标签下方,添加另一个包含 JavaScript 函数的脚本标签来处理 onLoad 事件:
<script type="text/javascript">
function appLoad(){
air.trace("Hello World");
}
</script>
appLoad() 函数仅调用 air.trace() 函数。使用 ADL 运行应用程序时,跟踪消息会输出到命令控制台。Trace 语句对于调试非
常有用。
4 保存该文件。
现在 HelloWorld.html 文件应如下所示:
<html>
<head>
<title>Hello World</title>
<script type="text/javascript" src="AIRAliases.js"></script>
<script type="text/javascript">
function appLoad(){
air.trace("Hello World");
}
</script>
</head>
<body onLoad="appLoad()">
<h1>Hello World</h1>
</body>
</html>
32
测试应用程序
若要从命令行运行和测试应用程序,请使用 AIR Debug Launcher (ADL) 实用程序。 ADL 可执行程序可以在 AIR SDK 的
bin 目录中找到。如果您仍未安装 AIR SDK,请参阅第 16 页的 “ 安装 AIR SDK ”。
1 打开命令控制台或解释程序。转至为此项目创建的目录中。
2 运行以下命令:
adl HelloWorld-app.xml
AIR 窗口将会打开,以显示应用程序。同时,控制台窗口会显示由于 air.trace() 调用而产生的消息。
有关更多信息,请参阅 第 154 页的 “AIR 应用程序描述符文件 ”。
创建 AIR 安装文件
在成功运行应用程序后,可以使用 ADT 实用程序将应用程序打包到一个 AIR 安装文件中。AIR 安装文件是包含所有应用程序
文件的存档文件,您可以将其分发给用户。必须先安装
为了确保应用程序安全,所有 AIR 安装文件必须经过数字签名。为便于开发,您可以使用 ADT 或其他证书生成工具生成一个
基本的自签名证书。还可以从
VeriSign 或 Thawte 等商用证书颁发机构购买商用代码签名证书。用户安装自签名 AIR 文件
时,发行商在安装过程中会显示为 “ 未知 ” 。这是因为自签名证书仅确保 AIR 文件自创建后没有被更改。而无法阻止某人自签
名一个伪装的
AIR 文件并将其显示为您的应用程序。对于公开发布的 AIR 文件,强烈建议使用可验证的商用证书。有关 AIR
安全问题的概述,请参阅 AIR 安全性 (针对 ActionScript 开发人员)或 AIR 安全性 (针对 HTML 开发人员)。
Adobe AIR,然后才能安装打包的 AIR 文件。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
创建第一个 AIR 应用程序
生成自签名证书和密钥对
❖ 从命令提示符处,输入以下命令 (ADT 可执行文件位于 AIR SDK 的 bin 目录中):
adt -certificate -cn SelfSigned 1024-RSA sampleCert.pfx samplePassword
ADT 会生成一个包含证书和相关私钥的名为 sampleCert.pfx 的 keystore 文件。
33
此示例使用了证书允许设置的最少数量的属性。密钥类型必须为
应用程序进行签名 ” )。
创建 AIR 安装文件
1024-RSA 或 2048-RSA (请参阅第 143 页的 “ 对 AIR
❖ 在命令提示符下,输入以下命令 (在一行中):
adt -package -storetype pkcs12 -keystore sampleCert.pfx HelloWorld.air
HelloWorld-app.xml HelloWorld.html AIRAliases.js
系统将提示您输入 keystore 文件密码。
HelloWorld.air 参数表示 ADT 生成的 AIR 文件。 HelloWorld-app.xml 表示应用程序描述符文件。后面的参数表示应
用程序所使用的文件。此示例仅使用了两个文件,但可以包含任意数量的文件和目录。
HelloWorld.html
在创建
AIR 包后,可以通过双击该包文件来安装和运行应用程序。也可在解释程序或命令窗口中键入 AIR 文件名作为命
令。
是否包含在包中,但是如果您忘记包含 AIRAliases.js ,则应用程序根本无法工作。
ADT 会验证主内容文件
后续步骤
在 AIR 中,通常 HTML 和 JavaScript 代码的行为与其在典型的 Web 浏览器中的行为相同。(事实上, AIR 和 Safari Web
浏览器都使用相同的 WebKit 呈现引擎。)但是,如果在 AIR 中开发 HTML 应用程序,则必须了解一些重要差异。有关这些
差异和其他重要主题的详细信息,请参阅 HTML 和 JavaScript 编程 。
使用 Flex SDK 创建第一个桌面 AIR 应用程序
为了通过实际操作较快地说明 Adobe® AIR® 的工作原理,请按照以下说明使用 Flex SDK 创建一个简单的基于 SWF 的
AIR“Hello World”
包括 AIR SDK )。
SDK
首先必须安装运行时和
。可以在 Flex SDK 的 bin 目录中找到这些程序 (请参阅第 17 页的 “ 安装 Flex SDK ”)。
(ADT)
应用程序。本教程说明如何使用随 Flex SDK 提供的命令行工具编译、测试和打包 AIR 应用程序 (Flex
Adobe® Flex ™。此教程使用 AMXMLC 编译器、 AIR 调试启动器 (ADL) 和 AIR 开发人员工具
创建 AIR 应用程序描述符文件
本节介绍如何创建应用程序描述符,它是具有以下结构的 XML 文件:
<application xmlns="...">
<id>...</id>
<versionNumber>...</versionNumber>
<filename>…</filename>
<initialWindow>
<content>…</content>
<visible>…</visible>
<width>…</width>
<height>…</height>
</initialWindow>
</application>
1 创建名为 HelloWorld-app.xml 的 XML 文件,并将其保存到项目目录中。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
创建第一个 AIR 应用程序
2 添加 <application> 元素,并在其中包含 AIR 命名空间属性:
<application xmlns="http://ns.adobe.com/air/application/2.7"> 命名空间的最后一段 “2.7” 指定应用程序所需的运行时
版本。
3 添加 <id> 元素:
<id>samples.flex.HelloWorld</id> 应用程序 ID 用于唯一地标识应用程序及发行商 ID (通过 AIR 派生自用于对应用程
序包进行签名的证书)。建议采用的形式为以点分隔的反向 DNS 样式的字符串,如 "com.company.AppName" 。应用程序
ID
用于安装、访问专用应用程序文件系统存储目录、访问专用加密存储以及应用程序间的通信。
4 添加 <versionNumber> 元素:
<versionNumber>1.0</versionNumber> 可帮助用户确定安装哪个版本的应用程序。
注: 如果您使用的是 AIR 2 或更早版本,则必须使用 <version> 元素,而非 <versionNumber> 元素。
5 添加 <filename> 元素:
<filename>HelloWorld</filename> 用作操作系统中应用程序可执行文件、安装目录和类似引用的名称。
6 添加包含下列子元素的 <initialWindow> 元素,从而为初始应用程序窗口指定属性:
<content>HelloWorld.swf</content> 标识 AIR 要加载的 SWF 根文件。
<visible>true</visible> 使窗口立即可见。
34
<width>400</width> 设置窗口宽度 (以像素为单位)。
<height>200</height> 设置窗口高度。
7 保存该文件。完整的应用程序描述符文件应如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://ns.adobe.com/air/application/2.7">
<id>samples.flex.HelloWorld</id>
<versionNumber>0.1</versionNumber>
<filename>HelloWorld</filename>
<initialWindow>
<content>HelloWorld.swf</content>
<visible>true</visible>
<width>400</width>
<height>200</height>
</initialWindow>
</application>
此示例仅设置了几个可能的应用程序属性。有关应用程序属性的完整设置 (利用这些设置可以指定窗口镶边、窗口大小、透明
度、默认安装目录、关联文件类型以及应用程序图标等),请参阅 第 154 页的 “AIR 应用程序描述符文件 ”
编写应用程序代码
注: 基于 SWF 的 AIR 应用程序可以使用通过 MXML 或 Adobe® ActionScript® 3.0 定义的主类。此示例使用 MXML 文件
定义其主类。使用
译 ActionScript 类文件。使用 ActionScript 时,主类必须扩展 flash.display.Sprite 。
与所有基于
WindowedApplication
序及其初始窗口的属性、方法和事件。对于
应用程序中,还可以使用 View 或 TabbedViewNavigatorApplication 组件。
Flex
ActionScript 主类创建 AIR 应用程序的过程基本相同。不过不是将 MXML 文件编译成 SWF 文件,而是编
Flex 应用程序类似,使用 Flex 框架构建的 AIR 应用程序包含一个主 MXML 文件。桌面 AIR 应用程序将
组件 (而不是 Application 组件)用作根元素。 WindowedApplication 组件提供用于控制应用程
AIR 不支持多窗口的平台和配置文件,请继续使用 Application 组件。在移动
以下过程将创建 “Hello World” 应用程序:
1 使用文本编辑器创建名为 HelloWorld.mxml 的文件并添加以下 MXML 代码:
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
创建第一个 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"
title="Hello World">
</s:WindowedApplication>
2 接下来,向应用程序添加 Label 组件 (将其放置在 WindowedApplication 标记的内部)。
3 将 Label 组件的 text 属性设置为 "Hello AIR" 。
4 将布局限制设置为始终居中。
以下示例显示到目前为止的代码:
<?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"
title="Hello World">
<s:Label text="Hello AIR" horizontalCenter="0" verticalCenter="0"/>
</s:WindowedApplication>
编译应用程序
在运行和调试应用程序之前,需要先使用 amxmlc 编译器将 MXML 代码编译成 SWF 文件。可以在 Flex SDK 的 bin 目录中
amxmlc 编译器。如果需要,可以将计算机的路径环境设置为包含 Flex SDK bin 目录。设置路径后,可以更方便地在命
找到
令行下运行实用程序。
35
1 打开命令解释程序或终端并导航到 AIR 应用程序的项目文件夹。
2 输入以下命令:
amxmlc HelloWorld.mxml
运行 amxmlc 会生成 HelloWorld.swf ,它包含应用程序的编译代码。
注: 如果应用程序无法编译,请修正语法或拼写错误。错误和警告显示在用于运行 amxmlc 编译器的控制台窗口中。
有关详细信息,请参阅第 117 页的 “ 为 AIR 编译 MXML 和 ActionScript 源文件 ” 。
测试应用程序
若要从命令行运行和测试应用程序,请使用 AIR Debug Launcher (ADL) 启动使用其应用程序描述符文件的应用程序。(可
以在
Flex SDK 的 bin 目录中找到 ADL。)
❖ 在命令提示符下,输入以下命令:
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
创建第一个 AIR 应用程序
adl HelloWorld-app.xml
生成的 AIR 应用程序如下图所示:
通过使用 Label 控件的 horizontalCenter 和 verticalCenter 属性,文本位于窗口的中心位置。移动窗口或调整窗口大小,
像对任何其他桌面应用程序所做的那样。
有关详细信息,请参阅 第 121 页的 “AIR Debug Launcher (ADL) ” 。
创建 AIR 安装文件
在成功运行应用程序后,可以使用 ADT 实用程序将应用程序打包到一个 AIR 安装文件中。AIR 安装文件是包含所有应用程序
文件的存档文件,您可以将其分发给用户。必须先安装 Adobe AIR ,然后才能安装打包的 AIR 文件。
36
为了确保应用程序安全,所有 AIR 安装文件必须经过数字签名。为便于开发,您可以使用 ADT 或其他证书生成工具生成一个
基本的自签名证书。还可以从商用认证机构购买商用代码签名证书。用户安装自签名
为 “ 未知 ” 。这是因为自签名证书仅确保 AIR 文件自创建后没有被更改。而无法阻止某人自签名一个伪装的 AIR 文件并将其显
示为您的应用程序。对于公开发布的
全性 (针对 ActionScript 开发人员)或 AIR 安全性 (针对 HTML 开发人员)。
生成自签名证书和密钥对
AIR 文件,强烈建议使用可验证的商用证书。有关 AIR 安全问题的概述,请参阅 AIR 安
AIR 文件时,发行商在安装过程中会显示
❖ 在命令提示符下,输入以下命令 (可以在 Flex SDK 的 bin 目录中找到 ADT 可执行文件):
adt -certificate -cn SelfSigned 1024-RSA sampleCert.pfx samplePassword
此示例使用了证书允许设置的最少数量的属性。密钥类型必须为 1024-RSA 或 2048-RSA (请参阅第 143 页的 “ 对 AIR
应用程序进行签名 ” )。
创建 AIR 包
❖ 在命令提示符下,输入以下命令 (在一行中):
adt -package -storetype pkcs12 -keystore sampleCert.pfx HelloWorld.air
HelloWorld-app.xml HelloWorld.swf
系统将提示您输入 keystore 文件密码。键入密码并按 Enter 。出于安全方面的考虑,不显示密码字符。
HelloWorld.air 参数表示 ADT 生成的 AIR 文件。 HelloWorld-app.xml 表示应用程序描述符文件。后面的参数表示应
用程序所使用的文件。此示例只使用三个文件,但您可以包括任意数量的文件和目录。
在创建 AIR 包后,可以通过双击该包文件来安装和运行应用程序。也可在解释程序或命令窗口中键入 AIR 文件名作为命
令。
有关详细信息,请参阅第 46 页的 “ 对桌面 AIR 安装文件进行打包 ” 。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
创建第一个 AIR 应用程序
使用 Flex SDK 创建您的第一个 AIR for Android 应用程序
若要开始,必须已安装并设置 AIR 和 Flex SDK 。此教程使用 Flex SDK 中的 AMXMLC 编译器和 AIR Debug Launcher
,以及 AIR SDK 中的 AIR Developer Tool (ADT) 。请参阅第 17 页的 “ 安装 Flex SDK ” 。
(ADL)
同时还必须从 Android 网站下载并安装 Android SDK,如 Android 开发人员:安装 SDK 中所述。
注: 有关 iPhone 开发的信息,请参阅使用 Flash Professional CS5 创建 Hello World iPhone 应用程序 。
创建 AIR 应用程序描述符文件
本节介绍如何创建应用程序描述符,它是具有以下结构的 XML 文件:
<application xmlns="...">
<id>...</id>
<versionNumber>...</versionNumber>
<filename>…</filename>
<initialWindow>
<content>…</content>
</initialWindow>
<supportedProfiles>...</supportedProfiles>
</application>
1 创建名为 HelloWorld-app.xml 的 XML 文件,并将其保存到项目目录中。
2 添加 <application> 元素,并在其中包含 AIR 命名空间属性:
<application xmlns="http://ns.adobe.com/air/application/2.7"> 命名空间的最后一段 “2.7” 指定应用程序所需的运行时
版本。
37
3 添加 <id> 元素:
<id>samples.android.HelloWorld</id> 应用程序 ID 与发行商 ID (由 AIR 派生自用于对应用程序包进行签名的证书)
一起用于唯一地标识应用程序。建议采用的形式为以点分隔的反向 DNS 样式的字符串,如 "com.company.AppName" 。
4 添加 <versionNumber> 元素:
<versionNumber>0.0.1</versionNumber> 可帮助用户确定安装哪个版本的应用程序。
5 添加 <filename> 元素:
<filename>HelloWorld</filename> 用作操作系统中应用程序可执行文件、安装目录和类似引用的名称。
6 添加包含下列子元素的 <initialWindow> 元素,从而为初始应用程序窗口指定属性:
<content>HelloWorld.swf</content> 标识 AIR 要加载的 HTML 根文件。
7 添加 <supportedProfiles> 元素。
<supportedProfiles>mobileDevice</supportedProfiles> 指定应用程序仅在移动配置文件中运行。
8 保存该文件。完整的应用程序描述符文件应如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://ns.adobe.com/air/application/2.7">
<id>samples.android.HelloWorld</id>
<versionNumber>0.0.1</versionNumber>
<filename>HelloWorld</filename>
<initialWindow>
<content>HelloWorld.swf</content>
</initialWindow>
<supportedProfiles>mobileDevice</supportedProfiles>
</application>
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
创建第一个 AIR 应用程序
此示例仅设置了几个可能的应用程序属性。应用程序描述符文件中还有其他可以使用的设置。例如,您可以将
<fullScreen>true</fullScreen>
控制功能,还必须将
有关详细信息,请参阅第 60 页的 “ 设置移动应用程序属性 ” 。
Android 权限添加到应用程序描述符。此简单应用程序不需要权限,因此您现在不需要添加这些权限。
添加到 initialWindow 元素以构建全屏应用程序。若要在 Android 上启用远程调试和访问
编写应用程序代码
创建名为 HelloWorld.as 的文件并使用文本编辑器添加以下代码:
package
{
import flash.display.Sprite;
import flash.text.TextField;
public class HelloWorld extends Sprite
{
public function HelloWorld()
{
var textField:TextField = new TextField();
textField.text = "Hello, World!";
stage.addChild( textField );
}
}
}
38
编译应用程序
在运行和调试应用程序之前,需要先使用 amxmlc 编译器将 MXML 代码编译成 SWF 文件。可以在 Flex SDK 的 bin 目录中
找到
amxmlc 编译器。如果需要,可以将计算机的路径环境设置为包含 Flex SDK bin 目录。设置路径后,可以更方便地在命
令行下运行实用程序。
1 打开命令解释程序或终端并导航到 AIR 应用程序的项目文件夹。
2 输入以下命令:
amxmlc HelloWorld.as
运行 amxmlc 会生成 HelloWorld.swf ,它包含应用程序的编译代码。
注: 如果应用程序无法编译,请修正语法或拼写错误。错误和警告显示在用于运行 amxmlc 编译器的控制台窗口中。
有关详细信息,请参阅第 117 页的 “ 为 AIR 编译 MXML 和 ActionScript 源文件 ” 。
测试应用程序
若要从命令行运行和测试应用程序,请使用 AIR Debug Launcher (ADL) 启动使用其应用程序描述符文件的应用程序。(可
以在 AIR 和 Flex SDK 的 bin 目录中找到 ADL 。)
❖ 在命令提示符下,输入以下命令:
adl HelloWorld-app.xml
有关详细信息,请参阅第 80 页的 “ 使用 ADL 的设备模拟 ” 。
创建 APK 包文件
在成功运行应用程序后,可以使用 ADT 实用程序将应用程序打包到 AIR 包文件中。 APK 包文件是可以分发给用户的本机
Android
应用程序文件格式。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
创建第一个 AIR 应用程序
所有 Android 应用程序都必须进行签名。与 AIR 文件不同,它通常使用自签名的证书对 Android 应用程序进行签名。
Android 操作系统不会尝试建立应用程序开发人员的身份。您可以使用由 ADT 生成的证书对 Android 包进行签名。用于提
交到
Android Market 的应用程序的证书必须至少具有 25 年的有效期。
生成自签名证书和密钥对
❖ 在命令提示符下,输入以下命令 (可以在 Flex SDK 的 bin 目录中找到 ADT 可执行文件):
adt -certificate -validityPeriod 25 -cn SelfSigned 1024-RSA sampleCert.pfx samplePassword
此示例使用了证书允许设置的最少数量的属性。密钥类型必须是 1024-RSA 或 2048-RSA (请参阅第 131 页的 “ADT
certificate
创建 AIR 包
❖ 在命令提示符下,输入以下命令 (在一行中):
adt -package -target apk -storetype pkcs12 -keystore sampleCert.p12 HelloWorld.apk HelloWorld-app.xml
HelloWorld.swf
系统将提示您输入 keystore 文件密码。键入密码并按 Enter 。
有关详细信息,请参阅第 74 页的 “ 打包移动 AIR 应用程序 ” 。
安装
AIR 运行时
您可以通过 Android Market 在您的设备上安装 AIR 运行时的最新版本。也可以在设备或 Android 仿真器上安装您的 SDK
中包括的运行时。
命令 ” )。
39
❖ 在命令提示符下,输入以下命令 (在一行中):
adt -installRuntime -platform android -platformsdk
将 -platformsdk 标志设置为您的 Android SDK 目录 (指定工具文件夹的父级)。
ADT
会安装 SDK 中包括的 Runtime.apk 。
有关详细信息,请参阅第 84 页的 “ 安装用于开发的 AIR 运行时和应用程序 ” 。
安装
AIR 应用程序
❖ 在命令提示符下,输入以下命令 (在一行中):
adt -installApp -platform android -platformsdk path-to-android-sdk -package path-to-app
将 -platformsdk 标志设置为您的 Android SDK 目录 (指定工具文件夹的父级)。
有关详细信息,请参阅第 84 页的 “ 安装用于开发的 AIR 运行时和应用程序 ” 。
您可以通过点击设备或仿真器屏幕上的应用程序图标来启动应用程序。
上次更新 2011/10/13
第 6 章 : 开发针对桌面的 AIR 应用程序
开发桌面 AIR 应用程序的工作流程
开发 AIR 应用程序的基本工作流程和大多数传统开发模式是一样的:编码、编译、测试,并在开发周期即将结束时打包到安装
程序文件中。
可以使用 Flash 、Flex 和 ActionScript 来编写应用程序代码,使用 Flash Professional 、Flash Builder 或 mxmlc 和 compc
命令行编译器进行编译。也可以使用 HTML 和 JavaScript 来编写应用程序代码,并跳过编译步骤。
40
可以使用
Builder
FDB
必须将所有
• 需要访问依赖于平台的 API ,如 NativeProcess 类。
• 应用程序使用本机扩展。
在这种情况下,可以将 AIR 应用程序打包为特定于平台的本机安装程序文件。
ADL 工具来测试桌面 AIR 应用程序,不需要事先打包和安装就可以直接运行应用程序。Flash Professional、Flash
、Dreamweaver 和 Aptana IDE 都是与 Flash 调试器集成的。当从命令行使用 ADL 时,也可以手动启动调试器工具
。 ADL 自身会显示错误和 trace 语句输出。
AIR 应用程序打包到安装文件中。建议使用跨平台 AIR 文件格式,以下情况除外:
基于 SWF 的应用程序
1 编写 MXML 或 ActionScript 代码。
2 创建需要的资源,例如图标位图文件。
3 创建应用程序描述符。
4 编译 ActionScript 代码。
5 测试应用程序。
6 使用 air 目标打包为 AIR 文件并进行签名。
基于 HTML 的应用程序
1 编写 HTML 和 JavaScript 代码。
2 创建需要的资源,例如图标位图文件。
3 创建应用程序描述符。
4 测试应用程序。
5 使用 air 目标打包为 AIR 文件并进行签名。
为 AIR 应用程序创建本机安装程序
1 编写代码 (ActionScript 或 HTML 和 JavaScript )。
2 创建需要的资源,例如图标位图文件。
3 创建应用程序描述符,从而指定 extendedDesktop 配置文件。
4 编译任何 ActionScript 代码。
5 测试应用程序。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对桌面的 AIR 应用程序
6 使用 native 目标在每个目标平台上打包应用程序。
注: 目标平台的本机安装程序必须在该平台上创建。例如,不能在 Mac 上创建 Windows 安装程序。可使用虚拟机 (如
VMWare
)在同一计算机硬件上运行多个平台。
使用捕获的运行时捆绑创建 AIR 应用程序
1 编写代码 (ActionScript 或 HTML 和 JavaScript )。
2 创建需要的资源,例如图标位图文件。
3 创建应用程序描述符,从而指定 extendedDesktop 配置文件。
4 编译任何 ActionScript 代码。
5 测试应用程序。
6 使用 bundle 目标在每个目标平台上打包应用程序。
7 使用捆绑文件创建安装程序。(AIR SDK 不会提供用于创建此类安装程序的工具,但提供许多第三方工具包。)
注: 目标平台的捆绑必须在该平台上创建。例如,不能在 Mac 上创建 Windows 捆绑。可使用虚拟机(如 VMWare )在同一
计算机硬件上运行多个平台。
41
设置桌面应用程序属性
设置应用程序描述符文件中的基本应用程序属性。本节涵盖了与桌面 AIR 应用程序相关的属性。第 154 页的 “AIR 应用程序
描述符文件 ” 全面描述了应用程序描述符文件的元素。
所需的 AIR 运行时版本
使用应用程序描述符文件的命名空间指定应用程序所需的 AIR 运行时版本。
在
application 元素中分配的命名空间,很大程度上决定了应用程序可以使用哪些功能。例如,如果应用程序使用 AIR 1.5 命名
空间,而用户已经安装了 AIR 3.0 ,那么应用程序将参照 AIR 1.5 的行为 (即使该行为在 AIR 3.0 中发生了更改)。只有当您
更改命名空间并发布更新时,应用程序才会访问新的行为和功能。安全性和
使用根 application 元素的 xmlns 属性指定命名空间 :
<application xmlns="http://ns.adobe.com/air/application/3.0">
更多帮助主题
第 158 页的 “application ”
应用程序标识
对于发布的每个应用程序,以下几个设置应该是唯一的。唯一的设置包括 ID 、名称和文件名。
<id>com.example.MyApplication</id>
<name>My Application</name>
<filename>MyApplication</filename>
WebKit 更改是该策略的主要例外项。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对桌面的 AIR 应用程序
更多帮助主题
第 169 页的 “id ”
第 165 页的 “filename ”
第 176 页的 “name ”
应用程序版本
在早于 AIR 2.5 的版本中,可以在 version 元素中指定应用程序。可以使用任何字符串。 AIR 运行时不会解释字符串; “2.0”
不是比 “1.0” 更高的版本。
<!-- AIR 2 or earlier -->
<version>1.23 Beta 7</version>
在 AIR 2.5 和更高版本中,可以在 versionNumber 元素中指定应用程序版本。不能再使用 version 元素。当为 versionNumber
指定值时,必须使用由点分隔的最多三个数字组成的序列,例如 :“0.1.2”。版本号的每段最多可以具有三个数字。
(即,
“999.999.999” 是允许的最大版本号)。不必将所有三段都包含在号码中; “1” 和 “1.0” 都是合法的版本号。
也可以使用 versionLabel 元素来指定版本标签。添加版本标签时,在诸如应用程序安装程序对话框之类的位置中显示的是标
签,而不是版本号。
<!-- AIR 2.5 and later -->
<versionNumber>1.23.7<versionNumber>
<versionLabel>1.23 Beta 7</versionLabel>
42
更多帮助主题
第 182 页的 “version ”
第 183 页的 “versionLabel ”
第 183 页的 “versionNumber ”
主窗口属性
当 AIR 启动桌面上的应用程序时,会创建一个窗口,并在窗口中加载主 SWF 文件或 HTML 页。 AIR 使用 initialWindow 元
素的子元素来控制该初始应用程序窗口的初始外观和行为。
• content — initalWindow 元素的 content 子级中的主应用程序 SWF 文件。当以桌面配置文件中的设备为目标时,可以使用
或 HTML 文件。
SWF
<initialWindow>
<content>MyApplication.swf</content>
</initialWindow>
必须包括 AIR 包中的文件 (使用 ADT 或 IDE )。如果只是引用应用程序描述符中的名称,不会自动将此文件包括进包
中。
• height — 初始窗口的高度。
• maximizable — 是否显示最大化窗口的系统镶边。
• maxSize — 允许的最大尺寸。
• minimizable — 是否显示用于最小化窗口的系统镶边。
• minSize — 允许的最小尺寸。
• renderMode — 在 AIR 3 或更高版本中,对于桌面应用程序,渲染模式可设置为 auto 、cpu 、direct 或 gpu 。在更早版本
的 AIR 中,桌面平台上会忽略此设置。 renderMode 设置在运行时无法更改。
• auto — 基本上与 cpu 模式相同。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对桌面的 AIR 应用程序
• cpu — 呈现显示对象并将其复制到软件的显示内存中。仅在窗口处于全屏模式时, StageVideo 才可用。 Stage3D 使用
软件渲染器。
• direct — 运行时软件将呈现显示对象,但将呈现的帧复制到显示内存中 (块传输)采用硬件加速。 StageVideo 可用。
Stage3D 使用硬件加速 (如果以其他方式可用)。如果窗口透明度设置为 true,则窗口 “ 回退 ” 到软件呈现和块传输。
• gpu — 保留供未来使用,不要在桌面应用程序中使用。
• resizable — 是否显示用于调整窗口大小的系统镶边。
• systemChrome — 是否使用标准操作系统窗口样式。窗口的 systemChrome 设置在运行时无法更改。
• title — 窗口的标题。
• transparent — 窗口是否是 alpha 混合的,以区别于背景。如果开启了透明度,窗口就不能使用系统镶边。窗口的透明设
置在运行时无法更改。
• visible — 窗口是否在创建后即可见。默认情况下,窗口最初是不可见的,以便应用程序可以先绘制内容,然后再使其可
见。
• width — 窗口的宽度。
• x — 窗口的水平位置。
• y — 窗口的垂直位置。
43
更多帮助主题
第 162 页的 “content ”
第 168 页的 “height ”
第 175 页的 “maximizable ”
第 175 页的 “maxSize ”
第 176 页的 “minimizable ”
第 176 页的 “minimizable ”
第 176 页的 “minSize ”
第 178 页的 “renderMode ”
第 179 页的 “resizable ”
第 181 页的 “systemChrome ”
第 182 页的 “title ”
第 182 页的 “transparent ”
第 183 页的 “visible ”
第 184 页的 “width ”
第 184 页的 “x ”
第 185 页的 “y ”
桌面功能
以下元素控制桌面安装和更新功能。
• customUpdateUI — 允许提供自己的对话框来更新应用程序。如果设置为 false (默认),则使用标准 AIR 对话框。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对桌面的 AIR 应用程序
• fileTypes — 指定应用程序将注册为其默认打开程序的文件类型。如果其他应用程序已经是某种文件类型的默认打开程序,
AIR 不会覆盖现有注册。但是,应用程序可以使用 NativeApplication 对象的 setAsDefaultApplication() 方法在运行时
则
覆盖注册。在覆盖用户现有的文件类型关联前,最好征求用户同意。
注: 当将应用程序打包为捕获运行时捆绑 (使用 -bundle 目标)时,会忽略文件类型注册。要注册指定文件类型,必须创建
一个执行注册的安装程序。
• installFolder — 指定相对于标准应用程序安装文件夹 (应用程序安装在其中)的路径。可以使用此设置来提供自定义文件
夹名称和将多个应用程序组合在通用文件夹中。
• programMenuFolder — 为 Windows 的 “ 所有程序 ” 菜单指定菜单层次结构。可以使用该设置将多个应用程序组合在同一
菜单中。如果未指定菜单文件夹,会直接将应用程序快捷方式添加到主菜单中。
44
更多帮助主题
第 163 页的 “customUpdateUI ”
第 167 页的 “fileTypes ”
第 172 页的 “installFolder ”
第 177 页的 “programMenuFolder ”
支持的配置文件
如果应用程序只有在桌面上才有意义,则可以防止将其安装在其他配置文件中的设备上,方法是通过将该配置文件从支持的配
置文件列表中排除。如果应用程序使用
如果应用程序描述符不包括 supportedProfile 元素,则会假定应用程序支持所有定义的配置文件。若要将应用程序限制在特定
的配置文件列表中,请列出这些配置文件,用空格分隔:
<supportedProfiles>desktop extendedDesktop</supportedProfiles>
有关 desktop 和 extendedDesktop 配置文件中支持的 ActionScript 类列表,请参阅第 187 页的 “ 不同配置文件的功能 ”。
更多帮助主题
第 180 页的 “supportedProfiles ”
NativeProcess 类或本机扩展,则系统必须支持 extendedDesktop 配置文件。
必需的本机扩展
支持 extendedDesktop 配置文件的应用程序可以使用本机扩展。
在应用程序描述符中声明 AIR 应用程序使用的所有本机扩展。下面的例子说明了用于指定两个所需本机扩展的语法:
<extensions>
<extensionID> com.example.extendedFeature</extensionID>
<extensionID> com.example.anotherFeature</extensionID>
</extensions>
extensionID 元素的值与扩展描述符文件中的 id 元素的值相同。扩展描述符文件是一个名为 extension.xml 的 XML 文件。已
打包在从本机扩展开发人员处接收到的
ANE 文件中。
应用程序图标
在桌面上,会将应用程序描述符中指定的图标用作应用程序文件、快捷方式和程序菜单的图标。应用程序图标应作为 16x16 、
32x32、 48x48 和 128x128 像素的 PNG 图像集来提供。指定应用程序描述符文件的图标元素中图标文件的路径:
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对桌面的 AIR 应用程序
<icon>
<image16x16>assets/icon16.png</image16x16>
<image32x32>assets/icon32.png</image32x32>
<image48x48>assets/icon48.png</image48x48>
<image128x128>assets/icon128.png</image128x128>
</icon>
如果未提供指定尺寸的图标,则使用第二大尺寸并缩放至适合的大小。如果未提供任何图标,系统会使用默认系统图标。
更多帮助主题
第 168 页的 “icon ”
第 169 页的 “imageNxN ”
忽略的设置
桌面应用程序会忽略应用到移动配置文件功能的应用程序设置。忽略的设置包括:
• android
• aspectRatio
• autoOrients
• fullScreen
• iPhone
45
• renderMode ( AIR 3 之前)
• requestedDisplayResolution
• softKeyboardBehavior
调试桌面 AIR 应用程序
如果使用 IDE (例如 Flash Builder 、 Flash Professional 或 Dreamweaver )开发应用程序,调试工具通常都是内置的。以
调试模式启动就可调试应用程序。如果不是使用支持直接调试的 IDE ,可以使用 AIR Debug Launcher (ADL) 和 Flash
Debugger (FDB)
更多帮助主题
De Monster
第 218 页的 “ 使用 AIR HTML 内部检查器进行调试 ”
使用 ADL 运行应用程序
使用 ADL 可以无需打包和安装,直接运行 AIR 应用程序。如以下示例所示,将应用程序描述符文件作为参数传送给 ADL
(必须首先编译应用程序中的 ActionScript 代码):
adl myApplication-app.xml
ADL 会将 trace 语句、运行时异常和 HTML 分析错误输出到终端窗口。如果 FDB 进程正在等待传入连接,ADL 会连接到调
试器。
来协助调试应用程序。
:Monster Debugger
也可使用
adl -extdir extensionDirs myApplication-app.xml
ADL 调试使用本机扩展的 AIR 应用程序。例如:
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对桌面的 AIR 应用程序
更多帮助主题
第 121 页的 “AIR Debug Launcher (ADL) ”
输出 trace 语句
若要将 trace 语句输出到用于运行 ADL 的控制台,请使用 trace() 函数将 trace 语句添加到代码中。
46
ActionScript
//ActionScript
trace("debug message");
示例:
JavaScript 示例:
//JavaScript
air.trace("debug message");
在 JavaScript 代码中,可使用 alert() 和 confirm() 函数来显示应用程序中的调试消息。此外,语法错误的行号以及任何未捕获
的
JavaScript 异常均输出到该控制台。
注: 若要使用 JavaScript 示例中显示的 air 前缀,则必须将 AIRAliases.js 文件导入到此页。此文件位于 AIR SDK 的
frameworks
目录中。
连接 Flash Debugger (FDB)
若要使用 Flash Debugger 调试 AIR 应用程序,请启动 FDB 会话然后使用 ADL 启动您的应用程序。
注: 在基于 SWF 的 AIR 应用程序中,必须使用 -debug 标志编译 ActionScript 源文件。(在 Flash Professional 中,选中 “
发布设置 ” 对话框中的 “ 允许调试 ” 选项。)
1 启动 FDB 。可以在 Flex SDK 的 bin 目录中找到 FDB 程序。
控制台显示
2 执行 run 命令:<fdb>run [Enter]
3 在不同命令或解释程序控制台中,启动应用程序的调试版本:
adl myApp.xml
FDB 提示符:<fdb>
4 使用 FDB 命令根据需要设置断点。
5 键入:continue [Enter]
如果 AIR 应用程序基于 SWF ,则调试器只控制 ActionScript 代码的执行。如果 AIR 应用程序基于 HTML ,则调试器只控
制 JavaScript 代码的执行。
若要在不连接到调试器的情况下运行
adl myApp.xml -nodebug
有关 FDB 命令的基本信息,请执行 help 命令:
<fdb>help [Enter]
有关 FDB 命令的详细信息,请参阅 Flex 文档中的使用命令行调试器命令 。
ADL,请加入 -nodebug 选项:
对桌面 AIR 安装文件进行打包
每个 AIR 应用程序必须至少包含一个应用程序描述符文件和主 SWF 或 HTML 文件。任何随应用程序安装的其他资源也必须
打包在 AIR 文件中。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对桌面的 AIR 应用程序
本文讨论了使用 SDK 随附的命令行工具对 AIR 应用程序进行打包。有关使用 Adobe 创作工具对应用程序进行打包的信息,
请参阅以下内容:
• Adobe® Flex® Builder™,请参阅使用 Flex Builder 打包 AIR 应用程序。
• Adobe® Flash® Builder™,请参阅使用 Flash Builder 打包 AIR 应用程序。
• Adobe® Flash® Professional ,请参阅为 Adobe AIR 发布 。
• Adobe® Dreamweaver® ,请参阅在 Dreamweaver 中创建 AIR 应用程序 。
必须使用数字证书对所有
改。可以使用证书颁发机构颁发的代码签名证书,也可以使用自签名证书。
当使用由受信任证书颁发机构颁发的证书时,因为您的身份是发布者,这就为应用程序的用户提供了一些保证。安装对话框反
映了您的身份已经过证书颁发机构验证这一事实:
AIR 安装程序文件签名。 AIR 安装程序使用该签名验证应用程序文件自签名之后是否未发生任何更
47
由受信任证书签名的应用程序的安装确认对话框
当您使用自签名证书时,用户无法验证您的身份是否为签名者。自签名证书不能完全保证包未经过修改。(这是因为合法的安
装文件在到达用户之前可能被假冒文件替代。)安装对话框反映了发布者的身份无法验证这一事实。用户在安装您的应用程序
时将承担更大的安全风险:
由自签名证书签名的应用程序的安装确认对话框
使用 ADT -package 命令可以在一个步骤中对 AIR 文件进行打包和签名。您还可以使用 -prepare 命令创建一个未签名的中间
包,然后在单独的步骤中使用
注: Java 1.5 版及更高版本不允许在用于保护 PKCS12 证书文件的密码中使用高位 ASCII 字符。当您创建或导出代码签名的证
书文件时,仅在密码中使用常规
-sign 命令对中间包签名。
ASCII 字符。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对桌面的 AIR 应用程序
当对安装包签名时, ADT 将自动连接时间戳签发机构服务器以验证时间。时间戳信息包含在 AIR 文件中。您可以在将来任一
时间安装包含已经过验证的时间戳的
项,但是如果没有时间戳,在对安装文件签名所使用的证书过期后,
如果您正在创建包以更新现有的 AIR 应用程序,必须使用与原始应用程序相同的证书对包进行签名。如果原始证书已续签或已
在过去
180 天内过期,或者您要更改为新的证书,则可以申请迁移签名。迁移签名涉及到使用新证书和旧证书对应用程序 AIR
文件进行签名。使用 -migrate 命令可以应用迁移签名 (如 第 130 页的 “ADT migrate 命令 ” 中所述)。
重要说明: 在原始证书过期后,在严格的 180 天宽限期内可以申请迁移签名。如果没有迁移签名,现有用户必须卸载其现有应
用程序才能安装新版本。宽限期仅适用于在应用程序描述符命名空间中指定 AIR 1.5.3 版或更高版本的应用程序。如果目标是
运行时的早期版本,则没有宽限期。
AIR
AIR 文件。如果 ADT 无法连接到时间戳服务器,则取消打包。您可以覆盖时间戳设置选
AIR 应用程序将停止安装。
AIR 1.1 之前的版本不支持迁移签名。您必须使用 SDK 1.1 或更高版本打包应用程序才能申请迁移签名。
使用 AIR 文件部署的应用程序称为桌面配置文件应用程序。如果应用程序描述符文件不支持桌面配置文件,则不能使用 ADT
为 AIR 应用程序打包本机安装程序。可以使用应用程序描述符文件中的 supportedProfiles 元素限制此配置文件。请参阅第 186
页的 “ 设备配置文件 ” 和 第 180 页的 “supportedProfiles ”。
注: 应用程序描述符文件中的设置确定 AIR 应用程序的标识及其默认安装路径。请参阅 第 154 页的 “AIR 应用程序描述符文件
”。
发行商 ID
从 AIR 1.5.3 开始,将弃用发行商 ID 。新应用程序 (最初使用 AIR 1.5.3 或更高版本发布)不需要也不应指定发行商 ID 。
48
当更新使用 AIR 的早期版本发布的应用程序时,您必须在应用程序描述符文件中指定原始发行商 ID 。否则,会将应用程序的
安装版本和更新版本视为不同的应用程序。如果您使用其他
期版本。
要确定原始发行商 ID ,请在安装原始应用程序的 META-INF/AIR 子目录中查找 publisherid 文件。此文件中的字符串就是发
行商 ID 。要手动指定发行商 ID ,应用程序描述符必须在应用程序描述符文件的命名空间声明中指定 AIR 1.5.3 运行时 (或更
高版本)。
对于在
AIR 1.5.3 之前发布的应用程序 (在应用程序描述符命名空间中指定 AIR 的早期版本时,则是使用 AIR 1.5.3 SDK 发
布的应用程序),将根据签名证书计算发行商 ID 。将此 ID 与应用程序 ID 一起使用来确定应用程序的标识。发行商 ID (如果
存在)用于以下用途:
ID 或省略 publisherID 标签,用户必须在安装新版本之前卸载早
• 验证 AIR 文件是一个更新而不是要安装的新应用程序
• 作为加密本地存储加密密钥的一部分
• 作为应用程序存储目录路径的一部分
• 作为本地连接的连接字符串的一部分
• 作为用于使用 AIR 浏览器内 API 来调用应用程序的标识字符串的一部分
• 作为 OSID (在创建自定义安装 / 卸载程序时使用)的一部分
在
AIR 1.5.3 之前,如果您使用新的或续签的证书对包含迁移签名的应用程序更新进行签名,则可以更改应用程序的发行商
。当发行商 ID 改变时,所有依赖该 ID 的 AIR 功能的行为也会改变。例如,将无法访问现有加密本地存储中的数据,所有
ID
创建到应用程序的本地连接的
在 AIR 1.5.3 或更高版本中,发行商 ID 不是基于签名证书的,而且只能在应用程序描述符中包含 publisherID 标签的情况下
指定。如果为更新
AIR 包指定的发行商 ID 与其当前的发行商 ID 不匹配,则无法更新应用程序。
Flash 或 AIR 实例必须使用连接字符串中的新 ID。
使用 ADT 打包
可以使用 AIR ADT 命令行工具对 AIR 应用程序进行打包。打包前必须先编译所有的 ActionScript 、 MXML 和任何扩展代
码。还必须有代码签名证书。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对桌面的 AIR 应用程序
有关 ADT 命令和选项的详细参考,请参阅 第 125 页的 “AIR Developer Tool (ADT) ” 。
AIR 包
创建
若要创建
adt -package -target air -storetype pkcs12 -keystore ../codesign.p12 myApp.air myApp-app.xml myApp.swf icons
此示例假设指向 ADT 工具的路径存在于命令行 shell 的路径定义中。(有关帮助信息,请参阅第 237 页的 “ 路径环境变量
AIR 包,请使用 ADT package 命令,同时针对发行版将目标类型设置为 air。
”。)
必须从包含应用程序文件的目录运行此命令。示例中的应用程序文件是 myApp-app.xml (应用程序描述符文件)、
myApp.swf 和图标目录。
当运行如上所示的命令时,ADT 会提示输入 keystore 密码。(键入的密码字符不会总是显示;只需在键入结束后按 Enter 。)
从 AIRI 文件创建 AIR 包
您可以对
adt -sign -storetype pkcs12 -keystore ../codesign.p12 myApp.airi myApp.air
AIRI 文件进行签名,以创建可安装的 AIR 包:
对桌面本机安装程序进行打包
49
从 AIR 2 开始,可以使用 ADT 创建本机应用程序安装程序,以用于分布 AIR 应用程序。例如,您可以在 Windows 中构建
EXE 安装程序文件,用来分发 AIR 应用程序。您可以在 Mac OS 中构建一个 DMG 安装程序文件,用来分发 AIR 应用程
一个
序。在 AIR 2.5 和 AIR 2.6 中,您可以在 Linux 中构建一个 DEB 或 RPM 安装程序文件,用来分发 AIR 应用程序。
随本机应用程序安装程序安装的应用程序称为扩展的桌面配置文件应用程序。如果应用程序描述符文件不支持桌面扩展配置文
件,则不能使用
置文件。请参阅第 186 页的 “ 设备配置文件 ” 和 第 180 页的 “supportedProfiles ” 。
您可以通过两种基本方式构建
ADT 为 AIR 应用程序打包本机安装程序。可以使用应用程序描述符文件中的 supportedProfiles 元素限制此配
AIR 应用程序的本机安装程序版本:
• 可以根据应用程序描述符文件及其他源文件构建本机安装程序。(其他源文件可能包括 SWF 文件、 HTML 文件及其他资
源。)
• 还可以根据 AIR 文件或 AIRI 文件构建本机安装程序。
要在其中使用
Windows
请在 Linux 中通过 AIR 2.6 SDK 运行 ADT 。
在创建本机安装程序以分发
ADT 的操作系统必须与要生成本机安装程序文件的操作系统相同。因此,要为 Windows 创建 EXE 文件,请在
中运行 ADT 。要 为 Mac OS 创建 DMG 文件,请在 Mac OS 中运行 ADT 。要 为 Linux 创建 DEB 或 RPG 文件,
AIR 应用程序时,该应用程序将获得下列功能:
• 可以使用 NativeProcess 类启动并与本机进程交互。有关详细信息,请参阅下列内容之一:
• 与 AIR 中的本机进程通信 (针对 ActionScript 开发人员)
• 与 AIR 中的本机进程通信 (针对 HTML 开发人员)
• 可使用本机扩展。
• 它可以使用 File.openWithDefaultApplication() 方法,打开任何默认系统应用程序定义为将其打开的文件,而无论文件为哪
种类型。(对没有随本机安装程序安装的应用程序具有限制。有关详细信息,请参阅语言参考中的
File.openWithDefaultApplication() 条目。)
但是,当将其打包成本机安装程序时,应用程序会失去 AIR 文件格式的某些优点。单个文件不能再分发到所有台式计算机。内
置更新功能 (和
updater 框架)无效。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对桌面的 AIR 应用程序
用户双击本机安装程序文件时,将安装 AIR 应用程序。如果计算机中尚未安装所需的 Adobe AIR 版本,安装程序将从网络下
载该版本并首先安装。如果没有获取正确的
AIR 2
中不支持该操作系统,则安装将失败。
注: 如果希望在已安装的应用程序中可以执行某个文件,请确保在打包应用程序时该文件在文件系统上可执行。(在 Mac 和
Linux
上,如果需要,可以使用 chmod 来设置可执行标记。)
Adobe AIR 版本的网络连接 (如有必要),则安装将失败。此外,如果 Adobe
从应用程序源文件创建一个本机安装程序
要在应用程序的源文件以外构建一个本机安装程序,请在一个命令行中使用带有以下语法的
adt -package AIR_SIGNING_OPTIONS
-target native
[WINDOWS_INSTALLER_SIGNING_OPTIONS]
installer_file
app_xml
[file_or_dir | -C dir file_or_dir | -e file dir ...] ...
-package 命令:
此语法与用于打包 AIR 文件 (不包括本机安装程序)的语法类似。但存在几点差异:
• 可以将 -target native 选项添加到命令中。(如果指定 -target air ,则 ADT 生成 AIR 文件,而不是本机安装程序文件。)
• 可以将目标 DMG 或 EXE 文件指定为 installer_file 。
• 或者,您可以在 Windows 上再添加一组签名选项,如语法清单中的 [WINDOWS_INSTALLER_SIGNING_OPTIONS] 所
指示的那样。在
件进行签名相同类型的证书和签名选项语法 (请参阅第 135 页的 “ADT 代码签名选项 ” )。可以使用相同的证书对 AIR 文
件和安装程序文件进行签名,也可以指定不同的证书。当用户从
Windows 中,除了对 AIR 文件进行签名,还可以对 Windows 安装程序文件进行签名。使用与对 AIR 文
Web 下载已签名的 Windows 安装程序文件时,
Windows 将根据证书标识文件源。
有关除
-target 选项之外的其他 ADT 选项的详细信息,请参阅 第 125 页的 “AIR Developer Tool (ADT) ”。
50
以下示例创建 DMG 文件 (Mac OS 的本机安装程序文件):
adt -package
-storetype pkcs12
-keystore myCert.pfx
-target native
myApp.dmg
application.xml
index.html resources
以下示例创建 EXE 文件 (Windows 的本机安装程序文件):
adt -package
-storetype pkcs12
-keystore myCert.pfx
-target native
myApp.exe
application.xml
index.html resources
以下示例创建 EXE 文件并对其进行签名:
adt -package
-storetype pkcs12
-keystore myCert.pfx
-target native
-storetype pkcs12
-keystore myCert.pfx
myApp.exe
application.xml
index.html resources
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对桌面的 AIR 应用程序
为使用本机扩展的应用程序创建本机安装程序
您可以在源文件以外为应用程序及应用程序所需的本机扩展包构建本机安装程序。在一个命令行中采用以下语法使用
-package
命令:
adt -package AIR_SIGNING_OPTIONS
-target native
[WINDOWS_INSTALLER_SIGNING_OPTIONS]
installer_file
app_xml
-extdir extension-directory
[file_or_dir | -C dir file_or_dir | -e file dir ...] ...
此语法与用于打包本机安装程序的语法相同,具有一个附加选项。使用 -extdir extension-directory 选项可指定包含应用程序使
用的
ANE 文件 (本机扩展)的目录。
有关 ADT 选项的详细信息,请参阅 第 125 页的 “AIR Developer Tool (ADT) ” 。
51
下面的示例为使用本机扩展的应用程序创建一个
adt -package
-storetype pkcs12
-keystore myCert.pfx
-target native
myApp.dmg
application.xml
-extdir extensionsDir
index.html resources
DMG 文件 (用于 Mac OS 的本机安装程序文件):
从 AIR 文件或 AIRI 文件创建本机安装程序
可使用 ADT 基于 AIR 文件或 AIRI 文件生成本机安装程序文件。要基于 AIR 文件构建本机安装程序,请在一个命令行中使用
带有以下语法的
adt -package
-target native
[WINDOWS_INSTALLER_SIGNING_OPTIONS]
installer_file
air_file
ADT -package 命令:
此语法与用于根据 AIR 应用程序的源文件创建本机安装程序的语法类似。但存在几点差异:
• 为 AIR 应用程序指定一个 AIR 文件 (而不是应用程序描述符文件或其他源文件)作为源。
• 不要为 AIR 文件指定签名选项,因为已对该文件进行签名
AIRI 文件构建本机安装程序,请在一个命令行中使用带有以下语法的 ADT -package 命令:
要基于
adt AIR_SIGNING_OPTIONS
-package
-target native
[WINDOWS_INSTALLER_SIGNING_OPTIONS]
installer_file
airi_file
此语法与用于根据 AIR 文件创建本机安装程序的语法类似。但存在几点差异:
• 指定一个 AIRI 文件作为源。
• 为目标 AIR 应用程序指定签名选项。
以下示例基于 AIR 文件创建 DMG 文件 (Mac OS 的本机安装程序文件):
adt -package -target native myApp.dmg myApp.air
以下示例基于 AIR 文件创建 EXE 文件 (Windows 的本机安装程序文件):
adt -package -target native myApp.exe myApp.air
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对桌面的 AIR 应用程序
以下示例基于 AIR 文件创建 EXE 文件并对其进行签名:
adt -package -target native -storetype pkcs12 -keystore myCert.pfx myApp.exe myApp.air
以下示例基于 AIRI 文件创建 DMG 文件 (Mac OS 的本机安装程序文件):
adt -storetype pkcs12 -keystore myCert.pfx -package -target native myApp.dmg myApp.airi
以下示例基于 AIRI 文件创建 EXE 文件 (Windows 的本机安装程序文件):
adt -storetype pkcs12 -keystore myCert.pfx -package -target native myApp.exe myApp.airi
以下示例创建一个 EXE 文件 (基于 AIRI 文件)并使用 AIR 和本机 Windows 签名对该文件进行签名:
adt -package -storetype pkcs12 -keystore myCert.pfx -target native -storetype pkcs12 -keystore myCert.pfx
myApp.exe myApp.airi
为桌面计算机打包捕获运行时捆绑
捕获运行时捆绑是一个包含应用程序代码以及运行时专用版本的包。以此方式打包的应用程序使用捆绑的运行时,而不是安装
在用户计算机上其他位置的共享运行时。
生成的捆绑在 Windows 上是应用程序文件的自包含文件夹,在 Mac OS 上是一个 .app 捆绑。在目标操作系统下运行时,必
须为该操作系统生成捆绑。(虚拟机,如
VMWare,可用于在一台计算机上运行多个操作系统。)
52
不必进行安装即可从该文件夹或捆绑运行应用程序。
优点
• 生成自包含应用程序
• 安装无需进行 Internet 访问
• 安装程序与运行时更新隔离
• 企业可以认证特定应用程序和运行时组合
• 支持传统软件部署模型
• 无需单独的运行时重新分发
• 可使用 NativeProcess API
• 可使用本机扩展
• 可使用 File.openWithDefaultApplication() 函数,无限制
• 可从 USB 或光盘运行,无需安装
缺点
• 当 Adobe 发布安全修补程序时,不会自动向用户提供关键安全修补程序
• 无法使用 .air 文件格式
• 必须创建自己的安装程序 (若需要)
• 不支持 AIR 更新和 API 框架
• 不支持用于从网页安装和启动 AIR 应用程序的 AIR 浏览器内 API
• 在 Windows 上,必须由安装程序处理文件注册
• 需要更大的应用程序磁盘空间
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对桌面的 AIR 应用程序
在 Windows 上创建捕获运行时捆绑
要为 Windows 创建捕获运行时捆绑,必须在 Windows 操作系统下运行时打包应用程序。使用 ADT bundle 目标打包应用
程序:
adt -package
-keystore ..\cert.p12 -storetype pkcs12
-target bundle
myApp
myApp-app.xml
myApp.swf icons resources
此命令在名为 “myApp” 的目录中创建捆绑。目录包含应用程序的文件以及运行时文件。可直接从文件夹运行程序。不过,要
创建一个程序菜单项、注册文件类型或
含用于创建此类安装程序的工具,但提供几个第三方选项,包括商用和免费开放源安装程序工具包。
您可在
WIndows 上对本机可执行文件进行签名,方法是在命令行上的 -target bundle 条目后面另外指定一组签名选项。这些签
名选项标识应用本机
此进程不会对随应用程序打包的任何其他可执行文件进行签名。
文件类型关联
要在
Windows 上将应用程序与公共或自定义文件类型相关联,安装程序必须设置相应的注册表项。应用程序描述符文件的
fileTypes
元素中也应列出文件类型。
Windows 签名时使用的私钥和关联证书。(通常可使用 AIR 代码签名证书。)仅签名主要可执行文件。
URI 方案处理函数,您必须创建一个设置必需的注册表项的安装程序。 AIR SDK 不包
53
有关 Windows 文件类型的更多信息,请参阅 MSDN Library: File Types and File Associations
处理函数注册
URI
要使应用程序采用指定 URI 方案处理 URL 的启动,安装程序必须设置必需的注册表项。
有关注册应用程序以处理 URI 方案的更多信息,请参阅 MSDN Library: Registering an Application to a URL Protocol
在 Mac OS X 上创建捕获运行时捆绑
要为 Mac OS X 创建捕获运行时捆绑,必须在 Macintosh 操作系统下运行时打包应用程序。使用 ADT bundle 目标打包应用
程序:
adt -package
-keystore ../cert.p12 -storetype pkcs12
-target bundle
myApp.app
myApp-app.xml
myApp.swf icons resources
此命令创建名为 “myApp.app” 的应用程序捆绑。捆绑包含应用程序的文件以及运行时文件。双击 myApp.app 图标可运行应
用程序,将其拖放到合适的位置 (如 Applications 文件夹)可进行安装。不过,要注册文件类型或 URI 方案处理函数,必须
编辑应用程序包内的属性列表文件。
要进行分发,可创建一个磁盘映像文件 (.dmg) 。 Adobe AIR SDK 不会提供用于为捕获运行时捆绑创建 dmg 文件的工具。
文件类型关联
要在
Mac OS X 上将应用程序与公共或自定义文件类型相关联,必须编辑捆绑中的 info.plist 文件以设置
CFBundleDocumentTypes
CFBundleURLTypes
。
属性。请参阅 Mac OS X Developer Library: Information Property List Key Reference,
URI 处理函数注册
要使应用程序采用指定
参阅 Mac OS X Developer Library: Information Property List Key Reference, CFBundleDocumentTypes 。
URI 方案处理 URL 的启动,必须编辑捆绑中的 info.plist 文件以设置 CFBundleURLTypes 属性。请
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对桌面的 AIR 应用程序
针对桌面计算机分发 AIR 包
AIR 应用程序可以作为 AIR 包来分发,该包包含应用程序代码和所有资源。可以通过通常采用的任何方法来分发此包,例如,
通过下载、通过电子邮件或通过物理介质 (如 CD-ROM )。用户可以通过双击 AIR 文件来安装此应用程序。可以使用 AIR
浏览器内 API (基于 Web 的 ActionScript 库)让用户安装 AIR 应用程序(如果需要,也可以安装 Adobe® AIR® ),方法是
单击网页上的某个链接。
54
也可以将
件和 Linux 中的 DEB 或 RPM 文件)。可以根据相关的平台惯例,对本机安装包进行分发和安装。将应用程序作为本机包来分
发时,会失去
再使用浏览器内
AIR 应用程序作为本机安装程序来进行打包和分发 (即,可以作为 Windows 中的 EXE 文件、 Mac 中的 DMG 文
AIR 文件格式的某些优点。即,不能再在大部分平台中使用单个安装文件,不能再使用 AIR 更新框架,也不能
API。
在桌面上安装并运行 AIR 应用程序
您可以直接将 AIR 文件发送给接收方。例如,您可以将 AIR 文件作为电子邮件附件或作为网页中的链接发送。
用户下载 AIR 应用程序后,就会按以下说明安装该应用程序:
1 双击 AIR 文件。
计算机上必须安装了 Adobe AIR 。
2 在 “ 安装 ” 窗口中,保留默认设置处于选定状态不变,然后单击 “ 继续 ” 。
在 Windows 中, AIR 会自动执行以下操作:
• 将此应用程序安装到 Program Files 目录
• 为此应用程序创建一个桌面快捷方式
• 创建 “ 开始 ” 菜单快捷方式
• 在 “ 添加 / 删除程序 ” 控制面板中添加一个应用程序条目
在 Mac OS 中,默认情况下,会将此应用程序添加到 Applications 目录中。
如果已安装此应用程序,安装程序将让用户选择是打开此应用程序的现有版本还是更新到所下载 AIR 文件中的版本。安装
程序使用 AIR 文件中的应用程序 ID 和发行商 ID 来标识此应用程序。
3 安装完成后,单击 “ 完成 ” 。
在 Mac OS 中,若要安装某一应用程序的更新版本,用户需要具有足够的系统权限才能将新版本安装到应用程序目录中。在
Windows
应用程序也可以通过 ActionScript 或 JavaScript 安装新版本。有关详细信息,请参阅第 197 页的 “ 更新 AIR 应用程序 ” 。
安装 AIR 应用程序后,用户只需双击此应用程序的图标即可运行它,就像任何其他桌面应用程序一样。
和 Linux 中,用户需要具有管理权限。
• 在 Windows 中,请双击该应用程序的图标 (安装在桌面上或文件夹中),或者从 “ 开始 ” 菜单中选择该应用程序。
• 在 Linux 中,请双击该应用程序的图标 (安装在桌面上或文件夹中),或者从应用程序菜单中选择该应用程序。
• 在 Mac OS 中,请在该应用程序的安装文件夹中双击该应用程序。默认安装目录为 /Applications 目录。
注: 只有为 AIR 2.6 或更早版本开发的 AIR 应用程序可安装在 Linux 上。
AIR 无缝安装 功能,用户可通过单击网页中的链接来安装 AIR 应用程序。使用 AIR 浏览器调用 功能,用户可以通过单
使用
击网页中的链接来运行安装的 AIR 应用程序。下一节中介绍了这些功能。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对桌面的 AIR 应用程序
从网页中安装和运行桌面 AIR 应用程序
AIR 浏览器内 API 使您可以从网页中安装和运行 AIR 应用程序。AIR 浏览器内 API 由 Adobe 承载的 SWF 库 air.swf 提供。
AIR SDK 包括使用此库安装、更新或启动 AIR 应用程序 (如果需要,还有运行时)的示例 “ 标志 ” 应用程序。可以修改提供
的示例标志或创建自己的标志
可以通过网页标志安装任何 AIR 应用程序。但是,只有应用程序描述符文件中包括
<allowBrowserInvocation>true</allowBrowserInvocation> 元素的应用程序才可以通过网页标志来启动。
Web 应用程序,该应用程序直接使用联机 air.swf 库。
55
更多帮助主题
第 190 页的 “AIR.SWF 浏览器内 API ”
通过 Web 分发 AIR 应用程序
在桌面计算机上安装日志
IT 管理员可以使用标准的桌面部署工具以静默方式安装 Adobe AIR 运行时和 AIR 应用程序。 IT 管理员可以执行以下操作:
• 使用工具 (例如, Microsoft SMS 、 IBM Tivoli ,或任何允许使用引导程序进行静默安装的部署工具)以静默方式安装
Adobe AIR
运行时
• 使用用于部署运行时的相同工具以静默方式安装 AIR 应用程序
有关详细信息,请参阅 Adobe AIR 管理员指南 (http://www.adobe.com/go/learn_air_admin_guide_cn) 。
桌面计算机上的安装日志
安装 AIR 运行时本身或 AIR 应用程序时都会记录安装日志。您可以通过查看日志文件帮助确定所有安装或更新问题的发生原
因。
日志文件在以下位置创建:
• Mac :标准系统日志 (/private/var/log/system.log )
可以通过打开控制台应用程序 (通常在实用程序文件夹中可以找到)来查看 Mac 系统日志。
• Windows XP :C:\Documents and Settings\<username>\Local Settings\Application Data\Adobe\AIR\logs\Install.log
• Windows Vista 和 Windows 7 :C:\Users\<username>\AppData\Local\Adobe\AIR\logs\Install.log
• Linux: /home/<username>/.appdata/Adobe/AIR/Logs/Install.log
注: 在 AIR 2 之前的 AIR 版本中不创建这些日志文件。
上次更新 2011/10/13
第 7 章 : 开发针对移动设备的 AIR 应用程序
移动设备上的 AIR 应用程序会作为本机应用程序进行部署。它们使用设备的应用程序格式,而不是 AIR 文件格式。当前 AIR
支持 Android APK 包和 iOS IPA 包。在创建应用程序包的发行版本之后,您可以通过标准平台机制来分发应用程序。对于
Android
您可以使用 AIR SDK 和 Flash Professional 、Flash Builder 或另外的 ActionScript 开发工具,为移动设备构建 AIR 应用程
序。当前不支持基于
注: Research In Motion (RIM) BlackBerry Playbook 提供自己的用于 AIR 开发的 SDK。有关 Playbook 开发的信息,请
参阅
注: 本文档介绍如何使用 AIR 2.6 SDK 或更高版本开发 iOS 应用程序。使用 AIR 2.6+ 创建的应用程序可在运行 iOS 4 或更
高版本的 iPhone 3G 、iPhone 4 和 iPad 设备上安装。若要为早期版本的 iOS 开发 AIR 应用程序,您必须按照构建 iPhone 应
用程序中的说明使用
有关运行 AIR 应用程序的完整系统要求,请参阅 Adobe AIR 系统要求 。
,这通常表示 Android Market ;对于 iOS ,则表示 Apple 应用程序库。
HTML 的移动 AIR 应用程序。
RIM: BlackBerry Tablet OS 开发。
AIR 2 Packager for iPhone。
56
设置开发环境
除了一般的 AIR 、Flex 和 Flash 开发环境设置之外,移动平台还有其他设置要求。(有关设置基本 AIR 开发环境的更多信息,
请参阅第 16 页的 “ 适用于 AIR 开发的 Adobe Flash Platform 工具 ” 。)
Android 设置
AIR 2.6+ 中的 Android 通常不需要特殊设置。 Android ADB 工具包含在 AIR SDK 中(在 lib/android/bin 文件夹中)。
AIR SDK 使用 ADB 工具在设备上安装、卸载并运行应用程序包。您还可以使用 ADB 查看系统日志。若要创建并运行
Android
如果您的应用程序向应用程序描述符中的
须安装更新版本的 Android SDK。将 AIR_ANDROID_SDK_HOME 环境变量或 -platformsdk 命令行参数设置为 SDK 的
文件路径。 AIR 打包工具,即 ADT,使用此 SDK 验证 <manifestAdditions> 元素中的条目。
在
置为引用 Android SDK 文件夹。如果没有设置此环境变量,则必须在 ADT 命令行的 -platformsdk 参数中指定指向 Android
SDK
更多帮助主题
第 141 页的 “ADT 环境变量 ”
第 237 页的 “ 路径环境变量 ”
模拟器,您必须下载单独的 Android SDK 。
<manifestAdditions> 元素添加元素,而当前版本 AIR 认为这些元素无效,那么您必
AIR 2.5 中,您必须从 Google 下载 Android SDK 的单独副本。您可以将 AIR_ANDROID_SDK_HOME 环境变量设
的路径。
iOS 设置
但是,若要在设备上安装和测试 iOS 应用程序并分发该应用程序,您必须加入 Apple iOS 开发人员计划 (这是一项免费服
务)。加入 iOS 开发人员计划之后,可以访问 iOS Provisioning Portal ,通过该网站,可以从 Apple 获得在设备上安装应用
程序所需的以下项目和文件,以供测试和后续分发之用。这些项目和文件包括:
• 开发和分发证书
• 应用程序 ID
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
• 开发和分发供给文件
移动应用程序设计注意事项
移动设备的操作上下文和物理特性要求仔细进行编码和设计。例如,必须要简化代码以实现尽可能最快的执行速度。当然,代
码优化只能起到这么大的作用;在设备限制范围内发挥作用的智能设计还有助于防止可视演示使呈现系统负担过重。
代码
尽管使代码更快地运行始终是有用的,但是大多数移动设备的处理器速度较慢,所以就更值得花费一些时间编写精简代码。此
外,移动设备几乎总是使用电池电能运行。如果用较少的工作量达到相同的效果,则会使用较少的电池电量。
设计
在设计应用程序的用户体验时,必须考虑小屏幕尺寸、触屏交互模式甚至不断变化的移动用户环境等因素。
代码和设计一起
如果您的应用程序使用动画,则呈现优化非常重要。但是,只有代码优化通常是不够的。在设计应用程序可视效果方面,必须
让代码可以将它们有效地呈现出来。
57
重要的优化技术将在优化
对于开发在移动设备上运行良好的应用程序而言是至关重要的。
Flash Platform 的内容指南中进行讨论。该指南中讨论的技术适用于所有 Flash 和 AIR 内容,但是
• Paul Trani :移动 Flash 开发提示和技巧
• roguish: GPU 测试应用程序 (用于移动设备的 AIR)
• Jonathan Campos :AIR for Android 应用程序的优化技巧
• Charles Schulze: AIR 2.6 游戏开发:包含 iOS
应用程序生命周期
当您的应用程序针对其他应用程序丢失焦点时, AIR 会将帧速率降到每秒 4 帧并停止呈现图形。在这种帧速率下,流网络和套
接字连接将会中断。如果您的应用程序不使用此类连接,则可以将帧速率调节为甚至更低的值。
在适当的情况下,您应该停止音频播放并删除对 Geolocation 和 Accelerometer 传感器的侦听器。AIR NativeApplication
对象会调度激活和停用事件。使用这些事件可以管理在活动与背景状态之间的转换。
大多数移动操作系统在终止背景应用程序时都没有警告。通过经常保存应用程序状态,您的应用程序应能够将自己恢复到合理
的状态,不论是从背景返回到活动状态还是通过重新启动。
信息密度
移动设备屏幕的实际大小小于台式机,但像素密度 (每英寸像素数)却更高。相同字体大小生成的字母在移动设备屏幕上显示
的实际上要比在台式机上小。通常必须使用较大的字体才能确保可读性。一般而言,
移动设备通常在活动时以及照明条件很差的情况下使用。考虑您实际可以在屏幕上清晰显示多少信息。它可能比您在具有相同
像素尺寸的台式机屏幕上显示的内容要少。
14 点是易于读取的最小字体大小。
同时考虑用户在触摸屏幕时,他们的手指和手会挡住部分显示区。如果用户需要较长时间地触摸某些交互元素,请将这些元素
置于屏幕的两侧和底部。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
文本输入
许多设备使用虚拟键盘进行文本输入。虚拟键盘会隐藏部分屏幕,并且通常使用起来十分麻烦。避免依赖键盘事件 (软键除
外)。
考虑实现替代方法以使用输入文本字段。例如,要让用户输入数值,您不需要文本字段。您可以提供两个按钮来增加或减少此
值。
软键
移动设备包括数目可变的软键。软键是可通过编程方式具有不同功能的按钮。在您的应用程序中遵守关于这些键的平台惯例。
屏幕方向更改
可以纵向或横向查看移动内容。考虑您的应用程序如何处理屏幕方向更改。有关更多信息,请参阅舞台方向 。
屏幕变暗
在播放视频时,AIR 不会自动阻止屏幕变暗。您可以使用 AIR NativeApplication 对象的 systemIdleMode 属性来控制设备是
否将进入省电模式。(在某些平台上,必须请求适当的权限才能使此功能起作用。)
58
来电呼叫
用户打电话或接听电话时, AIR 运行时会自动将音频调节到静音。在 Android 上,如果您的应用程序在背景中时播放音频,
则应该在应用程序描述符中设置 Android READ_PHONE_STATE 权限。否则, Android 会防止运行时检测电话并自动将
音频调节到静音。请参阅
第 65 页的 “Android 权限 ”。
命中目标
在设计按钮和用户点击的其他用户界面元素时,需要考虑命中目标的大小。这些元素要足够大,以便在触摸屏上使用一个手指
即可激活。此外,还要确保目标之间具有足够的空间。在典型的高分辨率电话屏幕上,命中目标区域应约为每一侧 44 像素到
57
像素。
应用程序包安装大小
移动设备用于安装应用程序和存储数据的空间通常远远小于台式机。通过删除不使用的资源和库将应用程序包大小降至最低。
在 Android 上,安装应用程序时不会将应用程序包提取到单独的文件中。相反,在访问资源时会将这些资源解压缩到临时存
储中。若要将此解压缩的资源存储占用的空间降至最低,请在资源完全加载后关闭文件和
URL 流。
文件系统访问
不同的移动操作系统会施加不同的文件系统限制,而且这些限制通常与由桌面操作系统施加的限制有所不同。因此,平台不
同,用于保存文件和数据的适当位置也可能各不相同。
文件系统之间存在差异所产生的一个结果是, AIR File 类所提供的常用目录的快捷方式不一定总是可用。下表列出了可在
Android
和 iOS 上使用的快捷方式:
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
59
Android iOS
File.applicationDirectory
File.applicationStorageDirectory 可用 可用
File.desktopDirectory SDCard 的根目录 不可用
File.documentsDirectory SDCard 的根目录 可用
File.userDirectory SDCard 的根目录
File.createTempDirectory() 可用 可用
File.createTempFile() 可用 可用
通过 URL 只读 (非本机路径) 只读
不可用
UI 组件
Adobe 正在开发 Flex 框架的移动优化版本。有关详细信息,请参阅 http://labs.adobe.com/technologies/flex/mobile/ 。
同时还提供适用于移动应用程序的社区组件项目。这些项目包括:
• Keith Peters 的 Minimal Comps
• Derrick Grigg 的 Minimal Comps 可更换皮肤版本
• Todd Anderson 的 as3flobile 组件
创建移动设备 AIR 应用程序的工作流程
针对移动设备 (或其他设备)创建 AIR 应用程序的工作流程通常与创建桌面应用程序的工作流程非常相似。主要的工作流程
区别出现在打包、调试和安装应用程序时。例如,AIR for Android 应用程序使用本机 Android APK 包格式而不是 AIR 包格
式。因此,它们也使用标准
Android 安装和更新机制。
AIR for Android
以下步骤是开发用于 Android 的 AIR 应用程序的典型步骤:
• 编写 ActionScript 或 MXML 代码。
• 创建 AIR 应用程序描述符文件 (使用 2.5 或更高版本的命名空间)。
• 编译应用程序。
• 将应用程序打包为 Android 包 (.apk) 。
• 在设备或 Android 仿真器上安装 AIR 运行时 (如果未安装)。
• 在设备 (或 Android 仿真器)上安装应用程序。
• 在设备上启动应用程序。
可以使用 Adobe Flash Builder 、 Adobe Flash Professional CS5 或命令行工具来完成这些步骤。
在 AIR 应用程序完成并打包为 APK 文件之后,您可以将其提交到 Android Market 或通过其他方式进行分发。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
AIR for iOS
以下步骤是开发用于 iOS 的 AIR 应用程序的典型步骤:
• 安装 iTunes 。
• 在 Apple iOS Provisioning Portal 上生成必需的开发人员文件和 ID 。这些项目包括:
• 开发人员证书
• 应用程序 ID
• 供给配置文件
在创建供给配置文件时,必须列出您计划要安装应用程序的任意测试设备的
• 将开发证书和私钥转换为 P12 keystore 文件。
• 编写应用程序 ActionScript 或 MXML 代码。
• 利用 ActionScript 或 MXML 编译器编译应用程序。
• 创建应用程序的图标图片和初始屏幕图片。
• 创建应用程序描述符 (使用 2.6 或更高版本的命名空间)。
• 使用 ADT 对 IPA 文件打包。
• 使用 iTunes 将您的供给配置文件放置在您的测试设备上。
• 在您的 iOS 设备上安装和测试应用程序。您可以使用 iTunes 安装 IPA 文件。
您的 AIR 应用程序一经完成,您可以使用分发证书和供给配置文件重新对其进行打包。然后,就可以将其提交到 Apple 应用
程序库。
ID。
60
设置移动应用程序属性
对于其他 AIR 应用程序,可以在应用程序描述符文件中设置基本应用程序属性。移动应用程序会忽略某些特定于桌面的属性,
例如窗口大小和透明度。移动应用程序还可以使用自己特定于平台的属性。例如,可以在
素,在 iOS 应用程序中包括 iPhone 元素。
通用设置
某些应用程序描述符设置对所有移动设备应用程序都很重要。
所需的 AIR 运行时版本
使用应用程序描述符文件的命名空间指定应用程序所需的 AIR 运行时版本。
在
application 元素中分配的命名空间,很大程度上决定了应用程序可以使用哪些功能。例如,如果应用程序使用 AIR 2.7 命名
空间,但用户安装了某个未来版本,那么应用程序仍将参照 AIR 2.7 的行为 (即使在未来版本中已经更改此行为)。只有当您
更改命名空间并发布更新时,应用程序才会访问新的行为和功能。不过,安全修补程序不受此规则限制。
如果设备 (如
户进行安装或升级。在 iPhone 等包含运行时的设备上,不会发生这种情况 (因为需要的版本和应用程序已经在一开始就打包
在一起了)。
使用根 application 元素的 xmlns 属性指定命名空间。应该将下列命名空间用于移动应用程序 (具体取决于您的目标移动平
台):
Android)所使用的运行时不同于应用程序使用的运行时,那么当用户没有所需的 AIR 版本时,系统将提示用
Android 应用程序中包括 android 元
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
iOS 4+ and iPhone 3Gs+ or Android:
<application xmlns="http://ns.adobe.com/air/application/2.7">
iOS only:
<application xmlns="http://ns.adobe.com/air/application/2.0">
注: 基于 AIR 2.0 SDK ,Packager for iPhone SDK 提供针对 iOS 3 设备的支持。有关构建 iOS 3 的 AIR 应用程序的信息,
请参阅构建 iPhone 应用程序 。 AIR 2.6 SDK (和更高版本)在 iPhone 3G 、 iPhone 4 和 iPad 设备上支持 iOS 4 及更高版
本。
61
更多帮助主题
第 158 页的 “application ”
应用程序标识
对于发布的每个应用程序,以下几个设置应该是唯一的。包括 ID 、名称和文件名。
Android
在 Android 上,通过为 AIR ID 加上前缀 “air.” 将其转换为 Android 包名称。这样的话,如果 AIR ID 是
com.example.MyApp
<id>com.example.MyApp</id>
<name>My Application</name>
<filename>MyApplication</filename>
此外,如果该 ID 在 Android 操作系统上不是合法的包名称,它会转换成合法名称。连字符会更改成下划线;若任何 ID 组件
以数字开头,会在前面加上大写字母 “A” 。例如, ID :3-goats.1-boat ,会转换成包名称:air.A3_goats.A1_boat 。
注: 添加到应用程序 ID 的前缀可以用于标识 Android Market 中的 AIR 应用程序。如果不希望应用程序因前缀而被标识为
AIR
Android
应用程序 ID
,那么 Android 包名称是 air.com.example.MyApp 。
应用程序,您必须对 APK 文件进行解包,更改应用程序 ID ,并按照 Opt-out of AIR application analytics for
中的说明将其重新打包。
iOS 应用程序 ID
请将 AIR 应用程序 ID 设置为与您在 Apple iOS Provisioning Portal 中创建的应用程序 ID 匹配。
iOS
应用程序 ID 包含捆绑种子 ID ,后面跟着捆绑标识符。捆绑种子 ID 是 Apple 分配给应用程序 ID 的一个字符串,例如
5RM86Z4DJM
如果捆绑标识符以通配符结尾,您可以使用任意合法字符串替换该通配符。
。捆绑标识符包含一个您选择的反向域样式名称。捆绑标识符可能以星号 (*) 结尾,表示通配符应用程序 ID 。
例如:
• 如果您的 Apple 应用程序 ID 为 5RM86Z4DJM.com.example.helloWorld ,则您在应用程序描述符中必须使用
com.example.helloWorld。
• 如果您的 Apple 应用程序 ID 为 96LPVWEASL.com.example.* (通配符应用程序 ID),则您可以使用
com.example.helloWorld 或 com.example.anotherApp,或者以 com.example 开头的其他 ID。
• 最后,如果您的 Apple 应用程序 ID 只是捆绑种子 ID 和通配符,如:38JE93KJL.*,则您可以在 AIR 中使用任意应用程序
。
ID
指定应用程序 ID 时,请不要包括应用程序 ID 的捆绑种子 ID 部分。
更多帮助主题
第 169 页的 “id ”
第 165 页的 “filename ”
第 176 页的 “name ”
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
应用程序版本
在 AIR 2.5 和更高版本中,可以在 versionNumber 元素中指定应用程序版本。不能再使用 version 元素。当为 versionNumber
指定值时,必须使用由点分隔的最多三个数字组成的序列,例如 :“0.1.2”。版本号的每段最多可以具有三个数字。
“999.999.999” 是允许的最大版本号)。不必将所有三段都包含在号码中; “1” 和 “1.0” 都是合法的版本号。
(即,
62
也可以使用
屏幕等处一样显示版本号。必须为使用 Android Market 分发的应用程序指定版本标签。如果没有在 AIR 应用程序描述符中指
定
versionLabel 值,则会将 versionNumber 值分配给 Android 版本标签字段。
<!-- AIR 2.5 and later -->
<versionNumber>1.23.7<versionNumber>
<versionLabel>1.23 Beta 7</versionLabel>
在 Android 上,AIR versionNumber 转换为 Android 整数 versionCode ,转换公式为:a*1000000 + b*1000 + c,其中 a、b 和
c
分别代表 AIR 版本号的组成部分:a.b.c 。
更多帮助主题
第 182 页的 “version ”
第 183 页的 “versionLabel ”
第 183 页的 “versionNumber ”
versionLabel 元素来指定版本标签。如果添加了版本标签,就会显示版本标签,而不是像在 Android 应用程序信息
主应用程序 SWF
在 initialWindow 元素的 content 子元素中指定主应用程序 SWF 文件。在移动配置文件中定位设备时,必须使用 SWF 文件
(不支持基于 HTML 的应用程序)。
<initialWindow>
<content>MyApplication.swf</content>
</initialWindow>
必须包括 AIR 包中的文件 (使用 ADT 或 IDE )。如果只是引用应用程序描述符中的名称,不会自动将此文件包括进包中。
主屏幕属性
initialWindow 元素的若干子元素控制主应用程序屏幕的初始外观和行为。
• aspectRatio — 指定应用程序最初应显示为 portrait 格式 (高度大于宽度)还是 landscape 格式 (高度小于宽度)。
<aspectRatio>landscape</aspectRatio>
• autoOrients — 指定舞台是否应随着用户旋转设备或做出与方向相关的其他手势 (如打开或关闭滑动键盘)而自动改变方
向。如果设置为 false (默认),则舞台不会随设备改变方向。
<autoOrients>true</autoOrients>
• fullScreen — 指定应用程序应占据设备的整个显示屏,还是与标准操作系统窗口样式 (如系统状态栏)共享显示屏。
<fullScreen>true</fullScreen>
• renderMode — 指定运行时应使用图形处理单元 (GPU) 还是主要的中心处理单元 (CPU) 渲染应用程序。通常, GPU 渲
染可以提高渲染速度,但某些功能 (例如某些混合模式和 PixelBender 筛选器)在 GPU 模式下无法使用。此外,不同设
备和不同设备驱动程序的
时。
可以将渲染模式设置为
渲染模式。
GPU
<renderMode>gpu</renderMode>
GPU 功能和限制是不同的。应始终在尽可能多的设备上测试应用程序,特别是使用 GPU 模式
gpu、 cpu 或 auto。默认值是 auto,该设置目前回退到 CPU 模式。请勿对 Flex 应用程序使用
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
GPU
模式的限制为:
• Flex 框架不支持 GPU 渲染模式。
• 不支持滤镜
• 不支持 PixelBender 混合和填充
• 不支持以下混合模式:图层、 Alpha 、擦除、叠加、强光、变亮和变暗
• 不建议在播放视频的应用程序中使用 GPU 渲染模式。
• 在 GPU 渲染模式中,当虚拟键盘打开时,不会正确地将文本字段移动到可见的位置。若要确保文本字段在用户输入文
本时可见,请使用舞台和软键盘事件的
softKeyboardRect 属性将文本字段移到可见区域。
• 如果显示对象无法通过 GPU 进行渲染,则根本不会显示。例如,如果将滤镜应用于显示对象,则不会显示该对象。
注: 在 AIR 2.6 以上的版本中,iOS 的 GPU 实现与在更早版本(AIR 2.0 版本)中使用的实现有很大的不同。适用不同的
优化注意事项。
更多帮助主题
第 161 页的 “aspectRatio ”
第 161 页的 “autoOrients ”
第 167 页的 “fullScreen ”
63
第 178 页的 “renderMode ”
支持的配置文件
您可以添加 supportedProfiles 元素,以指定您的应用程序支持哪些设备配置文件。针对移动设备使用 mobileDevice 配置文
件。当使用 Adobe Debug Launcher (ADL) 运行应用程序时, ADL 会将列表中的第一个配置文件用作活动配置文件。您也
可以在运行
以完全忽略 supportedProfiles 元素。在这种情况下, ADL 会将桌面配置文件用作默认的活动配置文件。
若要指定应用程序同时支持移动设备和桌面配置文件,并且您通常要在移动设备配置文件中测试应用程序,请添加以下元素:
<supportedProfiles>mobileDevice desktop</supportedProfiles>
更多帮助主题
第 180 页的 “supportedProfiles ”
第 186 页的 “ 设备配置文件 ”
第 121 页的 “AIR Debug Launcher (ADL) ”
ADL 时使用 -profile 标志,以在支持列表中选择特定的配置文件。如果您的应用程序在所有配置文件下运行,则可
必需的本机扩展
支持 mobileDevice 配置文件的应用程序可以使用本机扩展。
在应用程序描述符中声明 AIR 应用程序使用的所有本机扩展。下面的例子说明了用于指定两个所需本机扩展的语法:
<extensions>
<extensionID> com.example.extendedFeature</extensionID>
<extensionID> com.example.anotherFeature</extensionID>
</extensions>
extensionID 元素的值与扩展描述符文件中的 id 元素的值相同。扩展描述符文件是一个名为 extension.xml 的 XML 文件。已
打包在从本机扩展开发人员处接收到的 ANE 文件中。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
虚拟键盘行为
请将 softKeyboardBehavior 元素设置为 none ,以便可以禁用自动平移和调整大小行为,运行时利用这些行为,可以确保在虚拟
键盘出现后具有焦点的文本条目字段位于视图中。如果您禁用该自动行为,则在虚拟键盘出现后,确保文本条目区域或其他相
关内容可见就是您的应用程序的职责。您可以使用舞台的
将打开以及确定键盘遮住的区域。
softKeyboardRect 属性,结合 SoftKeyboardEvent 来检测何时键盘
64
若要启用该自动行为,请将该元素值设置为
<softKeyboardBehavior>pan</softKeyboardBehavior>
由于 pan 为默认值,省略 softKeyboardBehavior 元素也会启用自动键盘行为。
注: 当您同时使用 GPU 呈现时,不支持平移行为。
更多帮助主题
第 179 页的 “softKeyboardBehavior ”
pan :
Stage.softKeyboardRect
SoftKeyboardEvent
Android 设置
在 Android 平台上,可以使用应用程序描述符的 android 元素将信息添加到 Android 应用程序清单,该清单是 Android 操作
系统使用的应用程序属性文件。创建 APK 包时,ADT 会自动生成 Android Manifest.xml 文件。AIR 会将几个属性设置为某
些功能运行所需要的值。在
分。
注: 对于大多数 AIR 应用程序,您必须在 android 元素内设置应用程序所需的 Android 权限,但通常不需要设置其他任何属
性。
只能设置形式为字符串、整数或布尔值的属性。不支持对应用程序包中的资源的引用进行设置。
AIR 应用程序描述符的 android 部分设置的任何其他属性都会添加到 Manifest.xml 文件的相应部
保留的 Android 清单设置
AIR 会在生成的 Android 清单文档中设置多个清单项目,以确保应用程序和运行时功能正确运行。您不能定义以下设置:
manifest 元素
不能设置 manifest 元素的以下属性:
• package
• android:versionCode
• android:versionName
• xmlns:android
activity
不能设置主 activity 元素的以下属性:
元素
• android:label
• android:icon
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
65
application
不能设置
元素
application 元素的以下属性:
• android:theme
• android:name
• android:label
• android:windowSoftInputMode
• android:configChanges
• android:screenOrientation
• android:launchMode
uses-sdk
您不能包括 uses-sdk 元素。
元素
Android 权限
Android 安全模型需要每个应用程序都请求权限,以便使用在安全性或隐私保护方面有作用的功能。打包应用程序时必须指定
这些权限,并且不能在运行时进行更改。安装应用程序时,
有请求某项功能需要的权限,当应用程序访问该功能时, Android 操作系统可能会引发异常,但并非一定会引发异常。运行时
会将异常传递给应用程序。在无提示失败情况下,权限失败消息会添加到
在 AIR 中,可以在应用程序描述符的 android 元素内指定 Android 权限。以下格式用于添加权限 (其中
PERMISSION_NAME
<android>
<manifestAdditions>
<![CDATA[
<manifest>
</manifest>
]]>
</manifestAdditions>
</android>
是 Android 权限的名称):
<uses-permission android:name="android.permission.PERMISSION_NAME" />
Android 操作系统会通知用户应用程序正在请求哪些权限。如果没
Android 系统日志。
manifest 元素内的 uses-permissions 语句会直接添加到 Android 清单文档。
以下是使用各种 AIR 功能需要的权限:
ACCESS_COARSE_LOCATION 允许应用程序通过 Geolocation 类访问 WIFI 和移动电话网络位置数据。
ACCESS_FINE_LOCATION 允许应用程序通过 Geolocation 类访问 GPS 数据。
ACCESS_NETWORK_STATE 和 ACCESS_WIFI_STATE 允许应用程序通过 NetworkInfo 类访问网络信息。
CAMERA 允许应用程序访问摄像头。
注: 当您请求使用摄像头功能的权限时, Android 会假设应用程序也需要摄像头。如果摄像头是应用程序的可选功能,应该将
uses-feature 元素添加到摄像头清单中,并将需要的属性设置为 false。请参阅 第 67 页的 “Android 兼容性筛选 ”。
INTERNET 允许应用程序提出网络请求。也允许远程调试。
READ_PHONE_STATE 允许 AIR 运行时在打电话期间将音频调节到静音。如果您的应用程序在背景中播放音频,则应设置此
权限。
RECORD_AUDIO 允许应用程序访问麦克风。
WAKE_LOCK 和 DISABLE_KEYGUARD 允许应用程序使用 SystemIdleMode 类设置阻止设备休眠。
WRITE_EXTERNAL_STORAGE 允许应用程序写入设备上的外部存储卡。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
例如,若要为会需要每种权限的应用程序设置该权限,可以将以下内容添加到应用程序描述符:
<android>
<manifestAdditions>
<![CDATA[
<manifest>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>
]]>
</manifestAdditions>
</android>
更多帮助主题
Android
安全性和权限
66
Android Manifest.permission 类
Android 自定义 URI 方案
可以使用自定义 URI 方案从网页或本机 Android 应用程序启动 AIR 应用程序。自定义 URI 支持依赖于 Android 清单中指
定的方法滤镜,因此在其他平台上不能使用此技术。
若要使用自定义
素。编辑 <data android:scheme="my-customuri "/> 语句以反映自定义方案的 URI 字符串。
<android>
<manifestAdditions>
</manifestAdditions>
</android>
URI,请将方法滤镜添加到应用程序描述符的 <android> 区块内。必须指定以下示例中的两个 intent-filter 元
<![CDATA[
<manifest>
<application>
<activity>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="my-customuri"/>
</intent-filter>
</activity>
</application>
</manifest>
]]>
方法滤镜会通知 Android 操作系统可以使用您的应用程序执行指定操作。对于自定义 URI 而言,这意味着用户单击了使用该
方案的链接 (浏览器不知道该如何处理)。
URI
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
通过自定义 URI 调用应用程序时, NativeApplication 对象会调度一个 invoke 事件。此链接的 URL (包括查询参数)放在
InvokeEvent
注: StageWebView 实例中的链接无法打开使用自定义 URI 方案的 URL。
对象的 arguments 数组中。您可以使用任意多个方法滤镜。
更多帮助主题
Android
方法滤镜
Android 操作和类别
Android 兼容性筛选
Android 操作系统使用应用程序清单文件中的大量元素来确定应用程序与指定设备是否兼容。可以选择将此信息添加到清单
中。如果不包括这些元素,则可以将您的应用程序安装在任何 Android 设备上。但是,它可能不会在任何 Android 设备上都
正常运行。例如,摄像头应用程序在没有摄像头的电话上将没有什么用处。
67
可以用于过滤的
Android 清单标签包括:
• supports-screens
• uses-configuration
• uses-feature
摄像头应用程序
如果为应用程序请求摄像头权限,
不需要所有摄像头功能,或者如果摄像头是可选功能,则应对摄像头的各个 uses-feature 元素进行设置以指示这些功能是可选
的。否则,使用缺少某项功能或根本没有摄像头的设备的用户将无法找到
以下示例说明了如何为摄像头请求权限,以及如何将所有摄像头功能设置为可选:
<android>
<manifestAdditions>
<![CDATA[
<manifest>
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
<uses-feature android:name="android.hardware.camera.flash" android:required="false"/>
</manifest>
]]>
</manifestAdditions>
</android>
录音应用程序
如果您请求录音权限,则 Android 还会假设该应用程序需要麦克风。如果录音是您的应用程序的一个可选功能,则可以添加
uses-feature
标签以指定不需要麦克风。否则,使用不带麦克风设备的用户在 Android Market 上将找不到您的应用程序。
Android 会假设应用程序需要所有可用的摄像头功能,包括自动聚焦和闪光。如果应用程序
Android Market 上的应用程序。
下面的例子说明了如何请求使用麦克风的权限,同时仍然使麦克风硬件处于可选状态:
<android>
<manifestAdditions>
<![CDATA[
<manifest>
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-feature android:name="android.hardware.microphone" android:required="false"/>
</manifest>
]]>
</manifestAdditions>
</android>
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
更多帮助主题
Android
开发人员:Android 兼容性
Android 开发人员: Android 功能名称常量
安装位置
通过将 Android manifest 元素的 installLocation 属性设为 auto 或 preferExternal ,您可以允许将应用程序安装或移动到外部存
储卡上:
<android>
<manifestAdditions>
<![CDATA[
<manifest android:installLocation="preferExternal"/>
]]>
</manifestAdditions>
</android>
Android 操作系统不保证您的应用程序会安装到外部内存上。用户也可以使用系统设置应用程序将应用程序在内部与外部内存
之间进行移动。
即使安装到外部内存,应用程序缓存和用户数据 (如应用程序存储目录的内容、共享对象和临时文件)仍会存储在内部内存
上。若要避免使用太多的内部内存,对于要保存到应用程序存储目录的数据应有所选择。应使用
File.documentsDirectory 位置 (这两者都会映射到 Android 上 SD 卡的根目录)将大量数据保存到 SDCard 上。
File.userDirectory 或
68
在 StageWebView 对象中启用 Flash Player 和其他插件
在 Android 3.0 以上的版本中,应用程序必须在 Android 应用程序元素中启用硬件加速,才能在 StageWebView 对象中显示
插件内容。要启用插件渲染,可将 application 元素的 android:hardwareAccelerated 属性设置为 true :
<android>
<manifestAdditions>
<![CDATA[
<manifest>
<application android:hardwareAccelerated="true"/>
</manifest>
]]>
</manifestAdditions>
</android>
AIR 会验证包含在应用程序描述符 Android 部分中的元素和属性。默认设置下, AIR 会依照 Android 2.2 SDK 进行验证。
由于在 Android 3.0 中添加了 android:hardwareAccelerated 属性,您必须设置 AIR ADT 实用程序以依照 Android 3.0 SDK
(或更新版本)进行验证。
首先下载 Android 3 SDK :Android 开发人员:安装 SDK 。在打包过程中,将 -platformsdk 选项设置为包含相应 Android
SDK
的路径 (将路径设置为包含 Android tools 文件夹的目录)。例如:
adt -package
-target apk
-storetype pkcs12 -keystore cert.p12 -storepass foo
myApp.apk
myApp-app.xml
-platformsdk c:\androidSDK
myApp.swf
other.files
也可将 AIR_ANDROID_SDK_HOME 环境变量设置为包含 Android SDK 的路径。由于 Flash Builder 和 Flash
Professional
Android SDK
不允许您在打包时添加额外参数,因此设置此环境变量可让您在自己使用的 AIR SDK 释放时使用不可用的
设置。请参阅 第 141 页的 “ADT 环境变量 ” 。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
颜色深度
AIR 3+
在 AIR 3 和更高版本中,运行时将显示设置为呈现 32 位颜色。在早期版本的 AIR 中,运行时使用 16 位颜色。您可通过使用
应用程序描述符中的
<android>
<colorDepth>16bit</colorDepth>
<manifestAdditions>...</manifestAdditions>
</android>
使用 16 位颜色深度可提高渲染性能,但是会牺牲颜色保真度。
<colorDepth> 元素,指示运行时使用 16 位颜色:
iOS 设置
仅应用于 iOS 设备的设置会被放置到应用程序描述符的 <iPhone> 元素中。 iPhone 元素可以包含 InfoAdditions 元素和
requestedDisplayResolution 元素作为子元素。
利用 InfoAdditions 元素,您可以指定要添加到应用程序的 Info.plist 设置文件的键值对。例如,下面这些值设置应用程序的状
态栏样式,并声明应用程序不要求永久的
<InfoAdditions>
<![CDATA[
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleBlackOpaque</string>
<key>UIRequiresPersistentWiFi</key>
<string>NO</string>
]]>
</InfoAdditions>
Wi-Fi 访问。
69
InfoAdditions 设置括在 CDATA 标记中。
有关 Info.plist 设置的更多详细信息,请参阅 Apple 开发人员文档。
保留的 iOS InfoAdditions 设置
AIR 会在生成的 Info.plist 文件中设置多个条目,以确保应用程序和运行时功能正确运行。您不能定义以下设置:
CFBundleDisplayName
CFBundleExecutable
CFBundleIconFiles
CFBundleIdentifier
CFBundleInfoDictionaryVersion
CFBundlePackageType
CFBundleResourceSpecification
CFBundleShortVersionString
CFBundleSupportedPlatforms
CFBundleVersion
CTAutoOrients
CTInitialWindowTitle
CTInitialWindowVisible
DTPlatformName
DTSDKName
MinimumOSVersion
NSMainNibFile
UIInterfaceOrientation
UIStatusBarHidden
UISupportedInterfaceOrientations
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
支持不同的 iOS 设备型号
为了支持 iPad,请为 InfoAdditions 元素中的 UIDeviceFamily 添加正确的键值设置。 UIDeviceFamily 设置是一个字符串数组。
每个字符串都定义受支持的设备。
iPad 的支持。如果仅指定其中一个字符串,则仅支持该设备系列。例如,下面的设置限制对 iPad 的支持:
对
<key>UIDeviceFamily</key>
<array>
<string>2</string>
</array>>
<string>1</string> 设置定义对 iPhone 和 iPod Touch 的支持。<string>2</string> 设置定义
下面的设置支持两个设备系列 (iPhone/iPod Touch 和 iPad ):
<key>UIDeviceFamily</key>
<array>
<string>1</string>
<string>2</string>
</array>
高分辨率显示器
利用 requestedDisplayResolution 元素,可以指定在具有高分辨率屏幕的 iOS 设备上,应用程序是应该使用 standard 分辨率模
式还是应该使用 high 分辨率模式。
<requestedDisplayResolution>high</requestedDisplayResolution>
70
在高分辨率模式中,您可以在高分辨率显示屏上逐个处理每个像素。在标准模式中,设备屏幕将以标准分辨率显示应用程序。
在该模式中绘制单个像素会在高分辨率屏幕上设置四个像素的颜色。
默认设置为 standard 。请注意, requestedDisplayResolution 元素是 iPhone 元素 (而不是 InfoAdditions 元素)的子元素。
更多帮助主题
第 179 页的 “requestedDisplayResolution ”
Renaun Erickson
:使用 AIR 2.6 开发 Retina 和非 Retina iOS 屏幕
iOS 自定义 URI 方案
您可以注册自定义 URI 方案,以便允许您的应用程序由网页中的链接或设备上的其他本机应用程序进行调用。若要注册 URI
方案,请将 CFBundleURLTypes 键添加到 InfoAdditions 元素中。下面的示例注册了一个名为 com.example.app 的 URI
方案,从而允许应用程序由 example://foo 形式的 URL 进行调用。
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>example</string>
</array>
<key>CFBundleURLName</key>
<string>com.example.app</string>
</dict>
</array>
通过自定义 URI 调用应用程序时, NativeApplication 对象会调度一个 invoke 事件。此链接的 URL (包括查询参数)放在
InvokeEvent
注: StageWebView 实例中的链接无法打开使用自定义 URI 方案的 URL。
注: 如果另一个应用程序已注册某个方案,则您的应用程序不能将其替换成为该 URI 方案注册的应用程序。
对象的 arguments 数组中。您可以使用任意多个自定义 URI 方案。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
iOS 兼容性筛选
如果您的应用程序只能在具有特定硬件或软件功能的设备上使用,则请将条目添加到 InfoAdditions 元素的
UIRequiredDeviceCapabilities
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>microphone</string>
<string>still-camera</string>
</array>
如果设备缺少相应的功能,则无法安装该应用程序。与 AIR 应用程序相关的功能设置包括:
数组中。例如,以下条目表示应用程序需要静态摄像头和麦克风:
71
telephony
wifi
sms
still-camera
auto-focus-camera
front-facing-camera
camera-flash
video-camera
accelerometer
location-services
gps
microphone
AIR 2.6 以上的版本自动将 armv7 和 opengles-2 添加到必需功能的列表中。
注: 您无需为了让应用程序使用这些功能而将其添加到应用程序描述符中。仅需使用 UIRequiredDeviceCapabilities 设置即
可阻止用户在无法正常使用的设备上安装应用程序。
退出而不是暂停
如果用户离开 AIR 应用程序,该应用程序会进入后台并暂停。如果要让应用程序彻底退出而不是暂停,请将
UIApplicationExitsOnSuspend 属性设置为 YES:
<key>UIApplicationExitsOnSuspend</key>
<true/>
应用程序图标
下表列出了每个移动设备平台使用的图标尺寸:
图标尺寸 平台
29x29 iOS
36x36 Android
48x48 Android, iOS
57x57 iOS
72x72 Android, iOS
114x114 iOS
512x512 iOS
指定应用程序描述符文件的图标元素中图标文件的路径:
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
<icon>
<image36x36>assets/icon36.png</image36x36>
<image48x48>assets/icon48.png</image48x48>
<image72x72>assets/icon72.png</image72x72>
</icon>
如果未提供指定尺寸的图标,则使用第二大尺寸并缩放至适合的大小。
72
Android
在
像素、 48x48 像素和 72x72 像素 PNG 图像提供。这些图标尺寸分别用于低密度、中密度和高密度屏幕。
iOS
在应用程序描述符中定义的图标用于 iOS 应用程序的以下位置:
上的图标
Android 上,应用程序描述符中指定的图标会用作应用程序 Launcher 图标。应用程序 Launcher 图标应作为一组 36x36
上的图标
• 29 x 29 像素图标 — iPhone 和 iPod 触摸屏上的 Spotlight 搜索结果使用此图标。
• 48 x 48 像素图标 — iPad 上的 Spotlight 搜索结果使用此图标。
• 57 x 57 像素图标 — iPhone 和 iPod Touch 主屏幕显示此图标。
• 72 x 72 像素图标 (可选) — iPad 主屏幕显示此图标。
• 114 x 114 像素图标 — iPhone 和 iPod Touch 主屏幕图标,用于 960 x 640 像素显示。
• 512 × 512 像素图标 — iTunes 显示此图标。当您将最终应用程序提交给 Apple 应用程序库时, 512 像素 PNG 文件仅用
于测试应用程序的开发版本,须单独以 JPG 文件格式提交 512 图像。它不包含在 IPA 中。
iOS 为图标添加了眩光效果。您无需对源图像应用这种效果。要删除此默认眩光效果,请将以下内容添加到应用程序描述符文
件中的 InfoAdditions 元素:
<InfoAdditions>
<![CDATA[
<key>UIPrerenderedIcon</key>
<true/>
]]>
</InfoAdditions>
注: 在 iOS 上,已将短语 “Adobe AIR for iOS” 作为元数据添加到应用程序图标,这样 Adobe 可以跟踪 Apple iOS 应用程
序库中可用 AIR 应用程序的数量。如果不希望应用程序因此图标元数据而被标识为 AIR 应用程序,您必须对 IPA 文件进行解
包,删除图标元数据,并按照 退出 AIR 应用程序分析 (适用于 iOS ) 中的说明对其重新打包。
更多帮助主题
第 168 页的 “icon ”
第 169 页的 “imageNxN ”
Android
开发人员:图标设计指南
iOS 人机界面指南:自定义图标和图像创建指南
iOS 启动图像
除应用程序图标外,必须至少还提供一个名为 “Default.png” 的启动图像。或者,您可以为不同的启动方向、不同的分辨率以
及不同的设备单独提供启动图像。您还可以添加不同的启动图像,以便当通过
启动图像文件未在应用程序描述符中引用,必须放置在应用程序的根目录中。(请勿 将该文件放在子目录中。)
文件命名方案
根据以下方案对图像命名:
上次更新 2011/10/13
URL 调用您的应用程序时使用。
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
basename + urischeme + orientation + scale + device + .png
文件名的 basename 部分可以是 Default (D 大写),也可以是使用应用程序描述符的 InfoAdditions 元素中的
UILaunchImageFile 键指定的名称。
urischeme 部分是用于标识 URI 方案的字符串。例如,如果可以通过链接 (如 example://foo )调用您的应用程序,则
example
可用作启动图像文件名的方案部分。
orientation 部分可以为以下任意值之一,这些值用于指示当应用程序启动时设备所处的方向:
• -Portrait
• -PortraitUpsideDown
• -Landscape
• -LandscapeLeft
• -LandscapeRight
对于用于高分辨率显示屏的启动图像, scale 部分为 @2x 。(对于用于标准分辨率显示屏的图像,请忽略整个 scale 部分。)
device 部分可以是 ~ipad,也可以是 ~iphone (包含 iPhone 和 iPod Touch)。
对于 iPhone ,只能添加纵向高宽比图像。对于标准分辨率设备,请使用 320x480 像素的图像,对于高分辨率设备,请使用
640x960
像素的图像。
73
iPad,横向 (1024x748) 和纵向 (768x1004) 高宽比图像均可添加。(目前, iPad 均未配备高分辨率屏幕。)
对于
示例
下表列出了可以为一个假想的应用程序添加的启动图像集示例,该应用程序支持最广泛的设备和方向,可通过
example:// 方案启动:
文件名 图像大小 用法
Default.png 320 x 480 iPhone,标准分辨率
Default@2x.png 640 x 960 iPhone,高分辨率
Default-Portrait.png 768 x 1004 iPad,纵向
Default-PortraitUpsideDown.png 768 x 1004 iPad,倒置纵向
Default-Landscape.png 1024 x 748 iPad,左横向
Default-LandscapeRight.png 1024 x 748 iPad,右横向
Default-example.png 320 x 480 example:// 标准 iPhone 上的 URL
Default-example@2x.png 640 x 960 example://
Default-example~ipad.png 768 x 1004 example://
Default-example-Landscape.png 1024 x 748 example://
本示例仅说明了一种方法。例如,可以为
Default@2x~iphone.png
为 iPhone 和 iPod 指定特定启动图像。
iPad 使用 Default.png 图像,使用 Default~iphone.png 和
高分辨率 iPhone 上的 URL
纵向 iPad 上的 URL
横向 iPad 上的 URL
URL 使用
另请参见
iOS Application Programming Guide: Application Launch Images
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
图片指南
您可以为启动图像创建任何图片,只要尺寸正确即可。但是,通常最好将图像与应用程序的初始状态相匹配。您可以捕获应用
程序启动屏幕的屏幕快照,从而创建启动图像:
1 在 iOS 设备上打开应用程序。用户界面的第一个屏幕出现后,按住 “ 主屏幕 ” 按钮(位于屏幕下方)。在按住 “ 主屏幕 ” 按钮
的同时,按下
“ 睡眠 / 唤醒 ” 按钮 (位于设备顶部)。这会捕获一张屏幕快照并将其发送到摄像头卷。
2 通过从 iPhoto 或其他照片传输应用程序传输照片将此图像传输到您的开发计算机。
如果您的应用程序已本地化为多种语言,请勿在启动图像中添加文本。启动图像是静态的,文本可能与其他语言不匹配。
另请参见
iOS Human Interface Guidelines: Launch images
忽略的设置
移动设备上的应用程序会忽略应用于本机窗口或桌面操作系统功能的应用程序设置。忽略的设置包括:
• allowBrowserInvocation
• customUpdateUI
• fileTypes
• height
• installFolder
• maximizable
• maxSize
• minimizable
• minSize
• programMenuFolder
• resizable
• systemChrome
• title
• transparent
• visible
• width
• x
• y
74
打包移动 AIR 应用程序
使用 ADT -package 命令可以为预期在移动设备上使用的 AIR 应用程序创建应用程序包。-target 参数指定为哪个移动平台创
建了该包。
Android 包
Android 上的 AIR 应用程序使用 Android 应用程序包格式 (APK),而不是 AIR 包格式。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
ADT
使用 APK 目标类型生成的包,其格式为可提交到 Android Market 的格式。 Android Market 要求提交的应用程序必
须满足接受条件。在创建最终软件包之前,您应查看最新的要求。请参阅
Android 开发人员:在 Market 上发布。
75
可以使用标准
Market
AIR 代码签名证书来对应用程序进行签名;但是,若要将应用程序提交到 Android Market,证书必须符合
规则,这些规则要求证书的有效期至少到 2033 年。可以使用 ADT -certificate 命令创建此类证书。
Developer Serge Jespers 创建了 Package Assistant Pro,该 AIR 应用程序可以协助为 Android 以及桌面打包 AIR 应用程
序。可以在 http://www.webkitchen.be/package-assistant-pro/ 下载此应用程序。
若要将应用程序提交到替代 Market ,而 该 Market 不允许您的应用程序请求从 Google Market 下载 AIR ,则可使用 ADT 的
-airDownloadURL 参数指定替代下载 URL。如果用户没有启动应用程序所需的 AIR 运行时版本,则会直接将其引导至指定的
。有关更多信息,请参阅 第 126 页的 “ADT package 命令 ” 。
URL
在
AIR 3 或更高版本中,可将 AIR 运行时的捕获副本和您的 Android 应用程序捆绑到一起。您的应用程序将独占使用 AIR 的
此捕获版本。用户无需单独安装 AIR 运行时。
iOS 包
iOS 上的 AIR 应用程序使用 iOS 软件包格式 (IPA),而不是本机 AIR 格式。
ADT 使用 ipa-app-store 目标类型、正确的代码签名证书和供给配置文件生成的包,其格式为可提交到 Apple 应用程序库的
格式。使用 ipa-ad-hoc 目标类型可以对某个应用程序进行打包,以进行临时分发。
必须使用
的证书不同。
有关如何使用 Ant 打包 iOS 应用程序的示例,请参阅 Piotr Walczyszyn:使 用 ADT 命令和 ANT 脚本打包 iOS 设备的 AIR
应用程序
Apple 颁发的正确的开发人员证书对应用程序进行签名。创建测试版所用的证书与应用程序提交前进行最终打包所用
使用 ADT 打包
AIR SDK 版本 2.6 和更高版本支持 iOS 和 Android 打包。打包前必须先编译所有的 ActionScript、 MXML 和任何扩展代
码。还必须有代码签名证书。
有关 ADT 命令和选项的详细参考,请参阅 第 125 页的 “AIR Developer Tool (ADT) ” 。
Android APK 包
创建 APK 包
若要创建 APK 包,请使用 ADT 包命令,同时针对发行版将目标类型设为 apk ,针对调试版本设为 apk-debug ,或针对发行
模式版本设为
adt -package
-target apk
-storetype pkcs12 -keystore ../codesign.p12
myApp.apk
myApp-app.xml
myApp.swf icons
请在一行内键入完整的命令;上面示例中出现换行符仅是为了阅读更加方便。另外,此示例假设指向 ADT 工具的路径存在于
命令行 shell 的路径定义中。(有关帮助信息,请参阅第 237 页的 “ 路径环境变量 ” 。)
必须从包含应用程序文件的目录运行此命令。示例中的应用程序文件是
myApp.swf 和图标目录。
当运行如上所示的命令时,
apk-emulator,以便在仿真器上运行。
myApp-app.xml (应用程序描述符文件)、
ADT 会提示输入 keystore 密码。(键入的密码字符不会显示;只需在键入结束后按 Enter。)
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
为使用本机扩展的应用程序创建 APK 包
若要为使用本机扩展的应用程序创建
ANE 文件的目录。例如:
的
adt -package
-target apk
-storetype pkcs12 -keystore ../codesign.p12
myApp.apk
myApp-app.xml
-extdir extensionsDir
myApp.swf icons
APK 包,除了标准打包选项外,还请添加 -extdir 选项。此选项指定包含应用程序所使用
创建包含自有 AIR 运行时版本的 APK 包
若要创建既包含应用程序又包含
AIR 运行时的捕获版本的 APK 包,请使用 apk-captive-runtime 目标。此选项指定包含应用程
序所使用的 ANE 文件的目录。例如:
adt -package
-target apk-captive-runtime
-storetype pkcs12 -keystore ../codesign.p12
myApp.apk
myApp-app.xml
myApp.swf icons
如果将此运行时与您的应用程序捆绑到一起,您的应用程序将独占使用此捕获运行时。
76
与捕获运行时打包在一起的优点有:
• 生成自包含应用程序
• 安装程序与运行时更新隔离
• 企业可以认证特定应用程序和运行时组合
• 无需单独下载和安装运行时
另一方面,存在以下一些缺点:
• 当 Adobe 发布安全修补程序时,不会自动向用户提供关键安全修补程序
• 需要更多的应用程序 RAM 空间
注: 如果您捆绑运行时, ADT 将向您的应用程序添加 INTERNET 和 BROADCAST_STICKY 权限。这些权限是 AIR 运行时的
必需权限。
创建调试
若要创建可以与调试器一起使用的应用程序版本,请使用
adt -package
APK 包
apk-debug 作为目标,并指定连接选项:
-target apk-debug
-connect 192.168.43.45
-storetype pkcs12 -keystore ../codesign.p12
myApp.apk
myApp-app.xml
myApp.swf icons
-connect 标志会告知设备上的 AIR 运行时通过网络连接到远程调试器的位置。若要通过 USB 进行调试,您必须改为指定 -
listen
标志,以指定用于调试连接的 TCP 端口:
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
adt -package
-target apk-debug
-listen 7936
-storetype pkcs12 -keystore ../codesign.p12
myApp.apk
myApp-app.xml
myApp.swf icons
若要使大部分调试功能正常工作,还必须在启用调试的情况下编译应用程序 SWF 和 SWC。有关 -connect 和 -listen 标志的完
整说明,请参阅第 137 页的 “ 调试器连接选项 ”。
在
Android 上,应用程序还必须有访问 Internet 的权限,以便通过网络连接到运行调试器的计算机。请参阅 第 65 页的
“Android 权限 ”。
创建
APK 包以便在 Android 模拟器上使用
您可以在 Android 模拟器上使用调试 APK 包,而不是释放模式包。若要创建一个释放模式 APK 包以便在模拟器上使用,请
使用
ADT package 命令,将目标类型设置为 apk-emulator:
adt -package -target apk-emulator -storetype pkcs12 -keystore ../codesign.p12 myApp.apk myApp-app.xml
myApp.swf icons
此示例假设指向 ADT 工具的路径存在于命令行 shell 的路径定义中。(有关帮助信息,请参阅第 237 页的 “ 路径环境变量
”。)
77
从
AIR 或 AIRI 文件创建 APK 包
可以从现有的 AIR 或 AIRI 文件直接创建 APK 包:
adt -target apk -storetype pkcs12 -keystore ../codesign.p12 myApp.apk myApp.air
AIR 文件必须使用应用程序描述符文件中的 AIR 2.5 (或更高版本)命名空间。
iOS 包
在 iOS 上, ADT 将 SWF 文件字节代码和其他源文件转换为本机 iOS 应用程序。
1 打开命令外壳或终端并导航到您的 iPhone 应用程序的项目文件夹。
2 然后,使用 ADT 工具创建 IPA 文件,语法如下:
adt -package
-target [ipa-test | ipa-debug | ipa-app-store | ipa-ad-hoc]
-provisioning-profile PROFILE_PATH
SIGNING_OPTIONS
TARGET_IPA_FILE
APP_DESCRIPTOR
SOURCE_FILES
-extdir extension-directory
更改引用 adt 以包括 adt 应用程序的完整路径。 adt 应用程序安装在 AIR SDK 的 bin 子目录中。
选择对应于您要创建的 iPhone 应用程序类型的 -target 选项:
• -target ipa-test — 选择此选项可快速编译要在开发人员 iPhone 上进行测试的应用程序版本。
• -target ipa-debug — 选择此选项可编译要在开发人员 iPhone 上测试的应用程序调试版本。通过此选项,您可以使用调
试会话从
您可以包含以下 -connect 选项 (CONNECT_OPTIONS ) 之一,以指定运行该调试器的开发计算机的 IP 地址:
iPhone 应用程序接收 trace() 输出。
• -connect — 应用程序将尝试连接到用于编译该应用程序的开发计算机上的调试会话。
• -connect IP_ADDRESS — 应用程序将尝试连接到具有指定 IP 地址的计算机上的调试会话。例如:
-target ipa-debug -connect 192.0.32.10
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
• -connect HOST_NAME — 应用程序将尝试连接到具有指定主机名称的计算机上的调试会话。例如:
-target ipa-debug -connect bobroberts-mac.example.com
-connect 选项是可选项。如果不指定该选项,则生成的调试应用程序不会尝试连接到托管调试器。
78
如果调试连接尝试失败,应用程序会显示一个对话框,要求用户输入调试主机的
接尝试可能失败。如果设备已连接,但不在调试主机的防火墙之后,也可能失败。
有关更多信息,请参阅第
80 页的 “ 调试移动 AIR 应用程序 ”。
IP 地址。如果设备未连接到 wifi,连
• -target ipa-ad-hoc — 选择此选项可创建用于临时部署的应用程序。请参见 Apple iPhone 开发人员中心
• -target ipa-app-store — 选择此选项可创建用于部署到 Apple 应用程序库的 IPA 文件的最终版本。
用应用程序的供给配置文件的路径替换 PROFILE_PATH 。有关供给配置文件的更多信息,请参阅 第 56 页的 “iOS 设置 ”。
替换 SIGNING_OPTIONS 以引用 iPhone 开发人员证书和密码。应使用以下语法:
-storetype pkcs12 -keystore P12_FILE_PATH -storepass PASSWORD
使用 P12 证书文件的路径替换 P12_FILE_PATH 。使用证书密码替换 PASSWORD 。(请参见以下示例。)有关 P12 证
书文件的更多信息,请参阅第 149 页的 “ 将开发人员证书转换为 P12 keystore 文件 ” 。
替换
APP_DESCRIPTOR 以引用应用程序描述符文件。
替换 SOURCE_FILES 以引用项目 (后面跟有任何其他要包含的资源)的主 SWF 文件。包括在 Flash CS5 中的应用程序设
置对话框中或在自定义应用程序描述符文件中定义的所有图标文件的路径。此外,还要添加初始屏幕图片文件
Default.png
使用
扩展,请勿包含此选项。
重要说明: 请勿在您的应用程序目录中创建名为 Resources 的子目录。运行时将自动创建具有此名称的文件夹以符合 IPA 包
的结构要求。如果您自己创建
。
-extdir extension-directory 选项可指定包含应用程序使用的 ANE 文件 (本机扩展)的目录。如果应用程序不使用本机
“Resources” 文件夹将导致致命冲突。
创建 iOS 包以便调试
若要创建一个
必须已经从 Apple 获取一个开发代码签名证书和供给配置文件。
adt -package
-target ipa-debug
-storetype pkcs12 -keystore ../AppleDevelopment.p12
-provisioning-profile AppleDevelopment.mobileprofile
-connect 192.168.0.12
myApp.ipa
myApp-app.xml
myApp.swf icons Default.png
请在一行内键入完整的命令;上面示例中出现换行符仅是为了阅读更加方便。另外,此示例假设指向 ADT 工具的路径存在于
命令行 shell 的路径定义中。(有关帮助信息,请参阅第 237 页的 “ 路径环境变量 ” 。)
必须从包含应用程序文件的目录运行此命令。示例中的应用程序文件是 myApp-app.xml (应用程序描述符文件)、
iOS 包以便安装在测试设备上,请使用 ADT package 命令,将目标类型设置为 ios-debug。在运行此命令前,
myApp.swf、图标目录和 Default.png 文件。
必须使用由 Apple 颁发的正确分发证书对应用程序进行签名;不得使用其他代码签名证书。
当指定 -connect 选项时,应用程序将尝试利用在指定 IP 或主机名上运行的 Flash 调试器 (FDB) 来启动调试会话。请参阅
第 81 页的 “ 连接到 Flash 调试器 ” 以了解更多信息。
iOS 包以便提交到 Apple 应用程序库
创建
若要创建一个 iOS 包以便提交到 Apple 应用程序库,请使用 ADT package 命令,将目标类型设置为 ios-app-store 。在运行
此命令前,您必须已经从 Apple 获取一个分发代码签名证书和供给配置文件。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
adt -package
-target ipa-app-store
-storetype pkcs12 -keystore ../AppleDistribution.p12
-provisioning-profile AppleDistribution.mobileprofile
myApp.ipa
myApp-app.xml
myApp.swf icons Default.png
请在一行内键入完整的命令;上面示例中出现换行符仅是为了阅读更加方便。另外,此示例假设指向 ADT 工具的路径存在于
命令行 shell 的路径定义中。(有关帮助信息,请参阅第 237 页的 “ 路径环境变量 ” 。)
79
必须从包含应用程序文件的目录运行此命令。示例中的应用程序文件是
myApp-app.xml (应用程序描述符文件)、
myApp.swf、图标目录和 Default.png 文件。
必须使用由
重要说明: Apple 要求您使用 Application Loader 程序,以便将应用程序上载到应用程序库。 Apple 仅针对 Mac OS X 发布
了
Application Loader。因此,当您使用 Windows 计算机为 iPhone 开发 AIR 应用程序时,必须具有访问运行 OS X (版
本 10.5.3 或更高版本)的计算机的权限,以便将应用程序提交到应用程序库。您可以从 Apple iOS 开发人员中心获取
Application Loader
创建
若要创建 iOS 包以便进行临时分发,请使用 ADT package 命令,将目标类型设置为 ios-ad-hoc 。在运行此命令前,您必须已
经从
adt -package
请在一行内键入完整的命令;上面示例中出现换行符仅是为了阅读更加方便。另外,此示例假设指向 ADT 工具的路径存在于
命令行
必须从包含应用程序文件的目录运行此命令。示例中的应用程序文件是 myApp-app.xml (应用程序描述符文件)、
Apple 颁发的正确分发证书对应用程序进行签名;不得使用其他代码签名证书。
程序。
iOS 包以便进行临时分发
Apple 获取适当的临时分发代码签名证书和供给配置文件。
-target ipa-ad-hoc
-storetype pkcs12 -keystore ../AppleDistribution.p12
-provisioning-profile AppleDistribution.mobileprofile
myApp.ipa
myApp-app.xml
myApp.swf icons Default.png
shell 的路径定义中。(有关帮助信息,请参阅第 237 页的 “ 路径环境变量 ”。)
myApp.swf、图标目录和 Default.png 文件。
必须使用由
Apple 颁发的正确分发证书对应用程序进行签名;不得使用其他代码签名证书。
为使用本机扩展的应用程序创建 iOS 包
要为使用本机扩展的应用程序创建
iOS 包,请使用具有 -extdir 选项的 ADT 包命令。使用与目标 (ipa-app-store、 ipa-debug、
ipa-ad-hoc、 ipa-test)相适应的 ADT 命令。例如:
adt -package
-target ipa-ad-hoc
-storetype pkcs12 -keystore ../AppleDistribution.p12
-provisioning-profile AppleDistribution.mobileprofile
myApp.ipa
myApp-app.xml
-extdir extensionsDir
myApp.swf icons Default.png
请在一行内键入完整的命令;上面示例中出现换行符仅是为了阅读更加方便。
关于本机扩展,本示例假设名为 extensionsDir 的目录位于运行命令的目录中。extensionsDir 目录包含应用程序所使用的 ANE
文件。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
调试移动 AIR 应用程序
可以用多种方法调试移动 AIR 应用程序。发现应用程序逻辑问题的最简单方法是使用 ADL 在开发计算机上进行调试。也可以
在设备上安装应用程序,并使用在台式计算机上运行的 Flash 调试器进行远程调试。
使用 ADL 的设备模拟
用来测试和调试大多数移动应用程序功能的一种最快、最简单的方法是:使用 Adobe Debug Launcher (ADL) 实用程序在开
发计算机上运行您的应用程序。
配置文件,则
个其他配置文件。(如果应用程序描述符中不包括
如,使用以下命令启动应用程序以模拟移动设备配置文件:
adl -profile mobileDevice myApp-app.xml
这样在桌面上模拟移动配置文件时,应用程序会在与目标移动设备更为相似的环境中运行。不属于移动配置文件一部分的
ActionScript API
程序,即便您实际的目标设备不利用软键。
ADL 会使用列表中的第一个配置文件。您也可以使用 ADL 的 -profile 参数来选择 supportedProfiles 列表中的某
不可用。不过, ADL 并不区分不同移动设备的功能。例如,您可以将模拟软键的按键方式发送到您的应用
ADL 支持通过菜单命令模拟设备方向变化和软键输入。在移动设备配置文件中运行 ADL 时, ADL 会显示允许您进入设备旋
转或软键输入的菜单 (在应用程序窗口或桌面菜单栏中)。
ADL 使用应用程序描述符中的 supportedProfiles 元素来决定要使用的配置文件。如果列出多个
supportedProfiles 元素,则可以针对 -profile 参数指定任何配置文件。)例
80
软键输入
ADL 模拟移动设备上的 “ 后退 ”、 “ 菜单 ” 和 “ 搜索 ” 软键按钮。当使用移动配置文件启动 ADL 时,您可以使用所显示的菜
单将这些键发送到模拟设备上。
设备旋转
当使用移动配置文件启动 ADL 时, ADL 可让您通过所显示的菜单模拟设备旋转。您可以将模拟设备旋转到右侧或左侧。
旋转模拟只会影响支持自动定向的应用程序。您可以通过在应用程序描述符中将 autoOrients 元素设为 true 来启用此功能。
屏幕大小
您可以通过设置
传递给包含四个表示正常屏幕和最大化屏幕的像素尺寸值的字符串。例如,以下命令将打开 ADL 以模拟在 Motorola Droid
上使用的屏幕:
adl -screensize 480x816:480x854 myApp-app.xml
欲访问预定义屏幕类型的列表,请参阅 第 121 页的 “ADL 用法 ”。
限制
ADL -screensize 参数在不同尺寸的屏幕上测试您的应用程序。您可以将代码传递给预定义屏幕类型之一,或
ADL 无法模拟在桌面配置文件上不受支持的某些 API。不能模拟的 API 包括:
• Accelerometer
• cacheAsBitmapMatrix
• CameraRoll
• CameraUI
• Geolocation
• 不支持这些功能的桌面操作系统上的多点触控和手势
• SystemIdleMode
如果您的应用程序使用这些类,则应在实际设备或仿真器上测试这些功能。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
同样,当在桌面上的 ADL 下运行时有一些 API 可以工作,但它们并非在所有类型的移动设备上都可以工作。这些项目包括:
• Speex 和 AAC 视频编解码器
• 辅助功能和屏幕阅读支持
• RTMPE
• 加载包含 ActionScript 字节代码的 SWF 文件
• PixelBender 着色器
请确保在目标设备上对使用这些功能的应用程序进行测试,因为 ADL 并未复制整个执行环境。
Trace 语句
在桌面上运行您的移动应用程序时,会将 trace 输出打印到调试器或用于启动 ADL 的终端窗口上。在设备或仿真器上运行应
用程序时,可以设置远程调试会话以查看
些工具来查看 trace 输出。
trace 输出。如果支持由设备或操作系统制造商提供的软件开发工具,也可以使用这
81
在任何情况下,都必须在启用调试功能的状态下编译应用程序中的
SWF 文件,以便运行时可输出任何 trace 语句。
Android 上的远程 trace 语句
在 Android 设备或仿真器上运行时,可以使用 Android SDK 中包括的 Android Debug Bridge (ADB) 实用程序在
Android
列命令:
tools/adb logcat air.MyApp:I *:S
其中,MyApp 是您应用程序的 AIR 应用程序 ID 。参 数 *:S 禁止从所有其他程序输出。除 trace 输出之外,若要查看有关您的
应用程序的系统信息,可以将 ActivityManager 包括在 Logcat 滤镜规范中:
tools/adb logcat air.MyApp:I ActivityManager:I *:S
这些命令示例假设您正在从 Android SDK 文件夹运行 ADB 或者已将 SDK 文件夹添加到路径环境变量中。
注: 在 AIR 2.6+ 中, ADB 实用程序包含在 AIR SDK 中,位于 lib/android/bin 文件夹。
系统日志中查看 trace 语句输出。若要查看应用程序的输出,请从开发计算机上的命令提示符下或终端窗口中运行下
iOS 上的远程 trace 语句
若要通过在
更多帮助主题
Android Debug Bridge
第
iOS 设备上运行的应用程序来查看 trace 语句的输出,您必须使用 Flash 调试器 (FDB) 建立远程调试会话。
:启用 Logcat 日志记录
237 页的 “ 路径环境变量 ”
连接到 Flash 调试器
若要在移动设备上调试运行的应用程序,可以在您的开发计算机上运行 Flash 调试器并通过网络与其进行连接。若要启用远程
调试,必须执行以下操作:
• 在 Android 上,在应用程序描述符中指定 android:permission.INTERNET 权限。
• 在启用调试功能的状态下编译应用程序 SWF 。
• 打包应用程序 (对于 Android,请使用 -target apk-debug ;对于 iOS,请使用 -target ipa-debug )和 -connect 标志。
远程调试通过网络连接 (而不是 USB )进行,因此设备必须能够通过 IP 地址或标准域名访问运行 Flash 调试器的计算机的
端口 7935 。
TCP
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
使用 Flash Professional 进行远程调试
在您的应用程序准备好调试并且在应用程序描述符中设置权限之后,请执行以下操作:
1 打开 “AIR Android 设置 ” 对话框。
2 在 “ 部署 ” 选项卡下:
• 针对部署类型选择 “ 设备调试 ”
• 针对 “ 发布后 ” 选择 “ 在连接的 Android 设备上安装应用程序 ”
• 针对 “ 发布后 ” 取消选择 “ 在连接的 Android 设备上启动应用程序 ”
• 如果需要,将路径设为 Android SDK 。
3 单击 “ 发布 ” 。
您的应用程序即会在设备上安装并启动。
4 关闭 “AIR Android 设置 ” 对话框。
5 从 Flash Professional 菜单中选择 “ 调试 ”>“ 开始远程调试会话 ”>“ActionScript 3” 。
Flash Professional 会在 “ 输出 ” 面板中显示 “ 正在等待播放器连接 ”。
6 在设备上启动应用程序。
7 在 Adobe AIR 连接对话框中输入运行 Flash 调试器的计算机的 IP 地址或主机名,然后单击 “ 确定 ” 。
82
通过网络连接使用 FDB 进行远程调试
若要使用命令行 Flash Debugger (FDB) 调试在设备上运行的应用程序,请首先在您的开发计算机上运行调试器,然后在设备
上启动应用程序。下列过程使用
您组合使用 Flex 和 AIR SDK ,并且 bin 目录包括在您的路径环境变量中。(此项假设仅仅是为了简化命令示例。)
1 打开终端或命令提示窗口并导航到包含应用程序源代码的目录。
2 使用 amxmlc 编译应用程序,从而能够进行调试:
amxmlc -debug DebugExample.as
3 使用 apk-debug 或 ipa-debug 目标打包应用程序:
Android
adt -package -target apk-debug -connect -storetype pkcs12 -keystore ../../AndroidCert.p12
DebugExample.apk DebugExample-app.xml DebugExample.swf
iOS
adt -package -target ipa-debug -connect -storetype pkcs12 -keystore ../../AppleDeveloperCert.p12 provisioning-profile test.mobileprovision DebugExample.apk DebugExample-app.xml DebugExample.swf
如果您始终使用相同的主机名或 IP 地址进行调试,则可以将该值放在 -connect 标志之后。应用程序将尝试自动连接到该 IP
地址或主机名。否则,每次您开始调试时都必须在设备上输入信息。
4 安装应用程序。
在 Android 上,您可以使用 ADT -installApp 命令:
adt -installApp -platform android -package DebugExample.apk
在 iOS 上,您可以使用 iTunes 安装应用程序。
AMXMLC、 FDB 和 ADT 工具在设备上进行应用程序的编译、打包和调试。这些示例假设
5 在另一个终端或命令窗口,运行 FDB :
fdb
6 在 FDB 窗口中,键入 run 命令:
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
Adobe fdb (Flash Player Debugger) [build 14159]
Copyright (c) 2004-2007 Adobe, Inc. All rights reserved.
(fdb) run
Waiting for Player to connect
7 在设备上启动应用程序。
8 应用程序在设备或模拟器上启动之后,即会打开 Adobe AIR 连接对话框。(如果您在对应用程序进行打包时已使用 -
connect
若要在此模式下连接到调试器,设备必须能够解析地址或主机名并连接到
选项指定主机名或 IP 地址,则它将尝试使用该地址自动连接。)输入适当的地址并点击 “ 确定 ” 。
TCP 端口 7935。需要网络连接。
9 当远程运行时连接到调试器时,您可以使用 FDB break 命令设置断点,然后使用 continue 命令开始执行:
(fdb) run
Waiting for Player to connect
Player connected; session starting.
Set breakpoints and then type 'continue' to resume the session.
[SWF] Users:juser:Documents:FlashProjects:DebugExample:DebugExample.swf - 32,235 bytes after
decompression
(fdb) break clickHandler
Breakpoint 1 at 0x5993: file DebugExample.as, line 14
(fdb) continue
通过 USB 使用 FDB 进行远程调试
AIR 2.6,仅限 Android
83
若要通过 USB 连接调试应用程序,您必须使用 -listen 选项而不是 -connect 选项打包应用程序。指定 -listen 选项后,当您启
动应用程序时,运行时会侦听
了让在桌面计算机上运行的 Flash 调试器连接到在设备或模拟器上运行的 AIR 运行时,您必须使用从 Android SDK 中获取的
Android Debug Bridge (ADB)
TCP 端口 7936 上 Flash 调试器 (FDB) 的连接。利用 -p 选项运行 FDB,令 FDB 启动连接。为
将设备端口转发到桌面端口。
1 打开终端或命令提示窗口并导航到包含应用程序源代码的目录。
2 使用 amxmlc 编译应用程序,从而能够进行调试:
amxmlc -debug DebugExample.as
3 使用 apk-debug 目标打包应用程序,并指定 -listen 选项:
adt -package -target apk-debug -listen -storetype pkcs12 -keystore ../../AndroidCert.p12 DebugExample.apk
DebugExample-app.xml DebugExample.swf
4 使用 USB 电缆将设备连接到调试计算机。(您还可以使用此过程调试在模拟器中运行的应用程序,在这种情况下, USB 连
接就是不必要的
— 或不可能的。)
5 安装应用程序。
您可以使用 ADT -installApp 命令:
adt -installApp -platform android -package DebugExample.apk
6 使用 Android ADB 实用程序将 TCP 端口 7936 从设备或模拟器转发到计算机:
adb forward tcp:7936 tcp:7936
7 在设备上启动应用程序。
8 在一个终端或命令窗口中使用 -p 选项运行 FDB :
fdb -p 7936
9 在 FDB 窗口中,键入 run 命令:
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
Adobe fdb (Flash Player Debugger) [build 14159]
Copyright (c) 2004-2007 Adobe, Inc. All rights reserved.
(fdb) run
10 FDB 实用程序尝试连接到该应用程序。
11 当建立远程连接时,您可以使用 FDB break 命令设置断点,然后使用 continue 命令开始执行:
(fdb) run
Player connected; session starting.
Set breakpoints and then type 'continue' to resume the session.
[SWF] Users:juser:Documents:FlashProjects:DebugExample:DebugExample.swf - 32,235 bytes after
decompression
(fdb) break clickHandler
Breakpoint 1 at 0x5993: file DebugExample.as, line 14
(fdb) continue
注: 端口号 7936 用作默认端口,可以供 AIR 运行时和 FDB 进行 USB 调试。您可以使用 ADT -listen 端口参数和 FDB -p 端
口参数指定不同的端口。在这种情况下,您必须使用 Android Debug Bridge 实用程序将 ADT 中指定的端口号转发到 FDB
中指定的端口:adb forward tcp:adt_listen_port# tcp:fdb_port#
在移动设备上安装 AIR 和 AIR 应用程序
84
应用程序最终用户可以使用各自设备的标准应用程序和分发机制安装 AIR 运行时和 AIR 应用程序。
例如,在 Android 上,用户可以从 Android Market 安装应用程序。或者,如果已在 “ 应用程序 ” 设置中允许从未知源安装
应用程序,则用户可以通过单击
户尝试安装 Android 应用程序,但尚未安装 AIR 运行时,则系统会自动将用户导向可以安装运行时的 Market 。
在
iOS 上,有两种方法可以向最终用户分发应用程序。主要分发渠道为 Apple 应用程序库。您还可以使用临时分发,以便允
许有限数量的用户无需通过应用程序库即可安装您的应用程序。
Web 页上的链接或通过将应用程序包复制到自己的设备并将其打开来安装应用程序。如果用
安装用于开发的 AIR 运行时和应用程序
由于移动设备上的 AIR 应用程序安装为本机包,您可以使用常规平台工具来安装要测试的应用程序。在支持的情况下,您可以
使用
ADT 命令安装 AIR 运行时和 AIR 应用程序。目前, Android 支持此方法。
在 iOS 上,您可以使用 iTunes 安装要测试的应用程序。测试应用程序必须使用 Apple 为应用程序开发特别颁发的代码签名证
书进行签名,并使用开发供给配置文件打包。
使用 ADT 安装 AIR 应用程序
AIR 应用程序时,可以使用 ADT 安装和卸载运行时和应用程序。(您的 IDE 也可以集成这些命令,这样就不必自己运行
开发
。)
ADT
可以使用 AIR ADT 实用程序在设备或仿真器上安装 AIR 运行时。必须安装提供给设备的 SDK 。使用 -installRuntime 命令:
adt -installRuntime -platform android -device deviceID -package path-to-runtime
如果未指定 -package 参数,则会从已安装的 AIR SDK 中提供的运行时包中选择适用于设备或模拟器的包。
若要安装 AIR 应用程序,请使用类似的 -installApp 命令:
adt -installApp -platform android -device deviceID -package path-to-app
AIR 应用程序是 iOS 上的自包含包。未使用单独的运行时。
如果只连接和运行了一台设备或模拟器,则可以省略 -device 标志。为 -platform 参数设置的值应与在其上进行安装的设备相匹
配。目前,唯一支持的值是 android。
注: 重新安装之前必须删除现有的 AIR 运行时版本或 AIR 应用程序。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
在 iOS 设备上安装 AIR 应用程序
iOS 设备上安装 AIR 应用程序进行测试:
若要在
1 打开 iTunes 应用程序。
2 如果您尚未执行此操作,请将该应用程序的供给配置文件添加到 iTunes 。在 iTunes 中,选择 “ 文件 ”>“ 添加到资料库 ” 。然
后选择供给配置文件 (其文件类型为
mobileprovision)。
3 如果已安装相同版本的应用程序, iTunes 的某些版本不会替换该应用程序。在这种情况下,从您的设备和 iTunes 中的应
用程序列表中删除该应用程序。
4 双击您的应用程序的 IPA 文件。此时,您的应用程序应显示在 iTunes 中的应用程序列表中。
5 将您的设备连接到计算机上的 USB 端口。
6 在 iTunes 中,检查 “ 应用程序 ” 选项卡中是否存在该设备,并确保在要安装的应用程序的列表中选中了该应用程序。
7 选择左侧 iTunes 应用程序列表中的设备。然后单击 “ 同步 ” 按钮。完成同步后, Hello World 应用程序会显示在您的
iPhone
上。
如果未安装新版本,请将其从您的设备以及 iTunes 中的应用程序列表中删除,然后重新执行此过程。这可能是因为目前安装
的版本使用的是相同的应用程序
更多帮助主题
第 133 页的 “ADT installRuntime 命令 ”
ID 和版本。
85
第 131 页的 “ADT installApp 命令 ”
在设备上运行 AIR 应用程序
可以使用设备用户界面启动已安装的 AIR 应用程序。在支持的情况下,也可以使用 AIR ADT 实用程序远程启动应用程序:
adt -launchApp -platform android -device deviceID -appid applicationID
-appid 参数值必须是要启动的 AIR 应用程序 ID。使用 AIR 应用程序描述符中指定的值 (不带打包期间添加的 air. 前缀)。
如果只连接和运行了一台设备或模拟器,则可以省略 -device 标志。为 -platform 参数设置的值应与在其上进行安装的设备相匹
配。目前,唯一支持的值是
android。
删除 AIR 运行时和应用程序
可以使用设备操作系统提供的常规方式删除应用程序。在支持的情况下,您还可以使用 AIR ADT 实用程序删除 AIR 运行时和
应用程序。若要删除运行时,请使用 -uninstallRuntime 命令:
adt -uninstallRuntime -platform android -device deviceID
若要卸载某个应用程序,请使用 -uninstallApp 命令:
adt -uninstallApp -platform android -device deviceID -appid applicationID
如果只连接和运行了一台设备或模拟器,则可以省略 -device 标志。为 -platform 参数设置的值应与在其上进行安装的设备相匹
配。目前,唯一支持的值是
android。
设置仿真器
若要在设备仿真器上运行 AIR 应用程序,通常必须使用该设备的 SDK 在开发计算机上创建和运行仿真器实例。然后可以在仿
真器上安装 AIR 运行时的仿真器版本和 AIR 应用程序。请注意,应用程序在仿真器上的运行速度通常比在实际设备上慢得多。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
创建 Android 仿真器
1 启动 Android SDK 和 AVD Manager 应用程序:
• 在 Windows 上,请在 Android SDK 根目录中运行 SDK Setup.exe 文件。
• 在 Mac OS 上,请在 Android SDK 目录的工具子目录中运行 android 应用程序。
2 选择 Settings 选项和 “Force https://” 选项。
3 选择 Available Packages 选项。可以看见可用的 Android SDK 列表。
4 选择兼容的 Android SDK (Android 2.2 或更新版本),单击 Install Selected 按钮。
5 选择 Virtual Devices 选项,然后单击 New 按钮。
6 进行以下设置:
• 虚拟设备的名称
• 目标 API ,例如 Android 2.2 , API 级别 8
• SD 卡的大小 (如 1024)
• 外观 (例如,默认 HVGA )
7 单击 Create AVD 按钮。
请注意,创建 Virtual Device 可能需要一些时间,具体情况取决于系统配置。
86
现在可以启动新的
Virtual Device 了。
1 在 AVD Manager 应用程序中选择 Virtual Device 。系统应列出前面创建的虚拟设备。
2 选择 Virtual Device ,然后单击 Start 按钮。
3 单击下一屏幕上的 Launch 按钮。
此时会看见桌面上打开一个仿真器窗口。此过程需要几秒钟。 Android 操作系统初始化也可能需要一些时间。您可以在仿真器
上安装使用
更多帮助主题
apk-debug 和 apk-emulator 进行打包的应用程序。使用 apk 目标打包的应用程序在仿真器上不起作用。
http://developer.android.com/guide/developing/tools/othertools.html#android
http://developer.android.com/guide/developing/tools/emulator.html
更新移动 AIR 应用程序
移动 AIR 应用程序作为本机软件包进行分发,因此将使用平台上其他应用程序的标准更新机制。通常,这涉及提交到相同的
Market
移动 AIR 应用程序不能使用 AIR Updater 类或框架。
更新 Android 上的 AIR 应用程序
对于在 Android Market 上发布的应用程序,只要下列各项全部满足 (这些策略由 Market 而不是 AIR 强制执行),您就可
以通过在 Market 上放置新的版本来更新应用程序:
或用于分发原始应用程序的应用程序库。
• 使用同一个证书对 APK 包签名。
• AIR ID 相同。
• 应用程序描述符中的 versionNumber 值更大。(如果使用 versionLabel 值,还应增大该值。)
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对移动设备的 AIR 应用程序
设备软件会向从 Android Market 下载应用程序的用户通知可用更新。
87
更多帮助主题
Android
开发人员:在 Android Market 上发布更新
更新 iOS 上的 AIR 应用程序
对于通过 iTunes 应用程序库分发的 AIR 应用程序,只要满足下列条件 (这些策略是由 Apple 应用程序库强制实施的,而不
是
AIR)即可通过将更新提交到库来更新应用程序:
• 代码签名证书和供给配置文件会颁发给同一 Apple ID
• IPA 包使用同一 Apple Bundle ID
• 更新不会减小支持设备池 (也就是说,如果原始应用程序支持运行 iOS 3 的设备,则不能创建不再支持 iOS 3 支持的更
新)。
重要说明: 由于 AIR SDK 版本 2.6 和更高版本不支持 iOS 3 ,但 AIR 2 支持,因此如果某个已发布 iOS 应用程序是使用 AIR
2
开发的,而其更新是使用 AIR 2.6 以上版本开发的,则无法更新该应用程序。
上次更新 2011/10/13
第 8 章 : 开发针对电视设备的 AIR 应用程序
您可以为包含用于电视的 Adobe AIR 的电视设备 (如电视机、数码录像机和蓝光播放机)创建 Adobe® AIR® 应用程序。针
对电视设备的
优化,利用设备的硬件加速等功能实现高性能的视频和图形显示。
AIR 应用程序的这个过程在很大程度上与为任何其他设备开发 AIR 应用程序相同。主要不同点体现在以下方面:
开发
• 目标设备组的功能差异。
• 特定于用于电视的 AIR 应用程序的设计注意事项。
• 如何在目标设备上进行测试。
设备功能
设备配置文件
AIR 使用配置文件来定义具有类似功能的一组目标设备。对于用于电视的 AIR 应用程序,请使用以下配置文件:
AIR 应用程序是基于 SWF 的应用程序,而不是基于 HTML 的应用程序。用于电视的 AIR 针对电视设备进行了
88
• tv 配置文件。在针对用于电视的 AIR 设备的 AIR 应用程序中使用此配置文件。
• extendedTV 配置文件。如果用于电视的 AIR 应用程序使用本机扩展,则使用此配置文件。
第 186 页的 “ 设备配置文件 ” 中介绍了针对这些配置文件定义的 ActionScript 功能。用于 Adobe Flash Platform 的
ActionScript 3.0
有关用于电视的
参考中介绍了用于电视的 AIR 的 ActionScript 的具体差异。
AIR 配置文件的详细信息,请参阅第 105 页的 “ 支持的配置文件 ”。
硬件加速
电视设备提供了可大幅提升 AIR 应用程序中图形和视频性能的硬件加速器。要使用这些硬件加速器,请参阅第 90 页的 “ 用于
电视的 AIR 应用程序设计注意事项 ” 。
内容保护
使用用于电视的 AIR 可以基于优质的视频内容 (从好莱坞大片到独立制片的电影和电视剧)创建丰富的用户体验。内容提供
商可以使用
Adobe
内容保护是优质视频分发的关键要求。用于电视的
内容所有者 (包括各大电影制片厂)的严格安全要求。
Flash Access
• 视频流和下载。
• 各种商业模式,包括支持广告、订阅、租赁和电子零售。
• 不同的内容分发技术,包括 HTTP 动态流、使用 Flash® Media Server 通过 RTMP (实时媒体协议)传输的流媒体以及
用于电视的
Media Server
Adobe 工具创建交互式应用程序。他们可以将 Adobe 服务器产品集成到内容分发基础结构中,也可以与某个
生态系统合作伙伴进行合作。
AIR 支持 Adobe® Flash® Access ™,这一内容保护和商业化解决方案可满足
支持以下功能:
通过 HTTP 渐进式下载。
AIR 还内置了对 RTMPE ( RTMP 的加密版本)以及对安全性要求较低的现有流媒体解决方案的支持。 Flash
支持 RTMPE 和相关的 SWF 验证技术。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对电视设备的 AIR 应用程序
更多帮助主题
Adobe Flash Access
Flash Access 2.0 资源
使用 Adobe Flash Access 保护流媒体概述 (PDF)
使用 Adobe Flash 媒体技术保护在线视频分发
多频道音频
从 AIR 3 开始,用于电视的 AIR 为从 HTTP 服务器渐进式下载的视频提供多频道音频支持。此支持包括以下这些编解码器:
• AC-3 (Dolby Digital)
• E-AC-3 (增强的 Dolby Digital )
• DTS Digital Surround
• DTS Express
• DTS-HD High Resolution Audio
• DTS-HD Master Audio
注: 从 Adobe Flash Media Server 流式传输的视频中的多频道音频支持尚不可用。
89
游戏输入
从 AIR 3 开始,用于电视的 AIR 支持 ActionScript API ,允许应用程序与连接的游戏输入设备通信,比如游戏杆、游戏板和
游戏棒。尽管这些设备称为游戏输入设备,但不仅仅是游戏,任何用于电视的 AIR 应用程序都可以使用这些设备。
可以使用多种具有不同功能的游戏输入设备。因此,在
可能是未知)类型的游戏输入设备。
API 中对这些设备进行了归纳,以便应用程序能够正常使用不同 (且
GameInput 类是游戏输入 ActionScript API 的入口点。有关详细信息,请参阅 GameInput 。
Stage 3D 加速图形渲染
从 AIR 3 开始,用于电视的 AIR 支持 Stage 3D 加速图形渲染。Stage3D ActionScript API 是一组支持高级 2D 和 3D 功能
的底层 GPU 加速 API 。这些底层 API 为开发人员提供了灵活性,使其可以利用 GPU 硬件加速获取显著的性能提高。您还可
以使用支持
有关详细信息,请参阅游戏引擎、 3D 和 Stage 3D 。
本机扩展
如果您的应用程序针对的是 extendedTV 配置文件,则可以使用 ANE (AIR 本机扩展)包。
通常,设备制造商会提供 ANE 包以用于访问 AIR 不支持的设备功能。例如,利用本机扩展可以更换电视频道或暂停视频播放
器上的播放。
在对使用 ANE 包的用于电视的 AIR 应用程序进行打包时,必须将该应用程序打包为 AIRN 文件,而不是 AIR 文件。
用于电视的 AIR 设备的本机扩展始终是设备捆绑的 本机扩展。 “ 设备捆绑的 ” 表示扩展库安装在用于电视的 AIR 设备上。您
应用程序包中包含的 ANE 包从不 包含扩展的本机库。有时它包含纯 ActionScript 版本的本机扩展。此纯 ActionScript 版本
是扩展的存根或模拟器。设备制造商将实际扩展 (其中包含本机库)安装到设备上。
Stage3D ActionScript API 的游戏引擎。
如果您正在开发本机扩展,请注意以下事项:
• 如果您正在为制造商的设备创建用于电视的 AIR 本机扩展,请始终咨询设备制造商。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对电视设备的 AIR 应用程序
• 在某些用于电视的 AIR 设备上,只有设备制造商可以创建本机扩展。
• 在所有用于电视的 AIR 设备上,都由设备制造商决定需要安装哪些本机扩展。
• 构建用于电视的 AIR 本机扩展所使用的开发工具会有所不同,由制造商决定。
有关在您的
AIR 应用程序中使用本机扩展的详细信息,请参阅第 112 页的 “ 使用 Adobe AIR 的本机扩展 ”。
90
有关创建本机扩展的信息,请参阅针对
Adobe AIR 开发本机扩展。
用于电视的 AIR 应用程序设计注意事项
视频注意事项
视频编码准则
在向电视设备传输视频流时, Adobe 建议采用以下编码原则:
视频编解码器: H.264 ,主要或高级配置文件,渐进式编码
分辨率:
帧速率: 每秒 24 帧或每秒 30 帧
音频编解码器:
组合比特率: 最高 8M bps ,具体取决于可用带宽
音频比特率: 最高
像素高宽比: 1 × 1
对于传送到用于电视的
720i、 720p、 1080i 或 1080p
AAC-LC 或 AC-3, 44.1 kHz,立体声,或这些多频道音频编解码器:E-AC-3、 DTS、 DTS
Express
、 DTS-HD High Resolution Audio 或 DTS-HD Master Audio
192 Kbps
AIR 设备的视频, Adobe 建议使用 H.264 编解码器。
注: 用于电视的 AIR 还支持使用 Sorenson Spark 或 On2 VP6 编解码器编码的视频。但是,硬件无法对这些编解码器进行解
码并呈现。而是由运行时使用软件对这些编解码器进行解码并呈现,因此,视频会以相当低的帧速率进行播放。因此,请尽可
H.264。
能使用
StageVideo 类
用于电视的
请参阅 ActionScript 3.0 开发人员指南 中的使用 StageVideo 类实现硬件加速呈现,了解以下详细信息:
AIR 支持对 H.264 编码的视频进行硬件解码并呈现。使用 StageVideo 类可以启用此功能。
• StageVideo 类和相关类的 API 。
• StageVideo 类的使用限制。
为了更好地支持使用 Video 对象播放 H.264 编码的视频的现有 AIR 应用程序,用于电视的 AIR 将在内部 使用 StageVideo
对象。这样做意味着可以利用硬件解码和呈现实现视频播放。但是, Video 对象与 StageVideo 对象具有相同的限制。例如,
如果应用程序试图旋转视频,但却无法旋转,这是因为正在使用硬件而非运行时呈现视频。
不过,在编写新应用程序时,请使用
有关使用 StageVideo 类的示例,请参阅在电视上传送 Flash Platform 的视频和内容 。
StageVideo 对象来播放 H.264 编码的视频。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对电视设备的 AIR 应用程序
视频传输指南
在用于电视的
时,可用带宽可能会发生变化。
因此,
率功能。在客户端,可以使用开源媒体框架
可以采用以下协议将视频内容通过网络传送到用于电视的 AIR 应用程序:
AIR 设备上,视频播放期间网络的可用带宽可能会发生变化。例如,当另一个用户开始使用同一 Internet 连接
Adobe 建议在您的视频传输系统中采用自适应比特率功能。例如,在服务器端, Flash Media Server 支持自适应比特
(OSMF)。
• HTTP 和 HTTPS 动态流 (F4F 格式)
• RTMP 、 RTMPE 、 RTMFP 、 RTMPT 和 RTMPTE 流
• HTTP 和 HTTPS 渐进式下载
91
更多帮助主题
Adobe Flash Media Server
开发人员指南
Open Source Media Framework
音频注意事项
在用于电视的 AIR 应用程序中,用于播放声音的 ActionScript 与其他 AIR 应用程序中的相应 ActionScript 没有任何不同。
有关详细信息,请参阅 ActionScript 3.0 开发人员指南 中的使用声音 。
关于用于电视的 AIR 中的多频道音频支持,请考虑以下事项:
• 用于电视的 AIR 为从 HTTP 服务器渐进式下载的视频提供多频道音频支持。从 Adobe Flash Media Server 流式传输的视
频中的多频道音频支持尚不可用。
• 尽管用于电视的 AIR 支持许多音频编解码器,但并非所有的用于电视的 AIR 设备 都支持整套编解码器。使用
flash.system.Capabilities
)。
AC-3
例如,考虑从服务器渐进式下载视频文件的应用程序。服务器具有支持不同多频道音频编解码器的各种 H.264 视频文件。
应用程序可以使用
Capabilities.serverString 中包含的字符串。字符串指示可用的多频道音频编解码器,从而允许服务器选择适当的视频文件。
hasMultiChannelAudio() 确定要从服务器请求的视频文件。或者,应用程序可以向服务器发送
• 当使用某个 DTS 音频编解码器时,存在 hasMultiChannelAudio() 返回 true ,但不播放 DTS 音频的情况。
例如,假设带有 S/PDIF 输出的蓝光播放器连接到旧功放。旧功放不支持 DTS,但 S/PDIF 没有协议通知蓝光播放器。如
果蓝光播放器向旧功放发送
该用户可以知道是否在播放声音。然后,应用程序可以还原到其他的编解码器。
方法 hasMultiChannelAudio() 检查用于电视的 AIR 设备是否支持特殊多频道音频编解码器(如
DTS 流,则用户什么也听不到。因此,最佳做法是,在使用 DTS 时提供一个用户界面,以便
下表概述了何时需要在用于电视的
件加速器解码音频编解码器。硬件解码会提高性能并卸载 CPU 。
AIR 应用程序中使用不同的音频编解码器。该表格还指示用于电视的 AIR 设备何时使用硬
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对电视设备的 AIR 应用程序
92
音频编解码器
用于电视的
AIR
设备的可
用性
硬件解码
AAC 始终为 始终为 在采用 H.264 编码的视频中。
mp3 始终为 否 对于应用程序的 SWF 文件中的声
AC-3 (Dolby Digital)
(增强的 Dolby
E-AC-3
Digital
)
检查 是 在采用 H.264 编码的视频中。 通常,用于电视的 AIR 将多频道音频流传递到
何时使用此音频编解码器 更多信息
当使用纯音频
MP4
对于
Internet 音乐流媒体服务等音
频流。
音。
在用
Sorenson Spark 或 On2 VP6
编码的视频中使用。
容器中。
mp3 音频的 H.264 视频在用于电视的
使用
AIR
设备上无法播放。
解码和播放音频的外部音频
AAC 流时,请将音频流封装在
/ 视频接收器。
DTS Digital Surround
DTS Express
DTS-HD High Resolution
Audio
DTS-HD Master Audio
Speex 始终为 否 接收实时语音流。 使用 Speex 音频的 H.264 视频在用于电视的
AIR
设备上无法播放。 Speex 只能与
NellyMoser
始终为 否
接收实时语音流。
Sorenson Spark
使用。
使用 NellyMoser 音频的 H.264 视频在用于电
视的
AIR 设备上无法播放。 NellyMoser 只能
与
Sorenson Spark 或 On2 VP6 编码的视频一
起使用。
或 On2 VP6 编码的视频一起
注: 某些视频文件包含两个音频流。例如,视频文件可以同时包含 AAC 流和 AC3 流。用于电视的 AIR 不支持此类视频文件,
使用此类文件会导致视频没有声音。
图形硬件加速
使用硬件图形加速
用于电视的 AIR 设备为 2D 图形操作提供了硬件加速功能。设备的硬件图形加速器可以代替 CPU 执行以下操作:
• 位图呈现
• 位图缩放
• 位图混合
• 实心矩形填充
这种硬件图形加速意味着在用于电视的 AIR 应用程序中,可以更加高效地执行许多图形操作。其中的一些操作包括:
• 滑动转换
• 缩放转换
• 淡入淡出
• 使用 alpha 合成多个图像
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对电视设备的 AIR 应用程序
若要获得此类操作的硬件图形加速性能优势,请使用以下方法之一:
• 将 MovieClip 对象和内容大部分均为发生更改的其他显示对象的 cacheAsBitmap 属性设置为 true 。然后对这些对象进行滑
动转换、淡入淡出转换和
alpha 混合。
• 在要缩放或平移 (应用 X 和 Y 重新定位)的显示对象上使用 cacheAsBitmapMatrix 属性。
通过使用 Matrix 类操作进行缩放和平移,设备的硬件加速器会执行这些操作。此外,还可以考虑采用以下方案:更改
cacheAsBitmap 属性设置为 true 的显示对象的尺寸。当尺寸发生更改时,运行时软件会重新绘制位图。与使用 Matrix 操作
的硬件加速进行缩放相比,使用软件进行重绘的性能要差一些。
93
例如,假设有这样一个应用程序,当最终用户选择其中显示的图像时,该图像将扩大。多次使用
像逐渐扩大的效果。但是,如果原始图像和最终图像的大小相差过大,最终图像的品质可能无法令人满意。因此,请在扩大
操作完成后重置显示对象的尺寸。由于
呈现高品质的图像。
注: 用于电视的 AIR 设备通常不支持硬件加速的旋转和倾斜。因此,如果在 Matrix 类中指定旋转和倾斜,用于电视的
将使用软件执行所有 Matrix 操作。这些软件操作会对性能产生不利影响。
AIR
cacheAsBitmap 为 true ,运行时软件会重新绘制显示对象 (但只执行一次),从而可
Matrix 缩放操作可营造图
• 使用 BitmapData 类创建自定义位图缓存行为。
管理图形内存
要执行加速图形操作,硬件加速器会使用专用的图形内存。如果应用程序使用了所有图形内存,则应用程序的运行速度会变
慢,因为用于电视的
管理应用程序对图形内存的使用:
AIR 会恢复为使用软件执行图形操作。
• 使用完图像或其他位图数据后,请释放相关的图形内存。若要释放图形内存,请调用 Bitmap 对象 bitmapData 属性的
dispose() 方法。例如:
myBitmap.bitmapData.dispose();
注: 释放对 BitmapData 对象的引用不会立即释放图形内存。运行时的垃圾回收器最终会释放图形内存,但是调用
dispose() 可为应用程序提供更多控制手段。
• 使用 PerfMaster Deluxe (Adobe 提供的 AIR 应用程序)可更好地了解目标设备上的硬件图形加速功能。此应用程序可
显示执行各种操作的每秒帧数。使用 PerfMaster Deluxe 可比较相同操作的不同实现。例如,比较移动位图图像与移动矢
量图像。用于电视的 Flash Platform 提供了 PerfMaster Deluxe 。
管理显示列表
要使某个显示对象不可见,请将该对象的
显示它。此技术对于在视图中来回频繁显示的对象非常有用,因为它只产生少量的处理开销。但是,将
不会释放任何对象资源。因此,当您完成某个对象的显示或至少将其显示较长一段时间时,请从显示列表中删除该对象。此
外,将对该对象的所有引用设置为
更多帮助主题
缓存显示对象
位图缓存
手动位图缓存
visible 属性设置为 false 。则该对象仍在显示列表中,但用于电视的 AIR 不会呈现或
visible 属性设置为 false
null 。这些操作允许垃圾回收器释放对象资源。
PNG 和 JPEG 图像的使用
PNG 和 JPEG 是应用程序中常用的两种图像格式。关于用于电视的 AIR 应用程序中的这些图像格式,请考虑以下事项:
• 用于电视的 AIR 通常使用硬件加速来解码 JPEG 文件。
上次更新 2011/10/13
构建 ADOBE AIR 应用程序
开发针对电视设备的 AIR 应用程序
• 用于电视的 AIR 通常使用软件来解码 PNG 文件。使用软件解码 PNG 文件的速度非常快。
• PNG 是唯一支持透明度 (Alpha 通道)的跨平台位图格式。
因此,在应用程序中使用这些图像格式时,请遵循以下原则:
• 对于照片,请使用 JPEG 文件以享受硬件加速解码的优点。
• 对于用户界面元素,请使用 PNG 图像文件。可以对用户界面元素进行 alpha 设置,而且,对于用户界面元素,软件解码的
性能已足够快。
用于电视的 AIR 应用程序中的舞台
若要创作用于电视的 AIR 应用程序,在使用 Stage 类时,请考虑以下事项:
• 屏幕分辨率
• 安全观看区域
• 舞台缩放模式
• 舞台对齐方式
• 舞台显示状态
• 多种屏幕尺寸设计
• 舞台品质设置
94
屏幕分辨率
目前,电视设备通常具有以下屏幕分辨率之一:
中的以下值:
屏幕分辨率 Capabilities.screenResolutionX Capabilities.screenResolutionY
540p 960 540
720p 1280 720
1080p 1920 1080
若要针对特定设备编写用于电视的
率。但是,若要编写可在多种设备上运行的全屏应用程序,请使用
Capabilities.screenResolutionY 属性设置舞台尺寸。
例如:
stage.stageWidth = Capabilities.screenResolutionX;
stage.stageHeight = Capabilities.screenResolutionY;
安全观看区域
电视机上的安全观看区域
到整个区域,而不会被电视外壳的边缘所遮盖。由于电视外壳边缘 (形成屏幕的物理边框)的宽度因制造商而异,因此所需的
内缩距离也会有所不同。安全观看区域试图保证屏幕可见区域的准确性。安全观看区域也称为标题安全区域。
区域是指被外壳边缘遮盖的不可见屏幕区域。
过扫描
是指沿屏幕边缘向内缩放而形成的一个屏幕区域。该区域的内缩距离足够大,可确保最终用户能够看
AIR 全屏应用程序,请将 Stage.stageWidth 和 Stage.stageHeight 硬编码为设备的屏幕分辨
540p、 720p 和 1080p。这些屏幕分辨率对应于 ActionScript Capabilities 类
Capabilities.screenResolutionX 和
Adobe
建议在屏幕的每个边缘向内缩放 7.5% 。例如:
上次更新 2011/10/13