Android应用签名及团队开发

应用签名

  Android系统要求所有的程序经过数字签名才能安装,如果没有可用的数字签名,系统将不许安装运行此程序,不管是模拟器还是真实手机。因此,在设备或者是模拟器上运行调试程序之前,必须为应用程序设置数字签名。android系统仅仅会在安装的时候测试签名证书的有效期,如果应用程序的签名是在安装之后才到期,那么应用程序仍然可以正常启用。
   Android通过数字签名来标识应用程序的作者和在应用程序之间建立信任关系,不是用来决定用户可不可以安装该应用程序。android的这个签名由应用程序的作者完成,并不需要权威的数字证书签名机构认证,他只是用来让应用程序包自我认证的。Android系统默认自动给应用程序签名,ADT会自动使用debug密钥为应用程序签名。所以我们使用Android Studio生成的Debug的apk包是可以安装至模拟器或者真机上面的。
   通常debug密钥是一个名为debug.keystore的文件,位置位于电脑的:

/Documents and Settings/username/.Android/debug.keystore,其中的username是电脑的用户名。


手动签名

你可以使用工具进行签名:
   给apk签名一共要用到3个工具(3个命令),分别是:keytool、jarsigner和zipalign

   1)keytool:生成数字证书,即密钥,也就是上面说到的扩展名为.keystore的那类文件;
   2)jarsigner:使用数字证书给apk文件签名;
   3)zipalign:对签名后的apk进行优化,提高与Android系统交互的效率(Android SDK1.6版本开始包含此工具)


你也可以使用Android Studio的手动生成签名的工具,然后进行apk签名。

 
1)首先在Build里面选择Generate Signed APK.

 
2)若你没有签名文件就Create new 创建一个新的,若有就Choose existing 从文件管理器中选择,然后填入密码

 
3 - 1)若你创建一个签名文件。选择key store path保存的路径,填写keys tore和key密码。kety store密码和key密码在后面会用到。其他信息选填,按实际情况写就好,是关于开发者个人或者公司的一些信息。

 
3 - 2)在第二步填入相关信息之后,点击Finish即可生成一个带签名的apk。

   


团队开发

   可能有人可能会认为反正debug签名的应用程序也能安装使用,那也没有必要自己签名了嘛。千万不要这样想,debug签名的应用程序有这样两个限制,或者说风险:

   1)debug签名的应用程序不能在Android Market上架销售,它会强制你使用自己的签名;

   2)Debug模式下签名用的证书(默认是Eclipse/ADT和Ant编译)自从它创建之日起,1年后就会失效。
   3)debug.keystore在不同的机器上所生成的可能都不一样,就意味着如果你换了机器进行apk版本升级,那么将会出现上面那种程序不能覆盖安装的问题。不要小视这个问题,如果你开发的程序只有你自己使用,当然无所谓,卸载再安装就可以了。但要是你的软件有很多使用客户,这就是大问题了,就相当于软件不具备升级功能!


   其中,上面的第三点尤其重要,在不同机器上所生成的不一样,那你换机器安装升级的时候,程序不能覆盖安装。若你是一名Android开发,你将某个功能更改或者Bug修复之后,程序更新了,但是你所调试的apk包发送给测试人员测试的时候,他们那边无法安装升级,这岂不是很蛋疼?


手动绑定签名

你还可以手动绑定刚才自己创建的签名至工程文件中,这样生成的直接就是签名版本。
1)在File选项中打开Project Structure

 
 2)然后再你app的Signing设置中点击那个绿色的 + 号,将签名的各种信息填写进去绑定就好。

3)在Android Studio编译完成后,会在build.gradle文件中,多出这样的配置信息。
signingConfigs{
    config{
        keyAlias 'haha'
        keyPassword '***********'
        storeFile file('D:/sadaharu.jks')
        storePassword '***********'
    }
}

4)在下方选择Terminal。

 
5)通过命令行生成MD5值和SHA1值
将目录切换成keystore.jks文件目录,输入keytool -list -v -keystore keystore.jks。按下回车键。输入keystore密码 


集成自动打包环境Jenkins

这里开发工程师每一次都通过复杂的方式去签名再给测试工程师去测试是十分繁琐的,而且使用Git管理开发的时候,大家分支不同以及提交的测试版本不同,多次重复去这样给测试实在是很麻烦的一件事。

需要集成自动打包环境Jenkins的可以参考:
http://blog.csdn.net/mabeijianxi/article/details/52680283

当集成好之后,你就可以将你Android Studio上面自动生成的debug.apk。放入Jenkins指定的文件夹中,然后你在Jenkins中操作build,这样就可以拿到一个签名版本,直接给测试使用,十分方便与快捷,特别适合团队开发使用。











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值