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 + 鼠标右键选择“在此处打开命令行”

Android生成签名包以及空白包打签名包_第1张图片

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

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


上面的有些参数可以不写的比如-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可操作界面里面的

Android生成签名包以及空白包打签名包_第2张图片

然后就会出现

Android生成签名包以及空白包打签名包_第3张图片

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

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

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


参考文章:

http://www.cnblogs.com/ayanmw/p/3720804.html

http://blog.csdn.net/janronehoo/article/details/18701825


—— lovey hy.

你可能感兴趣的:(android签名包,空白包打签名包)