Android开发之给应用签名打包

Android开发之给应用签名打包

什么是签名打包?

在Android 系统中,所有安装到系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个 permission的protectionLevel为signature,那么就只有那些跟该permission所在的程序拥有同一个数字证书的应 用程序才能取得该权限。Android使用Java的数字证书相关的机制来 给apk加盖数字证书。

Android系统要求每一个安装进系 统的应用程序都是经过数字证书签名的,数字证书的私钥则保存在程序开发者的手中。Android将数字证书用来标识应用程序的作者和在应用程序之间建立信 任关系,不是用来决定最终用户可以安装哪些应用程序。这个数字证书并不需要权威的数字证书签名机构认证,它只是用来让应用程序包自我认证的。

Note:看官朋友们可能会有疑问了?我们平时写的一些小程序,安装在模拟器上或者在真机上,也没有签名啊!咋能够安装上的呢?

其实是我们的开发工具为我们的应用默认生成了一个debug.keystore

  • 默认的生成路径:C:\Users\你的用户名\.android
  • key的密码:android

我们不妨来打开这个debug.keystore,打开cmd,进入该文件的目录下,尝试以下步骤:

1.输入命令:keytool -list -keystore debug.keystore

2.输入密码:android

为什么要给应用签名打包?

假设说,当我们手机上已经安装一个app,当我们再次安装一个app,并且这个app的包名和之前安装的app包名又恰好相同的话,后安装的app便会将前一个app覆盖掉。

这种情况就非常危险了!

签名原因:为了防止别人的应用将自己的应用程序覆盖,给应用签名能够很好的解决这一问题。

形象的说:就是给你的app装了一把锁,而这把锁的钥匙只有你一个人有。

如何给应用程序打包签名?

首次打包签名

1.在你的项目上右键->Android Tools->Export Signed Application Package

2.next:

注意:要妥善保管好keystore文件,并且记住密码

3.相关参数

注意:红框中都是必选项,其他可不必填写

4.next

5.点击finish,我们看到控制台打印如下:

并且,在我们选择的路径下,打包签名的apk和keystore文件成功生成:

应用升级覆盖

当我们对应用再次升级时,这个时候我们无需再次生成keystore文件,引用之前已生成好的keystore文件即可:

1.在你的项目上右键->Android Tools->Export Signed Application Package

2.next:

再次输入密码;

4.生成版本2apk,finish:

5.可以看到,apk文件成功生成,这样就可以覆盖掉之前的应用了

总结

Android系统中的每个应用程序都是经过数字签名的,数字证书的私钥则保存在应用所有人手中,Android将数字证书用来标识应用程序的作者和在应用程序之间建立信任关系,也就是不允许别人随意覆盖他人应用啦!

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-05 22:33:07

Android开发之给应用签名打包的相关文章

Android从零单排之签名打包

转载请注明出处:http://blog.csdn.net/crazy1235/article/details/46289803 签名介绍 什么是签名? 在现实生活中,签名就相当与合同上的签字和盖章.只有签名之后,才具有一定的效力.如果没有签名,"合同"就没有对象,也就没有法律效力了. 为什么要签名? Android系统要求每一个应用程序必须经过数字签名才能安装到系统中,也就是说没有经过签名的app,是没有办法安装到你的android机器上的. Android通过数字签名来标志应用程序和

Android Studio系列-签名打包

本篇博客纪录使用Android Studio对项目进行签名打包,跟Eclipse大同小异,读者朋友注意其中到差别. 第一步 创建签名文件 第二步 填写签名参数 第三步 选择构建类型 第四步 查看生成第apk文件

【React Native开发】React Native进行签名打包成Apk

转载请标明出处: http://blog.csdn.net/developer_jiangqq/article/details/50525976 本文出自:[江清清的博客] (一)前言 [好消息]个人网站已经上线运行,后面博客以及技术干货等精彩文章会同步更新,请大家关注收藏:http://www.lcode.org 前几节课程我们对于React Native的一些基础配置,开发工具以及调试,Android项目移植做了相关讲解,今天一起来学习一下另外一个比较重要的知识点,就是React Nativ

Android开发把项目打包成apk-(转)

做完一个Android项目之后,如何才能把项目发布到Internet上供别人使用呢?我们需要将自己的程序打包成Android安装包文件--APK(Android Package),其后缀名为".apk".将APK文件直接上传到Android模拟器或Android手机中执行即可进行安装.Android系统要求具有其开发者签名的私人密钥的应用程序才能够被安装.生成数字签名以及打包项目成APK都可以采用命令行的方式,但是通过Eclipse中的向导我们会更加方便地完成整个流程,打包发布的过程非

Android Studio签名打包应用

转载请注明来源: http://blog.csdn.net/kjunchen/article/details/50812391 可直接看看以下的Android Studio中签名应用 Android要求全部的应用在被安装之前进行数字签名认证.Android通过这个数字证书确定应用的作者,然这个证书并不须要特定机构的签字.Android一般使用自己签名的证书,开发人员自己持有证书的密钥. 你能够在调试或公布模式下相应用签名,普通情况下,在调试模式下,Android SDK会为应用自己主动生成一个签

Android开发必备技能——修改debug签名

前言 从事Android开发的小伙伴们,想必都会遇到这样的问题.当你的应用中需要集成百度地图.极光推送等第三方平台时,会去申请一个叫做AppKey的东西.与此同时,你得提供下应用签名信息的MD5或SHA1.然后就悲催的发现,只有用指定的签名文件打包时,该功能才能正常使用.如果你用的是开发工具的debug keystore签名信息,直接run一下就好,如果你用的是APP发布时候的keystore,每次测试时都得export 一个apk.心中一万只草泥马在奔腾的有木有? 楼主之前的小伎俩就是,去申请

Android开发——利用productFlavors实现一套代码打包多版本

一.需求背景 实际项目开发过程中,经常会遇到这样的场景:一个项目要根据需要打包成多个存在差异的版本,比如对外版本.对内版本,或者开发版本.测试版本.线上版本等等--那么如何通过维护一套代码的前提下实现打包多版本的需求呢?在Android Studio中我们可以使用productFlavors来实现这样的需求. 二.创建差异化版本目录结构 根据版本的差异化在src目录下创建对应的java文件夹,如下图: 创建external与internal版本,将版本差异化的代码文件放在这2个目录对应的文件夹下

Android开发时包名、签名、渠道和版本号的易坑点(转)

本文中总结一下 Android 开发中容易被忽视的一些注意事项吧: 一.谨慎选择包名 包名 (Package Name) 就相当于一款应用在户口本上登记的名字,是系统用来区分不同应用的字段.重复的包名会被认为是同一款应用,不能同时安装在一个系统里.一般来说,包名建议使用域名反序.比如豌豆荚的网站域名是 www.wandoujia.com,那么豌豆荚的一系列 Android 应用的包名就是 com.wandoujia.***.这种约定俗成的办法可以最大程度地避免“撞名”的事故. 案例一 某个手机

Android开发把项目打包成apk,安卓到手机上,或者提交到app应用商店

#1.用Eclipse的话导出app其实还是很容易的.大家看我的步骤.有图有真相哦 选择一个项目 创建一个新的,位置随便,下面是密码 这里都是一些名字,地区,组织,国家.看你们自己的了 选择你要存放apk的位置 打完收工 Android开发把项目打包成apk,安卓到手机上,或者提交到app应用商店,布布扣,bubuko.com