Android Studio中apk签名打包 以及获取 应用签名字符串

来源:互联网 发布:淘宝店铺级别提升 编辑:程序博客网 时间:2024/05/16 04:37

apk签名简介

所有的Android应用程序都要求开发人员用一个证书进行数字签名,Android系统不会安装没有进行签名的应用程序。
在应用程序开发期间,由于是以Debug调试模式编译的,因此IDE(ADT)根据会自动用默认的密钥和证书来进行签名,而以Release发布模式编译时,apk文件就不会得到自动签名,这样就需要进行手工签名。

apk签名的好处有:

  • 应用程序升级
    只有以同一个证书签名,系统才会允许安装升级的应用程序。
    如果你采用了不同的证书,那么系统会要求你的应用程序采用不同的包名称,在这种情况下相当于安装了一个全新的应用程序。
  • 应用程序模块化
    Android 系统可以允许同一个证书签名的多个应用程序在一个进程里运行,系统实际把他们作为一个单个的应用程序,此时就可以把我们的应用程序以模块的方式进行部署,而用户可以独立的升级其中的一个模块。
  • 数据或代码共享
    Android提供了基于签名的权限机制,那么一个应用程序就可以为另一个以相同证书签名的应用程序公开自己的功能。

步骤

  1. 创建一个签名文件。签名文件是一个包含私钥的二进制文件。你必须保证你的签名文件放置在一个安全的地方。
  2. 创建一个私钥。密钥代表一个应用的标识。
  3. 在你项目的build.gradle中添加如下代码:
apply plugin: 'com.android.application'android {    compileSdkVersion 23    buildToolsVersion "23.0.2"    defaultConfig {        applicationId "com.mentornow.rxjavaexericse"        minSdkVersion 15        targetSdkVersion 23        versionCode 1        versionName "1.0"    }    signingConfigs {        release {            storeFile file("签名文件的位置");            storePassword "签名文件密码"            keyAlias "别名"            keyPassword "私钥密码"        }    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'            signingConfig signingConfigs.release        }        debug{            debuggable true        }    }}dependencies {    compile fileTree(dir: 'libs', include: ['*.jar'])    testCompile 'junit:junit:4.12'    compile 'com.android.support:appcompat-v7:23.2.0'    。。。。。。}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

在配置好build.gradle文件之后,我们就可以使用命令行或者是Android Studio来生成签名文件。(这里要说的是:使用Android Studio是对命令的封装。它们本质都是调用 grale的命令来执行打包过程。)

操作

使用Android Studio生成签名APK

在Android studio中。通过 Build –> Generate Signed Apk,进入到module选择对话框。选择一个Module。如下图:

选择Module对话框。 
点击 Next,进入到密钥选择界面。点击 Create new 按钮。如下图: 
从这里进入到新建密钥界面 
(注意:如果你是首次使用Android Studio来创建密钥,界面中的输入框都没有内容,因为我已经创建过一次,所以这里会有内容。)点击按钮之后,会进入到填写密钥信息界面。 
这里写图片描述 
填写完以后,会返回到上以页面,并且把信息会带过来,在上一张图片对应得对话框点击Next,进入到设置APK文件和导出哪种模式的APK的对话框。选择 realease,点击Finish按钮,就会在你设置的目录下面生成对应的APK。

使用命令行(MAC),生成签名APK。

在命令行,进入到项目(project,一定是project,而不是Module)对应的目录。先执行

chmod +x gradlew

改变gradle的权限。然后运行:

./gradlew assembleRelease 

会看到在名命令行会出现打包进度。截图如下: 
这里写图片描述


获取 应用签名字符串

在微信开放平台,申请移动应用的时候:

https://open.weixin.qq.com/cgi-bin/appcreate?t=manage/createMobile&type=app&lang=zh_CN&token=60682ddfbd9106b1c4b1f9d70f56c98e5f728905

下一步后需要填写应用签名

这可难倒了我了..签名 keystore文件可没有这么简单.

"开发者可以使用签名工具直接从安装当前应用的手机中获取"

查找文档,根据这个页面提供的一个工具 签名生成工具

https://open.weixin.qq.com/cgi-bin/readtemplate?t=resource/app_download_android_tmpl&lang=zh_CN

复制代码
Android资源下载
开发工具包
开发第三方应用所需要的库以及文件。点击下载
范例代码
包含了一个完整的范例工程。该范例的使用可以参阅Android平台上手指南:HelloWeixin@Android。点击下载

签名生成工具用于获取安装到手机的第三方应用签名的apk包。点击下载

 

复制代码

可以一个字符串,类似于:

 应用签名:049a9fde46bfc5087f3825582208b248

安装这个应用可以获取本手机已经安装的某个android软件,根据软件的包名,类似于: com.demo.AppX 来查找这个软件,以及获取这个软件的 应用签名。




0 0