AndroidStudio Apk签名及配置
android
1、简介:
AndroidManifest.xml文件中的 package能够认为是一个应用的惟一标识id ,在创建项目时输入的应用包名就是AndroidManifest.xml文件中的 package的值,所以应该取到和应用相关名字。这时候就涉及到了别人开发应用程序的包名问题,本身的能保证包名各不相同,可是别人若是和本身的包名一致了,客户在安装apk时就会出现问题,因而就产生了apk签名。git
全部的Android应用程序都要求开发人员用一个证书进行数字签名,anroid系统不会安装没有进行签名的应用程序。平时咱们的程序能够在模拟器上安装并运行,是由于在应用程序开发期间,因为是以Debug调试模式进行编译的,所以ADT根据会自动用默认的密钥和证书来进行签名,而在以发布模式编译时,apk文件就不会获得自动签名,这样就须要进行手工签名。安全
2、签名的意义
为了保证每一个应用程序开发商合法ID,防止部分开放商可能经过使用相同的Package Name来混淆替换已经安装的程序,咱们须要对咱们发布的APK文件进行惟一签名,保证咱们每次发布的版本的一致性(如自动更新不会由于版本不一致而没法安装)。模块化
3、apk签名好处
应用程序升级:若是你但愿用户无缝升级到新的版本,那么你必须用同一个证书进行签名。这是因为只有以同一个证书签名,系统才会容许安装升级的应用程序。若是你采用了不一样的证书,那么系统会要求你的应用程序采用不一样的包名称,在这种状况下至关于安装了一个全新的应用程序。若是想升级应用程序,签名证书要相同,包名称要相同gradle
应用程序模块化:Android系统能够容许同一个证书签名的多个应用程序在一个进程里运行,系统实际把他们做为一个单个的应用程序,此时就能够把咱们的应用程序以模块的方式进行部署,而用户能够独立的升级其中的一个模块。ui
代码或者数据共享:Android提供了基于签名的权限机制,那么一个应用程序就能够为另外一个以相同证书签名的应用程序公开本身的功能。以同一个证书对多个应用程序进行签名,利用基于签名的权限检查,你就能够在应用程序间以安全的方式共享代码和数据了。.net
4、具体步骤:
AndroidStudio能够同过如下方式进行签名debug
若是没有签名文件,则须要建立一个新的签名。点击Create new… 例:调试
填写完就会出现以下界面xml
这时候就会生成 签名后的APK 与 签名文件。
5、配置自动签名
当咱们须要升级APK版本的时候,咱们须要再次对APK文件进行签名,才能上传到应用市场。每次签名都须要从新输入密码与等待编译时间,这看起来比较麻烦。因此咱们能够经过配置build.gradle让其自动生成签名后的APK。
具体操做:
点击OK,系统编译后,会出现以下代码
配置编译方式
编译后 会在build.gradle下自动生成
这时候你要运行的时候须要选择发布版运行
而后点击编译就好了
固然你若是想也给debug版配置签名信息,这时候你须要在build.gradle下配置以下信息:
这样也会自动生成签名后的APK文件。
6、自动签名安全性
若是你的项目是开源的,而你的签名信息都写在build.gradle,容易被人获取:
这时候你须要把这些签名信息写到 local.properties
而你须要在.gitignore配置加入以下信息。这样你的 local.properties就不会提交到开源项目中。
更改build.gradle的签名信息
这样就配置完成。
7、获取SHA1和MD5值
(1)第一种方式
点击androidStudio右边Gradle
双击signingReport
(2)第二种方式