Android APP都需要我们用一个证书对应用进行数字签名,不然的话是无法安装到Android手机上的,平时我们调试运行时到手机上时,是AS会自动用默认的密钥和证书来进行签名;但是我们实际发布编译时,则不会自动签名,这个时候我们就需要进行手动签名了!
一、签名的理解
1、Android安装包文件(Android Package),简称APK,后缀名为.apk
2、注意:release版本的未签名的apk文件,在某些手机上无法安装,比如OPPO
3、debug版和release版的区别:
(1).debug版包含调试信息,往往没有任何优化,适合程序调试
(2).release版是发布版,供用户使用,往往进行了各种优化
4、我们的app程序开发完后必须要就行签名,证明这是属于我的app,之后才能上线或者公开使用
5、签名的步骤,签名打包的步骤在底层其实的是有点麻烦的,但是我们也没有必要去深究,使用工具Eclipse或Studio可以很快的完成
二、签名有以下好处:
1.应用程序升级:如果你希望用户无缝升级到新的版本,那么你必须用同一个证书进行签名。这是由于只有以同一个证书签名,系统才会允许安装升级的应用程序。如果你采用了不同的证书,那么系统会要求你的应用程序采用不同的包名称,在这种情况下相当于安装了一个全新的应用程序。如果想升级应用程序,签名证书要相同,包名称要相同!
2.应用程序模块化: Android系统可以允许同一个证书签名的多个应用程序在一个进程里运行,系统实际把他们作为一个单个的应用程序,此时就可以把我们的应用程序以模块的方式进行部署,而用户可以独立的升级其中的一个模块。
3.代码或者数据共享: Android提供了基于签名的权限机制,那么一个应用程序就可以为另一个以相同证书签名的应用程序公开自己的功能。以同一个证书对多个应用程序进行签名,利用基于签名的权限检查,你就可以在应用程序间以安全的方式共享代码和数据了。
不同的应用程序之间,想共享数据,或者共享代码,那么要让他们运行在同一个进程中,而且要让他们用相同的证书签名。
三、签名步骤
通过签名jks来试试,首先打开android studio 点击Build→Generate Signed Bundle / APK…
点击“Next”
如果没有签名文件,点击Create new... 去创建,如果有点击 Choose existing... 去选择。
(1). 创建签名文件
首先指明生成的jks文件的路径,点击这个文件夹图标
一般个人习惯都是放在本项目文件夹下,然后命名jks后缀的文件,然后点击OK。
然后输入这个jks和别名的一些相关信息,上方的商店密码和别名密码可以设置为一样的,这样便于记忆,只不过安全系数就降低了。信息都设置好了之后,点击OK。
如果出现这个弹窗,你可以不用担心,点击OK
这里勾选上记住密码,点击Next
这里这的注意的是如果是为公司做的app就要向公司要Keystore文件和它的密码,个人开发也是可以使用自己之前创建的Keystore文件,但是要记住它的密码
接下来如下图,选择release,下面两个都勾选上,然后点击Finish
当你看到屏幕的右下角出现这个提示时,说明你的APK已经生成了,你可以在你的app下看到多了一个release的文件夹,里面就是app-release.apk包,下面你可以复制发到手机上,然后下载,手机上是可以安装的。
(2). 选择签名文件
同上点击next,进入下一步
选择自己的签名文件
点击别名后面的文件夹图标,来选择别名
填写对应的商店密码与别名密码
勾选V1与V2,选择要打包apk的类型,是debug还是release版本。
最后,签名打包完成后,在手机上安装打包的apk,安装成功就能正常使用该软件了。