Android打包签名
Ⅰ、用jdk和sdk自带工具打包签名
a.把jdk下的keytool.exe和jarsigner.exe所在目录(两个工具在同一目录) 添加到环境变量path
1)新建环境变量package,package的值为C:\Program Files\Java\jdk1.8.0_25\bin
2)将package添加到path中,在path值最后添加%package%;(若原先末尾没有;,则添加“;%package%;”)
b.通过keytool.exe 工具来创建keystore库.
1)cmd下输入命令
keytool -genkey -alias zzj -keyalg RSA -validity 3000 -keystore D:\fans\zhuzhoujia.keystore
-genkey:生成数字证书
-alias:数字证书别名,这里指定了别名zzj
-keyalg:指定生成数字证书的算法,这里指定了RSA算法
-validity:数字证书的有效期,这里指定了3000天
-keystore:指定数字证书的存储路径和数字证书的名称,这里指定了D:\fans\zhuzhoujia.keystore

c.从eclipse或Android Studio中导出一个未签名的apk
1)以eclipse为例,在工程上右键,Adnroid Tool -> Export Unsigned Application Package,选定保存路径后保存
d.使用jarsigner工具对未签名的APK安装包进行签名
1)cmd下输入命令
jarsigner -verbose -keystore D:\fans\zhuzhoujia.keystore -signedjar D:\fans\Zhuzhoujia+.apk D:\fans\Zhuzhoujia.apk zzj
-verbose:指定生成详细输出
-keystore:数字证书的完整路径
-signedjar:三个参数,分别为签名后的apk存储路径及apk名称、未签名的apk所在路径及apk名称、数字证书的别名
e.把sdk下的zipalign.exe所在目录添加到环境变量path(sdk\build-tools下有多个不同版本号文件夹,每个文件夹下都有一个zipalign.exe,随便用哪个都可以)
1)新建环境变量sdk_zipalign,我这里将D:\eclipse_with_adt\eclipse\sdk\build-tools\20.0.0作为sdk_zipalign的值
2)将sdk_zipalign增加到path,在path值最后添加%sdk_zipalign%;(若原先末尾没有;,则添加“;%sdk_zipalign%;”)
f.使用zipalign.exe优化签名后的apk安装包
1)cmd下输入命令
zipalign -f -v 4 D:\fans\Zhuzhoujia+.apk D:\fans\株洲+.apk
-f :指定强制覆盖已有文件
-v 指定生成详细输出
4:指定档案整理基于的字节数
D:\fans\Zhuzhoujia+.apk:这个是优化前的apk所在路径及名称
D:\fans\株洲+.apk:这个是优化后的apk保存路径及名称
Ⅱ、使用eclipse打包签名
a.生成密钥库及用生成的密钥库给完成签名
1)在工程上右键,Export -> Android -> Export Android Application -> Next -> Next -> Create new keystore
2)确定密钥库存储位置及文件名,输入密码,finish
3)填写密钥库信息,finish
4)确定签名后的apk的输入路径及apk文件名,finish
b.若已有密钥库,可直接签名
1)在工程上右键,Export -> Android -> Export Android Application -> Next -> Next -> Use existing keystore
2)填写密钥库的密码
3)填写密码
4)定签名后的apk的输入路径及apk文件名,finish
c.使用zipalign.exe优化签名后的apk安装包,方法同上。
Ⅲ、使用Android Studio打包签名
a.生成密钥库并使用密钥库打包签名
1)菜单栏,Build -> Generate Signed APK -> Create new… 填写密钥库信息,输入密码,-> Next
2)选择输出路径,finish
b.使用zipalign.exe优化签名后的apk安装包,方法同上。
Android打包签名的更多相关文章
- react-native android打包签名release版apk遇到的问题
在该项目包名时遇到的一个android打包问题,如下 改包名步骤 修改android/app/build.gradle里的applicationId,为新包名,如:com.xxx.yyy.myProj ...
- android 打包签名
1.Eclipse工程中右键工程,弹出选项中选择 android工具 → 生成签名应用包 2.选择需要打包的android项目工程 3.如果已有私钥文件,选择私钥文件 输入密码,如果没有私钥文件见第6 ...
- Android 打包签名 从生成keystore到完成签名 -- 转
首先,我们需要一个keystore,当然已经有了的话就不用这一步了:cmd下:进入到jdk的bin目录,这样的话,android.keystore文件就会生成在这个目录下,签名的时候我们需要这个文件C ...
- Android 打包签名 从生成keystore到完成签名
进入生成工具: 工具帮助: 输入指令并获得结果: 转自: http://www.cppblog.com/fwxjj/archive/2010/05/24/116208.html 首先,我们需 ...
- ionic3应用的Android打包签名发布步骤
版权声明:本文为博主原创文章,未经博主允许不得转载. 当我们的ionic应用开发结束之后,就要开始上线到应用市场,那么Android的发布步骤具体是怎么样的呢? 1)编译 运行命令行: ionic c ...
- android打包签名,从生成keystore到完成签名
输入指令并获得结果:(对应自己的java安装目录) 首先,我们需要一个keystore,当然已经有了的话就不用这一步了:cmd下:进入到jdk的bin目录,这样的话,android.keystore文 ...
- android打包签名介绍
Keytool 是一个有效的安全钥匙和证书的管理工具. Java 中的 keytool.exe (位于 JDK\Bin 目录下)可以用来创建数字证书,所有的数字证书是以一条一条(采用别名区别)的形式存 ...
- 【Android - 进阶】之代码打包签名与混淆
代码打包签名 Android Studio为大家集成了代码打包混淆的功能,具体操作流程如下组图所示: 1.点击Android Studio上方工具栏的 Build -> Generate Si ...
- android app调试没问题,但打包签名的apk,运行时出现闪退怎么办?
在用Eclipse编写Android app时,有时调试时没有问题,但一经打包签名,运行就出现闪退,还报错说找不到某某类.一开始以为是混淆导致的,后来我没有混淆竟然也还是这个问题.无奈只得网上寻找解决 ...
随机推荐
- 【转载】芯片级拆解51、AVR、MSP430、凌阳61、PIC,5种单片机,多张显微照片
先秀一张解剖照,放大裁剪,小米1S微距拍摄,800万像素摄像头很给力!今天等待被拆的是5个单片机芯片:(1)凌阳16位单片机SPCE061A ,这是我接触的第一个单片机,最高主频49MHz,32KB的 ...
- Intellij Idea系列之JavaSE项目的创建(一)
Intellij Idea系列之JavaSE项目的创建(一) 一.Intellij Idea于 Intellij Idea是捷克的Jetbrain公司的一款优秀的针对Java程序员的IDE,其自从问世 ...
- [jQuery]html(),text(),val()方法的区别
1.HTML html():取得第一个匹配元素的html内容.这个函数不能用于XML文档.但可以用于XHTML文档 html(val):设置每一个匹配元素的html内容.这个函数不能用于XML文档.但 ...
- ADF_Database Develop系列1_设计数据库表之Diagram/Tables/View/Sequence
2013-05-01 Created By BaoXinjian
- 43. Merge Sorted Array && LRU Cache
Merge Sorted Array OJ: https://oj.leetcode.com/problems/merge-sorted-array/ Given two sorted integer ...
- The default for KeyValuePair
if (getResult.Equals(new KeyValuePair<T,U>())) or this: if (getResult.Equals(default(KeyValueP ...
- [PAT]数列求和(20)
#include "stdio.h" #include "malloc.h" #include "math.h" void calc(int ...
- 创建线程方式-GCD
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- NoSQL数据库探讨之一 - 为什么要用非关系数据库?
随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速.而传统的关系数据库在应付 web2.0网站,特别是超大规模和高并发的SNS类型的web2 ...
- IO同步、异步与阻塞、非阻塞
一.同步与异步同步/异步, 它们是消息的通知机制 1. 概念解释A. 同步所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回. 按照这个定义,其实绝大多数函数都是同步调用(例如si ...