Android之Keystore⽣成、Apk签名
在中,⼀个项⽬完成后,我们要得到它的Apk往往有⼏种形式:
(1)直接从⼯程的bin⽬录下复制出来,安装
(2)通过AndroidTools或者指令的形式对Apk进⾏签名导出
那么,我们为什么需要对Apk进⾏签名,⼜怎么对Apk进⾏签名?我们来了解⼀下....
⼀、签名的意义
每⼀个Android的应⽤程序都要有⼀个唯⼀辨识的ID,签名的作⽤就是给我们的Apk办理⼀个⾝份证,来唯⼀标⽰。所以签名就是给我们的Apk设定⼀个ID,也就是证书。其次,签名还可以保证每⼀次Apk更新的版本⼀致性。那么签名所带来的好处是什么,在实际应⽤中,签名所带给我们的便利:
应⽤升级的⽆缝结合,我们在开发程序中,往往需要添加新的功能或者修复某些出现的Bug之后,通过提交新的Apk版本来对旧的程序进⾏升级更新;数字签名保证了我们每⼀次更新的Apk的ID与之前的版本的ID 的⼀致性,以便在检查更新、下载安装之后会出现⽆法安装的问题
⼆、数字签名的步骤:
(1)获取我们⾃⼰的keystore
(2)利⽤eclipse的AndroidTools对Apk进⾏签名并导出
三、如何获取我们⾃⼰的Keystore ?
1、采⽤命令⾏的⽅式,通过keytool得到keystore,keytool的⼀般默认路径为:C:\Program Files\Java\jdk1.7.0_51\bin下⾯
开始->运⾏->输⼊cmd,进⼊dos模式->
(1) cd C:\Program Files\Java\jdk1.7.0_51\bin,到keytool的位置,(有时dos默认定位可能是C:\Documents and Settings,我们需要 cd
C:\Program Files)
(2)然后输⼊⽣成keystore的指令 keytool -genkey -alias netstars.keystore -keyalg RSA -validity 40000 -keystore netstars.keystore
-alias 秘钥的⽂件命名,"."之后为扩展名,之前随便输⼊
-
keyalg RSA 以RSA算法加密
-validity 秘钥有效期 40000天
(3)第⼆步回车确认后,提⽰你输⼊密码两次,密码随便加但⼀定要记住,因为是Apk签名导出需要的pasword,所以⼀定要保管好;输⼊密码之后会让你输⼊⼀些基本信息,包括:姓名,单位,地址,区域以及国家等,国家输⼊代号:CN,最后要确认你输⼊的信息,确定⽣成输⼊:Y,秘钥⽂件就会⽣成了,⽣成位置: C:\Program Files\Java\jdk1.7.0_51\bin,就是keyTool的路径
2、通过Eclipse⽣成,第⼀次导出带签名的Apk会随着产⽣⼀个秘钥⽂件,这就是我们所要的keystore签名key了。
(1)Android项⽬右键菜单->AndroidTools-> Export signed Application Package 进⼊页⾯⼀
(2)页⾯⼀,上⾯选择Create new keystore -> Location为⽣成秘钥⽂件的保存位置,⾃由选择,最好⾮中⽂路径 -> Password 输⼊秘钥密码,也是以后签名的密码,保管好 -> Confirm 确认密码 -> nex,t进⼊页⾯⼆
(3)页⾯⼆需要输⼊⼀些基本信息,alias(秘钥⽂件名) -> Password 要和页⾯⼀输⼊的密码⼀致 ->其他信息随便输⼊ -> ContryCode(XX)输⼊:CN -> Next,进⼊页⾯三
(4)页⾯三,选择⽣成Apk⽂件的位置,和keystore⽂件的位置⼀样,⾃由选择,最好不要有中⽂ -> Finish,完成
四、⽣成了⾃⼰的keystore⽂件,如何来使⽤key⽂件获取签名Apk呢?
(1)Android项⽬右键菜单->AndroidTools-> Export signed Application Package 进⼊页⾯⼀
(2)选择Use exsting keystore -> Location为你要使⽤的秘钥⽂件的路径 -> Password 输⼊你的秘钥密码 -> Confirm 确认密码 -> next,进⼊页⾯⼆(3)选择Use exsting keystore -> Alias为你要使⽤的秘钥⽂件名 -> Password 再次输⼊你的秘钥密码 -> next,进⼊页⾯三android获取真正的签名
(4)选择你要导出的Apk⽂件位置,⾃由选择,Finish,完成
好了,经过以上四步相信都了解数字签名的重要性了,数字签名对于我们开发中程序的更新-下载-安装起到了不可替代的作⽤;⽽从⼯程中的bin⽂件夹下取出的Apk只是使⽤debug⽤户签名的,不能保证Apk的安全、唯⼀以及更新版本的⼀致。也相信通过以上步骤都可以⽣成⾃⼰的keystore⽂件,以及通过key⽂件进⾏Apk的签名了...
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论