要想使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表示簽名的有效天數。
在執行上面的命令後,需要輸入一系列的信息。這些信息可以任意輸入,但一般需要輸入一些有意義的信息。下面是作者輸入的信息:
在輸入完上面的信息後,在當前目錄下會生成一個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] 文本框)和密碼, 注意:我這裡是使用了已存在的密鑰文件,如下面兩個圖:
接下來設置密鑰別名等簽名信息和要生成的apk文件名,如圖
在完成上面的設置後,單擊 [Finish] 按鈕生成被簽名的 apk 文件,查看生成的文件後會發現,除了生成iTrack_work3.apk文件外,還生成了一個private_keys 文件,這個文件就是密鑰文件.下次再簽名時可以直接選擇該文件.