• 来自http://www.cnblogs.com/xiwix/archive/2012/04/15/2447910.html
  • 本文主要讲解Android应用程序签名相关的理论知识,包括:什么是签名、为什么要给应用程序签名、如何给应用程序签名等。
  • 1、什么是签名?
          如果这个问题不是放在Android开发中来问,如果是放在一个普通的版块,我想大家都知道签名的含义。可往往就是将一些生活中常用的术语放在计算机这种专业领域,大家就开始迷惑了。计算机所做的事情,或者说编程语言所做的事情,不正是在尽可能地模拟现实吗?所以,计算机中所说的签名和生活中所说的签名在本质上是一样的,它所起到的作用也是一致的!
          让我们来看看,在现实生活中的签名。签名就意味着在纸上或别处写下自己的名字,或者说在某处打上一个标记作为你自己的一种特有的标识,当别人看到这个签名的时候,他会知道这是和你有关的,而不是其它人。
  • 2、为什么要给Android应用程序签名?
          如果只能用一句简单的话语来回答这个问题的话,我会说:"这是Android系统所要求的"。
          Android系统要求每一个Android应用程序必须要经过数字签名才能够安装到系统中,也就是说如果一个Android应用程序没有经过数字签名,是没有办法安装到系统中的!Android通过数字签名来标识应用程序的作者和在应用程序之间建立信任关系,不是用来决定最终用户可以安装哪些应用程序。这个数字签名由应用程序的作者完成,并不需要权威的数字证书签名机构认证,它只是用来让应用程序包自我认证的。
  • 3、为什么我开发的Android应用程序没有做什么签名也能在模拟器和手机上运行?
          你没有给Android应用程序签名并不代表Android应用程序没有被签名。为了方便我们开发调试程序,ADT会自动的使用debug密钥为应用程序签名。debug密钥?它在哪?debug密钥是一个名为debug.keystore的文件,它的位置:
                系统盘符:\Documents and Settings\liufeng\.android\debug.keystore
  • "liufeng"对应于你自己的windows操作系统用户名,怎么样,是不是已经找到它了。这也就意味着,如果我们想拥有自己的签名,而不是让ADT帮我们签名的话,我们也要有一个属于自己的密钥文件(*.keystore)。
  • 4、Android应用程序签名步骤
  • 1)准备工作
          apk的签名工作可以通过两种方式来完成:
                1)通过ADT提供的图形化界面完成apk签名;
  • 2)完全通过DOS命令来完成apk签名
    我比较喜欢第2)种方式,所以下面将讲解如何通过命令的方式完成apk签名。
          给apk签名一共要用到3个工具,或者说3个命令,分别是:keytool、jarsigner和zipalign,下面是对这3个工具的简单介绍:
                1)keytool:生成数字证书,即密钥,也就是上面说到的扩展名为.keystore的那类文件;
  • 2)jarsigner:使用数字证书给apk文件签名;
                3)zipalign:对签名后的apk进行优化,提高与Android系统交互的效率(Android SDK1.6版本开始包含此工具)
          从这3个工具的作用也可以看出,这3个工具的使用顺序。通常我们自己所开发的所有应用程序,都是使用同样的签名,即使用同一个数字证书,这就意味着:如果你是第一次做Android应用程序签名,上面的3个工具都将用到;但如果你已经有数字证书了,以后再给其它apk签名时,只需要用到jarsigner和zipalign就可以完成。
          为了方便使用上面3个命令,首先需要将上面3个工具所在路径添加到环境变量path中(我说的是为了方便使用,没有说必须要这么做)。怎么配置环境变量就不在此讲解了,这里需要说一下这3个工具默认所在的路径:
                1)keytool:该工具位于jdk安装路径的bin目录下;
  • 2)jarsigner:该工具位于jdk安装路径的bin目录下;
                3)zipalign:该工具位于android-sdk-windows\tools\目录下
  • 不知道大家是否注意到keytool和jarsigner两个工具是jdk自带的,也就意味着生成数字证书和文件签名不是Android的专利;另外从字面上理解jarsigner也能猜得出该工具主要是用来给jar文件签名的。
  • 2)生成未经签名的apk文件
          既然我们要自己对apk进行签名,就不再需要ADT默认帮我们签名了。如何得到一个未经签名的apk文件呢?打开Eclipse,在Android工程名称上点击右键,依次选择"Android Tools" - "Export Unsigned Application Package ...",然后选择一个存储位置保存即可。这样就得到了一个未经签名的apk文件。
  • 3)使用keytool工具生成数字证书
          keytool -genkey -v -keystore liufeng.keystore -alias liufeng.keystore -keyalg RSA -validity 20000
  • 说明:
          1)keytool是工具名称,-genkey意味着执行的是生成数字证书操作,-v表示将生成证书的详细信息打印出来,显示在dos窗口中;
          2)-keystore liufeng.keystore 表示生成的数字证书的文件名为"liufeng.keystore";
          3)-alias liufeng.keystore 表示证书的别名为"liufeng.keystore",当然可以不和上面的文件名一样;
          4)-keyalg RSA 表示生成密钥文件所采用的算法为RSA;
          5)-validity 20000 表示该数字证书的有效期为20000天,意味着20000天之后该证书将失效
    在执行上面的命令生成数字证书文件时,会提示你输入一些信息,包括证书的密码。
  • 4)使用jarsigner工具为Android应用程序签名
          jarsigner -verbose -keystore liufeng.keystore -signedjar notepad_signed.apk notepad.apk liufeng.keystore
  • 说明:
          1)jarsigner是工具名称,-verbose表示将签名过程中的详细信息打印出来,显示在dos窗口中;
          2)-keystore liufeng.keystore 表示签名所使用的数字证书所在位置,这里没有写路径,表示在当前目录下;
          3)-signedjar notepad_signed.apk notepad.apk 表示给notepad.apk文件签名,签名后的文件名称为notepad_signed.apk;
          4)最后面的liufeng.keystore 表示证书的别名,对应于生成数字证书时-alias参数后面的名称
  • 5)使用zipalign工具优化已签名的apk(非必须但建议这么做)
  • zipalign -v 4 notepad_signed.apk notepad_signed_aligned.apk

   Android studio 中查看 sha1是在

