Apk签名首先要有一个keystore的签名用的文件。
keystore是由jdk自带的工具keytool生成的.
开始->运行->cmd->cd 到JDK目录 C:\Program Files\Java\jdk1.6.0_10\bin
(当然你也可以将jdk bin path添加到环境变量中,这样在任何地方都可以使用keytool了)
然后输入:keytool -genkey -alias whse.keystore -keyalg RSA -validity 20000 -keystore whse.keystore
-alias 后跟的是别名这里是 whse.keystore
-keyalg 是加密方式这里是 RSA
-validity 是有效期 这里是 20000
-keystore 就是要生成的keystore的名称 这里是 asaiAndroid.keystore
然后按回车
按回车后首先会提示你输入密码:这个在签名时要用的要记住了哦。
然后会再确认你的密码。
之后会依次叫你输入 姓名,组织单位,组织名称,城市区域,省份名称,国家代码等。
运行完可以在 C:\Program Files\Java\jdk1.6.0_10\bin 里找到刚才生产的keyStore文件
接下来开始给apk签名
使用的命令是JDK bin下面的jarsigner
好现在可以在刚才的命令行后继续运行以下命令给APK签名:
jarsigner -verbose -keystore whse.keystore -signedjar whse_signed.apk whse.apk whse.keystore
-keystore:keystore 的名称
whse_signed.apk 是签完名后的APK
whse.apk 是签名前的apk
然后按回车:会要求输入刚才设置的密码,输入后按回车就开始签名了。
注意 :有时会签名失败,因为你有可能使用的是eclipse build出来的apk默认是sign过的,所以请重新使用unsign的apk.
右键project -> Android Tools -> Export unsigned application package...
运行成功后在 C:\Program Files\Java\jdk1.6.0_10\bin 目录下会多出一个被签名的apk文件
-----------------------------------------------------分割线--------------------------------------------------------------
接下来我们看看如何为真机申请Gmap API key.
上面我们已经申请过了private keystore,叫whse.keystore,我们可以使用它来申请API key。
同样打开cmd, cd到你keystore所在的path,
输入
keytool -list -alias whse.keystore -keystore whse.keystore -storepass xxxxxx -keypass xxxxxx "xxxxxx"代表你的keystore密码
这时你会得到Fingerprint:
92:AD:BE:8B:CA:AD:14:2B:B4:B1:F7:78:95:96:80:00
打开http://code.google.com/intl/zh-CN/android/maps-api-signup.html
将fingerprint输入,generate API key
Your key is:
086moYPdTBbuMl1AUpBxeXcTtFHR-kjai7xeZgA
This key is good for all apps signed with your certificate whose fingerprint is:
92:AD:BE:8B:CA:AD:14:2B:B4:B1:F7:78:95:96:80:00
Here is an example xml layout to get you started on your way to mapping glory:
<com.google.android.maps.MapView android:layout_width="fill_parent" android:layout_height="fill_parent" android:apiKey="086moYPdTBbuMl1AUpBxeXcTtFHR-kjai7xeZgA" />
将API key填入到mapView中,如上。
最后通过eclipse生成signed apk即可
右键project -> Android Tools -> Export Signed Application Package...
(生成signed apk时要求输入keystore的密码)
将生成的apk安装到real target上就可以使用Gmap了。