天天看點

Android--百度地圖密鑰申請+環境配置(一)

版權聲明:本文為部落客原創文章,轉載請标明出處。 https://blog.csdn.net/chaoyu168/article/details/51360593

簡介

在使用百度地圖SDK為您提供的各種LBS能力之前,您需要擷取百度地圖移動版的開發密鑰,該密鑰與您的百度賬戶相關聯。是以,您必須先有百度帳戶,才能獲得開發密鑰。并且,該密鑰與您建立的過程名稱有關,具體流程請參考如下介紹。

Key的申請位址為:

http://lbsyun.baidu.com/apiconsole/key

注意:

1. 為了給使用者提供更安全的服務,Android SDK自v2.1.3版本開始采用了全新的Key驗證體系。是以,當您選擇使用v2.1.3及之後版本的SDK時,需要到新的Key申請頁面進行全新Key的申請;(新舊key不可通用)

2. 新Key機制,每個Key僅且唯一對于1個應用驗證有效,即對該Key配置環節中使用的包名比對的應用有效。是以,多個應用【包括多個包名】需申請多個Key,或者對1個Key進行多次配置;

3.在新key機制下,若你需要在同一個工程中同時使用百度地圖、定位、導航SDK可以共用同一個key;

4. 如果您在Android SDK開發過程中使用了LBS雲服務則需要為該服務單獨申請一個for server類型的密鑰;

申請步驟

登入百度賬号

通路API控制台頁面,若您未登入百度賬号,将會進入百度賬号登入頁面,如下圖:

登陸API控制台

登入會跳轉到API控制台服務,具體如下圖:

建立應用

點選"建立應用",進入建立AK頁面,輸入應用名稱,将應用類型改為:“Android SDK”:

配置應用

在應用類型選為“Android SDK”後,需要配置應用的安全碼,如下圖所示:

擷取安全碼

安全碼的組成規則為:Android簽名證書的sha1值+packagename例如:

SHA1:BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75

包名:com.baidumap.demo

Android應用擷取包名packagename,根據開發工具不同,擷取位置有所不同

1、使用 eclipse 開發

包名是Android應用程式本身在AndroidManifest.xml 中定義的名稱,例如:

2、使用 Android studio 開發

包名需要在檔案build.gradle中查詢 applictionId,例如:

Android簽名證書的sha1值擷取方式有兩種:

第一種方法:使用keytool

第1步:運作進入控制台

第2步:定位到.android檔案夾下,輸入cd .android

第3步:輸入keytool -list -v -keystore debug.keystore,會得到三種指紋證書,選取SHA1類型的證書(密鑰密碼是android),例如:

其中keytool為jdk自帶工具;keystorefile為Android 簽名證書檔案

第二種方法:在eclipse中,在adt 22中直接檢視

如果使用adt 22,可以在eclipse中直接檢視:windows -> preferance -> android -> build。 如下圖示:

其中“SHA1 fingerprint”值即為Android簽名證書的sha1值

成功建立KEY

在輸入安全碼後,點選“确定”完成應用的配置工作,您将會得到一個建立的Key,請妥善保管您所申請的Key。到這您就可以使用新Key來完成您的開發工作了。

配置環境及釋出Android SDK

開發工具

Android開發工具很多,在這我們推薦各位開發者使用Eclipse和Android Studio作為自己的開發工具。下面我們将分别針對Eclipse和Android Studio介紹一下地圖SDK的工程配置方法。

Eclipse工程配置方法

第一步:在工程裡建立libs檔案夾,将開發包裡的baidumapapi_vX_X_X.jar拷貝到libs根目錄下,将libBaiduMapSDK_vX_X_X.so拷貝到libs\armeabi目錄下(官網demo裡已有這兩個檔案,如果要內建到自己的工程裡,就需要自己添加),拷貝完成後的工程目錄如下圖所示;

第二步:在工程屬性->Java Build Path->Libraries中選擇“Add External JARs”,標明baidumapapi_vX_X_X.jar,确定後傳回。

通過以上兩步操作後,您就可以正常使用百度地圖SDK為您提供的全部功能了。

注意:由于adt插件更新,若您使用Eclipse adt 22的話,需要對開發環境進行相應的設定,方法如下:

1. 在Eclipse 中選中工程,右鍵選 Properties->Java Build Path->Order and Export 使 Android Private Libraries處于勾選狀态;

2. Project -> clean-> clean all .

Android Studio工程配置方法

第一步:在工程app/libs目錄下放入baidumapapi_vX_X_X.jar包,在src/main/目錄下建立jniLibs目錄,工程會自動加載src目錄下的so動态庫,放入libBaiduMapSDK_vX_X_X_X.so如下圖所示,注意jar和so的前3位版本号必須一緻,并且保證使用一次下載下傳的檔案夾中的兩個檔案,不能不同功能元件的jar或so交叉使用。

so的配置也可以參考demo給出的目錄結構,如下圖所示,在app工程路徑下,建立libs,并在libs目錄下放入對應不同CPU架構的so檔案。這樣工程并不會自動加載libs下的so,需在gradle編譯時,通過加入代碼: jniLibs.srcDir 'libs' 來說明so的路徑為該libs路徑。

第二步:工程配置還需要把jar包內建到自己的工程中,如圖上圖所示,放入libs目錄下。對于每個jar檔案,右鍵-選擇Add As Library,導入到工程中。對應在build.gradle生成工程所依賴的jar檔案說明,如圖所示:

jar的配置也可參考eclipse方法,進行以下操作:

菜單欄選擇 File —>Project Structure。

在彈出的Project Structure 對話框中, 選擇module, 然後點選 Dependencies 頁籤.

點選綠色的加号選擇File dependency. 然後選擇要添加的jar包即可 完成上邊的操作後在app目錄下的build.gradle檔案中,會有引入的類庫,如上圖所示。

Android studio工程配置詳細請參考官方demo。
      

應用混淆

內建地圖SDK的應用,在打包混淆的時候,需要注意與地圖SDK相關的方法不可被混淆。混淆方法如下:

-keep class com.baidu.** {*;}
-keep class vi.com.** {*;}    
-dontwarn com.baidu.**      

保證百度類不能被混淆,否則會出現網絡不可用等運作時異常

繼續閱讀