Android--百度地图密钥申请+环境配置(一)

来源:互联网 发布:商务通怎么导出数据 编辑:程序博客网 时间:2024/05/24 01:37

简介

在使用百度地图SDK为您提供的各种LBS能力之前,您需要获取百度地图移动版的开发密钥,该密钥与您的百度账户相关联。因此,您必须先有百度帐户,才能获得开发密钥。并且,该密钥与您创建的过程名称有关,具体流程请参考如下介绍。

Key的申请地址为:http://lbsyun.baidu.com/apiconsole/key

注意:

1. 为了给用户提供更安全的服务,Android SDK自v2.1.3版本开始采用了全新的Key验证体系。因此,当您选择使用v2.1.3及之后版本的SDK时,需要到新的Key申请页面进行全新Key的申请;(新旧key不可通用)

2. 新Key机制,每个Key仅且唯一对于1个应用验证有效,即对该Key配置环节中使用的包名匹配的应用有效。因此,多个应用【包括多个包名】需申请多个Key,或者对1个Key进行多次配置;

3.在新key机制下,若你需要在同一个工程中同时使用百度地图、定位、导航SDK可以共用同一个key;

4. 如果您在Android SDK开发过程中使用了LBS云服务则需要为该服务单独申请一个for server类型的密钥;

申请步骤

登录百度账号

访问API控制台页面,若您未登录百度账号,将会进入百度账号登录页面,如下图:


登陆API控制台

登录会跳转到API控制台服务,具体如下图:

创建应用

点击"创建应用",进入创建AK页面,输入应用名称,将应用类型改为:“Android SDK”:

配置应用

在应用类型选为“Android SDK”后,需要配置应用的安全码,如下图所示:

获取安全码

安全码的组成规则为:Android签名证书的sha1值+packagename例如:


SHA1:BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75


包名:com.baidumap.demo


Android应用获取包名packagename,根据开发工具不同,获取位置有所不同

1、使用 eclipse 开发

包名是Android应用程序本身在AndroidManifest.xml 中定义的名称,例如:

and_key12.png

2、使用 Android studio 开发

包名需要在文件build.gradle中查询 applictionId,例如:

Android签名证书的sha1值获取方式有两种:

第一种方法:使用keytool

第1步:运行进入控制台

第2步:定位到.android文件夹下,输入cd .android

第3步:输入keytool -list -v -keystore debug.keystore,会得到三种指纹证书,选取SHA1类型的证书(密钥口令是android),例如:

其中keytool为jdk自带工具;keystorefile为Android 签名证书文件

第二种方法:在eclipse中,在adt 22中直接查看

如果使用adt 22,可以在eclipse中直接查看:windows -> preferance -> android -> build。 如下图示:

其中“SHA1 fingerprint”值即为Android签名证书的sha1值

成功创建KEY

在输入安全码后,点击“确定”完成应用的配置工作,您将会得到一个创建的Key,请妥善保管您所申请的Key。到这您就可以使用新Key来完成您的开发工作了。

配置环境及发布

开发工具

Android开发工具很多,在这我们推荐各位开发者使用Eclipse和Android Studio作为自己的开发工具。下面我们将分别针对Eclipse和Android Studio介绍一下地图SDK的工程配置方法。

Eclipse工程配置方法

第一步:在工程里新建libs文件夹,将开发包里的baidumapapi_vX_X_X.jar拷贝到libs根目录下,将libBaiduMapSDK_vX_X_X.so拷贝到libs\armeabi目录下(官网demo里已有这两个文件,如果要集成到自己的工程里,就需要自己添加),拷贝完成后的工程目录如下图所示;



第二步:在工程属性->Java Build Path->Libraries中选择“Add External JARs”,选定baidumapapi_vX_X_X.jar,确定后返回。

通过以上两步操作后,您就可以正常使用百度地图SDK为您提供的全部功能了。

注意:由于adt插件升级,若您使用Eclipse adt 22的话,需要对开发环境进行相应的设置,方法如下:

1. 在Eclipse 中选中工程,右键选 Properties->Java Build Path->Order and Export 使 Android Private Libraries处于勾选状态;

2. Project -> clean-> clean all .

Android Studio工程配置方法

第一步:在工程app/libs目录下放入baidumapapi_vX_X_X.jar包,在src/main/目录下新建jniLibs目录,工程会自动加载src目录下的so动态库,放入libBaiduMapSDK_vX_X_X_X.so如下图所示,注意jar和so的前3位版本号必须一致,并且保证使用一次下载的文件夹中的两个文件,不能不同功能组件的jar或so交叉使用。

so的配置也可以参考demo给出的目录结构,如下图所示,在app工程路径下,新建libs,并在libs目录下放入对应不同CPU架构的so文件。这样工程并不会自动加载libs下的so,需在gradle编译时,通过加入代码: jniLibs.srcDir 'libs' 来说明so的路径为该libs路径。

第二步:工程配置还需要把jar包集成到自己的工程中,如图上图所示,放入libs目录下。对于每个jar文件,右键-选择Add As Library,导入到工程中。对应在build.gradle生成工程所依赖的jar文件说明,如图所示:

jar的配置也可参考eclipse方法,进行以下操作:

菜单栏选择 File —>Project Structure。

在弹出的Project Structure 对话框中, 选择module, 然后点击 Dependencies 选项卡.

点击绿色的加号选择File dependency. 然后选择要添加的jar包即可 完成上边的操作后在app目录下的build.gradle文件中,会有引入的类库,如上图所示。

Android studio工程配置详细请参考官方demo。

应用混淆

集成地图SDK的应用,在打包混淆的时候,需要注意与地图SDK相关的方法不可被混淆。混淆方法如下:

-keep class com.baidu.** {*;}-keep class vi.com.** {*;}    -dontwarn com.baidu.**

保证百度类不能被混淆,否则会出现网络不可用等运行时异常


1 1