1. 为什么要签名?
发送者的身份认证
由于开发商可能通过使用相同的 Package Name 来混淆替换已经安装的程序,以此保证签名不同的包不被替换
保证信息传输的完整性
签名对于包中的每个文件进行处理,以此确保包中内容不被替换
防止交易中的抵赖发生, Market 对软件的要求
-
2. 签名的说明
所有的应用程序都必须有数字证书, Android 系统不会安装一个没有数字证书的应用程序
Android 程序包使用的数字证书可以是自签名的,不需要一个权威的数字证书机构签名认证
如果要正式发布一个 Android 应用,必须使用一个合适的私钥生成的数字证书来给程序签名,而不能使用 adt 插件或者 ant 工具生成的调试证书来发布
数字证书都是有有效期的, Android 只是在应用程序安装的时候才会检查证书的有效期。如果程序已经安装在系统中,即使证书过期也不会影响程序的正常功能
签名后需使用 zipalign 优化程序
Android 将数字证书用来标识应用程序的作者和在应用程序之间建立信任关系,而不是用来决定最终用户可以安装哪些应用程序
3. AndroidStudio 对APP的签名
AndroidStudio 对APP的签名 的方式至少有两种(我所知道的),下面重点 讲一下这两种签名的操作
第一种:最简单的方式就是让AndroidStudio自己生成签名并且实现项目打包
操作:
1.点击菜单栏的build/Grenerate Signed APK这里写图片描述

之前没有使用过,在Key store path会是空白的,需要我们新建一个签名文件,有两种生成方法,一种是使用命令行生成,另外一种是使用androidStudio直接生成。这就是androidstudio的强大之处。简单说一下androidStudio上生成签名文件,单击Create new Key Store,
跳转到下面页面:这里写图片描述
点击确认后会出现下面的页面
这里写图片描述
点击next,进入项目签名
点击finish之后,执行项目签名,执行完之后可以在项目里找到相对应生成的项目APK文件
查看签名信息
打开Terminal命令行窗口,输入以下命令行:keytool -list -v -keystore “C:\Users\Mr.C\AttendenceSystem.jks” 会得到以下信息:
这里写图片描述
注释:后面引号的路径是之前生成的签名文件的路径
第二种:前提是你已经有签名文件了
操作如下:
打开app 的build.gradle可以看到如下代码:
接下来,做如下操作:
在回去看 app 的build.gradle文件,可以看到增加如下代码:
下次再对百度地图SDK的使用协议签总结,感觉坑挺多的
————————————————