編輯:關於Android編程
在使用百度地圖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控制台服務,具體如下圖:
創建應用
點擊"創建應用",進入創建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來完成您的開發工作了。
配置環境及發布Android SDKAndroid開發工具很多,在這我們推薦各位開發者使用Eclipse和Android Studio作為自己的開發工具。下面我們將分別針對Eclipse和Android Studio介紹一下地圖SDK的工程配置方法。
第一步:在工程裡新建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 .
第一步:在工程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.**
保證百度類不能被混淆,否則會出現網絡不可用等運行時異常
過去的兩天,在項目中,拋棄了ListView, 想試一試RecyclerView, 在用的過程中,遇到了一些問題,比如:如何為RecyclerView添加Header和F
Android 5.0 是 Google 於 2014 年 10 月 15 日(美國太平洋時間)發布的全新 Android 操作系統,英文名為Lollipop,翻譯過來就
一般使用過UCWEB-Android版的人都應該對其特殊的menu有一定的印象,把menu做成Tab-Menu(支持分頁的Menu),可以容納比Android傳統的men
本文實例講述了Android EditText自定義樣式的方法。分享給大家供大家參考,具體如下:1.去掉邊框EditText的background屬性設置為@null就搞