对Android应用签名
Android使用包名作为唯一标识,当在同一台手机安装两个包名相同的应用,后安装的应用就会覆盖前面的应用(签名相同的情况下)。
签名有两个主要作用:
1.确定发布者身份。由于应用开发者可以通过使用相同的包名来替换已经安装的程序,因此使用签名可以避免发生这种情况。
2.确保应用的完整性。签名会对应用包中的每个文件进行处理,从而确保程序包中的文件不会被替换。
**在开发、调试阶段,AS会自动生成调试证书进行签名。当应用发布时,必须使用合适的数字证书对应用进行签名。
⒈使用AS对Android应用进行签名
1.单击AS主菜单中的Build => “Generate Signed Bundle / APK”

2.此时系统会提示你生成"Android App Bundel",还是生成“APK”,其中Android App Bundel时Google新推出的动态发布方案,这种发布方式的App更小、安装更快,但目前最大的问题时仅支持Google Play(Google应用商店),国内由于“谷歌服务不给力”的原因经常404,因此我们选择“APK”。

3.选择已有的还是新建,我们选择新建,“Create new ”


4.填写完成后选择“OK”后在新窗口中选择刚刚创建的数字证书。

5.单击“Next”按钮,在新的对话框中选择APK安装包的存储路径及签名版本,V1版本只对JAR包签名,V2版本对整个APK签名,建议选择V2版本。

6.选择“Finish”后签名完成。
⒉使用Android命令对APK签名
如果不想借助AS对Android应用进行签名或有时候需要对一个“未签名”的APK进行签名,则可通过"命令"对Android应用进行手动签名。
1.创建Key store库,使用JDK bin目录下的keytool.exe工具来生成数字证书。

keytool -genkeypair -alias Coreqi -keyalg RSA -validity 400 -keystore fanqi.jks
选项说明:
-genkeypair:指定生成数字证书
-alias:指定生成数字证书的别名
-keyalg:指定生成数字证书的算法。使用RSA算法
-validity:指定生成数字证书的有效期
-keystore:指定生成数字证书的存储路径
之后,输入证书的详细信息即可。

2.使用Android的apksigner.bat命令对未签名的APK安装包进行签名,apksigner.bat位于Android SDK的build-tools目录下。apksigner命令就是V2版本的签名(API29为V3)。

****
可以通过AS的Build =》 Build Bundle(s) / APK(s) =》 Build APK(s)来生成未签名的APK

在命令行窗口输入以下命令:
apksigner sign --ks C:\Users\fanqi\fanqi.jks --ks-key-alias Coreqi --out C:\Users\fanqi\app_sign.apk C:\Users\fanqi\AndroidStudioProjects\MyApplication\app\build\outputs\apk\debug\app-debug.apk
选项说明:
sign:指定使用apksigner命令执行签名
--ks:指定数字证书的存储路径
--ks-key-alias:指定数字证书的别名
--out 文件路径:指定签名后的APK文件路径及文件名
最后一个参数则代表未签名的APK文件
输入命令后回车输入数字证书的密码,如果签名成功,该命令不会有任何提示。
apksigner还提供了verify子命令来验证签名是否有效。
在命令行窗口输入以下命令对APK安装包的签名状态执行检查
apksigner verify -v C:\Users\fanqi\app_sign.apk

