您的位置:首页 > 移动开发 > Android开发

Android之Keystore生成、Apk签名

2014-07-08 14:39 316 查看
   在Android开发中,一个项目完成后,我们要得到它的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,进入页面三

      (4)选择你要导出的Apk文件位置,自由选择,Finish,完成

好了,经过以上四步相信都了解数字签名的重要性了,数字签名对于我们开发中程序的更新-下载-安装起到了不可替代的作用;而从工程中的bin文件夹下取出的Apk只是使用debug用户签名的,不能保证Apk的安全、唯一以及更新版本的一致。也相信通过以上步骤都可以生成自己的keystore文件,以及通过key文件进行Apk的签名了...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: