欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android百度地圖應(yīng)用開(kāi)發(fā)基礎(chǔ)知識(shí)

 更新時(shí)間:2016年06月14日 11:13:53   作者:rainmj  
這篇文章主要為大家詳細(xì)介紹了Android百度地圖應(yīng)用開(kāi)發(fā)基礎(chǔ)知識(shí),為開(kāi)發(fā)百度地圖應(yīng)用做準(zhǔn)備,感興趣的小伙伴們可以參考一下

一、概述
 這一章先來(lái)點(diǎn)有意思的百度地圖應(yīng)用示例,然后再分章詳細(xì)介紹用C#開(kāi)發(fā)Android App的各種基本技術(shù)。 
本章以百度官網(wǎng)2016年1月發(fā)布的地圖API(3.7.1版)為例,演示如何用C#和VS2015編寫(xiě)百度地圖應(yīng)用程序,這些示例程序既可以在Android 6.0的x86模擬器中運(yùn)行,也可以發(fā)布到Android 4.0以上版本的手機(jī)中測(cè)試實(shí)際運(yùn)行的效果。 
1、下載官網(wǎng)提供的Demos
 首先訪問(wèn)下面的網(wǎng)址: http://developer.baidu.com/map/
打開(kāi)網(wǎng)頁(yè)后,選擇【開(kāi)發(fā)】à【Andoid開(kāi)發(fā)】下的第1項(xiàng)“Android地圖SDK”,單擊該網(wǎng)頁(yè)中的【相關(guān)下載】,就會(huì)出現(xiàn)下面的界面:

 

單擊【自定義下載】,在彈出的界面中,除了導(dǎo)航功能外,其他全部選中,然后將其下載到本機(jī)中,并解壓到某個(gè)文件夾下,以便后續(xù)的步驟使用它。
 2、使用Gaxaxy_Api23_x86模擬器觀察運(yùn)行結(jié)果
 為了解決MapView使用硬件加速時(shí)存在的問(wèn)題,百度提供了一個(gè)TextureMapView控件,使用此控件呈現(xiàn)地圖時(shí),要求修改模擬器的開(kāi)發(fā)者選項(xiàng)。 
要使用TextureMapView顯示百度地圖,需要滿足下面的條件:
 •將所有官方示例中的MapView全部改為用TextureMapView控件來(lái)呈現(xiàn)。
 •修改模擬器的開(kāi)發(fā)者選項(xiàng),將其設(shè)置為允許模擬器“強(qiáng)制進(jìn)行GPU渲染”(如下圖所示)。