上面的输出提示用户,签名检查已经得到确定,其中V1版本的签名为false,V2版本的签名为false,V3版本的签名为true。
对Android应用签名的更多相关文章
- Android APK签名
一.为什么要签名? 开发Android的人这么多,完全有可能大家都把类名,包名起成了一个同样的名字,这时候如何区分?签名这时候就是起区分作用的. 由于开发商可能通过使用相同的Package Name来 ...
- Android APK 签名 (转发)
Cordova 3.5 为 Android APK 签名,生成可发布的 APK 程序文件 任侠 2014-06-07 00:04 移动开发 抢沙发 16,288 views 目录 [隐藏] ...
- Android APK 签名比对(转)
Android apk签名的过程 1. 生成MANIFEST.MF文件: 程序遍历update.apk包中的所有文件(entry),对非文件夹非签名文件的文件,逐个生成SHA1的数字签名信息,再用Ba ...
- Android App签名打包 与 SDK开发文档
Android App签名打包签名的意义1.为了保证每个程序开发者的合法权益2.放置部分人通过使用相同的Package Name来混淆替换已经安装的程序,从而出现一些恶意篡改3.保证我们每次发布的版本 ...
- android 系统签名【转】
本文转载自:http://blog.csdn.net/csh86277516/article/details/73549824 Android——编译release版签名系统 AndroidManif ...
- cordova打包之android应用签名
原文:cordova打包之android应用签名 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/mate_ge/article/details/78 ...
- Android平台签名证书(.keystore)生成指南
来源:https://ask.dcloud.net.cn/article/35777 Android平台签名证书(.keystore)生成指南 分类:HTML5+ Android证书 Android平 ...
- Android apk签名详解——AS签名、获取签名信息、系统签名、命令行签名
Apk签名,每一个Android开发者都不陌生.它就是对我们的apk加了一个校验参数,防止apk被掉包.一开始做Android开发,就接触到了apk签名:后来在微信开放平台.高德地图等平台注册时,需要 ...
- Android手动签名
在生成release build时可实现自动签名,所谓手动签名,就是在命令行下完成签名,落实到Android Studio里面,就是在terminal里面做. 下面是三个命令,第一个签名,第二个验证, ...
- Android应用签名
http://www.cnblogs.com/ghj1976/archive/2011/07/18/2109381.html 为了要签名? 开发Android的人这么多,完全有可能大家都把类名,包名起 ...
随机推荐
- 【线性代数】2-5:逆(Inverse)
title: [线性代数]2-5:逆(Inverse) toc: true categories: Mathematic Linear Algebra date: 2017-09-11 20:00:1 ...
- 腾讯域名防封 微信/QQ域名检测,域名防封的原理
微信屏蔽网页的依据是什么?明面上的原因是网页内容有诱导.诈骗等不和谐的内容时候,被用户举报就会封闭.实际上这只是表面现象,因为我们能明确的感受到不同的阶段,同样的内容,被封杀的频率差别很大的,也就是说 ...
- mybatis 多级级联(多级嵌套)
注:笔者这里的嵌套可以用词有点欠缺,忘见谅 需求:用一个查询接口查出其结果集,这里就用伪代码标识要返回前端的类与类之间的关系. class 顶层{ String otherValue; LinkedL ...
- 发布jar项目到maven仓库
在要发布的项目pom文件中添加配置: <distributionManagement> <repository> <id>releases</id> & ...
- 7.RabbitMQ--消息确认机制(confirm)
RabbitMQ--消息确认机制(confirm) Confirm模式 RabbitMQ为了解决生成者不知道消息是否真正到达broker这个问题,采用通过AMQP协议层面为我们提供了事务机制方案,但是 ...
- golang——reverse反转字符串
reverse反转,是个比较基础算法.要实现这个方法,从常理考虑可以申请一个新空间,然后将字符串的从尾到头依次填充该空间,最后新空间的内容就是反转后的结果了,这个方式的算法复杂度是O(n),并且还需要 ...
- Kafka 实践
问题描述 配置 Kafka-client 2.x, Spring-Kafka 默认配置 Kafka 三个partition, 使用KafkaListener按group消费. 现象 某天突然发现两个p ...
- python中selenium操作下拉滚动条方法
场景:在当前显示的页面元素不可见,拖动下拉条后元素就出来了. 解决方法: 在python中有几种方法解决这种问题,简单介绍下,给需要的人: 方法一)使用js脚本直接操作,方法如下: #将页面滚动条拖到 ...
- You don't have permission to access / on this server. wampserver3.1.0配置外网访问的问题
参考各种wamp教程后外网仍然不能访问服务器,很是头疼 网上好多wampserver配置都比较久远,最新版本3.1.0的很少,首先打开httpd.conf文件(这部分较简略,详细可以参考其他wamp配 ...
- C# 批处理制作静默安装程序包
使用批处理+WinRAR制作静默安装程序包 @echo 安装完窗口会自动关闭!!! @echo off start /wait Lync.exe /Install /Silent start /wai ...