Android应用在Debug模式下ADT会自动用默认的密钥和证书来进行签名,但是在发布的时候就需要一个手动配置。
生成签名的方法见我的上一篇文章:生成Java签名.keystore文件的方法

为Android应用配置签名

代码添加

在Android应用的build.gradle文件的android中添加如下代码

signingConfigs {    debug {        keyAlias 'androiddebugkey'        keyPassword 'android'        storeFile file('../KEYSTORE/debug.keystore')        storePassword '123456'    }}

其中keyAlias对应签名中的别名,keyPassword对应别名密码,storeFile是签名的文件路径,storePassword是签名的密码。

可视化添加

通过快捷键Command+;,或者是File->Project Structure打开Project Structure对话框,然后选择Signing标签,然后在其中我们可以添加签名。

Android应用配置签名_第1张图片

通过途中红框标出的加号添加一个签名,在右侧填写信息即可,之后点击OK。这种方法,Android Studio会自动为我们添加上面的代码。

使用签名

签名是要在打包的时候使用。打包一般用debug包和release包,因为我们的签名是为debug准备的,那么下来我演示打debug包时怎么使用。

还是在build.gradle的android中添加如下代码

buildTypes {    debug {        signingConfig signingConfigs.debug    }}

这样我们在打debug包的时候就会带上这个签名了。

为什么Android应用需要签名

这里我在网上找了一些资料总结了一下,这个理解一下就可以了。

  1. 应用程序升级——当你对应用程序进行升级时,如果你想用户平稳的升级,那么,你就需要签上相同的证书。当系统安装一个升级应用程序时,如果新版本的证书与老版本的证书有匹配的话,那么,系统才会允许进行升级。如果你没有为版本签上合适的证书,当你安装时,你需要给应用程序指定一个新的包名——在这种情况下,用户安装的新版本,被当作是一个全新的应用程序。
  2. 应用程序模块化——如果应用程序请求的话,Android系统允许签有相同证书的应用程序运行在相同的进程里,这样,系统就会把它们看作是一个单一的应用程序。用这种方法配置应用程序,用户可以选择更新每个独立的模块。
  3. 代码/数据权限共享——Android系统提供了基于签名的权限检查,因此,如果应用程序间签有特定的证书,那么,它们之间可以共享功能。通过多个程序签有相同的证书并且使用基于签名的权限检查,你的程序可以以一种安全的方式共享代码和数据。还有一个决定签名策略的重要因素是:如何设定key的有效期。
  4. 发送者的身份认证,由于开发商可能通过使用相同的Package Name来混淆替换已经安装的程序,以此保证签名不同的包不被替换
  5. 保证信息传输的完整性,签名对于包中的每个文件进行处理,以此确保包中内容不被替换。
  6. 防止交易中的抵赖发生, 市场对软件的要求

Android中使用签名的相关知识请参考以下文章:

android签名

如何发布android 应用程序,app增加签名证书

更多相关文章

  1. 在android虚拟机中安装删除应用程序
  2. Android SQLite数据库 《第一行代码》
  3. Android 应用程序权限
  4. Android简明开发教程二十四:总结及示例代码下载
  5. 如何获取android源代码
  6. Android Studio中获取sha1证书的方法
  7. Android应用程序中的四大组件
  8. 代码讲解Android Scroller、VelocityTracker

随机推荐

  1. Android(安卓)GestureDetector滑动监听事
  2. Android 通过Socket 和服务器通讯
  3. Android(安卓)eclipse SVN使用详解
  4. Android基站定位——单基站定位(二)
  5. --android studio 使用gradle 导出jar包,
  6. android webview 遇到的问题:external/chr
  7. Android学习系列(33)--App应用之提交到各
  8. Android 使用 Ksoap2 出现的低级错误...
  9. Android(安卓)ptrace注入基础
  10. android中一些容易遗忘的知识点