刚开始学习使用百度地图的API,百度给出的开发文档还算可以,但是细节我自己没搞清楚,所以到头来还是折腾了好久,因此在这里记录一下。

这是开发文档:http://developer.baidu.com/map/index.php?title=androidsdk/guide/hellobaidumap

1、数字签名

  百度地图API是需要数字签名的sha1作为安全码的。首先用jdk生成数字签名。这一步转自 http://my.oschina.net/victorHomePage/blog/109638 

介绍如何生成keystore
cmd下:
进入到jdk的bin目录,这样的话,android.keystore文件就会生成在这个目录下,签名的时候我们需要这个文件。
C:\Program Files\Java\jdk1.7.0_01\bin>

keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore 

-alias android.keystore  生成的keystore别名

-keyalg RSA  加密和数字签名的算法

-validity 1000 有效天数
这里的 JAVA SDK 1.5 和 1.6 都可以,找到自己的 JAVA 目录就可以了。

输入keystore密码:自己确定,输入密码时,没有显示,但已经输进去了!
再次输入新密码:
您的名字与姓氏是什么?
[Unknown]:victor

您的组织单位名称是什么?
[Unknown]:extc

您的组织名称是什么?
[Unknown]: extc
您所在的城市或区域名称是什么?
[Unknown]: DG
您所在的州或省份名称是什么?
[Unknown]: GD
该单位的两字母国家代码是什么
[Unknown]: CN
CN=Mickle, OU=www.ioou.com, O=www.ioou.com, L=Shanghai, ST=Shanghai, C=CN 正确吗?
[否]: Y
输入<android.keystore>的主密码(如果和 keystore 密码相同,按回车):

如果没有错误则回去java的jdk 的bin目录查看是否多了一个叫做android.keystore的文件

2、百度地图API中包含了一些.so文件,接下来就是导入.so文件。

  在根目录的app\src\main\下建立名为jniLibs的文件夹,将armeabi文件夹放入其中,Rebuild Project。

3、这些解决后,就是获取sha1啊,签名啊啥的,百度很多,不赘述。但是接下来遇到一个困难。很多签名方法都是直接生成apk了,这种方法非常不利于真机调试。真机调试时我每次点击Run就静默安装在手机上了,这时安装的app是没有签名的。如果我要签名的,必须把签名生成的apk发送到手机,手动安装。非常麻烦。

  这里的解决方案是两步

  1)将签名文件放到工程根目录下。

  

  2)在build.gradle(Module:app)中,添加如下代码段,更改项目的结构

    signingConfigs {
        release {
            keyAlias 'android.keystore'
            keyPassword 'password'
            storeFile file('D:/AndroidStudioExercise/Test326/android.keystore')
            storePassword 'password'
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.release
        }
        release {
            signingConfig signingConfigs.release
        }
    }

  其中,'password'自己根据keystore来写。这样直接run,在真机调试时,app就是自带签名啦!

posted on 2015-03-26 17:15  Fishbonell  阅读(216)  评论(0编辑  收藏  举报