在Android Studio中,能够使用Gradle进行打包时自己主动签名。

事实上Android Studio默认会给调试应用加上Debug签名,但有时候调一些第三方SDK时。须要正式签名才干调起来。所以接下来分享一下使用Gradle自己主动签名的方法。

一、创建签名文件

打开AS,选择Build->Generate Signed APK,选择要打包的项目,点击Next。再点击Create new...创建签名文件

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" height="200" alt="">

填写签名文件响应信息。例如以下所看到的。Password、Key-Alias、Key-Password这三个值须要记住,然后点击OK,完毕创建。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" height="300" alt="">

完毕之后,在相应路径生成一个jks签名文件。假设选择手动再进行打包,就能够选择该签名文件,然后相应填入password与别名,进行签名,也能够。

二、配置Gradle自己主动打包

拷贝签名文件到主project根文件夹,打开主project的build.gradle文件,在android节点下,添加下面内容:

signingConfigs {
release {
storeFile file('keystore.jks')
storePassword '123456'
keyAlias 'yyh'
keyPassword '123456'
}
} buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
signingConfig signingConfigs.release
} debug {
signingConfig signingConfigs.release
}
}

storeFile file:签名文件,假设放在其它路径,须要相应改动

storePassword:password(刚才填的第一个password)

keyAlias:别名

keyPassword:别名password

然后又一次build一下project,展开右边栏Gradle选项卡,例如以下所看到的:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" height="300" alt="">

assembleRelease,即为正式签名。

双击assembleRelease,则会開始运行命令:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" height="200" alt="" style="font-family:SimSun">

运行完成能够看到BUILD SUCCESSFUL,说明正式签名打包成功了。展开project的build目录。可发现有app-release.apk,即为正式版本号。

下次直接run起来的时候。就带正式签名了。这可比手动签名省事多啦~~

当然,为了提高安全性,我们还能够把那四个属性作为变量配置在主project的gradle.propreties,然后在build.gradle引用变量就能够了。

例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" height="200" alt="">

这样也能起到相同的效果。

三、应用程序签名的意义

(1)保障开发人员的合法权益

在我们相应用程序进行打包签名后,即表示此应用程序是签名人或机构所开发的,对此应用程序具有全部权。

(2)预防应用程序替换

应用程序签名能够防止部分人通过使用同样的Package Name来混淆替换已经安装的程序,从而出现一些恶意篡改。

APK假设使用一个key签名,公布时还有一个key签名的文件将无法安装或覆盖老的版本号。这样能够防止你已安装的应用被恶意的第三方覆盖或替换掉。

实际上就是一种标识。

(3)保证应用程序版本号的一致性

一般应用程序都会有更新,即版本号的升级。假设应用程序的签名不一致,是无法进行更新替代的。所以应用程序的签名是保证当前应用程序顺利进行更新安装的前提。

(4)能够通过权限(permission)的方式在多个程序间共享数据和代码

Android提供了基于数字证书的权限赋予机制。应用程序能够和其它的程序共享概功能或者数据给那那些与自己拥有同样数字证书的程序。假设某个权限(permission)的protectionLevel是signature,则这个权限就仅仅能授予那些跟该权限所在的包拥有同一个数字证书的程序。

还有一方面。Android系统同意拥有同一个数字签名的程序执行在一个进程中,Android程序会将他们视为同一个程序。所以开发人员能够将自己的程序分模块开发。而用户仅仅须要在须要的时候下载适当的模块。

