版權聲明:本文為部落客原創文章,轉載請标明出處。 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.**
保證百度類不能被混淆,否則會出現網絡不可用等運作時異常