android签名打包

真的觉得很奇怪,网上所有的googlemap的key申请都是debug版本的,为什么大家用得这么舒坦呢?难道都没有在真机上面试过?
这是网上获取debug指纹的方式:
keytool -list -alias androiddebugkey -keystore (debug.keystore文件路径) -storepass android -keypass android
正式版的其实完全相同的,但首先要有自己的key,申请自己key最简单是用图像界面,网上的命令行方法out了……
1.右击已经打开的项目名称选择下面:
android签名打包_第1张图片  
2011-6-22 18:47 上传
下载附件 (75.4 KB)


2.选择next
android签名打包_第2张图片  
2011-6-22 18:47 上传
下载附件 (61.18 KB)



3.首次使用选择Create new store,Location你自己选,名称自己取,然后是第一次的密码(要记住,等一下有用)。

Location 需要选择你要生成的key文件:例如 my.keystore

android签名打包_第3张图片  
2011-6-22 18:47 上传
下载附件 (60.6 KB)


4.Alias(别名)和刚刚location里面的名称一样(偷懒,谢谢),之后是第二个密码(也要记住),年限和名称,Next
android签名打包_第4张图片  
2011-6-22 18:47 上传
下载附件 (61.78 KB)


这样,我们自己的key就生成了!我们可以用这个key生成自己的签名程序!


申请这个正式版googlemap key时我们用下面获取指纹:
keytool -list -keystore (你使用的key文件路径) -storepass (你这个key的第一个密码) -keypass (你这个key的第二个密码)

比如我的:

keytool -list -keystore F:\keystore\my.keystore -storepass ..... -keypass ........

密钥库类型: JKS
密钥库提供方: SUN

您的密钥库包含 1 个条目

..............

android签名打包_第5张图片  
2011-6-22 18:47 上传
下载附件 (66.64 KB)


android 开发谷歌map 申请KEY

首先,我们要使用Java下的keytool工具,产生MD5密纹,这个是跟你的证书所关联的,在使用Google Map API时进行对证书校验。Keytool这个文件一般位于%JAVA_HOME%/bin目录下,如果是Linux系统,则位于$JAVA_HOME/bin下的,比如windows下在C:\programs\Java\jdk1.6.0_18\bin下。

在开发Android程序时,一般是在debug调试模式下开发的,这时SDK的build tools会自动使用debug模式下的证书对应用进行签名的,为了产生debug模式下证书的MD5密纹,我们必须找到debug模式下的keystore密钥库,在不同的操作系统中,keystore位于如下位置:

对于模拟器上的,默认的是debug.keystore存放位置可以在eclipse下window->preferences->android->build里查看

  • Keystore name: "debug.keystore"
  • Keystore password: "android"
  • Key alias: "androiddebugkey"
  • Key password: "android"
  • CN: "CN=Android Debug,O=Android,C=US"
这是debug.keystore相关内容。

接下来,我们开始使用keytool工具产生md5密纹,命令行下输入如下语句:

%JAVA_HOME%/bin/keytool -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android  现在我们就产生了debug模式下的MD5密纹了,要注意的是,你必须重新为生产环境下的应用重新生成一次MD5密纹,因为如果在不同的Android SDK或者不同的开发环境下,MD5密纹是不同的,否则换了环境的话Google Map将不会工作。

 产生的MD5密纹的输出如下面:

  androiddebugkey, Apr 2, 2010, PrivateKeyEntry,

  Certificate fingerprint (MD5): 72:BF:25:C1:AF:4C:C1:2F:34:D9:B1:90:35:XX:XX:XX

  接下来,我们要到Google Map API的主页去申请一个Map的key了,可以访问

  http://code.google.com/android/maps-api-signup.html页面,在其中的MD5 fingerprint一栏中输入刚才生成的MD5密纹。输入后,点Generate API Key,之后会为我们产生Google Map API了,这个API是我们在程序中可以使用的。其中还给出了如何在android中使用该API的方法。


然后就按照网上的方法打开:

googlemap key申请地址

copy指纹粘进去,完美了……

android签名打包_第6张图片

然后建项目和建模拟器target那都需要选google api才可以的,然后main.xml里加入MapView,而主程序这样写

  1. package com. example ;
  2.  
  3. import android.os.Bundle;
  4.  
  5. import com.google.android.maps.MapActivity;
  6. import com.google.android.maps.MapView;
  7.  
  8. public  class hello  extends MapActivity  {
  9.      /** Called when the activity is first created. */
  10.     @Override
  11.      public  void onCreate (Bundle savedInstanceState )  {
  12.          super. onCreate (savedInstanceState ) ;
  13.         setContentView (R. layout. main ) ;
  14.         MapView mapView= (MapView )findViewById (R. id. map_view ) ;      
  15.         mapView. setBuiltInZoomControls ( true ) ;
  16.      }
  17.  
  18.  @Override
  19.   protected  boolean isRouteDisplayed ( )  {
  20.    // TODO Auto-generated method stub
  21.    return  false ;
  22.   }
  23. }

可以看到需要继承MapActivity而不是Activity,然后加入了可以使地图放缩的命令
还有一点需要注意,就是程序调用了其他的api并且需要使用网络的权限所以需要在AndroidManifest.xml里进行注册

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3.        package= "com.example"
  4.        android:versionCode= "1"
  5.        android:versionName= "1.0" >
  6.      <uses-sdk android:minSdkVersion="8" />
  7.  
  8.      <application android:icon="@drawable/icon" android:label="@string/app_name">
  9.          <activity android:name=".hello"
  10.                    android:label= "@string/app_name" >
  11.              <intent-filter>
  12.                  <action android:name="android.intent.action.MAIN" />
  13.                  <category android:name="android.intent.category.LAUNCHER" />
  14.              </intent-filter>
  15.          </activity>
  16.     <uses-library android:name="com.google.android.maps" />
  17.  
  18.      </application>
  19.      <uses-permission android:name="android.permission.INTERNET"/>
  20.    
  21. </manifest>

运行程序就可以显示出像本文章最上面那种图那样的地图了。
然后想进一步了解google map及相关api的可以查看这篇hello-mapview和官方的api文档


你可能感兴趣的:(android签名打包)