標籤:jks 狀態 http val ext 為什麼 sdk 唯一性 wifi
這篇文章總結自極客學院張浩老師的android教學課程,在此對張浩老師和崔爽老師表示非常感謝。
(一)基礎知識
在申請百度地圖開發密鑰的時候需要用到數位簽章認證的內容,所以這裡先對此做一下介紹。
(1)什麼是數位簽章認證(keystore)
數位簽章是用來確立軟體與軟體作者之間的關係,Android系統要求所有的應用必須被認證進行簽名之後才能進行安裝。
(2)為什麼要對android應用進行數位簽章
- android安全機制限定
- 保證應用唯一性
- 利用基於簽名的許可權檢查,你就可以在應用程式間以安全的方式共用代碼和資料
(3)什麼時候android應用需要使用數位簽章
- 所有的android應用都需要進行簽名,否則無法安裝到手機
- 在開發調試階段,我們不需要進行簽名就可以將應用安裝到手機上。其原因是IDE預設給我產生了一個debug簽名
(4)如何查看數位簽章認證
查看keystore的命令:keytool -list -v -keystore ***.jks
注意:
- ***.jks為認證檔案
- 為認證檔案內容,紅框內為重要內容
(5)如何產生數位簽章認證
- 產生簽署憑證有兩種方式,分別是命令列和IDE。這裡以IDE中的Android Studio為例介紹如何產生數位簽章認證:
1. Build菜單->Generate Signed APK
2. 點擊Create new
3. 填寫相關資訊
4.點擊OK後到對應路徑下即可看到新產生的數位簽章認證
(6)如何對android應用進行簽名
1. 接上面步驟,點擊next
2.選擇build type,這裡release代表正式發布版本。之後點擊Finish,android應用便會被該認證簽名,產生正式版的apk。
(二)百度地圖API引入
1. 到百度地圖開發人員中心申請密鑰,這裡不詳細描述,百度地圖開發人員中心有詳細的說明。需要注意一點,在申請密鑰的時候,需要填寫數位憑證的SHA1值。關於如何查看數位簽章認證內容,請查看上面的內容。
2. 下載百度地圖SDK的jar包,引入百度地圖SDK,請參考android如何引入jar包的相關知識。
3. 配置Mainfest.xml,添加如下內容:
許可權:
<!-- 這個許可權用於進行網路定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!-- 這個許可權用於訪問GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<!-- 用於訪問wifi網路資訊,wifi資訊會用於進行網路定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<!-- 擷取電訊廠商資訊,用於支援提供電訊廠商資訊相關的介面-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<!-- 這個許可權用於擷取wifi的擷取許可權,wifi資訊會用來進行網路定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<!-- 用於讀取手機當前的狀態-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<!-- 寫入擴充儲存,向擴充卡寫入資料,用於寫入離線定位元據-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<!-- 訪問網路,網路定位需要上網-->
<uses-permission android:name="android.permission.INTERNET" />
<!-- SD卡讀取許可權,使用者寫入離線定位元據-->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission
密鑰:
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="AK" /> //key:開發人員申請的Key
完成後大概如下所示:
4. 最後需要強調一點,在調試百度地圖應用時,必須要配置gradule的簽名檔案,否則會採用預設的debug簽名檔案,這樣百度地圖api就無法使用了,因為我們申請密鑰的時候用的是我們自己的簽名檔案。配置過程如下:
首先在project structure對話方塊中配置signing:
其次配置Build Types:
最終的gradule大概如下所示:
到此,用於百度地圖開發的Android開發環境就算搭建完成了。
Android開發之百度地圖--環境搭建