自2018年10月18日起,高德开发者论坛除车机板块外,其他板块将停止发帖与维护,如您有使用问题请 提交工单 联系我们,感谢您的理解。

查看: 24434|回复: 75
打印 上一主题 下一主题

[应用案例] 解决Android Key问题,看这一篇就够了

  [复制链接]
最佳答案
50 

155

主题

482

帖子

3万

积分

QQ游客

积分
36116
跳转到指定楼层
楼主
发表于 2015-12-8 16:15:38 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
发表帖子
API/SDK版本号: 2.0
产品:
手机型号:
使用接口:
                          解决Android Key问题,看这一篇就够了

       所有的Android应用程序都要求用一个证书进行数字签名,Android系统不会安装没有进行签名的App。平时我们的程序可以在模拟器上安装并运行,是因为在应用程序开发期间是以Debug状态进行编译的,因此ADT会自动用默认的密钥和证书来进行签名,而在以发布模式编译时,apk文件就不会得到自动签名,这样就需要进行手工签名。手工签名的签名文件当然是公司/开发者自己造的。签名文件怎么造?举个栗子:http://www.cnblogs.com/lgzh3/archive/2012/01/19/2327181.html

       给apk签名可以带来以下好处(其实签名是必须的):
       1. 应用程序升级:如果你希望使用你造的App的用户无缝升级到最新版本,那么你造的app就必须用同一个证书进行签名。这是由于傲娇的Android系统只有识别出你造的App是以同一个证书签名的,才会允许安装升级的应用程序。如果你不小心采用了不同的证书,那么系统会要求你的应用程序采用不同的包名,在这种情况下手机相当于安装了一个全新的应用程序。如果想升级应用程序,签名证书要相同,包名称要相同,Android就是如此傲娇。
       2.应用程序模块化:Android系统可以允许多个应用程序在一个进程里运行,但前提是他们都是用同一个证书签名的。实际上,系统把他们作为一个应用程序对待的,此时你可以把应用程序以模块的方式进行部署,而用户可以独立的升级其中的一个模块。这就是模块化,又叫插件化!
       3.代码或者数据共享:Android提供了基于签名的权限机制,那么一个应用程序就可以为另一个以相同证书签名的应用程序公开自己的功能。以同一个证书对多个应用程序进行签名,利用基于签名的权限检查,你就可以在应用程序间以安全的方式共享代码和数据了。<permission android:protectionLevel="normal" />
      
      机智的小伙伴一定发现了,你造的App在其整个生命周期中至少会用到2(Debug时1个、Release发布时1个)个签名。
      两个签名对应两个不同的数字签名指纹验证码(Digital Signature sha1),所以高德LBS开放平台为机智的开发者小伙伴们提供了一个Key绑定2个指纹验证码的功能!

      小伙伴可以在发布版安全码的小框里填写上公司签名的指纹验证码(sha1);
      在调试版安全码的小框里填写上开发工具(androidstudio、eclipse)默认的签名文件指纹验证码(sha1)
      
       这样App在debug和export时就不必担心key不可用的问题啦!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|高德开发者论坛

Copyright ©2014 高德开发者论坛.All Rights Reserved |京ICP证070711号

意见反馈 常见问题 服务条款 联系我们
快速回复 返回顶部 返回列表