文档章节

Android Studio——Apk签名及配置

shzwork
 shzwork
发布于 07/05 23:44
字数 1303
阅读 1
收藏 0

AndroidStudio Apk签名及配置
 

一、简介:
AndroidManifest.xml文件中的 package可以认为是一个应用的唯一标识id ,在建立项目时输入的应用包名就是AndroidManifest.xml文件中的 package的值,因此应该取到和应用相关名字。这时候就涉及到了别人开发应用程序的包名问题,自己的能保证包名各不相同,但是别人如果和自己的包名一致了,客户在安装apk时就会出现问题,于是就产生了apk签名。

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

二、签名的意义
为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本的一致性(如自动更新不会因为版本不一致而无法安装)。

三、apk签名好处
应用程序升级:如果你希望用户无缝升级到新的版本,那么你必须用同一个证书进行签名。这是由于只有以同一个证书签名,系统才会允许安装升级的应用程序。如果你采用了不同的证书,那么系统会要求你的应用程序采用不同的包名称,在这种情况下相当于安装了一个全新的应用程序。如果想升级应用程序,签名证书要相同,包名称要相同

应用程序模块化:Android系统可以允许同一个证书签名的多个应用程序在一个进程里运行,系统实际把他们作为一个单个的应用程序,此时就可以把我们的应用程序以模块的方式进行部署,而用户可以独立的升级其中的一个模块。

代码或者数据共享:Android提供了基于签名的权限机制,那么一个应用程序就可以为另一个以相同证书签名的应用程序公开自己的功能。以同一个证书对多个应用程序进行签名,利用基于签名的权限检查,你就可以在应用程序间以安全的方式共享代码和数据了。

四、具体步骤:
AndroidStudio可以同过以下方式进行签名

如果没有签名文件,则需要创建一个新的签名。点击Create new…  例:

填写完就会出现如下界面

 

 

这时候就会生成 签名后的APK 与 签名文件。

五、配置自动签名
当我们需要升级APK版本的时候,我们需要再次对APK文件进行签名,才能上传到应用市场。每次签名都需要重新输入密码与等待编译时间,这看起来比较麻烦。所以我们可以通过配置build.gradle让其自动生成签名后的APK。

具体操作:

点击OK,系统编译后,会出现如下代码

 

配置编译方式

编译后 会在build.gradle下自动生成

这时候你要运行的时候需要选择发布版运行

然后点击编译就行了 

当然你如果想也给debug版配置签名信息,这时候你需要在build.gradle下配置如下信息:

这样也会自动生成签名后的APK文件。

六、自动签名安全性
如果你的项目是开源的,而你的签名信息都写在build.gradle,容易被人获取:

这时候你需要把这些签名信息写到 local.properties

而你需要在.gitignore配置加入如下信息。这样你的 local.properties就不会提交到开源项目中。

 

更改build.gradle的签名信息

这样就配置完成。

七、获取SHA1和MD5值
(1)第一种方式

点击androidStudio右边Gradle

双击signingReport

(2)第二种方式

 

注:签名配置就写到这,懂得不多。容易忘记,今天抽空做个笔记。资料查的并不多,可能有许多不足或错误,如果大伙发现还请告知。后续发现将继续填坑。
--------------------- 
作者:斌林诚上 
来源:CSDN 
原文:https://blog.csdn.net/cs_lwb/article/details/81386595 
版权声明:本文为博主原创文章,转载请附上博文链接!

本文转载自:https://blog.csdn.net/cs_lwb/article/details/81386595

shzwork
粉丝 15
博文 817
码字总数 10675
作品 0
厦门
私信 提问
如何获得更小的应用文件尺寸?来了解下 Android App Bundle

对于手机用户来说,“存储空间不足” 警告有时会显得非常烦人。时至今日,手机存储容量仍然是有限的。虽然存储容量多年来一直在增长,但是填充在我们手机里的东西:音乐、应用、游戏、照片等...

Android_开发者
2018/10/15
0
0
[译] 如何在 Google Play 应用商店中发布 PWA

原文地址:How to Get a Progressive Web App into the Google Play Store 原文作者:Mateusz Rybczonek 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m… 译者:Baddyo 校对...

👊Badd
05/30
0
0
Android Gradle 常用使用场景实现方式的总结

Gradle 作为一款灵活多变的构建插件,与 Android Studio 的结合,能够解决过去使用 Eclipse 开发 App 时所遇到的诸多问题。同时,基于 Groove 这样一款 DSL 语言的脚本特性,记住各种语法显然...

亦枫
2018/10/29
0
0
Android studio 申请签名,设置签名key位置 查看 sha1

申请key Android studio 生成签名证书,以及使用签名打包APK Build-->Generate Signed APK...-->--> 选择Create new... -->--> 所有的pwd均忽略,无非就key文件的加密以及项目key key store......

末日__
2015/02/03
896
0
C#-Xamarin的Android项目开发(三)——发布、部署、打包

前言 部署,通常的情况下,它其实也是项目开发的一个难点。 为什么这么说呢?因为,它不是代码开发,所以很多开发者本能的拒绝学习它。 并且一个项目配置好一次以后,部署的步骤和部署的人通...

kiba518
03/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Archiva 不小心删掉了管理员权限怎么办

Archiva 的界面和 UI 比较容易出问题。 在添加用户和为用户进行权限修改的时候,不小心连 admin 这个用户的权限都删掉了。 这个时候应该如何恢复 admin 这个用户的权限? 这个时候你可以尝试...

honeymoose
31分钟前
4
0
Java8新特性之空指针异常的克星Optional类

Java8新特性系列我们已经介绍了Stream、Lambda表达式、DateTime日期时间处理,最后以“NullPointerException” 的克星Optional类的讲解来收尾。 背景 作为开发人员每天与NullPointerExceptio...

程序新视界
43分钟前
4
0
OSChina 周四乱弹 —— 福布斯终身秃头奖

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享如是我闻的单曲《地藏经上卷》: 如是我闻#今日歌曲推荐# 《地藏经上卷》- 如是我闻 手机党少年们想听歌,请使劲儿戳(这里) ...

小小编辑
47分钟前
159
8
Mybatis Plus删除

/** @author beth @data 2019-10-17 00:30 */ @RunWith(SpringRunner.class) @SpringBootTest public class DeleteTest { @Autowired private UserInfoMapper userInfoMapper; /** 根据id删除......

一个yuanbeth
今天
6
0
总结

一、设计模式 简单工厂:一个简单而且比较杂的工厂,可以创建任何对象给你 复杂工厂:先创建一种基础类型的工厂接口,然后各自集成实现这个接口,但是每个工厂都是这个基础类的扩展分类,spr...

BobwithB
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部