`
897371388
  • 浏览: 529132 次
文章分类
社区版块
存档分类
最新评论

Android Developers:在命令行构建和运行

 
阅读更多

使用Ant构建脚本构建你的应用程序有两种方式:一种用于测试/调试你的引用程序—debug模式—另一种用于构建你最终发布的包-release模式。无论你使用哪种方式构建你的应用程序,它必须在安装在模拟器或者设备之前被签名—当以debug模式构建的时候使用debug key,当以release模式构建的时候使用你自己的private key。

无论你使用debug模式或者release模式构建,你需要使用Ant工具来编译和构建你的项目。这将创建你能安装在模拟器或者设备上的.apk文件。当你以debug模式构建的时候,.apk文件自动通过SDK工具使用debug key签名,所以立即能安装在模拟器或者附加的开发设备中。当你以release模式构建的时候,这个.apk文件是没有被签名的,所以你必须运用Keytool和Jarsinger,使用你自己的private key手工签名。

你阅读并理解Signing Your Applications是非常重要的,尤其是一旦你准备发布你的应用程序和终端用户共享它的时候。那个文档讲述了生成private key和使用它签名你的.apk文件的过程。如果你仅仅是刚开始,可是,你能在模拟器或者你自己的开发设备上,通过以debug模式构建,快速运行你的应用程序。

如果你没有Ant,你能从Apache Ant官网上获取它。安装它并确保它在你的可执行PATH。在你调用Ant之前,你需要声明JAVA_HOME环境变量来指定JDK被安装的路径。

注意:当你在Windows中安装JDK的时候,默认是安装在“Program File”目录中。因为空格,这个位置将会导致ant失败。为了解决这个问题,你能像这样指定JAVA_HOME环境变量:

set JAVA_HOME=c:\Progra~1\Java\<jdkdir> 

最简单的解决办法,那就是,在一个没有空格目录下安装JDK,例如:

c:\java\jdk1.6.0_02 

在Debug模式构建

—————————————————————————————————————————————————————————————

为了立刻测试和调试应用程序,你可以在debug模式下构建你的应用程序,并且立即在模拟器上安装。在debug模式中,构建工具使用debug key自动签名你的应用程序,并且使用zipalign优化包。

在debug模式下构建:

  1. 打开命令行,导航到你的项目的根目录。

  2. 使用Ant在debug模式编译你的应用程序:

ant debug 

这在项目的bin/目录中创建你的调试.apk文件,名字为<your_project_name>-debug.apk,这个文件已经使用debug key签名,并且zipalign优化。

每次你改变一个源文件或者资源,你必须再次运行Ant为了打包你的应用程序的最新版本。

为了在模拟器上安装和运行你的应用程序,阅读下面的章节Running on the the Emulator。

在Release模式构建

—————————————————————————————————————————————————————————————

当你准备向终端用户分发你的应用程序的时候,你必须以release模式构建你的应用程序。一旦你完成在release模式的构建,建议对最终的.apk文件进行附加的测试和调试。

在你开始以release模式构建你的应用程序之前,注意你必须使用private key签名你的最后应用程序包,然后使用zipalign工具优化它。以release构建这里有两种方式:在release模式构建一个为签名的包,然后手工签名并优化这个包,或者使用构建脚本签名并优化你的包。

未签名构建

如果你未签名构建你的应用程序,然后你将需要手工签名和优化这个包。

为了以release模式构建一个未签名的.apk文件:

  1. 打开命令行,导航至你的项目的根目录。

  2. 使用Ant在release模式下编译你的项目:

ant release 

这样在这个项目的bin/目录下创建了你的Andorid应用的.apk文件,名字为<your_project_name>-unsigned.apk。

注意:注意在这个时候这个.apk文件是未签名的,并且直到你使用你的private key签名前不能被安装。

一旦你创建了未签名的.apk文件,你的下一步是使用你的private key签名这个.apk文件,然后使用zipalign优化它。为了完成这个步骤,阅读Signing Your Applicaitons。

当你的apk文件已经被签名和优化的时候,它已经可以被发布给终端用户。你应该在不同的设备或者AVD测试这个最终的构建,来确保它在不同的平台顺畅运行。

签名和优化构建

如果你想,你可以配置Android构建脚本来自动签名和优化你的应用程序包。如果这样做,你必须在你的项目的ant.properties文件中提供你的keystore路径和你的key别名名称。使用提供的这些信息,当你以release模式构建的时候,构建脚本将提示你输入你的keystore和别名密码,并产生你应用程序最终的包,它已经可以发布。

当心:当以Ant的方式处理输入的时候,在构建的过程中你输入的密码将可见。如果你担心你的keystore和别名密码在屏幕中可见,那么你可能更愿意使用Jarsinger(或者相似的工具)执行手工签名应用程序。为了执行手工的执行签名过程,未签名构建,然后跟着Signing Your Applications继续。

为了指定你的keystore和alias,打开项目的ant.properties文件(在你的项目的跟目录中寻找),并输入key.store和key.alias实体。例如:

key.store=path/to/my.keystore 
key.alias=mykeystore 

保存你的修改。现在你能在release模式构建签名的apk:

  1. 打开命令行,导航至你的项目的根目录。

  2. 使用Ant在release模式编译你的项目:

ant release 

  1. 当提示,输入你的keystore和alias密码。

当心:如上面所描述的,你的密码将会在屏幕中可见。

这样在项目的bin/目录中创建了你的Android应用程序的.apk文件,名字为<your_project_name>-release.apk。这个.apk文件已经使用了在ant.properties文件中指定的private key签名,并使用zipalign优化。它已经可以安装和发布。

在release模式完成构建和签名

一旦你使用private key完成对你的应用程序的签名,你在模拟器或者设备上安装并运行它。你也能尝试从web服务器上向设备上安装它。向网站上传这个签名的.apk文件,然后在你的Android网页浏览器中加载这个.apk的URL,来下载这个应用程序并开始安装。(在你的设备中,确保启动Settings>Applications>Unknown sources。)

在模拟器上运行

————————————————————————————————————————

在你能在Android模拟器上运行你的应用程序之前,你必须Crate an AVD。

为了运行你的应用程序:

  1. 打开AVD Manager,并启动一个虚拟设备

从你的SDK的platform-tools/目录,使用avd选项运行android工具:

android avd 

  1. 安装你的应用程序

从你的SDK的tools/目录,在模拟器安装这个.apk:

adb install <path_to_your_bin>.apk 

在你构建你的应用程序之后,你的apk文件(使用release或者debug key签名)在你的项目bin/目录中。

如果有超过一个模拟器在运行,你必须使用-s选项,使用它的serial number,指定在哪个模拟器安装这个应用程序。例如:

adb -s emulator-5554 install path/to/your/app.apk 


为了查看可用的设备serial number列表,执行adb devices。

如果在模拟器上你没有看见你的应用程序,尝试关闭模拟器,从AVD Manager再次启动这个虚拟设备。某些时候,当你第一次安装应用程序,它不会出现在应用程序启动器中,或者访问其它应用程序。这时因为包管理器通常仅仅在模拟器启动的时候完整检测清单。

一定要创建多个AVD来测试你的应用程序。你应该创建为每个平台和你的应用程序兼容的屏幕类型,创建一个AVD。例如,如果你的应用程序使用Android 4.0(API Level 14)平台编译,你应该为等于或大于4.0的每个平台和你支持的每个屏幕类型,创建一个AVD,然后在上面测试你的应用程序。

提示:如果你仅仅有一个模拟器在运行,你可以仅仅一步就构建你的应用程序并在模拟器上安装它。导航到你的项目的根目录,使用Ant工具编译的install模式:ant install。这将构建你的应用程序,

在设备上运行

————————————————————————————————————————

更多信息请阅读Setting up a Device for Developerment。

一旦你的设备设置完成

adb -d install path/to/your/app.apk 

-d标识指定你想使用附加的设备(在你还有一个模拟器运行的情况)。

更多关于上面使用的工具的信息,请查阅下面的文章:

  • android Tool

  • Android Emulator

  • Android Debug Bridge(ADB)

应用程序签名

————————————————————————————————————————

当你开始开发你的应用程序,明白在系统在模拟器或者设备上安装它们之前所有的Android应用程序必须数字化签名。这里有两种方式实现它:使用debug key(为了立即在模拟器或者开发设备上测试)或者使用private key(用于应用程序发布)。

Android构建工具帮助你使用debug key在构件时自动签名你的apk文件。这意味这你能编译并且在模拟器上安装你的应用程序,并不需要生成一个你自己的private key。然而,请注意,如果你想发布你的应用程序,你必须使用你自己的private key签名你的应用程序,而不是通过SDK工具生成debug key。

ADT插件帮助你在将它们安装到模拟器和开发设备之前,快速使用debug key签名你的apk文件。这意味着你能在没有生成你自己的private key之前,从Eclipse中快速运行你的应用程序。没有你需要具体执行的动作,提供的ADT已经访问了Keytool。然而,请注意如果你想发布你的应用程序,你必须使用你的private key签名你的应用程序,而不是使用SDK工具生成的debug key。

请阅读Singing Your Applications,它为Android应用程序签名提供了一个全面的指南,和它对于一个Android开发人员意味着什么。这个文档也包含一个使用ADT的Export Wizard导出并签名你的应用程序指南。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics