高德地图签名
一、创建生成keystore;
二、SHA1值的申请;
三、高德地图key值申请;
四、android studio 打包生成apk;
好了,废话不多说,直接开始图文说明:
一、keystore
(一)android studio界面找到菜单栏 Build 选择Generate Signed APK 子菜单。
(二)点击Greate new ... 也就是在内有key store 的情况下 创建,按字面意思理解即可。
(三)下面是 new Key Store 界面
1.key store phth: 也就是keystore 放的本地位置,考虑到安全问题,一般都放在android studio软件文件夹下面。
名字可以随意填写(如:DemoKey)后最默认为“.jks”.
2.password: 密码的设置我习惯直接用“android”,因为debug.store默认的就是“android”,方便记忆。当然你也可以严谨一点,设立其他密码。前提是要记住,不然后面又要重新创建。
3.Alias: 别名署名也是任意的,可用项目名+key,方便记忆。
4.password:密码也一样,可以随意,但是一定要记住。因为打包apk的时候需要用到。
5.Validity(years): 有效期根据需要调整,默认为25年
6.Certificate:证书内容如果不是正式发布版本,可以随意填写。
(1)First and Last Name: 开发者姓名
(2)Organizational Unit: 组织单位
(3)Organization: 机构
(4)City or Locality: 地区或者城市
(5)State or Province: 州或者省
(6)Country Code (xx): 国家代码 中国应该是 zh
7.最后点击 ok按钮,即可去相应的路径看到 keystore (后最为 .jks)文件了。
二、SHA1值申请
(一)window + R 弹出运行框
(二)输入cmd,然后确定
(三)cd jdk的bin目录,cd是搜索查询的意思,jdk路径一般默认在C盘,开发者可以根据自己的具体地址填写。
(四)数据bin目录安回车键,如果输入的jdk位置正确,也会进入相应的位置。bin目录下有很多的工具,我们要用的是keytool 工具 。输入 key -list -v -keystore 指令(注意:空格一定要空一格,不然可能识别不了)。口令后面接的是上面我们生成的 DemoStore地址。如下图:
(五)回车会出现“输入**库:”的字样。输入密码“android”
1.注意:他是隐身的,别输错,也别觉得他是“妖怪”;
2.前面也说了keystore是可以有多个的。如果是debugStrore,默认密码是android,如果是发布版本的keyStore的话,密码是你当初设置的那个密码。(忘了?那下次设置的时候一定要记住)
(六)密码输入后,按回车键即可。如果以上都没有输错,证书就会出来咯。里面已有相应的数据,当然我们要的是SHA值。
三、高德地图key值申请
(一)百度“高德开放平台”,进入后注册账户,成为开发者;
(二)找到我的应用,然后创建新的应用;
(三)根据需求填写数据;
注意的地方是"发布版安全码SHA1"和“调试版安全码SHA1”的区别:区别在于前者是用自己生成的keystore获取的SHA1,后者是发开着电脑上默认的debugStore,默认的有一个特点,不管你用那个项目,获取的SHA1值是相同的,因为同一台电脑用的是同一个kebugStore。这个需要注意,本人刚开始研究这个的时候,就一直无法区别,导致绕不出那个“怪圈”。
(四)同意协议,提交,把生成的key值放到你的清单配置文件中:
<!-- 高德地图key --> <meta-data android:name="com.amap.api.v2.apikey" android:value="你申请的key值" />(五)还就是需要添加相应的权限:
<!-- 地图包、搜索包需要的基础权限 --> <!-- 允许程序打开网络套接字 --> <uses-permission android:name="android.permission.INTERNET" /> <!-- 允许程序设置内置sd卡的写权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 允许程序获取网络状态 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 允许程序访问WiFi网络信息 --> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 允许程序读写手机状态和身份 --> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 允许程序访问CellID或WiFi热点来获取粗略的位置 --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <!-- 用于访问GPS定位 --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位 --> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />(六)还有一个比较麻烦的就是android 6.0 版本的适配,需要另外申请权限,可参考官网API
(七)下面是最重要的,高德SDK的选择问题,建议先考虑用低版本的。
理由:
1.可参考的Demo更多,提高效率;
2.新版本的SDK可能cpu版本对应的ABI可能还没有开发出来。如现在的最新版本(2016.10.25)x86就无法适配,这样就很容易出现跟其他第三方框架冲突。如vitamio视频框架。别跳这个坑,不然得重新做。
生成jks签名文件
选择Build > Generate Signed APK…
选择项目app > Next
选择Create new…
选择签名文件的路径,这些信息和eclipse一样了,填完点击OK
选择Next
我们这里做测试选择qihu360和xiaomi打包release版,最后点击Finish
等待生成
生成完毕提示我们查看,选择在文件夹查看