Android生成签名包以及空白包打签名包

我们都知道当我们开发完一款App之后都将会打包apk发布出去从而成为线上版本。为了防止不法分子恶意操作线上如软件造成不必要的损失我们通常会对apk进行签名加密处理。每一个App都会有唯一的签名,就像身份证一样,在有些平台下线上版本更新时会要求我们上传签名apk以便核实,比如应用宝,搜狗平台。。。

那么今天我们就来看看签名包的打法。我们开发人员平时调试的时候也在使用签名包,它是根据开发环境会在C:\Users\"username"\.android下生成一个debug.keystore签名文件,另外我们要注意:项目右键->Export->Export Android Application和项目右键->Android Tools->Export sign...../Export unsign......这两种方式是采用不同的机制签名的,如果想发布要选择第二种方式,第二种方式还可以通过manifest.xml文件实现,见下图:

具体界面化操作不在此贴出,比较直接了当,下面我们来采用一种命令行的方式(JDK提供)实现上述界面化的操作,加深界面化操作的理解。

1.首先我们cmd到jdk的bin根目录,如果是win7系统的话在bin目录下按住shift + 鼠标右键选择“在此处打开命令行”

我们主要使用到的批处理文件是keytool、jarsigner和zipalign,具体API可以通过其对应的-help查看,我这里会给出两篇博客供参考,其实我们也就经常使用以下命令

①:keytool -genkey -v -keyalg DSA -keysize 1024 -sigalg SHA1withDSA  -validity 20000  -keystore haha.keystore -aliasheihei

上面的有些参数可以不写的比如-keyalg DSA -keysize 1024 -sigalg SHA1withDSA  这是因为JDK1.7之后对算法做了修改,参考会有说明。

然后会让我们填写一些内容在当前目录下去创建“haha.keystore”

②.jarsigner -verbose -keystore haha.keystore -signedjar sign.apk unsign.apk heihei

可以通过这个命令对apk进行签名打包,我们需要将unsign.apk也放到bin目录下,heihei是你的alias也就是在UI可操作界面里面的

然后就会出现

会在bin目录下生成sign.apk,它就是某些安卓市场要的空签名包

③.zipalign -v 4 sign.apk Sign_Release.apk

对其工具命令行,此工具可确保所有未压缩的数据开始于一个特定的字节对齐,相对于文件的开始。当一个设备上安装,确保对齐在4字节边界提供了性能优化。当对齐,Android系统能够读取文件使用mmap(),即使它们包含与对齐限制二进制数据,而不是复制所有从包中的数据的。其好处是在RAM中的运行应用程序所消耗的量减少。

参考文章:

【keytool jarsigner工具的使用】Android 使用JDK1.7的工具 进行APK文件的签名,以及keystore文件的使用 - ayanmw - 博客园

Android学习——查看apk签名 和 keystore 的信息_积跬步_图腾的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值