Android google map api key的申請與使用(debug/release)

來源:互聯網
上載者:User

  Android要求對每一個應用程式進行數位簽章才能使用,簽名中包括密鑰、建立人、建立單位等等資訊,儲存在一個keystore中。而google map需要為每一個註冊應用提供地圖服務,應用程式開發人員需要將keystore的指紋傳輸為google來擷取api key,以後每次申請地圖服務的時候,將api key作為參數傳輸給google。google可以根據從用戶端傳說過來的api key來獲知是那個應用程式的需求,以及改應用是否註冊過。

Android中的google map採用控制項MapView來實現,其在xml檔案中的定義,如下所示:


[plain] view
plaincopy

  1.   
[html] view
plaincopy

  1. <com.google.android.maps.MapView  
  2.     android:id="@+id/mapview"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent"  
  5.     android:clickable="true"  
  6.     android:apiKey="0h91BCbpMd7oYa_1VUn_TL0YGqQuPNkTt_EjFOw" />  

其中androdi:apiKey就是我們利用keystore檔案的指紋從google擷取的。

1. debug key        

         作為一個Android開發人員,一般需要兩個apiKey:debug key和release key。所謂debug key是在程式開發過程中使用,由於android程式需要數位簽章才能使用,而在開發過程中,每次運行程式都需要應用程式未免太過麻煩。所以在開發過程中,系統會自動使用debug.keystore對程式進行簽名,debug.keystrore在不同系統中的位置不同,在windows server 2003中位於C:\Documents and Settings\<Username>\.Android下面。

         為了擷取debug.keystore的指紋,我們需要用到下面命令:

[html] view
plaincopy

  1. $ keytool -list -alias androiddebugkey -keystore <path_to_debug_keystore>.keystore -storepass android -keypass android  

如果成功會輸出該keystore的正確指紋,格式如下:

[html] view
plaincopy

  1. 14:5E:B2:3A:3F:DE:50:61:07:2F:39:34:DB:38:57:DD  

開啟網頁

http://code.google.com/android/maps-api-signup.html

勾選同意協議複選框,然後拷貝上面獲得的指紋,就可以得到apiKey,如下所示:

將密鑰拷貝到xml檔案中的MapView下面,google map就可以正常使用了。

2. release key

         對於release key的申請方法和debug key一樣,不同的是release keystrore不再是debug.keystore檔案,而是需要自己產生。命令如下:

[html] view
plaincopy

  1. $ keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000  


         利用自己產生的keystore來申請api key,然後寫到MapView中。

         另外,系統也不應該自動使用debug.keystore來簽名應用,而需要開發人員手動簽名。首先需要將項目以未簽名的方式匯出,右鍵項目-> Android Tools->Export Unsigned Application Package,如:

使用自己產生的keystore檔案來簽名應用:

[html] view
plaincopy

  1. $ jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore my-release-key.keystore my_application.apk alias_name  


apk簽名是原地簽名,它會直接覆蓋掉原來的apk,驗證是否簽名成功:

[html] view
plaincopy

  1. $ jarsigner -verify my_signed.apk  


最後需要壓縮apk:

[html] view
plaincopy

  1. $ zipalign -v 4 your_project_name-unaligned.apk your_project_name.apk  


參考資料:

http://developer.android.com/tools/publishing/app-signing.html

https://developers.google.com/maps/documentation/android/mapkey#registering

轉載:http://blog.csdn.net/lrenjun/article/details/7717958

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.