本文只是简单介绍如何在Android Studio上实现百度地图开发


#############################################################


首先注册一个百度帐号,然后登录http://developer.baidu.com/map/index.php?title=androidsdk ,点击左边获取密匙选项,填写一些信息,就已经注册成为百度开发者



点击创建应用选项,跳转到:



填写相应信息,其中应用类型为Android SDK,安全码为数字签名+;包名(如何获取数字签名请看http://blog.csdn.net/u012005313/article/details/48577751)

点击提交,生成:



########################################


创建一个项目BaiduMapTest,其中Package Name(包名)应该和之前创建应用时使用的包名相同



在http://developer.baidu.com/map/index.php?title=androidsdk/sdkandev-download上选择一键下载,得到百度地图的SDK开发包




解压下载得到的压缩包,得到


解压Lib.zip,得到:



其中的baidumapapi_v<版本号>.jar和libBaiduMapSDK_v<版本号>.so就是我们要使用的

将baidumapapi_v<版本号>.jar放入项目libs目录下:



在Main目录下新建jniLibs\armeabi(注意大小写)文件夹:



将libBaiduMapSDK_v<版本号>.so放入其中


右击libs\baidumapapi_v<版本号>.jar,选择Add As Library选项:



弹出如下:


点击OK


############################################################3


接下来为代码部分:

在AndroidManiFest.xml中添加开发密匙和所需权限:

<application>      <meta-data          android:name="com.baidu.lbsapi.API_KEY"          android:value="开发者 key" />  </application>


注意把开发者 key改为之前申请的API key


<!-- 百度API所需权限 -->      <uses-permission android:name="android.permission.GET_ACCOUNTS" />      <uses-permission android:name="android.permission.USE_CREDENTIALS" />      <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />      <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />      <uses-permission android:name="android.permission.INTERNET" />      <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />      <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />      <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />      <uses-permission android:name="android.permission.READ_PHONE_STATE" />      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />      <uses-permission android:name="android.permission.BROADCAST_STICKY" />      <uses-permission android:name="android.permission.WRITE_SETTINGS" />      <uses-permission android:name="android.permission.READ_PHONE_STATE" />  

总代码为:

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.example.baidumaptest" >    <!-- 百度API所需权限 -->    <uses-permission android:name="android.permission.GET_ACCOUNTS" />    <uses-permission android:name="android.permission.USE_CREDENTIALS" />    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />    <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />    <uses-permission android:name="android.permission.INTERNET" />    <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />    <uses-permission android:name="android.permission.READ_PHONE_STATE" />    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />    <uses-permission android:name="android.permission.BROADCAST_STICKY" />    <uses-permission android:name="android.permission.WRITE_SETTINGS" />    <uses-permission android:name="android.permission.READ_PHONE_STATE" />    <application        android:allowBackup="true"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <meta-data            android:name="com.baidu.lbsapi.API_KEY"            android:value="开发者 key" />        <activity            android:name=".MainActivity"            android:label="@string/app_name" >            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application></manifest>



在布局activity_main.xml中添加地图控件:

<com.baidu.mapapi.map.MapView      android:id="@+id/bmapView"      android:layout_width="fill_parent"      android:layout_height="fill_parent"      android:clickable="true" />
总代码为:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent" >    <com.baidu.mapapi.map.MapView        android:id="@+id/bmapView"        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:clickable="true" />    </LinearLayout> 

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

public class MainActivity extends Activity {      @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);           //在使用SDK各组件之前初始化context信息,传入ApplicationContext          //注意该方法要再setContentView方法之前实现          SDKInitializer.initialize(getApplicationContext());          setContentView(R.layout.activity_main);      }  }

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

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

创建地图Activity,管理地图生命周期:

MainActivity.java 总代码为:

public class MainActivity extends Activity {      MapView mMapView = null;      @Override      protected void onCreate(Bundle savedInstanceState) {          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();          }      }

完成以上步骤后,运行程序,即可看到地图:




更多相关文章

  1. Android(安卓)init.rc
  2. android.os.NetworkOnMainThreadException
  3. Android的Root原理
  4. android快速集成高德地图
  5. Android生命周期中几个重要的函数
  6. 编写android对google地图的调用
  7. Gradle常用配置
  8. android 百度地图的经度纬度问题
  9. Android(安卓)Studio 打包apk,自动追加版本号和版本名称

随机推荐

  1. Android(安卓)5.1 去掉首次进入沉浸模式
  2. Android之菜单总结
  3. Android下面的MD5加密
  4. android自定义视图属性(atts.xml,TypedArr
  5. [置顶] Android(安卓)SDK中的例子的源代
  6. Android设置系统开机自动永不休眠
  7. android DecorView的使用
  8. Android怎样添加AT命令
  9. 利用drozer进行Android渗透测试
  10. android调用js