第一步、打开Android Studio的Tools->Open Terminal...

第二步、输入命令:keytool -v -list -keystore keystore.jks

可以换成你自己的 ja

比如 : keytool -genkey -v -keystore jackluo.keystore -alias jackluo.keystore -keyalg RSA -validity 20000

C:\Users\jackluo\.android>keytool -list -keystore jackluo.keystore

您的密钥库包含 1 个条目

jackluo.keystore, 2015-11-25, PrivateKeyEntry,
证书指纹 (SHA1): AD:FA:D8:AA:D4:A4:0F:33:8A:79:6B:FE:80:5C:B6:51:E7:7B:38:3B

C:\Users\jackluo\.android>
C:\Users\jackluo\.android>keytool -list -keystore jackluo.keystore
输入密钥库口令:

密钥库类型: JKS
密钥库提供方: SUN

您的密钥库包含 1 个条目

jackluo.keystore, 2015-11-25, PrivateKeyEntry,
证书指纹 (SHA1): AD:FA:D8:AA:D4:A4:0F:33:8A:79:6B:FE:80:5C:B6:51:E7:7B:38:3B

Android studio 签名使用转相关推荐

  1. Android Studio 签名配置及使用Walle实现多渠道打包

    本篇博客 主要为本人学习过程总结,有不对的地方麻烦指出,一起学习进步 前言 最近也是搞到了一个 电子书 <Android+Gradle权威指南>,学习一波Gradle 知识,尝试配置签名设 ...

  2. android studio 签名配置

    签署你的应用程序 在本文档中 证书和密钥库 签署您的调试版本 调试证书到期 管理你的钥匙 使用Google Play应用程式签名 管理您自己的密钥和密钥库 签一个APK 生成密钥和密钥库 手动签名AP ...

  3. android studio密钥库口令,Android应用开发Android Studio签名打包及根据keystore密钥获取SHA1安全码...

    本文将带你了解Android应用开发Android Studio签名打包及根据keystore密钥获取SHA1安全码,希望本文对大家学Android有所帮助. " 一.签名打包两种方式 1. ...

  4. Android Studio签名打包的两种方式

    http://www.cnblogs.com/gao-chun/p/4891275.html

  5. android+命令行编译,打包生成apk文件,Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包...

    默认为debug mode,使用的签名文件在: $HOME/.android/debug.keystore 比如 C:\Users\chengcj1.android\debug.keystore 1. ...

  6. Android studio打包签名报错:Error:(3) Error: app_name is not translated in am (Amharic);

    在使用Android studio签名打包apk时报错: *Error:(3) Error: "app_name" is not translated in "am&qu ...

  7. android换台电脑打包签名,Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包 -电脑资料...

    1. 默认为debug mode,使用的签名文件在: $HOME/.android/debug.keystore 2. Release Mode 签名: build.gradle:android {s ...

  8. android studio signingconfigs 打正式包,Android-SigningConfigs打包配置

    本文目标 成功配置signingConfigs Android studio签名 2种签名模式 debug和release模式 debug模式 debug模式使用一个默认的debug.keystore ...

  9. Android Studio的项目太难配置?来看看,手把jio教你~

    驱动项目----Android Studio的环境部署 前提准备: Android Studio 如何下载安装配置? 注意最好确定开发使用的版本再下载,且需要配置jdk和sdk. 参考网上: http ...

最新文章

  1. 使用Rainbow tables和Ophcrack的组合工具破解Windows密码
  2. IOS调试移动端弹窗遮罩input框focus和click事件失效
  3. SAP CDS view自学教程之十:SAP CDS view扩展性(Extensibility)实现原理
  4. 程序员每天少吃 能活120岁
  5. android视频录制(调用系统视频录制),生成缩略图
  6. 渠道为王:销售渠道建设3部曲 读后感
  7. dell5580bios恢复出厂_戴尔笔记本bios如何恢复出厂设置
  8. 什么是数据运营?数据运营是做什么的?
  9. linux iso转换成img文件,Ubuntu下将img 转化成iso的号令[Linux安全]
  10. signature=99d87437cab1487c89a59a65cc379430,剖析根据汉字转拼音的JQuery插件源码
  11. 大数据技术基础与应用
  12. 网站优化排名的5个方法
  13. 大脑神经网络记忆原理图,记忆力机制的神经网络
  14. R-squared 和 Adjusted R-squared 的区别
  15. WPS如何实现整行数据行间随机排序
  16. 魔兽世界诞生记(下)
  17. git diff提示filemode发生改变(old mode xxxx、new mode xxxx)
  18. 丙烯酰胺php泥浆,大桥钻孔灌注桩清孔施工方法
  19. 文华期货数据格式公布
  20. linux管道pipe详解

热门文章

  1. 01爬虫基本原理及Requests库下载
  2. 熟悉常用的HBase操作
  3. css盒子模型、文档流、相对与绝对定位、浮动与清除模型
  4. mysql cluster (mysql 集群)安装配置方案
  5. OpenCV笔记(Size)
  6. numpy中的axis=0,axis=1
  7. 一键安装GitLab7在RHEL6.4上
  8. 【Caffe实践】 多目标输出探究
  9. 数据库中间件 MyCAT源码分析:【单库单表】插入【推荐阅读】
  10. 以高效节能为使命 绿色数据中心势在必行