Android开发教程:签名与发布应用程序

Rgenxiao 2011-11-09

要想使Android应用程序在真机上运行,需要对apk(Android 应用程序的执行文件,相当于Symbian 程序的sis/sisx 或 Java ME 程序的 jar 文件)文件进行签名,可以通过命令行或ADT插件方式对apk文件进行签名.

一  首先介绍使用命令行方式进行签名,使用命令行方式进行签名需要JDK中的两个命令行工具,keytool.exe 和 jarsigner.exe.

可按如下两步对 apk 文件进行签名:

(1)  使用keytool 生成专用密钥 (Private  Key)文件

(2) 使用jarsigner 根据keytool 生成的专用密钥对apk文件进行签名。

生成专用密钥的命令如下:

keytool -genkey -v -keystore  androidguy -release.keystore  -alias androidguy  -keyalg RSA -validity  30000

其中 androidgu-release.keystore   表示要生成的密钥文件名,可以是任意合法的文件名.  android表示密钥的别名,后面对  apk 文件签名时需要用到。RSA 表示密钥算法,30000表示签名的有效天数。

在执行上面的命令后,需要输入一系列的信息。这些信息可以任意输入,但一般需要输入一些有意义的信息。下面是作者输入的信息:

Android开发教程:签名与发布应用程序

在输入完上面的信息后,在当前目录下会生成一个androidguy-release.keystore 文件,这个就是专用密钥文件

紧接着使用 jarsigner 命令对apk文件进行签名,首先找到要签名的apk文件,运行命令行进入该目录,将刚生成的androidguy-release.keystore 文件复制到该目录中,最后执行以下命令:  jarsigner -verbose -keystore androidguy -release.keystore iTracks_work.apk androidguy

其中 androidguy 表示使用keytool命令keytool 命令指定的专用密钥文件的别名,  必须指定.在执行上面的命令后,需要输入使用keytool 命令设置的 keystore 密码和  的主密码.如果这两个密码相同,在输入第2个密三时只需按回车键即可(需要注意的是,输入的密码是不回显的)。如果密码输入正确,jarsigner命令会成功对 apk文件进行签名。签名完成后,apk文件会比未签名时大了一些.

二 使用ADT插件方式进行签名

在Eclipse 环境可以直接对 apk文件进行签名,在工程右键菜单中单击[Android Tools] > [Export Signed Application Package...] 菜单项,打开[Export Android Application]对话框,并

在第一页输入要导出的工程名,选择后进入下一步,进入输入密钥文件的路径([Location] 文本框)和密码, 注意:我这里是使用了已存在的密钥文件,如下面两个图:

Android开发教程:签名与发布应用程序Android开发教程:签名与发布应用程序

接下来设置密钥别名等签名信息和要生成的apk文件名,如图

Android开发教程:签名与发布应用程序Android开发教程:签名与发布应用程序

在完成上面的设置后,单击 [Finish] 按钮生成被签名的 apk  文件,查看生成的文件后会发现,除了生成iTrack_work3.apk文件外,还生成了一个private_keys 文件,这个文件就是密钥文件.下次再签名时可以直接选择该文件.

相关推荐