Android Studio或Eclipse配置百度地图详解教程


文章来源于:http://lbsyun.baidu.com/index.php?title=androidsdk/guide/introduction


简介


什么是百度地图Android SDK?


百度地图 Android SDK是一套基于Android 2.1及以上版本设备的应用程序接口,您可以通过该接口实现丰富的LBS功能:


地图:提供地图(2D3D)的展示和缩放、平移、旋转、改变视角等地图操作;


POI检索:可根据关键字,对POI数据进行周边、区域和城市内三种检索;


地理编码:提供地理坐标和地址之间相互转换的能力;


线路规划:支持公交信息查询、公交换乘查询、驾车线路规划和步行路径检索;


覆盖物:提供多种地图覆盖物(自定义标注、几何图形、文字绘制、地形图图层、热力图图层等),满足开发者的各种需求;


定位:采用多种定位模式,使用定位SDK获取位置信息,使用地图SDK我的位置图层进行位置展示;


离线地图:支持使用离线地图,节省用户流量,同时为用户带来更好的地图体验;


调启百度地图:利用SDK接口,直接在本地打开百度地图客户端或WebApp,实现地图功能。


周边雷达:利用周边雷达功能,开发者可在App内低成本、快速实现查找周边使用相同App的用户位置的功能。


LBS云检索:支持用户检索存储在LBS云内的自有POI数据,并展示;


瓦片图层:支持开发者在地图上添加自有瓦片数据;


特色功能:提供短串分享、Place详情检索、热力图等特色功能,帮助开发者搭建功能更加强大的应用;


面向的读者


百度地图SDK是提供给具有一定Android编程经验和了解面向对象概念的读者使用。此外,读者还应该对地图的基本知识有一定的了解。


您在使用中遇到任何问题,都可以通过API论坛反馈给我们。


获取定制的百度地图SDK


开发者可在百度地图Android SDK的下载页面下载到最新版的地图SDK,下载地址为:http://developer.baidu.com/map/index.php?title=androidsdk/sdkandev-download


为了给开发者带来更优质的地图服务、满足开发者灵活使用SDK的需求,百度地图SDKv2.3.0起,采用了可定制的形式为用户提供开发包。百度地图SDK按功能可分为:基础地图、检索功能、LBS云检索、计算工具和周边雷达五个部分,开发者可根据自身的实际需求,任意组合这五种功能,点击下载页面的“自定义下载”,即可下载相应的开发包来完成自己的应用开发。


基础地图:包括基本矢量地图、卫星图、实时路况图,各种地图覆盖物,瓦片图层,OpenGL绘制能力。此外还包括各种与地图相关的操作和事件监听;


检索功能:包括POI检索(周边、区域、城市内),Place详情检索,公交信息查询,路线规划(驾车、步行、公交),地理编码/反地理编码,在线建议查询,短串分享等;


LBS云检索:包括LBS云检索(周边、区域、城市内、详情);


计算工具:包括计算两点之间距离、计算矩形面积、坐标转换、调启百度地图客户端、判断点和圆/多边形位置关系、本地收藏夹等功能;


周边雷达:包含位置信息上传和检索周边相同应用的用户位置信息功能;


注:本套开发指南是针对默认的全功能包编写,开发者在使用定制化的SDK进行开发时,请参考开发指南中相对应的章节获取更多信息。


兼容性


支持Android 2.1及以上系统。


申请密钥


简介


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


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


注意:


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


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


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


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


申请步骤


  1. 登录百度账号



  1. 登陆API控制台


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


说明: key2.png


  1. 创建应用


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


说明: key3.png


 


  1. 配置应用


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


说明: key5.png


  1. 获取安全码


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


SHA1BB: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,例如:


说明: pagename.png
Android签名证书的sha1值获取方式有两种:


第一种方法:使用keytool


1步:运行进入控制台


说明: and_key6.png 说明: and_key7.png


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


说明: and_key8.png


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


其中keytooljdk自带工具;keystorefileAndroid签名证书文件



说明: and_key10.png


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


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


说明: and_key11.png


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


  1. 成功创建KEY


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


 


配置环境及发布


Android Studio工程配置方法


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



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



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


菜单栏选择 File>Project Structure


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


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



应用混淆


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


-keepclass com.baidu.**{*;}


-keepclass vi.com.**{*;}   


-dontwarn com.baidu.**


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


Hello BaiduMap


开发工具


Android StudioEclipse


显示百度地图


百度地图SDK为开发者提供了便捷的显示百度地图数据的接口,通过以下几步操作,即可在您的应用中使用百度地图数据:


第一步:创建并配置工程(具体方法参见配置环境及发布部分的介绍);


