iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >android应用签名详细步骤
  • 257
分享到

android应用签名详细步骤

Android 2022-06-06 10:06:09 257人浏览 安东尼
摘要

1、准备工作apk的签名工作可以通过两种方式来完成: 1)通过ADT提供的图形化界面完成apk签名;右键项目——》 Android Tools ——》Export Signed

1、准备工作
apk的签名工作可以通过两种方式来完成:

1)通过ADT提供的图形化界面完成apk签名;
右键项目——》 Android Tools ——》Export Signed Application Package... ——》 打开图形界面
2)完全通过shell/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中(我说的是为了方便使用,没有说必须要这么做)。怎么配置环境变量请参见我先前的博客(windowsubuntu),这里需要说一下这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 it-homer.keystore -alias it-homer.keystore -keyalg RSA -validity 20000

说明:
1)keytool是工具名称,-genkey意味着执行的是生成数字证书操作,-v表示将生成证书的详细信息打印出来,显示在dos窗口中;
2)-keystore  it-homer.keystore 表示生成的数字证书的文件名为“ it-homer.keystore”;
3)-alias  it-homer.keystore 表示证书的别名为“ it-homer.keystore”,当然可以不和上面的文件名一样;
4)-keyalg RSA 表示生成密钥文件所采用的算法为RSA;
5)-validity 20000 表示该数字证书的有效期为20000天,意味着20000天之后该证书将失效
在执行上面的命令生成数字证书文件时,会提示你输入一些信息,包括证书的密码,示例如下:

4、使用jarsigner工具为Android应用程序签名
代码如下:
jarsigner -verbose -keystore  it-homer.keystore -signedjar notepad_signed.apk notepad.apk  it-homer.keystore

说明:
1)jarsigner是工具名称,-verbose表示将签名过程中的详细信息打印出来,显示在dos窗口中;
2)-keystore  it-homer.keystore 表示签名所使用的数字证书所在位置,这里没有写路径,表示在当前目录下;
3)-signedjar notepad_signed.apk notepad.apk 表示给notepad.apk文件签名,签名后的文件名称为notepad_signed.apk;
4)最后面的 it-homer.keystore 表示证书的别名,对应于生成数字证书时-alias参数后面的名称

5、使用zipalign工具优化已签名的apk(非必须但建议这么做)
代码如下:
zipalign -v 4 notepad_signed.apk notepad_signed_aligned.apk

说明:
1)zipalign是工具名称,-v表示在DOS窗口打印出详细的优化信息;
2)notepad_signed.apk notepad_signed_aligned.apk 表示对已签名文件notepad_signed.apk进行优化,优化后的文件名为notepad_signed_aligned.apk
说明:如果你以前的程序是采用默认签名的方式(即debug签名),一旦换了新的签名应用将不能覆盖安装,必须将原先的程序卸载掉,才能安装上。因为程序覆盖安装主要检查两点:
1)两个程序的入口Activity是否相同。两个程序如果包名不一样,即使其它所有代码完全一样,也不会被视为同一个程序的不同版本;
2)两个程序所采用的签名是否相同。如果两个程序所采用的签名不同,即使包名相同,也不会被视为同一个程序的不同版本,不能覆盖安装。

另外,可能有人可能会认为反正debug签名的应用程序也能安装使用,那也没有必要自己签名了嘛。千万不要这样想,debug签名的应用程序有这样两个限制,或者说风险:

1)debug签名的应用程序不能在Android Market上架销售,它会强制你使用自己的签名;
2)debug.keystore在不同的机器上所生成的可能都不一样,就意味着如果你换了机器进行apk版本升级,那么将会出现上面那种程序不能覆盖安装的问题。不要小视这个问题,如果你开发的程序只有你自己使用,当然无所谓,卸载再安装就可以了。但要是你的软件有很多使用客户,这就是大问题了,就相当于软件不具备升级功能!

您可能感兴趣的文章:Android签名机制介绍:生成keystore、签名、查看签名信息等方法给Android的APK程序签名和重新签名的方法Android获取apk程序签名信息代码示例Android APK使用Debug签名重新打包 Eclipse更改默认Debug签名Android Apk去掉签名以及重新签名的方法iOS 基于AFNetworking下自签名证书配置的方法iOS中的ipa重签名(逆向必备)iOS之https自签名证书认证及数据请求的封装原理IOS 签名错误codesign failed with exit code 1解决方法Android和iOS包批量重签名


--结束END--

本文标题: android应用签名详细步骤

