一、      Android签名有什么作用?

  1. 应用程序升级:如果你希望用户无缝升级到新的版本,那么你必须用同一个证书进行签名。这是由于只有以同一个证书签名,系统才会允许安装升级的应用程序。如果你采用了不同的证书,那么系统会要求你的应用程序采用不同的包名称,在这种情况下相当于安装了一个全新的应用程序。如果想升级应用程序,签名证书要相同,包名称要相同!
  2. 应用程序模块化:Android系统可以允许同一个证书签名的多个应用程序在一个进程里运行,系统实际把他们作为一个单个的应用程序,此时就可以把我们的应用程序以模块的方式进行部署,而用户可以独立的升级其中的一个模块。
  3. 代码或者数据共享:Android提供了基于签名的权限机制,那么一个应用程序就可以为另一个以相同证书签名的应用程序公开自己的功能。以同一个证书对多个应用程序进行签名,利用基于签名的权限检查,你就可以在应用程序间以安全的方式共享代码和数据了。

二、      签名的注意事项

  1. 所有的Android应用都必须有数字签名,没有不存在数字签名的应用,包括模拟器上运行的。Android系统不会安装没有数字证书的应用。
  2. 签名的数字证书不需要权威机构来认证,是开发者自己产生的数字证书,即所谓的自签名。
  3. 模拟器开发环境,开发时通过ADB接口上传的程序会先自动被签有Debug权限,然后才传递到模拟器。
  4. 正式发布一个Android应用时,必须使用一个合适的私钥生成的数字证书来给程序签名,不能使用ADT插件或者ANT工具生成的调试证书来发布。
  5. 数字证书都是有有效期的,Android只是在应用程序安装的时候才会检查证书的有效期。如果程序已经安装在系统中,即使证书过期也不会影响程序的正常功能。
  6. Android将数字证书用来标识应用程序的作者和在应用程序之间建立信任关系,而不是用来决定最终用户可以安装哪些应用程序。

三、       生成签名

1.开始菜单,搜索cmd

  

2.打开cmd

  

3.进入.android

4.使用命令keytool -list -v -keystore debug.keystore

5.需要安装keytool,办法是安装jdk,百度搜索jdk并下载安装;具体平台按实际情况选择

6.安装完毕,进入到jdk安装bin目录,并复制地址

7.回到cmd命令窗口,输入cd + 空格,并在标题栏右侧点击粘贴

8.回车,进入到这个目录

9.再次输入keytool -list -v -keystore debug.keystore命令并回车,出现错误

10.先执行以下命令keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -validity 10000

11.按提示输入密码(自己定),密保答案等;到后来需要重新再输入密码,生成完成

12.到keytool目录下,看到debug.keystore已经生成成功

四、 GeneXus开发Android应用时如何签名

在开发过程中,GeneXus已经自带了debug.keystore的签名文件,以让开发人员可以迅速进行开发。

但如果开发完成了,在投入生产环境时,建议最好使用自己管理的签名文件。

在如上图所示,在对应的属性,指定到自己已经生成的keystore文件(可以参考本文章的前面内容),配置好对应的名称/存储密码/密钥口令等信息,

重新编译即可,这样GeneXus在生成新的apk文件时会使用所配置的签名文件。

转载于:https://www.cnblogs.com/genexusblog/p/6690179.html

Android签名打包详解相关推荐

  1. 【Android签名机制详解】二:Android V1、V2、V3、V4签名方案

    前言 书接上回[Android签名机制详解]一:密码学入门,在了解了消息摘要.非对称加密.数字签名.数字证书的基本概念后,我们趁热打铁.直奔主题,讲解签名在Android中的实际应用. 基础知识 An ...

  2. Android学习笔记——Android 签名机制详解

    Android 签名机制详解 近期由于工作需要在学习 Android 的签名机制,因为没有现成资料,只能通过开发者文档和阅读博客的方式对 Android 签名机制进行大致了解.过程中查阅到的资料相对零 ...

  3. eclipse+ADT 进行android应用签名打包详解

    1.Eclipse工程中右键工程,弹出选项中选择 android工具-生成签名应用包: 2.选择需要打包的android项目工程: 3.如果已有私钥文件,选择私钥文件输入密码,如果没有参见第6和7步创 ...

  4. Android 动态分区详解(一) 5 张图让你搞懂动态分区原理

    文章目录 0. 导读 1. 动态分区详解的背景 1.1 背景 1.2 动态分区的本质 2. Linux device mapper 驱动 3. Android 动态分区布局 3.1 动态分区布局 3. ...

  5. AndroidV1,V2,V3签名原理详解

    AndroidV1,V2,V3签名原理详解 签名校验流程 不同的签名版本之间的区别 V1签名保护机制 V2签名保护机制 V3签名保护机制 怎样判断使用的是哪种签名 参考链接: 签名校验流程 基础知识: ...

  6. JMessage Android 端开发详解

    JMessage Android 端开发详解 目前越来越多的应用会需要集成即时通讯功能,这里就为大家详细讲一下如何通过集成 JMessage 来为你的 App 增加即时通讯功能. 首先,一个最基础的 ...

  7. Android Studio 插件开发详解四:填坑

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78265540 本文出自[赵彦军的博客] 系列目录 Android Gradle使用 ...

  8. Android Studio 插件开发详解一:入门练手

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78112003 本文出自[赵彦军的博客] 系列目录 Android Gradle使用 ...

  9. Android Studio 版本号详解

    Android Studio 版本号详解 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/69951965 本文出自[赵彦军的博客] ...

最新文章

  1. Jmeter-jtl性能测试报告转换-2种导出方法
  2. git bash打印当前文件结构_6 个方便的 Git 脚本
  3. pyqt 获取 UI 中组件_初级UI需注意10个移动端的关键原则
  4. 不等双十一,ChemDraw降价活动已经打开!
  5. 如何卸载非linux系统分区,如何卸载Linux系统分区?卸载Linux系统分区的方法-站长资讯中心...
  6. mac下将python2.7改为python3
  7. 【PHP学习】—get请求传递参数(五)
  8. Linux 命令(133)—— groupdel 命令
  9. [原]Java程序员的JavaScript学习笔记(1——理念)
  10. Docker系列(四)守护式容器
  11. Golang的聊天服务器实践(群聊,广播)(一)
  12. jdk优先级队列、延迟队列原理
  13. lingo求优化模型
  14. chromedriver与chrome各版本及下载地址
  15. 智能汽车路径规划-曲线插值法、人工势场法
  16. Chrome最新版如何安装代理Proxy SwitchyOmega
  17. 添加地图注记出现的问题
  18. (转)前端文摘:深入解析浏览器的幕后工作原理
  19. 东方时尚驾校-科目三-雪铁龙-考试技巧
  20. 为什么论文降重没有效果?

热门文章

  1. sizeof,终极无惑(上)
  2. 使用mysqlimport导入包含主键自增长属性的表
  3. [原]go lang windows环境搭建
  4. 【安全风险通告】Spring Framework远程代码执行漏洞(CVE-2022-22965)安全风险通告第二次更新...
  5. 认识下这位全能型漏洞猎人
  6. F5紧急修复严重的 BIG-IP 预认证 RCE 漏洞
  7. 思科警告:IOS 路由器中含有多个严重缺陷,可导致“系统完全受陷”
  8. 洛谷3916 图的遍历
  9. loadrunner两个报错Error -27492、Error -27778 互斥的问题
  10. request.getcontextPath() 详解(转)