1.实验目的
(1)掌握高德地图API Key的获取方法。为了在应用程序中调用第三方Map服务,必须先获取第三方Map服务的API Key。
(2)掌握高德地图调试环境的配置。高德地图目前不支持Android Studio模拟器底层系统架构,所以需要使用第三方模拟器或者真机,本实验使用夜神模拟器。
(3)掌握高德地图开发环境的配置和界面获取方式。
2.界面与功能
高德地图具有显示地图、导航、搜索、定位、规划路径等功能。本实验主要展示调用显示地图的方法,高德地图默认显示北京市,如图6.1(a)所示。该程序界面上的Switch添加了事件监听器,可以通过该控件打开路况,如图6.1(b)所示,地图设置了倾斜度,将地图放大后可以显示3D的建筑物,如图6.1(c)所示。
3.实验步骤
步骤1:使用高德地图需要获取地图服务的API Key,在获取API Key之前需要获取keystore中存储的认证指纹,keystore是密钥库,它分为以下两种版本。
•发布版本(release version):如果是作为实际产品发布的签名App,这类App的数字证书的keystore一般保存在用户自定义的路径中,生成方法参考第4章实验2“知识拓展:APK签名”部分介绍的生成密钥库的方法。
•调试版本(debug version):Android Studio自带一个供调试的keystore,存放路径通常为C:\Users\用户名\.android\debug.keystore。
图6.1 高德地图的调用
在高德地图中有些功能需要同时获取发布版本和调试版本,如果有多个工程使用同一个认证指纹,则会导致地图加载失败。本实验以调试版本keystore为例。
步骤2:调试版本认证指纹申请。调用JDK提供的keytool工具查看keystore的认证指纹,Android Studio已经将该功能集成到开发环境。打开Android Studio主界面最右侧的Gradle窗口,依次单击创建的App|“Tasks”|“android”,最后双击“signingReport”,如图6.2所示,然后会出现图6.3所示的窗口,其中“SHA1”后的字符串就是通过keystore生成的指纹。
图6.2 生成密钥库认证指纹
步骤3:发布版本的认证指纹的获取(用于调试功能的应用可以跳过此步骤)。首先使用“APK签名”功能生成密钥库,例如,生成的密钥库为文件D:\release_app.jks,然后进入命令行下执行“keytool-list-v-keystore D:\release_app.jks”,接着输入在生成密钥库时输入的密码,即可获得发布版本的认证指纹,如图6.4所示。
图6.3 生成调试版本的认证指纹
图6.4 生成发布版本的认证指纹
提示:如果运行工具时系统提示找不到命令的错误,则说明PATH环境变量配置错误,需增加%JAVA_HOME%/bin的环境变量,其中%JAVA_HOME%代表JDK的安装路径,JDK的安装路径的bin子目录下应包含keytool.exe工具,该命令就是对该工具的调用。
步骤4:打开高德地图登录网址http://id.amap.com/,根据页面提示注册登录,如图6.5所示。注册登录后,打开http://lbs.amap.com/dev/index/页面申请“成为开发者”,页面会提示用户输入邮箱、上传身份证正反面、输入手机号码(请输入真实的邮箱和手机号码,高德会采用短信或邮箱的方式进行验证),提交请求,并通过邮件激活,此时就拥有了一个高德的开发者账号。
图6.5 登录高德地图
步骤5:在高德地图的控制台页面单击“我的应用”新建一个应用,如图6.6所示,在弹出的窗口中输入应用名称和应用类型,如图6.7所示。应用创建完毕后,在控制台会出现图6.8所示的应用,在该页面中通过单击“+”按钮添加新的Key,则会出现图6.9所示的页面。
图6.6 新建一个应用
图6.7 输入应用名称和应用类型
图6.8 应用创建完成后的页面
步骤6:如果是调试版本,则在图6.9的“发布版安全码SHA1”文本框中输入图6.3中生成的SHA1指纹。如果是发布版本,则在“发布版安全码SHA1”文本框中输入图6.4中生成的SHA1指纹,在“调试版安全码SHA1”文本框中输入图6.3中生成的SHA1指纹。本实验以调试版本为例。在“PackageName”文本框中输入Android Manifest.xml配置文件中package属性的取值,这里输入“cn.edu.android.app15”,单击“提交”按钮,系统返回图6.10所示的页面,可在该页面中获取API Key。
步骤7:安装夜神模拟器。夜神模拟器下载地址为https://www.yeshen.com/,本实验以v6.6.0.3为例,下载完成后双击文件安装,安装完成后直接运行,第一次运行该模拟器时加载较慢,需耐心等待。模拟器加载完毕后单击工具栏的设置按钮,在“性能设置”|“分辨率设置”中选择“手机版”,并设置分辨率,如图6.11所示。
提示:如果用Android真机调试则可以不安装该模拟器,直接安装真机驱动程序后,通过USB接口连接真机和计算机,在Android Studio中运行程序,即可识别出真机。
步骤8:设置夜神模拟器为开发者模式。打开模拟器中的“设置”,依次打开“系统”|“关于平板电脑”选项,如图6.12(a)所示,单击“版本号”5次即可打开开发者模式。回到上一个界面,在“关于平板电脑”选项上方会多出一个“{}开发者”选项,单击该选项,在出现的界面中打开“USB调试”开关,如图6.12(b)所示,重启模拟器生效。此步骤同样适用于真机调试。
图6.9 填写申请Key的信息
图6.10 API Key申请成功
图6.11 夜神模拟器分辨率设置
图6.12 夜神模拟器打开开发者选项(www.xing528.com)
步骤9:关闭模拟器,打开夜神模拟器的多开器,选中已安装的模拟器,在菜单栏选择“更多操作”|“Android升级”对该模拟器进行升级,将模拟器升级至最新版本,如图6.13所示,否则输入法可能无法使用。
图6.13 夜神模拟器升级
步骤10:新建模块App15。新建项目的包名为申请API Key时填写的应用包名,即应用程序的包路径(PackageName)必须与图6.9中的完全一致,地图不能运行很多情况下就是这个问题引起的。
步骤11:修改模块的build.gradle文件,增加支持的SO库架构,设置地图的依赖。设置依赖后保证网络畅通,否则会导致高德的地图包无法下载。
如果采用最新版本,则将版本号改为“latest.integration”,也可以换成其他的版本号。
步骤12:配置清单文件Android Manifest.xml,在该文件的application……/元素内添加以下meta-data……/子元素。meta-data……/元素用于启用高德地图支持,其中的android:value属性值应该填写前面申请得到的API Key。
注意:不要按照以上代码直接输入,否则会导致地图加载失败。
步骤13:在Android应用的Android Manifest.xml文件中添加以下权限。
步骤14:在布局文件中先放入Map View和Switch控件。将Switch的ID设置为switch,将文本设置为“路况”,将该控件放在界面顶部中央。设置两个控件的约束。
步骤15:Map View要求在其所在的Activity的生命周期函数中回调Map View的生命周期函数。高德地图提供了Map View组件,这个Map View继承了FrameLayout,因此它的本质是一个普通的容器控件,开发者可以直接将该Map View添加到应用界面上。
步骤16:Map View只是一个容器,真正为Map View提供地图支持的是AMap类,Map View可以通过get Map()方法来获取它所封装的AMap对象,AMap对象则提供了大量的方法来控制地图。
步骤17:运行模拟器和App15。如果在弹出的“Select Deployment Target”窗口中没有找到夜神模拟器,则在命令行中输入“adb connect 127.0.0.1:62001”。夜神模拟器默认具有root权限,所以不需要在“设置”中赋予权限,直接运行该App就可以获取地图需要具有的权限,真机中必须要赋予权限才能运行。
知识拓展:生成文档
在日常开发中为了方便别人调用经常需要提供文档,Java中可以通过注释生成文档,主要步骤如下所述。
步骤1:在每个类和方法前加入注释,如图6.14所示。常用的注释如下。
图6.14 为代码增加注释
•@author:代码的作者信息。
•@deprecated:指明一个过期的类或成员。
•@param:说明一个方法的参数,后面描述参数的类型和参数,如果有多个参数则另起一行,并依旧以“@param”开头。例如:@param{string}title页面的标题。
•@exception:标志一个类抛出的异常。例如:@exception抛出IOException。
•@return:说明返回值类型。例如:@return{String}返回字符串类型。
•@example:用于表示示例代码,通常示例代码会另起一行编写,如下所示。
•@overview:对当前代码文件的描述。
•@copyright:代码的版权信息。
•@version:描述当前代码的版本。例如:@version v1.2。
步骤2:依次选择Android Studio工具栏的“Tools”|“Generate JavaDoc”,弹出图6.15所示的界面。
步骤3:在图6.15所示的界面中选择“Whole project”(整个项目)、“Custom scope”(指定模块)或者指定的模块和文件,然后在“Output directory”中指定输出文档的路径。如果注释中有中文字符,需要在“Other command line arguments”中填写“-encoding utf-8-charset utf-8”,否则生成会失败并提示“编码GBK的不可映射字符”。最后单击“OK”生成HTML页面,如图6.16所示,可以使用第三方工具将其制作成一个CHM文件。
图6.15 生成JavaDoc
图6.16 生成的HTML文档
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。