Android应用程序------命令行创建程序(2)

Android应用程序------命令行创建程序(1)

使用Apache Ant对HelloCommondline工程进行编译和apk打包

下载Apache Ant地址: http://ant.apache.org/bindownload.cgi

网站提供zip、tar.gz 和tar.bz2三种格式下载,Windows系统用户推荐下载zip格式的二进制包

这里下载的Apache Ant压缩包为apache-ant-1.7.1-bin.zip,版本号为1.7.1,并将其解压缩在E:\Android目录下

在windows系统中添加新的环境变量,Apache才能正常运行。修改位置:“我的电脑” →“属性” →“高级” →“环境变量” →“系统变量”

新增的系统环境变量

JAVA_HOME是JDK的安装目录,根据JDK实际安装位置进行修改

ANT_HOME是Apache Ant的安装目录,根据Apache Ant实际安装位置进行修改

ANDROID_HOME是Android SDK的安装目录,根据实际安装位置进行修改

CLASSPATH是需要使用的库文件的位置

Path是可执行文件的搜索路径,将<Apache Ant>/bin、<JDK>/bin和<Android SDK>/tools三个目录追加到原有的Path变量值中,目录之间使用分号分隔

判断环境变量的正确性。在CMD中运行输入ant命令,通过命令的输出信息判断环境变量是否设置正确

如果输出的提示包含“Unable to locate tools.jar. Expected to find it in……”,则表明设置环境变量不正确

如果环境变量设置正确,ant命令的输出结果如下图

数字签名机制。在Android平台上开发的所有应用程序都必须进行数字签名后,才能安装到模拟器或手机上,否则,将返回错误提示:

Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATERS]

在Eclipse开发环境中,ADT在将Android程序安装到模拟器前,已经利于内置的debug key为apk文件自动做了数字签名,这使用户无需自己生产数字签名的私钥,而能够利于debug key快速完成程序调试

但有一点需要注意,如果用户希望正式发布自己的应用程序,则不能使用debug key,必须使用私有密钥对Android程序进行数字签名

Apache Ant构建Android应用程序支持Debug模式和Release模式两种构建模式

Debug模式是供调试使用的构建模式,用于快速测试开发的应用程序,Debug模式自动使用debug key完成数字签名

Release模式是正式发布应用程序时使用的构建模式,生成没有数字签名的apk文件

Debug模式对HelloCommandline工程进行编译,生成具有debug key的apk打包文件。使用CMD,在工程的根目录下,输入ant debug,结果显示如图

命令运行后,Apache Ant在bin目录中生成打包文件HelloCommandline-debugapk

如果需要使用Release模式,则需在CMD中输入ant release,运行后会在bin目录中生成打包文件HelloCommandline-unsignedapk

apk文件是Android系统的安装程序,上传到Android模拟器或Android手机后可以进行安装

apk文件本身是一个zip压缩文件,能够使用WinRAR、UnZip等软件直接打开

下图是WinRAR打开的HelloCommandline-debugapk文件

res\目录用来存放资源文件

AndroidManifest.xml是Android声明文件

classes.dex是Dalvik虚拟机的可执行程序

resources.arsc 是编译后的二进制资源文件

使用adb.exe将HelloCommondline工程上传到       Android模拟器中

指定AVD。在启动模拟器时,需指定所使用的AVD。可以使用android list avds命令进行查询AVD。在这里,建立两个AVD,Android1.1和Android1.5,1.1版只是用于区别1.5版。这里使用Android1.5启动模拟器

在CMD中输入命令emulator –avd Android1.5

上传文件。Android模拟器正常启动后,利于adb.exe工具能够把HelloCommandline-debugapk文件上传的模拟器中

adb.exe工具除了能够在Android模拟器中上传和下载文件,还能够管理模拟器状态,是调试程序时不可缺少的工具

在CMD中,进入<HelloCommandline>/bin目录,输入命令:adb install HelloCommandline-debugapk。完成apk程序上传到模拟器的过程

如果上传成功,结果如图显示

启动应用程序。apk文件上传后,需手工启动HelloCommandline程序

单击模拟器界面左下角上刚安装的HelloCommandline程序图标,即可手工启动

如果在模拟器中找不到新安装的程序,尝试重新启动Android模拟器

Android的包管理器经常仅在模拟器启动时候检查应用程序的AndroidManifest.xml文件,这就导致部分上传的Android应用程序不能立即启动

编译和打包应用程序。修改HelloCommandline工程代码后,需要使用Apache Ant重新编译和打包应用程序,并将新生成的apk文件上传到Android模拟器中

如果新程序的包名称没有改变,则在使用adb.exe上传apk文件到模拟器时,会出现如下图的错误提示,此时,需要在模拟器中先删除原有apk文件,再使用adb.exe工具上传新的apk文件

删除apk文件的方法

使用adb uninstall <包名称>的方法,例如删除HelloCommandline工程的apk文件,则可在CMD中输入命令adb uninstall edu.hrbeu.HelloCommandline,提示“Success”则表示成功删除

使用 adb shell rm /data/app/<包名称>apk的方法,同样以删除HelloCommandline工程的apk文件为例,在CMD中输入下面的命令,没有任何提示则表示删除成功

如果仅有一个Android模拟器在运行,用户可以一条命令完成Android工程编译、apk打包和上传过程

启动CMD,进入HelloCommandline工程的根目录下

输入adb install,adb.exe将自动构建工程

并使用debug key对工程进行签名

之后将apk文件上传到Android模拟器中

如果同时有两个或两个以上的Android模拟器存在,这种方法将会失败,因为adb.exe不能够确定应该将apk文件上传到哪一个Android模拟器中。多次使用这种方法时,同样需要先删除模拟器中已有的apk文件

(0)

相关推荐