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文件