本文链接: https://www.lsjlt.com/news/27158.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • android打包签名的步骤是什么
    Android打包签名的步骤如下:1. 生成签名密钥库(Keystore)文件:使用Java开发工具包中的Keytool工具生成一个...
    99+
    2023-08-25
    android
  • Android Studio 安装步骤详细图解
    目录 〇、前言 一、Android Studio 下载 二、安装步骤图解 三、创建第一个Android Studio项目 〇、前言 Android Studio 安装前需要先安装好JDK并配置好Path环境变量。本次安装用的3.5.2...
    99+
    2023-09-13
    android studio android ide
  • Android使用ViewBinding的详细步骤(Kotlin简易版)
    ViewBinding 是什么 2020年的3月份 巨佬 JakeWharton 开源的 butterknife 被官宣 停止维护,在github 上 说明 Attention: T...
    99+
    2024-04-02
  • 注册网站域名的详细步骤
    本篇内容主要讲解“注册网站域名的详细步骤”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“注册网站域名的详细步骤”吧! 每天互联网都会诞生成千上万的编程网站,有些网站是公司开设的官网而有些...
    99+
    2023-06-06
  • Android 应用获取签名MD5
     生成Android平台签名证书(.keystore)生成指南 根据uniapp官方的文档生成签名后,查看当前证书信息: keytool -list -v -keystore test.keystore 会输出以下格式信息: 会发现证...
    99+
    2023-09-11
    笔记
  • Idea使用Tomcat详细步骤
    小聊: 本次内容是是有关 Idea 开发 Web 项目配置 Tomcat 服务器的详细教程。JavaWeb 学习阶段大多会使用 Tomcat 作为服务器。虽然说后面不再需要自己安装配置 Tomca...
    99+
    2023-09-02
    tomcat intellij-idea java java-ee
  • nginx配置IP白名单的详细步骤
    目录1、添加IP白名单文件2、配置nginx.conf3、编辑白名单的提示导航页面补充:添加白名单后nginx报错:总结 分析nginx访问日志,有哪些IP访问过nginx...
    99+
    2022-12-27
    nginx添加ip白名单 设置ip白名单 nginx 白名单
  • 用python实现域名资产监控的详细步骤
    应用场景 域名资产监控,通过输入一个主域名,找到该域名对应的ip地址所在的服务器的端口开闭情况。通过定期做这样的监控,有助于让自己知道自己的资产的整体暴露面情况。 所需要具备的前缀技...
    99+
    2024-04-02
  • 【Android取证篇】ADB版本更新详细步骤
    【Android取证篇】ADB版本更新详细步骤 更新ADB版本,解决无法连接设备问题【蘇小沐】 ADB没有自动更新的命令,我们需要下载新的ADB进行替换更新。 1、ADB查找 打开任务管理器(快捷键s...
    99+
    2023-09-07
    android adb
  • springboot使用redis的详细步骤
    目录springboot使用redisspringboot使用redis步骤StringRedisTemplate和RedisTemplate总结 springboot使用...
    99+
    2024-04-02
  • Mysql详细安装步骤
    目录 1、解压服务端Mysql安装包  2.复制改变my.ini文件  3、安装MySQL服务 4、启动mysql服务  6.记录初始密码,利用初始密码登录 &7.改变MySQL链接密码        1、解压服务端Mysql安装包 ...
    99+
    2023-09-06
    mysql 数据库 服务器
  • 配置bond4详细步骤
     简介 bond是多块物理网卡虚拟为一块网卡,使多块网卡看起来像一块网卡。linux系统下配置bond,通过网卡绑定可增加服务器可靠性,同时可增加网络带宽,提供稳定的网络服务。 环境信息 CentOS Linux release 7.9.2...
    99+
    2023-09-10
    linux 服务器 运维
  • Gitlab搭建详细步骤
    Gitlab的概念        GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。安装方法是参考GitLab在GitHub上的Wiki页面。Gitlab是目前被广泛使用的基于gi...
    99+
    2023-09-04
    运维 git linux centos 服务器
  • VSCode使用npm的详细步骤
    目录1.打开cmd 输入指令 npm -v 查看npm是否安装,需要先安装node.js2.打开vscode 在工作区创建一个项目,右键打开 “在集成终端中打开&rdqu...
    99+
    2024-04-02
  • pip安装详细步骤
    安装步骤:1、确保Python已经正确安装在您的计算机上;2、下载“get-pip.py”脚本;3、按下Win + R键,然后输入cmd并按下Enter键来打开命令行窗口;4、在命令行窗口中,使用cd命令切换到“get-pip.py”所在的...
    99+
    2023-10-22
    python pip
  • Mysql下载详细步骤
    一、下载mysql         打开地址:MySQL :: Download MySQL Community Server  这里我下载的是红框标注的。  直接点击No thanks,just start my download....
    99+
    2023-09-01
    mysql 数据库
  • ASP.NET安装详细步骤
    这篇文章主要介绍“ASP.NET安装详细步骤”,在日常操作中,相信很多人在ASP.NET安装详细步骤问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ASP.NET安装详细步骤”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-18
  • android应用签名工具有哪些
    Android应用签名工具有以下几种:1. JDK Keytool:Java Development Kit(JDK)中的Keyto...
    99+
    2023-08-23
    android
  • android应用签名机制是什么
    Android应用签名机制是一种用于验证应用真实性和完整性的安全机制。在开发和发布Android应用时,开发者需要使用私钥对应用进行...
    99+
    2023-08-23
    android
  • Java jar打包成exe应用程序的详细步骤
    Java jar打包成exe应用程序,可在无JDK/JRE环境下运行 前言 近期做了一个前后端合并的spring boot项目,但是要求达成exe文件,提供给不懂电脑的小白安装使用,...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作