第二步:在AndroidManifest中添加开发密钥、所需权限等信息;


1)在application中添加开发密钥


<application> 


   <meta-data 


       android:name="com.baidu.lbsapi.API_KEY" 


       android:value="下图红色矩形框中的字符串值" /> 


</application>



2)添加所需权限


<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>


<uses-permissionandroid:name="android.permission.INTERNET"/>


<uses-permissionandroid:name="com.android.launcher.permission.READ_SETTINGS" />


<uses-permissionandroid:name="android.permission.WAKE_LOCK"/>


<uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE" />


<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE" />


<uses-permissionandroid:name="android.permission.GET_TASKS" />


<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>


<uses-permissionandroid:name="android.permission.WRITE_SETTINGS" />



 


第三步,在布局xml文件中添加地图控件;


<com.baidu.mapapi.map.MapView 


   android:id="@+id/bmapView" 


   android:layout_width="fill_parent" 


   android:layout_height="fill_parent" 


android:clickable="true" />


添加后会提示下图错误,这个不用管:



第四步,在应用程序创建时初始化 SDK引用的Context全局变量:


publicclass MainActivityextendsActivity { 


   @Override 


   protected void onCreate(BundlesavedInstanceState) { 


       super.onCreate(savedInstanceState);  


       //在使用SDK各组件之前初始化context信息,传入ApplicationContext 


       //注意该方法要再setContentView方法之前实现 


       SDKInitializer.initialize(getApplicationContext()); 


       setContentView(R.layout.activity_main); 


   } 


}


注意:SDK各功能组件使用之前都需要调用


SDKInitializer.initialize(getApplicationContext());,因此我们建议该方法放在Application的初始化方法中


第五步,创建地图Activity,管理地图生命周期;


publicclass MainActivityextendsActivity { 


   MapView mMapView =null


   @Override 


   protected void onCreate(BundlesavedInstanceState) { 


       super.onCreate(savedInstanceState);  


       //在使用SDK各组件之前初始化context信息,传入ApplicationContext 


       //注意该方法要再setContentView方法之前实现 


       SDKInitializer.initialize(getApplicationContext()); 


       setContentView(R.layout.activity_main); 


       //获取地图控件引用 


       mMapView = (MapView) findViewById(R.id.bmapView); 


   } 


   @Override 


   protected void onDestroy() { 


       super.onDestroy(); 


       //activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理 


       mMapView.onDestroy(); 


   } 


   @Override 


   protected void onResume() { 


       super.onResume(); 


       //activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理 


       mMapView.onResume(); 


       } 


   @Override 


   protected void onPause() { 


       super.onPause(); 


       //activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理 


       mMapView.onPause(); 


       } 


   }


完成以上步骤后,运行程序,即可在您的应用中显示如下地图:


说明: android_dev2.jpg


以上的例子为大家介绍了如何构建一个基础的地图页面。地图控件自v2.3.5版本起,支持多实例,即开发者可以在一个页面中建立多个地图对象,并且针对这些对象分别操作且不会产生相互干扰。具体使用方法请参考MutiMapViewDemo中的相关介绍。


此外,自v2.3.5版本开始。MapView控件还增加了对Fragment框架的支持。用户可以使用SupportMapFragment控件完成相应框架内的开发工作(详见MapFragmentDemo)。


 




  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Android Studio导入Android源码,需按照以下步骤进行: 1. 下载Android源码:首先需要从Android官方网站(https://source.android.com/setup/build/downloading)上下载Android源码的zip文件。选择适合你设备版本的源码,并下载到本地。 2. 解压源码:将下载的源码zip文件解压到你希望存储源码的位置。 3. 导入源码项目:打开Android Studio,并点击“File”菜单,然后选择“New”,再选择“Import Project”。 4. 选择源码目录:在弹出的对话框,浏览到你已经解压的源码目录,并选择其的“build.gradle”文件,然后点击“OK”。 5. 等待构建:Android Studio会开始构建项目,可能需要一些时间来完成这个过程,具体时间取决于你的硬件性能和Android源码的大小。 6. 配置项目:构建完成后,你需要配置一些项目属性。你可以根据你的需求进行更改,比如修改Android版本、SDK版本、Gradle版本等。 7. 构建项目:在配置完成后,再次构建项目。你可以点击Android Studio工具栏的“Build”按钮来完成构建。构建完成后,你就可以进行Android源码的浏览、修改和编译等操作了。 需要注意的是,导入Android源码是一个相对复杂的过程,并且需要一定的硬件配置和软件环境支持。同时,也需要有一定的Android开发和编译经验。因此,在遇到问题时,你可以参考官方文档或在开发者社区寻求帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值