今天晚上打麻将回来晚了,已经是夜里1点半了,手气不是很好,很是无奈,为了让自己快速的愉悦起来,决定写这篇博客介绍一下在windows系统中如何利用ant,jdk的keytools、jarsigner以及android sdk tools中的zipalign来创建和打包android手机程序。要使用命令行形式来进行创建和打包操作,就有必要先了解一下编译和发布的工作流程,官方的图解还不错,借来用用,省的大家开网页。
官方文档很详细,但是有点罗嗦,简单来说, 从创建到生成可用的apk,需要我们手动操作的,分为以下五个步骤:
- 生成工程
- 编辑工程代码
- 编译工程,生成未签名的apk包
- 为apk安装包签名
- 优化已签名的apk安装包
这次主要介绍1,3,4,5步骤,第二步骤要如何编辑里面的源代码,尽情发挥各位的想象力吧,本博客就只介绍简单的hello world了,谁让今晚手气不好呢。
因为整个流程的操作是在命令行完成,所以,在开始第一步的生成工程前,先要确定2个事情,
1. jdk已经安装;(不会安装jdk? 好吧,请看这里)
2. ant已经安装;(不会安装ant? 好吧,请看这里)
3. Android SDK已经下载;(不会安装sdk?好吧,请去这里下载。或者看看这里)
以上两步完成后,运行windows键+r,输入cmd, 打开那个熟悉的黑色窗口
Android开发开始:
1. 生成工程
我们是利用Android SDK来创建工程的,当你已经下载好SDK后,目录下会有一个名为tools的文件夹,没错,我们需要的工具就在里面。
例如我的环境下,sdk安装目录是F:\Tools\android-sdk-windows
打开命令行窗口后,浏览到sdk的tools目录,然后执行创建工程命令
android create project \
--target <target_ID> \
--name <your_project_name> \
--path path/to/your/project \
--activity <your_activity_name> \
--package <your_package_namespace>
这几个参数中,唯一一个不好理解的是target,没关系,输入>android.bat list targets即可查看详细信息,别偷懒,看看吧,有好处。
(要查看Android SDK提供哪些类型的target ids, 在cmd里cd到{sdk-path}/tool,输入>android.bat list targets即可!)
创建工程命令:
比如我要在D:\myandroid文件夹下创建我的工程,该工程包含一个名为Home的activity,以我的电脑为例,我可以输入下面的命令行
{sdk-path}\tools>android create project --target 8 --name myandroid --path D:\myandroid\ --package com.puma.test --activity Home
这样,工程就生成了,快去D:\myandroid文件夹看看,是不是和eclipse里的文件夹结构类似。
2. 编辑工程
此部分设计到代码开发,以后分解,此次只用默认工程做例子。
3. 利用ant编译工程,生成未签名的apk包
因为我们已经把ant添加到path环境变量里了,所以我们可以在命令行里直接用ant命令。我们在命令行中,转到生成的工程路径下,根路劲下是有一个build.xml文件的。
运行and release命令
运行后,会提示编译成功
这个时候去工程的bin目录下看看,是不是生成了一个apk文件了。
但是这个文件是未签名的,不能安装到手机上。所以下一步需要对该文件签名。
4. 为apk安装包签名
签名之前我们需要准备一个程序的key,我们是使用jdk的keytool工具来制作key的,在我们的jdk/bin里,有个叫做keytool.exe的工具。
在工程路径下,输入下面的命令行,然后回车
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000看到什么了?是不是一对问题,对,就按照提示一个一个填吧,中国的国家代码86
在工程的根目录下就会生成一个my-release-key.keystore文件,这样我们签名所使用的key就有了。
输入下面的命令行,对我们的程序进行签名
D:\myandroid>jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore my-release-key.keystore ./bin/myandroid-release-unsigned.apk alias_name
您可以验证一下是否签名成功,输入下面的命令:
D:\myandroid>jarsigner -verify -verbose ./bin/myandroid-release-unsigned.apk
恭喜你,还差最后一步了,再坚持一下。
5. 优化已签名的apk安装包
再切换到sdk的tools目录,tools里有个叫做zipalign.exe的工具,输入下面的命令行,第一个apk是刚才我们签名过的,第二个是要优化的
F:\Tools\android-sdk-windows\tools>zipalign -v 4 d:/myandroid/bin/myandroid-release-unsigned.apk d:/myandroid/bin/myandroid-release.apk
恭喜你,成功了,用你喜欢的方式安装到手机上试试看吧!
各个步骤参数部分没有详细描述,困了,有机会再补上吧。
老汪 2013年4月17日 凌晨