官方文档:https://developer.Android.com/tools/publishing/app-signing.html

1. 默认为debug mode,使用的签名文件在: $HOME/.android/debug.keystore

2. Release Mode 签名:

build.gradle:

 android {
signingConfigs {
releaseConfig {
keyAlias 'stone'
keyPassword 'mypwd'
storeFile file('/Users/stone/Documents/project_AS/myapplication/stone.keystore')
storePassword 'mypwd'
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
} }

signingConfigs 即签名配置。 配置名releaseConfig{ //配置内容 }

在buildTypes中指定release时的signingConfigs对应的配置名

执行gradle 命令, $ gradle assembleRelease

编译并发布。 在build/outputs/apk/ 下能看到未签名的apk 和 已经签名的apk

如果未用签名文件,使用debug mode的debug签名。那就会生成一个debug签名的apk

3. 签名密码写在gradle中不安全:

signingConfigs { //gradle assembleRelease
myConfig {
storeFile file("stone.keystore")
storePassword System.console().readLine("\nKeystore password: ")
keyAlias "stone"
keyPassword System.console().readLine("\nKey password: ")
}
}

这样在命令 执行 命令时,就会被要求输入密码

4. 使用Android Studio 签名打包

菜单 Build > Generate Signed APK

5. 使用Android Studio 自动签名打包

a. 打开project structure (cmd+;)

b. 选中需要构建的moudle,打开Signing,添加config

执行完成后,会在build.gradle中自动加上 signingConfigs{ config {...} }的信息

c. 打开build types > release

在signing Config中选择定义的配置

zip align enabled 默认为true, 用于启用优化Apk的操作

d. $ gradle build

会在build/outputs/apk/ 目录下输出 在build types中定义的 编译类型

如:

myapplication-debug-unaligned.apk
  myapplication-debug.apk
  myapplication-release-unaligned.apk
  myapplication-release-unsigned.apk
  myapplication-release.apk

6. 使用Android SDK 和 JDK 的命令 签名打包APK

创建签名
  keytool -genkey -v -keystore stone.keystore -alias stone -keyalg RSA -keysize 2048-validity 10000  生成签名文件
 为apk签名
  jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore stone.keystore unsigned.apk stone 不生成新文件
 检测apk是否签名
  jarsigner  -verbose -certs -verify signed.apk 
 优化apk
  zipalign -f -v 4 signed_unaligned.apk signed_aligned.apk

转自:http://blog.csdn.net/jjwwmlp456/article/details/44942109#comments

Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包的更多相关文章

  1. android 命令行安装apk

    有两种方式可以在android模拟器或真机上使用命令行安装apk 一种是使用adb install命令,网上通常是这种方式 另一种是通过android提供的命令,pm install. 需要先进入an ...

  2. [Android] 基于 Linux 命令行构建 Android 应用(四):命令行构建

    谷歌提供的 Android SDK 支持 Ant 自动构建[1],你可以使用调试和发行两种模式进行构建,两种模式不同之处在于调试模式 Ant 会调用内置的调试密钥,而发行模式调用你提供的私钥. 首先安 ...

  3. [Android] 基于 Linux 命令行构建 Android 应用(二):命令行管理项目

    创建 Android 项目 在命令行创建 Android 项目需要用到 android 工具(该工具由 Android SDK 提供,位于 <sdk>/tools/ 目录下.).它能自动生 ...

  4. Android到您的计算机使用命令行屏幕捕获和出口

    声明:本博客为原创博客,未经同意.不得转载! 原文链接为http://blog.csdn.net/bettarwang/article/details/27819525 大多数人最经常使用的截屏方法可 ...

  5. Android开发中Ant命令编译和APK签名的一些心得

    本文章麦子学院跟小伙伴们详细的分享一下关于Android Ant命令行编译和APK签名详解一些实现方法,这是一个朋友在自己做安卓开发时写的,希望对大家会有所帮助呀. 最近在做Android开发时,需要 ...

  6. 【独立开发人员er Cocos2d-x实战 011】Cocos2dx 3.x命令行生成APK具体解释

    Cocos2d-x 3.6项目打包生成apk安卓应用文件,搭建安卓环境的步骤有点繁琐.但搭建一次之后,以后就会很快捷! 过程例如以下: 一.下载安卓环境:搭建Android环境须要用到Android ...

  7. 让browserify接收命令行参数,在打包时parse yml配置文件

    功能需求: 1用browserify把各种js打包成浏览器端的1个bundle.js,含有yml配置文件 约束: 1 yml配置文件不在当前工程里(现在还不知道放哪里,以后也会变),希望在打包时,用命 ...

  8. java命令行编译运行、打包jar

    过程:java文件→class文件→exe执行文件 --------------------------------------------- 一.编译:从.java生成.class   (1)ecl ...

  9. 怎么用命令行把apk安装到移动设备上?

    1.移动设备通过USB连接电脑 2.执行命令adb install [apk文件的路径]

随机推荐

  1. SpringMVC conflicts with existing, non-compatible bean definition of same name and class 的解决办法

    问题起因 最近,项目组的里的同事遇到一个问题,他自己负责的模块,SpringMVC的Controller与其他模块的Controller 类名重名了,导致整个工程都起不来了. 后台报的错误是这样的: ...

  2. Android 开发环境搭建9传送帖)

    ---恢复内容开始--- 首先,得安装软件,感觉我所找到的一些课本上写的都比较简略,走过一些弯路后,决定按照这个百度经验来 Android安卓开发环境搭建详细教程 http://jingyan.bai ...

  3. Strongly connected

    hdu4635:http://acm.hdu.edu.cn/showproblem.php?pid=4635 题意:给你一个有向图,然后问你最多可以加多少条边,是的原图不是一个强连通图. 题解:这一题 ...

  4. 去大公司还是去小公司工作——要进大公司的核心部门(提升视野,锻炼技能),远离没真本事的小公司,要自我驱动 good

    去大公司还是小公司工作?这个问题问大多数 IT 人都会选择前者.如果换一个问法,去大公司还是去初创公司(Startup)工作?或许有极小一部分人能改变一下决定 对于 IT 人来说,选择到大公司工作的理 ...

  5. 深入Spring之web.xml

    针对web.xml我打算从以下几点进行解析: 1.ContextLoaderListener: 启动Web容器时,自动装配ApplicationContext的配置信息. 2.RequestConte ...

  6. Ruby安装和简介

    Ruby下载地址:https://www.ruby-lang.org/zh_cn/downloads/ 我安装的是RubyInstaller.it is a self-contained Window ...

  7. windows/NBTSTAT,linux/nmblookup命令详解,查询NetBIOS名

    NBTSTAT命令详解 请问: Linux下有没有和nbtstat一样的命令,用 nmblookup -A ip 可以 nbstat命令主要用于查看当前基于netbios的tcp/ip连接状态,通过该 ...

  8. Nginx 代理 jira 和 confluence

    原文出处:http://blog.chenlb.com/2012/01/nginx-proxy-jira-and-confluence.html jira 和 confluence 想部署到同一台机器 ...

  9. 用Delphi7开发Web Service程序 转

        转:http://rosehacker.blog.51cto.com/2528968/450160 用Delphi7开发Web Service程序,并把服务程序放在IIS Web服务器上提供给 ...

  10. git submodule的操作

    对于有submodule的库,检出的方法是: git clone https://github.com/BelledonneCommunications/linphone-android.git -- ...