一个ApK如果要安装到手机上,必须要一个数字签名,不过你是debug也好,release也好,这个数字签名来源一个叫做证书的东西,在我们debug的时候,开发工具已经帮我们生成了一个叫做debug.keystore 的证书,默认在C:\Users\【user name】\.android之下,但是如果我们的apk要发布到应用市场上,那就得用release的证书了,这个时候我们就要去用我们自己的证书了。

在Android Studio下 建立证书的过程如下:

1. Build > Generate Signed APK. 指定一个你要为那个module生成证书,然后确定

2 如果你已经有证书了,直接选择一个就好了,如果没有就创建一个。 点击Create New

3 下面就是你new一个证书需要填写的信息:

key store path 指定存放的位置,并自己填写一个名字,password是key store的名字

Alias 名字唯一,这个才是最重要的,以为多一个项目可以指定到同一个key store这个文件中,但是每一个项目都有不同德key。 另外就是一些密码,有效期 其他的信息了,根据自己的情况随便填写

4。 填写以后点击OK,就又回到了点击create new的那个界面。 填上生成证书时所填的相应的密码,key生么的就可以了。

         

5 点击Next。选择release

6 点击Finish,ok。 Android studio会自动build出一个release版本。一般直接在你的项目路径下,debug版本在build的outputs 下。apk的签名就结束了

有时候 我们需要引用第三方的api的时候,通常会需要我们的包名 与fingerprint来生成一个i密钥,然后将这个密钥放在我们项目中,或者xml文件中,或者application中。包名好说,就是我们项目的包名,但是这个fingerprint呢?

fingerprint也分两种,一个是debug的一种是release的,这个fingerprint的来源也是上面所说的证书。得到这个fingerprint也不难

windows环境只要在dos下输入

keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

就可以得到证书指纹  SHA1: BE:F6:46:CA:05:E3:4C:CC:B1:51:50:AC:07:0C:48:55:99:5E:EC:3C  SHA1后面的一大趟就是

release:
1 先列出你一个证书下的所有的key
      keytool -list -keystore your_keystore_name
这里的
your_keystore_name 就是你证书的绝对路径 比如C:\Users\keystore\TestAndroid.jks 2 根据你列出的key 得到证书指纹
   keytool -list -v -keystore your_keystore_name -alias your_alias_name

如果多人开发,总不能一人申请一个密钥吧,所以  可以把debug.keystore 复制一下覆盖你原来的keystore. 来自http://stackoverflow.com/questions/4361942/one-google-maps-key-for-multiple-developers-android-eclipse-custom-keystore
 
来源于 https://developer.android.com/studio/publish/app-signing.html#sign-auto
https://developers.google.com/maps/documentation/android-api/signup

Android 数字签名的更多相关文章

  1. Android数字签名

    描述你对Android数字签名的理解? 数字签名就是为程序打上一个标记来作为自己的标识,是Android系统要求的,若一个Android程序没有经过数字签名,没办法安装到系统: 签名也是对apk的一种 ...

  2. Android 数字签名学习笔记

    Android 数字签名学习笔记 在Android系统中,所有安装到系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个permission的pro ...

  3. Android数字签名解析(三)

    在刚才開始学习android数字签名的相关知识点的时候,被资料中出现的keystore.x509.密钥对.debug.keystore弄的晕头 转向.经过一段时间的了解,总算明确一些. 一.make_ ...

  4. Android数字签名解析(二)

    在Android数字签名解析(一)中,介绍了android进行签名的两种方式,当中用密钥对进行签名用到了signapk.jar这个java库. 以下我们就看看signapk签名实现过程,signapk ...

  5. Android Application Digital Signatures - Android 数字签名

    Android 数字签名 同一个开发人员的多个程序尽可能使用同一个数字证书,这能够带来下面优点. (1)有利于程序升级,当新版程序和旧版程序的数字证书同样时,Android系统才会觉得这两个程序是同一 ...

  6. Android数字签名解析(一)

     一.数字签名概述 所谓"数字签名"就是通过某种password运算生成一系列符号及代码组成电子password进行签名,来取代书写签名或印章. 数字签名有两种功效:一是能确定消息 ...

  7. Android数字签名的学习(转)

    转载地址:http://www.cnblogs.com/feisky/archive/2010/01/17/1650076.html 在Android系统中,所有安装到系统的应用程序都必有一个数字证书 ...

  8. Android签名总结

    signapk.jar与eclipse export插件默认赋予程序一个DEBUG权限的签名 signapk.jar包含有系统权限(system api, permission),而eclipse e ...

  9. 安卓Android面试题大全

    56个问题都是经常用到的,可以深入研究下,也是必须掌握的开发必备知识. 安卓Android面试题汇总 搜集了一些Android面试题目,供将要面试或者正在面试的朋友参考. 1, 谈谈你对Activit ...

随机推荐

  1. 产生冠军 hdoj_2094 巧用set

    产生冠军 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  2. [No0000A2]“原始印欧语”(PIE)听起来是什么样子?

    "Faux Amis"节目中经常提到"原始印欧语"(PIE)——"Proto-Indo-European". 我们说过,英语,法语中的&qu ...

  3. 东软HIS切换输入法卡死的解决方法

    在文字选项的第二页上,勾选上边的相容性设定,然后重启电脑:

  4. MariaDB学习

    社区:http://www.mariadbpub.com/forum.php

  5. 【转】40条常见的移动端Web页面问题解决方案

    1.安卓浏览器看背景图片,有些设备会模糊                  2.图片加载                            3.假如手机网站不用兼容IE浏览器,一般我们会使用zep ...

  6. 解读ASP.NET 5 & MVC6系列(12):基于Lamda表达式的强类型Routing实现

    前面的深入理解Routing章节,我们讲到了在MVC中,除了使用默认的ASP.NET 5的路由注册方式,还可以使用基于Attribute的特性(Route和HttpXXX系列方法)来定义.本章,我们将 ...

  7. lombok在IntelliJ IDEA下的使用

    lombok是一款可以精减java代码.提升开发人员生产效率的辅助工具,利用注解在编译期自动生成setter/getter/toString()/constructor之类的代码.代码越少,意味着出b ...

  8. MVC系列——MVC源码学习:打造自己的MVC框架(二:附源码)

    前言:上篇介绍了下 MVC5 的核心原理,整篇文章比较偏理论,所以相对比较枯燥.今天就来根据上篇的理论一步一步进行实践,通过自己写的一个简易MVC框架逐步理解,相信通过这一篇的实践,你会对MVC有一个 ...

  9. SQL Server 中使用数据类型表示小数

    在使用的时候发现一个问题,由于编程的习惯,当数据库中需要存储小数的时候,就想当然的使用了float类型,可结果太让人意外了. 数据库中存储了0.5没问题,当使用0.6的时候,得到的确是0.599999 ...

  10. sql 触发器删除操作

    create trigger CheckDelete on 表 for delete as ) select @state=isnull(字段,'') from deleted if (@state& ...