Android APP签名和签名等信息查看

最近在写学校的创新项目,是一个基于定位的签到系统,需要用到百度地图,百度地图SDK的使用需要申请身份,获取key值等,过程中需要提供应用的签名,下面介绍一下签名的使用。

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可以看到如下代码:

signingConfigs {
        config {
            keyAlias 'xxxx'
            keyPassword 'xxxxxx'
            storeFile file('xxxxxxxxxxxxxxxxxxxxxx')
            storePassword 'xxxxxxxxxxx'
        }
    }

接下来,做如下操作:
这里写图片描述
在回去看 app 的build.gradle文件,可以看到增加如下代码:

buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config
        }
        debug {
            signingConfig signingConfigs.config
        }
    }

下次再对百度地图SDK的使用协议签总结,感觉坑挺多的

猜你喜欢

转载自blog.csdn.net/cqx13763055264/article/details/80369146