今天我发的这个只是对于高德地图的入门开发,刚开始搞这个,发现出现了一系列的问题,首先要开发地图,需要用到第三方的知识,首先要申请一个自己在高德地图中的开发者账号,这是必须的,不然怎么可能让我们用,接下来我们要申请一个key,俗点就是自己的id。
  ![在这里获取key]()
    然后我们创建新应用,
![然后这里就是写我们的程序要用到的key,是那个应用来用到,当然我只是个人的开发来说,自己的一个测试软件]()
    其中有一个发布安全码,对于这个,我也不知道是干什么的,想知道可以具体去搜索,然后这里要有安全码,这是什么呢,用的androidstudio,搞了半天没有找到keystore在哪里,网上也看了很多,这里我总结一下:
    要在环境变量中有一个ANDROID_SDK_HOME的变量名,然后把androidsdk的路径加进去,然后要在PATH中加入%ANDROID_SDK_HOME%\tools,显证下是否加入成功,在cmd的命令行中,输入android -h,出现一些关于android的东西,代表正确,当然准备工作好了,我们要有keystore的文件,这个我的方法是在我的电脑中直接搜索debug.keystore文件,就会有的,因为电脑放的地方不一定在sdk下,我的在c盘,我的sdk在d盘。
    然后获取到key,要用地图,还要下载一些地图的sdk,就是一些动态库,
![在这里直接下载一键下载那个]()
    然后解压,有三个压缩文件,我们用3d的,所以不用2d的那个压缩文件,将3d的解压,有两个jar包,放在android的app/libs下,切换到project下,通过add as library来加到应用中,然后再app/src/main/下建一个jniLibs的文件,将armeabi文件与arm64-v8a复制到文件下。
    然后准备工作结束,可以开始编程了,我们的key还没用,用在这个位置。
![这里是一些权限,与key的使用。]()
最后我写一个问题,就是程序结束后在运行时,用genymotion的android5.1中会出现错误,install_failed_no_matching_abis,这个你换一个虚拟机就行了,不要纠结这个问题,在实体机上运行也行。
    代码:    `package com.example.dflenovo.map;
import android.app.Activity; 
 import android.os.Bundle; 
 import android.widget.CompoundButton; 
 import android.widget.ToggleButton;import com.amap.api.maps.AMap; 
 import com.amap.api.maps.MapView;public class MainActivity extends Activity {
private MapView mapView;
private AMap aMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    mapView = (MapView) findViewById(R.id.map);
    mapView.onCreate(savedInstanceState);
    init();
    ToggleButton tb = (ToggleButton) findViewById(R.id.tb);
    tb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if(isChecked){
                aMap.setMapType(AMap.MAP_TYPE_SATELLITE);
            }
            else
            {
                aMap.setMapType(AMap.MAP_TYPE_NORMAL);
            }
        }
    });
}

private void init() {
    if(aMap == null){
        aMap = mapView.getMap();
    }
}

@Override
protected void onResume() {
    super.onResume();
    mapView.onResume();
}

@Override
protected void onPause() {
    super.onPause();
    mapView.onPause();
}

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    mapView.onSaveInstanceState(outState);
}

@Override
protected void onDestroy() {


super.onDestroy(); 
 mapView.onDestroy(); 
 } 
 }