这篇文章总结自极客学院张浩老师的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开发之百度地图--环境搭建的更多相关文章

  1. Android之旅十八 百度地图环境搭建

    在android中使用百度地图,我们能够先看看百度地图对应的SDK信息:http://developer.baidu.com/map/index.php? title=androidsdk,它里面基本 ...

  2. Android开发之基于AndroidStudio环境搭建和工程创建

    断断续续的学习安卓也有一段时间了.因为之前是搞iOS开发的, 之前有关iOS的博客请看<我的iOS开发系列博文>.<我的Objective-C系列文章>和<窥探Swift ...

  3. 【Android开发】 第一课 环境搭建教程

    Windows 开发环境部署: Android Studio 中文社区:http://www.android-studio.org/ 本教程将分为五个步骤来完成Android开发环境的部署. 第一步: ...

  4. android 开发(百度地图)

    百度地图开放平台:http://lbsyun.baidu.com/ 百度地图API:http://developer.baidu.com/map/reference/ Android地图SDK 百度地 ...

  5. android 开发之 百度地图的使用

    好久没写博客了,最近遇到个新需求 需要用到百度地图的基础地图,定位,理论上应该还会用到鹰眼的功能吧.具体还很难说.我现在 刚动工,就从头开始记录吧. 首先是先申请一个百度地图api的key 流程官网很 ...

  6. Android开发:Eclipse+OpenCV环境搭建

    一.OpenCV预备: OpenCV是一个跨平台计算机视觉库,可以运行在Linux.Windows.Android和Mac OS操作系统上.它由一系列 C 函数和少量 C++ 类构成,同时提供了Pyt ...

  7. Android开发教程之【环境搭建及HelloWorld】(转载)

    引言 本系列适合0基础的人员,因为我就是从0开始的,此系列记录我步入Android开发的一些经验分享,望与君共勉!作为Android队伍中的一个新人的我,如果有什么不对的地方,还望不吝赐教. 在开始A ...

  8. Android开发基于百度地图的乘车助手

    写在前面: 出去玩免不了挤公交.等地铁,不知道乘车方案当然不行,用官方APP吧,缺点一大堆,手机浏览器在线查的话既慢又麻烦...为了解决这些问题,我们来做一个简版的出行助手,嘛嘛再也不用担心我会迷路了 ...

  9. Android开发之百度地图的简单使用

    越来越多的App运用到了定位,导航的这些功能,其实实现一个自己的百度地图也是非常的简单,这篇博客将会教你简单的实现一个百度地图.看一下效果图: 第一步:要使用百度地图,必须要有百度地图的Key,要获得 ...

随机推荐

  1. mac上使用imagealpha命令对图片进行压缩批处理

    #! /bin/bash #BASE_DIR="/Users/jiading/Documents/basepng"; #OUTPUT_DIR="/Users/jiadin ...

  2. Vim速查脑图

  3. 给自己~~微语&&歌单

    如果你很忙,除了你真的很重要以外,更可能的原因是:你很弱,你没有什么更好的事情去做,你生活太差不得不努力来弥补,或者你装作很忙,让自己显得很重要.——史蒂夫-乔布斯 时间并不会因为你的迷茫和迟疑而停留 ...

  4. 玩转github----1

    1.svn和github的区别 svn:集成式:我们在多人开发一个项目的时候我们需要准备一个中央服务器,然后每一个人都要通过这个中央服务器进行代码的一个获取和代码的一个提交,所以说这个所有的版本控制和 ...

  5. NLP概述

    1,词法分析 待续 2,文本分类 文本表示: 重点是贝叶斯模型:二项表示法和多项表示法.(向量维度为词库大小,一个是01,一个是频次).模型重点在于化后验为先验. 还有其他模型:机器学习模型,分布式模 ...

  6. 在MyEclipse和Eclipse中添加Hibernate开发工具

    一.插件准备 MyEclipse需要的插件:HibernateTools-3.2.4.zip Eclipse需要的插件:jbosstools-4.2.3.Final_2015-03-26_22-41- ...

  7. android studio入门

    目前的工作是蓝牙相关的,所以最近心血来潮想折腾下Android开发,方便调试自己的固件, 装好Android Studio跟SDK之后,感谢nordic的公开代码,研究了一会,感觉并没有多费劲 相关的 ...

  8. 自建yum源及分组安装

    最近在研究一套自动化运维方向的框架,在想到远程安装软件包的时候,觉得有yum支持会更方便一些.主要思路是把程序员写的代码或程序打包成rpm,然后提交到自建yum源,并实现按组安装,本地yum源实现步骤 ...

  9. mac电脑的使用

    1. control + command + a 截图 2. shift + command + g 前往 3.在 Mac OS X 中怎样获取当前文件夹的路径 原文网址:https://www.zh ...

  10. Nginx-Lua模块的执行顺序

    一.nginx执行步骤 nginx在处理每一个用户请求时,都是按照若干个不同的阶段依次处理的,与配置文件上的顺序没有关系,详细内容可以阅读<深入理解nginx:模块开发与架构解析>这本书, ...