Android APK 包

创建 APK 包

若要创建 APK 包,请使用 ADT package 命令,同时针对发行版将目标类型设为 apk,针对调试版本设为 apk-debug,或针对发行模式版本设为 apk-emulator,以便在仿真器上运行。

adt     -package 
                                -target apk 
                                -storetype pkcs12 -keystore ../codesign.p12 
                                myApp.apk 
                                myApp-app.xml 
                                myApp.swf icons

请在一行内键入完整的命令;上面示例中出现换行符仅是为了阅读更加方便。另外,此示例假设指向 ADT 工具的路径存在于命令行 shell 的路径定义中。(有关帮助信息,请参阅路径环境变量。)

必须从包含应用程序文件的目录运行此命令。示例中的应用程序文件是 myApp-app.xml(应用程序描述符文件)、myApp.swf 和图标目录。

当运行如上所示的命令时,ADT 会提示输入 keystore 密码。(键入的密码字符不会显示;只需在键入结束后按 Enter。)

注: 默认情况下,所有 AIR Android 应用程序的包名称都带 air 前缀。若不想使用此默认行为,可将计算机环境变量 AIR_NOANDROIDFLAIR 设置为 true

为使用本机扩展的应用程序创建 APK 包

若要为使用本机扩展的应用程序创建 APK 包,除了标准打包选项外,还请添加 -extdir 选项。如果是多个 ANE 共享资源/库,ADT 将仅选择一个资源/库而忽略其他重复项,然后发出警告。此选项指定包含应用程序所使用的 ANE 文件的目录。例如:

adt     -package 
                                -target apk 
                                -storetype pkcs12 -keystore ../codesign.p12 
                                myApp.apk 
                                myApp-app.xml 
                                -extdir extensionsDir 
                                myApp.swf icons

创建包含自有 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

此方法可能存在以下缺点:

  • 当 Adobe 发布安全修补程序时,不会自动向用户提供关键安全修补程序

  • 需要更多的应用程序内存空间

注: 如果您捆绑运行时,ADT 将向您的应用程序添加 INTERNETBROADCAST_STICKY 权限。这些权限是 AIR 运行时的必需权限。

创建调试 APK 包

若要创建可以与调试器一起使用的应用程序版本,请使用 apk-debug 作为目标,并指定连接选项:

adt     -package 
                                -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 端口:

adt     -package 
                                -target apk-debug 
                                -listen 7936 
                                -storetype pkcs12 -keystore ../codesign.p12 
                                myApp.apk 
                                myApp-app.xml 
                                myApp.swf icons

若要使大部分调试功能正常工作,还必须在启用调试的情况下编译应用程序 SWF 和 SWC。有关 -connect-listen 标志的完整说明,请参阅调试器连接选项

注: 默认情况下,ADT 在打包具有 apk-debug 目标的应用程序时,会将一个 AIR 运行时捕获副本与您的 Android 应用程序打包在一起。要强制 ADT 创建一个使用外部运行时的 APK,请将环境变量 AIR_ANDROID_SHARED_RUNTIME 设置为 true

在 Android 上,应用程序还必须有访问 Internet 的权限,以便通过网络连接到运行调试器的计算机。请参阅 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 的路径定义中。(有关帮助信息,请参阅路径环境变量。)

从 AIR 或 AIRI 文件创建 APK 包

可以从现有的 AIR 或 AIRI 文件直接创建 APK 包:

adt -target apk -storetype pkcs12 -keystore ../codesign.p12 myApp.apk myApp.air

AIR 文件必须使用应用程序描述符文件中的 AIR 2.5(或更高版本)命名空间。

创建一个用于 Android x86 平台的 APK 包

从 AIR 14 开始,可使用参数 -arch 打包用于 Android x86 平台的 APK。例如:

    adt     -package 
                                -target apk-debug 
                                -listen 7936 
                                -arch x86 
                                -storetype pkcs12 -keystore ../codesign.p12 
                                myApp.apk 
                                myApp-app.xml 
                                myApp.swf icons