您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

【Android】第3章(1)百度地图及其应用--预备知识

2024/8/3 13:37:31发布52次查看
分类:c#、android、vs2015、百度地图应用; 创建日期:2016-02-04 一、概述 这一章先来点有意思的百度地图应用示例,然后再分章详细介绍用c#开发android app的各种基本技术。 本章以百度官网2016年1月发布的地图api(3.7.1版)为例,演示如何用c#和vs2015编
分类:c#、android、vs2015、百度地图应用; 创建日期:2016-02-04
一、概述这一章先来点有意思的百度地图应用示例,然后再分章详细介绍用c#开发android app的各种基本技术。
本章以百度官网2016年1月发布的地图api(3.7.1版)为例,演示如何用c#和vs2015编写百度地图应用程序,这些示例程序既可以在android 6.0的x86模拟器中运行,也可以发布到android 4.0以上版本的手机中测试实际运行的效果。
1、下载官网提供的demos首先访问下面的网址:
http://developer.baidu.com/map/
打开网页后,选择【开发】à【andoid开发】下的第1项“android地图sdk”,单击该网页中的【相关下载】,就会出现下面的界面:
单击【自定义下载】,在弹出的界面中,除了导航功能外,其他全部选中,然后将其下载到本机中,并解压到某个文件夹下,以便后续的步骤使用它。
2、使用gaxaxy_api23_x86模拟器观察运行结果为了解决mapview使用硬件加速时存在的问题,百度提供了一个texturemapview控件,使用此控件呈现地图时,要求修改模拟器的开发者选项。
要使用texturemapview显示百度地图,需要满足下面的条件:
将所有官方示例中的mapview全部改为用texturemapview控件来呈现。修改模拟器的开发者选项,将其设置为允许模拟器“强制进行gpu渲染”(如下图所示)。
这两个条件都满足后,百度地图才能顺利显示出来。
好了,以后也不需要忍受没有硬件加速的arm模拟器那个特别的“慢”了,后面的例子将继续用带硬件加速的x86模拟器来演示。
当然也可以直接用手机调试运行(这是建议的调试办法,手机连上电脑后可直接在debug右侧的下拉框中看到该手机的选项,用这种办法调试地图应用程序也更符合实际。但是,由于手机调试截图麻烦,所以这里还是直接用模拟器来演示了。
二、创建bdmapv371bindinglib解决方案解决方案和项目名:bdmapv371bindinglib
模板:bindings library(android)
创建绑定库的目的是将百度地图sdk 3.7.1版本的所有.jar文件自动转换为.cs文件并生成对应的.dll文件,转换以后,就可以在应用项目中引用生成的.dll文件了。
这也是转换.jar文件为.cs文件最常用的办法。
1、添加jar文件将以下文件复制到项目的jars文件夹下,并将这些文件的【生成操作】属性全部改为“embeddedjar”。
baidulbs_android.jar
indoorscapealbumplugin.jar
2、添加最新稳定版xamarin.android.support.v4的引用鼠标右击【引用】à【管理nuget程序包】,添加最新稳定版xamarin.android.support.v4的引用,本人添加的是xamarin.android.support.v4.23.1.1.0。
3、修改metadata.xml文件打开transforms文件夹下的metadata.xml文件,将其改为下面的内容:
versioninfostringavarbvaraddressstringversioninfostringversioninfostringfalsedistrictsearchsfalsepublicfalse
4、添加baidumapoptions.cs文件在additions文件夹下添加该文件,然后将其改为下面的内容:
namespace com.baidu.mapapi.map{ public partial class baidumapoptions { public baidumapoptions() { } }}
该文件的用途是提供一个不带参数的构造函数,如果不添加该文件,无法直接在后续节的demos项目中创建baidumapoptions的实例(这一节用不到它)。
5、生成dll文件
鼠标右击该项目名,选择【生成】,此时应该在【输出】窗口中看到编译成功了:
========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ==========
这样一来,在bin\debug文件夹下就成功生成了bdmapv371bindinglib.dll,以后就可以在示例项目中引用这个.dll文件了。
三、创建bdmapv371demos解决方案并获取开发密钥解决方案和项目名:bdmapv371demos
模板:blank app(android)
开发百度地图应用程序时,需要先在百度官网上申请一个开发密钥,百度的开发密钥由“sha1+包名”组合组成,这是为了让一个项目唯一对应一个申请的密钥(key)。密钥申请成功后,才能在对应的项目中使用百度地图api。
1、修改androidmanifest.xml文件修改bdmapv371demos项目的该文件,将其改为下面的内容:

2、运行项目得到sha1按键运行项目,在输出窗口中找到下面这一行:
d/auth info( 3210): mcode: 【……】;bdmap361test.bdmap361test
其中,分号前的【……】就是sha1,复制它,以备下一步申请密钥用。
说明:创建另一个解决方案和项目时,只要你的开发环境不变,调试模式的sha1还是这个值(这个值与是哪个项目无关,而是与debug.keystore文件有关),所以最好把这个sha1保存在单独的文档中,以便以后用它申请多个开发密钥。
当然,由于这一步还没有完成密钥申请的第2步,现在还看不到地图。
实际上,你稍微观察一下输出窗口,就会发现当你按键调试运行后,系统首先自动执行的就是下面介绍的这些命令。或者说,这些步骤是系统自动完成的,不需要你去做。这里之所以解释一下这些命令的含义,目的只是为了帮你理解它是如何得到sha1并自动显示出来让你去使用的):
对于windows操作系统来说,默认情况下,可以在以下位置找到xamarin.android调试版本的用于应用程序签名的密钥库:
c:\users\[username]\appdata\local\xamarin\mono for android\debug.keystore
通过jdk提供的keytool命令,可得到密钥存储库的信息。对于windows系统来说,keytool的位置为:c:\program files (x86)\java\jdk1.7.0_79\bin keytool.exe。
在vs2015中的使用办法为(不需要你去配置环境变量):依次单击【工具】à【android】à【android adb command prompt】,这样就进入了命令行模式。
在命令行模式下,可使用下面的命令形式运行keytool工具:
keytool -list -v -keystore [store filename] -alias [key name] -storepass [store password] -keypass [key password]
键入的具体命令为(注意[username]应该替换为实际的名字):
c:\
cd\users\[username]\appdata\local\xamarin\mono for android
keytool -list -v -keystore debug.keystore -alias androiddebugkey -storepass android -keypass android
此时你在控制台窗口中将会看到下面的内容:
别名: androiddebugkey
序列号:……(此处省略了具体值)
有效期开始日期: ……(此处省略了具体值)
截止日期: ……(此处省略了具体值)
证书指纹:
md5: ……(此处省略了具体值)
sha1: ……(此处省略了具体值)
sha256:……(此处省略了具体值)
签名算法名称: sha256withrsa
版本: 3
扩展
……
3、进入官网获取开发密钥进入百度的官网(http://developer.baidu.com/map/),选择【开发】à【andoid开发】下的第1项“android地图sdk”,然后单击该网页中的【申请密钥(key)】,选择【进入新的key申请系统】,输入下面的信息:
应用名称:bdmapv371demos
应用类型:android sdk
数字签名(sha1):
包名:bdmapv371demos.bdmapv371demos
对于c#项目来说,这里输入的包名实际上是“解决方案名.项目名”,并没有全部是小写字母的要求。
将上一步复制的sha1粘贴到“数字签名(sha1)”右侧的文本框中。
单击【提交】按钮,完成密钥申请。
4、将申请的密钥填入到配置文件中修改androidmanifest.xml文件,在application中填入你刚申请的密钥。
以后再为新项目申请新的密钥时,只要开发环境不变,这个sha1值就不会变化。以后再申请新的密钥时,直接填入这个sha1值就行了。
接下来就可以逐步调试本章后面介绍的示例了。
【上一篇】第2章(2)phonewordapp--第1个andoid应用程序   【下一篇】第3章(2)创建本章示例项目
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product