這兩個(gè)條件都滿足后,百度地圖才能順利顯示出來(lái)。 
好了,以后也不需要忍受沒(méi)有硬件加速的ARM模擬器那個(gè)特別的“慢”了,后面的例子將繼續(xù)用帶硬件加速的x86模擬器來(lái)演示。
當(dāng)然也可以直接用手機(jī)調(diào)試運(yùn)行(這是建議的調(diào)試辦法,手機(jī)連上電腦后可直接在debug右側(cè)的下拉框中看到該手機(jī)的選項(xiàng),用這種辦法調(diào)試地圖應(yīng)用程序也更符合實(shí)際。但是,由于手機(jī)調(diào)試截圖麻煩,所以這里還是直接用模擬器來(lái)演示了。 

二、創(chuàng)建BdMapV371BindingLib解決方案 
解決方案和項(xiàng)目名:BdmapV371BindingLib 
模板:Bindings Library(Android) 
創(chuàng)建綁定庫(kù)的目的是將百度地圖SDK 3.7.1版本的所有.jar文件自動(dòng)轉(zhuǎn)換為.cs文件并生成對(duì)應(yīng)的.dll文件,轉(zhuǎn)換以后,就可以在應(yīng)用項(xiàng)目中引用生成的.dll文件了。 
這也是轉(zhuǎn)換.jar文件為.cs文件最常用的辦法。
 1、添加JAR文件 
將以下文件復(fù)制到項(xiàng)目的jars文件夾下,并將這些文件的【生成操作】屬性全部改為“EmbeddedJar”。 
BaiduLBS_Android.jar 
IndoorscapeAlbumPlugin.jar 
2、添加最新穩(wěn)定版Xamarin.Android.Support.v4的引用 
鼠標(biāo)右擊【引用】à【管理NuGet程序包】,添加最新穩(wěn)定版Xamarin.Android.Support.v4的引用,本人添加的是Xamarin.Android.Support.v4.23.1.1.0。 
3、修改Metadata.xml文件 
打開(kāi)Transforms文件夾下的Metadata.xml文件,將其改為下面的內(nèi)容: 

<metadata>
 <attr path="/api/package[@name='com.baidu.mapapi']/class[@name='VersionInfo']/field[@name='VERSION_INFO']" name="managedName">VersionInfoString</attr>
 <attr path="/api/package[@name='com.baidu.platform.comapi.map']/class[@name='A']/field[@name='a']" name="managedName">aVar</attr>
 <attr path="/api/package[@name='com.baidu.platform.comapi.map']/class[@name='B']/field[@name='b']" name="managedName">bVar</attr>
 <attr path="/api/package[@name='com.baidu.location']/class[@name='Address']/field[@name='address']" name="managedName">AddressString</attr>
 <attr path="/api/package[@name='com.baidu.mapapi.cloud']/class[@name='VersionInfo']/field[@name='VERSION_INFO']" name="managedName">VersionInfoString</attr>
 <attr path="/api/package[@name='com.baidu.mapapi.radar']/class[@name='VersionInfo']/field[@name='VERSION_INFO']" name="managedName">VersionInfoString</attr>
 <attr path="/api/package[@name='com.baidu.mapapi.search.core']/class[@name='g']" name="obfuscated">false</attr>
 <attr path="/api/package[@name='com.baidu.mapapi.search.district']/class[@name='DistrictSearch']" name="managedName">DistrictSearchs</attr>
 <attr path="/api/package[@name='com.baidu.pano.platform.comapi.a']/class[@name='a']" name="obfuscated">false</attr>
 <attr path="/api/package[@name='com.baidu.location']/class[@name='LocationClientOption']/field[@name='mLocationMode']" name="visibility">public</attr>
 <attr path="/api/package[@name='com.baidu.mapapi.a.a']/class[@name='a']" name="obfuscated">false</attr>
</metadata>

4、添加BaiduMapOptions.cs文件
 在Additions文件夾下添加該文件,然后將其改為下面的內(nèi)容: 

namespace Com.Baidu.Mapapi.Map
{
  public partial class BaiduMapOptions
  {
    public BaiduMapOptions() { }
  }
}

該文件的用途是提供一個(gè)不帶參數(shù)的構(gòu)造函數(shù),如果不添加該文件,無(wú)法直接在后續(xù)節(jié)的Demos項(xiàng)目中創(chuàng)建BaiduMapOptions的實(shí)例(這一節(jié)用不到它)。 
5、生成dll文件
 鼠標(biāo)右擊該項(xiàng)目名,選擇【生成】,此時(shí)應(yīng)該在【輸出】窗口中看到編譯成功了: 
========== 全部重新生成: 成功 1 個(gè),失敗 0 個(gè),跳過(guò) 0 個(gè) ========== 
這樣一來(lái),在bin\debug文件夾下就成功生成了BdMapV371BindingLib.dll,以后就可以在示例項(xiàng)目中引用這個(gè).dll文件了。 

三、創(chuàng)建BdMapV371Demos解決方案并獲取開(kāi)發(fā)密鑰
 解決方案和項(xiàng)目名:BdmapV371Demos 
模板:Blank App(Android) 
開(kāi)發(fā)百度地圖應(yīng)用程序時(shí),需要先在百度官網(wǎng)上申請(qǐng)一個(gè)開(kāi)發(fā)密鑰,百度的開(kāi)發(fā)密鑰由“SHA1+包名”組合組成,這是為了讓一個(gè)項(xiàng)目唯一對(duì)應(yīng)一個(gè)申請(qǐng)的密鑰(key)。密鑰申請(qǐng)成功后,才能在對(duì)應(yīng)的項(xiàng)目中使用百度地圖API。 
1、修改AndroidManifest.xml文件
修改BdMapV371Demos項(xiàng)目的該文件,將其改為下面的內(nèi)容: 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="BdMapV371Demos.BdMapV371Demos" android:versionCode="1" android:versionName="1.0" android:installLocation="auto">
  <uses-sdk />
  <application android:label="BdMapV371Demos" android:theme="@style/MyCustomTheme">
    <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="你申請(qǐng)的密鑰" />
    <service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote" />
  </application>
  <uses-permission android:name="android.permission.WAKE_LOCK" />
  <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
  <uses-permission android:name="android.permission.WRITE_SETTINGS" />
  <!-- 訪問(wèn)網(wǎng)絡(luò),網(wǎng)絡(luò)定位需要上網(wǎng)-->
  <uses-permission android:name="android.permission.INTERNET" />
  <!-- 這個(gè)權(quán)限用于進(jìn)行網(wǎng)絡(luò)定位-->
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
  <!-- 用于訪問(wèn)wifi網(wǎng)絡(luò)信息,wifi信息會(huì)用于進(jìn)行網(wǎng)絡(luò)定位-->
  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  <!-- 獲取運(yùn)營(yíng)商信息,用于支持提供運(yùn)營(yíng)商信息相關(guān)的接口-->
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <!-- 這個(gè)權(quán)限用于獲取wifi的獲取權(quán)限,wifi信息會(huì)用來(lái)進(jìn)行網(wǎng)絡(luò)定位-->
  <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
  <!-- 用于讀取手機(jī)當(dāng)前的狀態(tài)-->
  <uses-permission android:name="android.permission.READ_PHONE_STATE" />
  <!-- 寫(xiě)入擴(kuò)展存儲(chǔ),向擴(kuò)展卡寫(xiě)入數(shù)據(jù),用于寫(xiě)入離線定位數(shù)據(jù)-->
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  <!-- SD卡讀取權(quán)限,用戶寫(xiě)入離線定位數(shù)據(jù)-->
  <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
  <!--允許應(yīng)用讀取低級(jí)別的系統(tǒng)日志文件 -->
  <uses-permission android:name="android.permission.READ_LOGS" />
  <uses-permission android:name="android.permission.ACCESS_SURFACE_FLINGER" />
  <!--
 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  <uses-permission android:name="android.permission.LOCATION_HARDWARE" />
  <uses-permission android:name="android.permission.SET_ANIMATION_SCALE" />
 -->
  <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="false" android:resizeable="true" android:smallScreens="true" />
</manifest>

2、運(yùn)行項(xiàng)目得到SHA1
 按<F5>鍵運(yùn)行項(xiàng)目,在輸出窗口中找到下面這一行:
 D/auth info( 3210): mcode: 【……】;BdMap361Test.BdMap361Test
 其中,分號(hào)前的【……】就是SHA1,復(fù)制它,以備下一步申請(qǐng)密鑰用。 
說(shuō)明:創(chuàng)建另一個(gè)解決方案和項(xiàng)目時(shí),只要你的開(kāi)發(fā)環(huán)境不變,調(diào)試模式的SHA1還是這個(gè)值(這個(gè)值與是哪個(gè)項(xiàng)目無(wú)關(guān),而是與debug.keystore文件有關(guān)),所以最好把這個(gè)SHA1保存在單獨(dú)的文檔中,以便以后用它申請(qǐng)多個(gè)開(kāi)發(fā)密鑰。
 當(dāng)然,由于這一步還沒(méi)有完成密鑰申請(qǐng)的第2步,現(xiàn)在還看不到地圖。 
實(shí)際上,你稍微觀察一下輸出窗口,就會(huì)發(fā)現(xiàn)當(dāng)你按<F5>鍵調(diào)試運(yùn)行后,系統(tǒng)首先自動(dòng)執(zhí)行的就是下面介紹的這些命令?;蛘哒f(shuō),這些步驟是系統(tǒng)自動(dòng)完成的,不需要你去做。這里之所以解釋一下這些命令的含義,目的只是為了幫你理解它是如何得到SHA1并自動(dòng)顯示出來(lái)讓你去使用的): 
對(duì)于Windows操作系統(tǒng)來(lái)說(shuō),默認(rèn)情況下,可以在以下位置找到Xamarin.Android調(diào)試版本的用于應(yīng)用程序簽名的密鑰庫(kù): 
C:\Users\[USERNAME]\AppData\Local\Xamarin\Mono for Android\debug.keystore 
通過(guò)JDK提供的keytool命令,可得到密鑰存儲(chǔ)庫(kù)的信息。對(duì)于Windows系統(tǒng)來(lái)說(shuō),keytool的位置為:C:\Program Files (x86)\Java\jdk1.7.0_79\bin keytool.exe。 
在VS2015中的使用辦法為(不需要你去配置環(huán)境變量):依次單擊【工具】à【Android】à【Android Adb Command Prompt】,這樣就進(jìn)入了命令行模式。
在命令行模式下,可使用下面的命令形式運(yùn)行keytool工具: 
keytool -list -v -keystore [STORE FILENAME] -alias [KEY NAME] -storepass [STORE PASSWORD] -keypass [KEY PASSWORD] 
鍵入的具體命令為(注意[USERNAME]應(yīng)該替換為實(shí)際的名字): 
C:\ 
cd\users\[USERNAME]\appdata\local\Xamarin\Mono for Android 
keytool -list -v -keystore debug.keystore -alias androiddebugkey -storepass android -keypass android
此時(shí)你在控制臺(tái)窗口中將會(huì)看到下面的內(nèi)容: 
別名: androiddebugkey
 
