| 本帖最后由 liu 于 2019-1-8 16:31 编辑 
 
  
 Android新手开发之旅目录
 
 
  
 
 百度地图 Android SDK是一套基于Android 4.0及以上版本设备的应用程序接口。 我们可以使用该套 SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,可以轻松访问百度地图服务和数据,构建功能丰富、交互性强的地图类应用程序。
 
 
 步骤:
 
 一、注册百度账号,申请AK(API Key),申请地址   http://lbsyun.baidu.com/apiconsole/key
 
 
   
 点击创建应用后进入如下界面:
 
 
 
   
 
 然后去创建一个Android项目,复制包名
 
 
 
   
 
 然后回到网页填写应用名称、应用类型注意选择“Android SDK”、正确填写安全码,点击确认,系统将会自动帮您生成相应的开发密钥:
 
 
 
   
 
 获取SHA1值的方法请看http://www.sufeinet.com/thread-24743-1-1.html
 
 
 点击提交后:
 
 
 
   
 
 这样AK已经准备好了
 
 
 二、下载SDK开发包
 
 
 下载地址:http://lbsyun.baidu.com/index.phptitle=sdk/download&action#selected=mapsdk_basicmap,mapsdk_searchfunction,mapsdk_lbscloudsearch,mapsdk_calculationtool,mapsdk_radar
 
 选择并下载
 
 
   
 
 三、在项目中引用百度SDK
 
 
 将开发包拷贝至工程
 1、添加jar文件
 打开解压后的开发包文件夹,找到BaiduLBS_Android.jar文件将其拷贝至工程的app/libs目录下,如图:
 
 
   
 2、选中jar包,右键→Add As Library
 
 
   
 3、添加so文件
 在下载的开发包中拷贝需要的CPU架构对应的so文件文件夹到app/libs目录下,如图:
 
 
   
 4、在app目录下的build.gradle文件中android块中配置sourceSets标签,如果没有使用该标签则新增,详细配置代码如下:
 
 [Java] 纯文本查看 复制代码 sourceSets {
           main {
               jniLibs.srcDir 'libs'
           }
    }注意:Jar文件和so文件的版本号必须一致,并且保证Jar文件与so文件是同一版本包取出的。
 
 完整配置:
 
 
   
 5、应用混淆
 
 
 现在我们的应用中已经集成了百度地图SDK,当我们在打包混淆的时候需要注意于BaiduMap SDK 相关的内容不应该被混淆,所以我们需要配置混淆文件。首先打开app目录下的build.gradle文件,在release代码块中添加如下内容(若已经由Android Studio自动生成,则不用手动配置)proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
 如在上面我们创建的MapActivity项目中:
 
 
 
   
 然后编写混淆文件,打开app目录下的proguard-rules.pro文件,添加如下代码
 
 
 [Java] 纯文本查看 复制代码 -keep class com.baidu.** {*;}
-keep class mapsdkvi.com.** {*;}    
-dontwarn com.baidu.**
 
 四、添加代码
 
 
 1、在AndroidManifest中添加开发密钥、所需权限等信息
 
 [Java] 纯文本查看 复制代码 <application>  
    <meta-data  
        android:name="com.baidu.lbsapi.API_KEY"  
        android:value="开发者 key" />  
</application>2、添加所需权限
 
 [C#] 纯文本查看 复制代码  //获取设备网络状态,禁用后无法获取网络状态
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    //网络权限,当禁用后,无法进行检索等相关业务
    <uses-permission android:name="android.permission.INTERNET" />
    //读取设备硬件信息,统计数据
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    //读取系统信息,包含系统版本等信息,用作统计
    <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
    //获取设备的网络状态,鉴权所需网络代理
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    //允许sd卡写权限,需写入地图数据,禁用后无法显示地图
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    //获取统计数据
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    //使用步行AR导航,配置Camera权限
    <uses-permission android:name="android.permission.CAMERA" />
 注意: 权限应添加在 appliction 之外,如添加到appliction 内部,会导致无法访问网络,不显示地图
 
 
 
   
 
 3、在布局xml文件中添加地图控件
 
 [XML] 纯文本查看 复制代码 <com.baidu.mapapi.map.MapView
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clickable="true" />
 4、在应用程序创建时初始化 SDK引用的Context 是全局变量
 
 [Java] 纯文本查看 复制代码 import android.app.Application;
import com.baidu.mapapi.CoordType;
import com.baidu.mapapi.SDKInitializer;
/**
 * Created by Administrator on 2019/1/8.
 */
public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        //在使用SDK各组件之前初始化context信息,传入ApplicationContext
        SDKInitializer.initialize(this);
        //自4.3.0起,百度地图SDK所有接口均支持百度坐标和国测局坐标,用此方法设置您使用的坐标类型.
        //包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。
        SDKInitializer.setCoordType(CoordType.BD09LL);
    }
}
注意:initialize方法中必须传入的是ApplicationContext,不然会报运行时异常,所以建议把该方法放到Application的初始化方法中
 
 在AndroidManifest中修改
 
 
 
   
 
 
 
 所有工作都已完成,我们来看下运行效果:
 
 
 
   
 
 
 之后的帖子会说一说怎么搜索周边、定位等功能如何实现
 Android新手开发之旅目录
 
 
 
 
 
 
 
 |