使用命令行方式进行签名需要JDK中的两个命令行工具:keytool.exe和jarsigner.exe。可按如下两步对apk文件进行签名:

1.

keytool -genkey -v -keystore key.pem  -alias aliasname -keyalg RSA -validity 3000 

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

2.

#jarsigner -verbose -keystore key.pem  test.apk aliasname

key文件需要放在当前目录,否则会找不到。


3.

编译工程中的源文件

#javac $(PROJECT_PATH)\*.java -classpath $(SDK_PATH)\platform\$(SDK_VERSION)\android.jar -d  $(PROJECT_PATH)\bin\classes\  

cd$(PROJECT_PATH)\bin\classes\ 

jar cvf test.jar *.*

cd..

dx --dex --output=classes.dex$(PROJECT_PATH)\bin\classes\aimoxiu.jar  //这句命令把刚才的jar包转换成android手机能够运行的dex文件

第三步可以省略,工程编译完后,会产生一个classes.dex,不必用命令行行生成。

4.

aapt p -f -S$(PROJECT_PATH)\res -I $(SDK_PATH)\platforms\android-17\android.jar -A  $(PROJECT_PATH)\assets -M AndroidManifest.xml -F test.apk

5.

aapt add test.apk classes.dex  //这句命令把前面生成的classes.dex文件压缩到apk文件,最终生成可运行的apk应用程序