序列號(hào):……(此處省略了具體值)
 
有效期開(kāi)始日期: ……(此處省略了具體值)
 
截止日期: ……(此處省略了具體值)
 
證書(shū)指紋:
 
MD5: ……(此處省略了具體值)
 
SHA1: ……(此處省略了具體值)
 
SHA256:……(此處省略了具體值)
 
簽名算法名稱: SHA256withRSA
 
版本: 3
 
擴(kuò)展
 
……
 
3、進(jìn)入官網(wǎng)獲取開(kāi)發(fā)密鑰 
進(jìn)入百度的官網(wǎng)(http://developer.baidu.com/map/),選擇【開(kāi)發(fā)】à【Andoid開(kāi)發(fā)】下的第1項(xiàng)“Android地圖SDK”,然后單擊該網(wǎng)頁(yè)中的【申請(qǐng)密鑰(key)】,選擇【進(jìn)入新的key申請(qǐng)系統(tǒng)】,輸入下面的信息:
 應(yīng)用名稱:BdMapV371Demos
 
應(yīng)用類型:Android SDK
 
數(shù)字簽名(SHA1):
 
包名:BdMapV371Demos.BdMapV371Demos
 
對(duì)于C#項(xiàng)目來(lái)說(shuō),這里輸入的包名實(shí)際上是“解決方案名.項(xiàng)目名”,并沒(méi)有全部是小寫(xiě)字母的要求。
 
將上一步復(fù)制的SHA1粘貼到“數(shù)字簽名(SHA1)”右側(cè)的文本框中。
 
單擊【提交】按鈕,完成密鑰申請(qǐng)。 
4、將申請(qǐng)的密鑰填入到配置文件中 
修改AndroidManifest.xml文件,在Application中填入你剛申請(qǐng)的密鑰。
 以后再為新項(xiàng)目申請(qǐng)新的密鑰時(shí),只要開(kāi)發(fā)環(huán)境不變,這個(gè)SHA1值就不會(huì)變化。以后再申請(qǐng)新的密鑰時(shí),直接填入這個(gè)SHA1值就行了。 
接下來(lái)就可以逐步調(diào)試本章后面介紹的示例了。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android動(dòng)畫(huà)系列之屬性動(dòng)畫(huà)的基本使用教程

    Android動(dòng)畫(huà)系列之屬性動(dòng)畫(huà)的基本使用教程

    這篇文章主要給大家介紹了關(guān)于Android動(dòng)畫(huà)系列教程之屬性動(dòng)畫(huà)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Flutter中如何加載并預(yù)覽本地的html文件的方法

    Flutter中如何加載并預(yù)覽本地的html文件的方法

    這篇文章主要介紹了Flutter中如何加載并預(yù)覽本地的html文件的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Android自定義View實(shí)現(xiàn)多邊形統(tǒng)計(jì)圖示例代碼

    Android自定義View實(shí)現(xiàn)多邊形統(tǒng)計(jì)圖示例代碼

    這篇文章主要給大家介紹了關(guān)于Android自定義View如何實(shí)現(xiàn)多邊形統(tǒng)計(jì)圖的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • Android實(shí)用的Toast工具類封裝

    Android實(shí)用的Toast工具類封裝

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)用Toast工具類的封裝,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Android手機(jī)聯(lián)系人快速索引(手機(jī)通訊錄)

    Android手機(jī)聯(lián)系人快速索引(手機(jī)通訊錄)

    最近需要實(shí)現(xiàn)一個(gè)手機(jī)通訊錄的快速索引功能。根據(jù)姓名首字母快速索引功能,下面通過(guò)本篇文章給大家介紹Android手機(jī)聯(lián)系人快速索引(手機(jī)通訊錄)的相關(guān)代碼,需要的朋友參考下
    2015-12-12
  • Android基于BaseExpandableListAdapter實(shí)現(xiàn)的二級(jí)列表仿通話記錄功能詳解

    Android基于BaseExpandableListAdapter實(shí)現(xiàn)的二級(jí)列表仿通話記錄功能詳解

    這篇文章主要介紹了Android基于BaseExpandableListAdapter實(shí)現(xiàn)的二級(jí)列表仿通話記錄功能,結(jié)合具體實(shí)例形式分析了Android實(shí)現(xiàn)通話記錄功能的布局與功能相關(guān)操作技巧,需要的朋友可以參考下
    2017-07-07
  • 使用Glide實(shí)現(xiàn)高斯模糊效果

    使用Glide實(shí)現(xiàn)高斯模糊效果

    這篇文章主要為大家詳細(xì)介紹了使用Glide實(shí)現(xiàn)高斯模糊效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • Intellij IDEA + Android SDK + Genymotion Emulator打造最佳Android開(kāi)發(fā)環(huán)境

    Intellij IDEA + Android SDK + Genymotion Emulator打造最佳Android

    本文介紹Lorinnn在開(kāi)發(fā)Android過(guò)程不斷跌打滾爬中安裝的一套開(kāi)發(fā)環(huán)境,相信你在使用后同樣有不錯(cuò)的體會(huì)。
    2014-07-07
  • Android詳細(xì)講解谷歌推出的官方二維碼掃描庫(kù)

    Android詳細(xì)講解谷歌推出的官方二維碼掃描庫(kù)

    Google推出的官方二維碼掃描庫(kù)你知道嗎?還不知道就落伍咯!本篇文字帶你了解google二維碼掃描庫(kù)的詳細(xì)情況與使用,還不知道的朋友快來(lái)看看吧
    2022-03-03
  • Android實(shí)現(xiàn)果凍滑動(dòng)效果的控件

    Android實(shí)現(xiàn)果凍滑動(dòng)效果的控件

    這篇文章給大家主要介紹了利用Android如何實(shí)現(xiàn)果凍效果滑動(dòng)效果的控件,實(shí)現(xiàn)的效果類似于iOS有阻尼效果的滑動(dòng)控件,一般我們比較親切地稱之為果凍控件,常見(jiàn)的如微信里[我]的那個(gè)面板模塊,即使沒(méi)有再多的選項(xiàng),也不會(huì)很生硬的不允許用戶滑動(dòng)。下面來(lái)一起看看吧。
    2016-11-11

最新評(píng)論