Android Studio 使用正式签名进行调试的更多相关文章

  1. 如何用Android studio生成正式签名的APK文件

    必须签名之后才可以发布到app商店中. 平时的调试的app都有默认的签名. 下面是生成带签名的APK的步骤: 1. Build 选择 Generate Signed APK 2. 弹出框,第一次选择C ...

  2. Mac系统下查看Android studio默认debug签名与正式签名的SHA1值

    https://blog.csdn.net/weixin_32364917/article/details/80095063 获取默认debug签名SHA1值方法,也可以直接打开系统的终端 输入: k ...

  3. Android Studio入门(安装-->开发调试)

    写在前面的话:本文来源:http://blog.csdn.net/yanbober/article/details/45306483 目标:Android Studio新手–>下载安装配置–&g ...

  4. [Android Studio 权威教程]断点调试和高级调试

    好了开始写一个简单的调试程序,我们先来一个for循环 ? 1 2 3 4 5 6 7 8 <code class="language-java hljs ">for ( ...

  5. Android Studio用release模式进行调试

    有时候调试SDK必须要用release版本,但是每次打包混淆太麻烦,希望能在IDE中直接跑出release版本的应用,简单来说就是在debug模式下产生release版本的app,这时候该怎么做呢?当 ...

  6. Android studio在真机上进行调试

    1.在Android Studio中,把app的默认启动目标改为USB device,点击[app]→[app configuration],在[Target Device]选择[USB device ...

  7. android studio gradle自动签名构建实现

    我为自己代言: 一.在android studio中生成签名文件. 1.在android studio 选中项目,在菜单栏中选择Build. 2.点击Generate Signed APK选项卡. 3 ...

  8. Android Studio如何用真机调试

    1,在真机中设置USB调试模式打开,具体:“设置”->“应用程序”->“开发”->“USB调试”. 2,安装安卓的USB驱动,如果按照不好,那么去下载一个豌豆荚,它会帮你正确安装你的 ...

  9. APK在Android Studio下如何签名

    apk签名的意义 Android系统要求每一个Android应用程序必须要经过数字签名才能够安装到系统中,也就是说如果一个Android应用程序没有经过数字签名,是没有办法安装到系统中的! Andro ...

随机推荐

  1. 【编程工具】Sublime Text3快捷键配置

    我们在使用编译软件时,总是喜欢使用快捷键来方便我们的操作,但有些编译软件不支持快捷键的修改和设置,为了能够更加方便的使用 Sublime Text3,这里我介绍几个 Sublime Text3 设置快 ...

  2. conda管理包

    清理 conda clean --lock --tarball --package (安装包) 安装或更新包 conda install numpy=1.9.3 conda update numpy= ...

  3. window.location.href跳转问题

    任务中遇到这样一个问题,用window.location.href跳转一到个网址,但是每次都出错,显示网址前面加上了文件所在文件夹的路径 示例如下: window.location.href=&quo ...

  4. poj 2115 二元一次不定方程

    C Looooops Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14765   Accepted: 3719 Descr ...

  5. 扰动法--*BZOJ3157: 国王奇遇记

    求$\sum_{i=1}^ni^mm^i$.$n \leq 1e9,m \leq 200$. 其实我也不知道这东西为啥叫“扰动法”,大概是在黑暗的边缘试探?就是那种,人家再多一点就被您看破了,然后您就 ...

  6. python3里的Urllib库

    首先Urllib是python内置的HTTP请求库. 包括以下模块: urllib.request 请求模块: urllib.error 异常处理模块: urllib.parse url解析模块: u ...

  7. 搭建Redis环境以及所遇问题(CentOS7+Redis 3.2.8)

    一.安装步骤 1. 首先需要安装gcc,把下载好的redis-3.2.8-rc2.tar.gz 放到/usr/local文件夹下 2. 进行解压 tar -zxvf redis-3.2.8-rc2.t ...

  8. AC日记——砝码称重 洛谷 P2347

    题目描述 设有1g.2g.3g.5g.10g.20g的砝码各若干枚(其总重<=1000), 输入输出格式 输入格式: 输入方式:a1 a2 a3 a4 a5 a6 (表示1g砝码有a1个,2g砝 ...

  9. Ubuntu 16.04安装JAD反编译工具(Java)

    JAD反编译工具有个好处,就是字节码和源代码一起输出. 官网:https://varaneckas.com/jad/ 安装步骤: 1.下载: 离线版本:(链接: https://pan.baidu.c ...

  10. 构建可读性更高的 ASP.NET Core 路由

    原文:构建可读性更高的 ASP.NET Core 路由 一.前言 不知你在平时上网时有没有注意到,绝大多数网站的 URL 地址都是小写的英文字母,而我们使用 .NET/.NET Core MVC 开发 ...