apk签名发布及其原理
如果我们在ADT中开发完了一个android项目,如何将它打包呢?方法如下:
1、unsigned APP(无签名的APP)
最懒惰的方法,可以直接在项目的bin目录下直接将apk拷贝出来,就ok了。
2、signed APP(唯一签名的APP)
有必要说一下为什么要使用签名的APP。试想你开发了一个名为robot.apk的项目,将它发布到了android应用商店供用户下载使用。第二天,一个你不认识的开发人员也开发了一个名为robot.apk的项目,将它发布到了应用商店。此时问题就出现了,因为你们的APP名称相同,所以他的APP将你发布的APP给覆盖掉了,从今以后用户在应用商店下载的名为robot的APP都不是你开发的,而是他后开发的那个。
所谓签名,就是给APP加了一个唯一的密码。这样的情况下,第二天那个人发布他的robot.apk的时候,应用商店发现当前已经有一个同名的apk存在,就要求他输入这个唯一的签名,只有输对了这个密码,才会让他继续发布这个APP并覆盖掉之前你发布的APP,否则,他只有将他的APP改名称再发布。签名保证了你的APP的安全性!
签名操作其实很简单,在ADT下选中需要打包的项目,右键-》Android Tools-》Export Signed APP-》跳出Project checks界面,确认要打包的项目,直接next-》跳出keystore selection界面(keystore其实是一个文件,是用来存放你的签名的,但这个文件也是加密的,保护你的签名不被别人看到),选择create new keystore,选择存放目录并输入密码对keystore加密,点击next-》key creation界面,这个就是为你的apk添加签名的界面了!!!输入你的Alias,password,valid years,以及其他信息,next-》设置apk存放目录-》finish,完成签名!
请大家多多指正!共同进步!!!
apk签名发布及其原理的更多相关文章
- APK签名原理
网上已有多篇分析签名的类似文章,但是都有一个共同的问题,就是概念混乱,混乱的一塌糊涂. 在了解APK签名原理之前,首先澄清几个概念: 消息摘要 -Message Digest 简称摘要,请看英文翻译, ...
- Android 发布Apk签名
1.签名的意义 为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本 ...
- [转]Android APK签名原理及方法
准备知识:数据摘要 这个知识点很好理解,百度百科即可,其实他也是一种算法,就是对一个数据源进行一个算法之后得到一个摘要,也叫作数据指纹,不同的数据源,数据指纹肯定不一样,就和人一样. 消息摘要算法(M ...
- apk签名原理及实现
发布过Android应用的朋友们应该都知道,Android APK的发布是需要签名的.签名机制在Android应用和框架中有着十分重要的作用. 例如,Android系统禁止更新安装签名不一致的APK: ...
- eclipse将android项目生成apk并且给apk签名
转载:http://www.cnblogs.com/tianguook/archive/2012/09/27/2705724.html 生成apk最懒惰的方法是:只要你运行过android项目,到工作 ...
- 关于APK签名的一些东西
什么是APK 了解APK签名之前,首先要知道什么是apk文件:APK是AndroidPackage的缩写,即Android安装包(apk),APK文件其实就是zip格式的文件,只是后缀被改为了apk, ...
- 为App签名(为apk签名)
为App签名(为apk签名) 原文地址 这篇文章是Android开发人员的必备知识,是我特别为大家整理和总结的,不求完美,但是有用. 1.签名的意义 为了保证每个应用程序开发商合法ID,防止部分开放商 ...
- Android学习系列(1)--为App签名(为apk签名)
写博客是一种快乐,前提是你有所写,与人分享,是另一种快乐,前提是你有舞台展示,博客园就是这样的舞台.这篇文章是android开发人员的必备知识,是我特别为大家整理和总结的,不求完美,但是有用. 1.签 ...
- 【转】Android学习系列(1)--为App签名(为apk签名)
原文网址:http://www.cnblogs.com/qianxudetianxia/archive/2011/04/09/2010468.html 写博客是一种快乐,前提是你有所写,与人分享,是另 ...
随机推荐
- 调用链系列(3):如何从零开始捕获body和header
拓展阅读:调用链系列(1):解读UAVStack中的贪吃蛇 调用链系列(2):轻调用链实现 在Java中,HTTP协议的请求/响应模型是由Servlet规范+Servlet容器(如Tomcat)实现的 ...
- Java源码之阻塞队列
⑴背景 阻塞队列常用于生产者消费者场景,生产者是向队列里添加元素的线程,消费者是向队列里取出元素的线程.阻塞队列的角色是供生产者存放元素,消费者取出元素的容器. ⑵阻塞队列 阻塞队列是一个支持两个附加 ...
- 帝国CMS(EmpireCMS) v7.5 后台XSS漏洞分析
帝国CMS(EmpireCMS) v7.5 后台XSS漏洞分析 一.漏洞描述 该漏洞是由于代码只使用htmlspecialchars进行实体编码过滤,而且参数用的是ENT_QUOTES(编码双引号和单 ...
- MySQL数据库的安装和配置
MySQL数据库介绍 什么是数据库DB? DB的全称是database,即数据库的意思.数据库实际上就是一个文件集合,是一个存储数据的仓库,数据库是按照特定的格式把数据存储起来,用户可以对存储的数据进 ...
- java IO流 之 FIle类基础
package IO; import java.io.File;import java.io.IOException; public class FileIO { /** * 构建及获取文件名信息 * ...
- DOM的选择器
这几天学习了DOM的选择器,现在来进行一下总结分类. 1.DOM里的元素节点选择器 元素节点选择器包括id,class,name,tagname,高级,关系. 1.1 id选择器 id:返回的是单个对 ...
- IDEA-Maven项目的jdk版本设置
在 Intellij IDEA 中,我们需要设置 Settings 中的 Java Compiler 和 Project Structure 中的 Language Level 中的 jdk 版本为自 ...
- SqlServer关于“无法删除数据库 "XXXX",因为该数据库当前正在使用”问题的解决方案
引言 在项目中,通过使用SQL语句“DROP DATABASE [数据库名]”删除数据时,一直出现“无法删除数据库 "XXXX",因为该数据库当前正在使用”的错误信息,经测试在Sq ...
- Python 命令行之旅:使用 argparse 实现 git 命令
作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...
- leetcode 刷题记录(java)-持续更新
最新更新时间 11:22:29 8. String to Integer (atoi) public static int myAtoi(String str) { // 1字符串非空判断 " ...