Ⅰ、用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打包签名的更多相关文章

  1. react-native android打包签名release版apk遇到的问题

    在该项目包名时遇到的一个android打包问题,如下 改包名步骤 修改android/app/build.gradle里的applicationId,为新包名,如:com.xxx.yyy.myProj ...

  2. android 打包签名

    1.Eclipse工程中右键工程,弹出选项中选择 android工具 → 生成签名应用包 2.选择需要打包的android项目工程 3.如果已有私钥文件,选择私钥文件 输入密码,如果没有私钥文件见第6 ...

  3. Android 打包签名 从生成keystore到完成签名 -- 转

    首先,我们需要一个keystore,当然已经有了的话就不用这一步了:cmd下:进入到jdk的bin目录,这样的话,android.keystore文件就会生成在这个目录下,签名的时候我们需要这个文件C ...

  4. Android 打包签名 从生成keystore到完成签名

    进入生成工具:  工具帮助:   输入指令并获得结果:   转自: http://www.cppblog.com/fwxjj/archive/2010/05/24/116208.html 首先,我们需 ...

  5. ionic3应用的Android打包签名发布步骤

    版权声明:本文为博主原创文章,未经博主允许不得转载. 当我们的ionic应用开发结束之后,就要开始上线到应用市场,那么Android的发布步骤具体是怎么样的呢? 1)编译 运行命令行: ionic c ...

  6. android打包签名,从生成keystore到完成签名

    输入指令并获得结果:(对应自己的java安装目录) 首先,我们需要一个keystore,当然已经有了的话就不用这一步了:cmd下:进入到jdk的bin目录,这样的话,android.keystore文 ...

  7. android打包签名介绍

    Keytool 是一个有效的安全钥匙和证书的管理工具. Java 中的 keytool.exe (位于 JDK\Bin 目录下)可以用来创建数字证书,所有的数字证书是以一条一条(采用别名区别)的形式存 ...

  8. 【Android - 进阶】之代码打包签名与混淆

    代码打包签名 Android Studio为大家集成了代码打包混淆的功能,具体操作流程如下组图所示: 1.点击Android Studio上方工具栏的  Build -> Generate Si ...

  9. android app调试没问题,但打包签名的apk,运行时出现闪退怎么办?

    在用Eclipse编写Android app时,有时调试时没有问题,但一经打包签名,运行就出现闪退,还报错说找不到某某类.一开始以为是混淆导致的,后来我没有混淆竟然也还是这个问题.无奈只得网上寻找解决 ...

随机推荐

  1. 黄聪:WordPress: 使用 wp_insert_attachment 上传附件

    我们来研究一下如何在主题或者插件的开发中上传附件: 主要参考这个函数:https://codex.wordpress.org/Function_Reference/wp_insert_attachme ...

  2. sql server 2008 r2 报错

    无法启动服务,要求检查数据库和windows日志 查看发现报错 The SQL Server failed to initialize VIA support library [QLVipl.dll] ...

  3. java io流(字节流)复制文件

    java io流(字节流) 复制文件 //复制文件 //使用字节流 //复制文本文件用字符流,复制其它格式文件用字节流 import java.io.*; public class Index{ pu ...

  4. SQL Error (1130): Host '192.168.1.126' is not allowed to connect to this MySQL server

    通过HeidiSQL连接MYSQL数据库报错: SQL Error (1130): Host '192.168.1.126' is not allowed to connect to this MyS ...

  5. 2014年第五届蓝桥杯C/C++程序设计本科B组决赛

    1.年龄巧合(枚举) 2.出栈次序(推公式/Catalan数) 3.信号匹配(kmp) 4.生物芯片(完全平方数) 5.Log大侠(线段树) 6.殖民地 1.年龄巧合 小明和他的表弟一起去看电影,有人 ...

  6. Codeforces724D [字符串][乱搞][贪心]

    /* 不要低头,不要放弃,不要气馁,不要慌张 题意:给你一个区间长度n和一个字符串,要求在字符串中选择一些symbol使得字符串的任意长度为n的子区间都存在至少一个symbol. 任意选取symbol ...

  7. VBS数组

    定义一个数组: dim a(3).这里要注意在VBS里面数组不像其他的例如C,C#,JAVA等数组用[]作为数组标志.VBS采用的是().还需要注意的是,这里定义的数组包含a(0),a(1),a(2) ...

  8. python函数递归和生成器

    一.什么是递归 如果函数包含了对其自身的调用,该函数就是递归的.递归做为一种算法在程序设计语言中广泛应用,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的 ...

  9. maven仓库介绍《本地仓库、远程仓库》

    在Maven中,任何一个依赖.插件或者项目构建的输出,都可以称之为构件.Maven在某个统一的位置存储所有项目的共享的构件,这个统一的位置,我们就称之为仓库.(仓库就是存放依赖和插件的地方)任何的构件 ...

  10. WPF 自定义控件

    在实际工作中,面对不同的客户需求,需要让空间显示出不同的效果.当style已经不能足够满足客户需求时,就需要程序猿自己设计自定义控件了. 根据工作经历,LZ做了个关于自定义控件的小Demo,仅供参考. ...