android+命令行编译,打包生成apk文件,Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包...
默认为debug mode,使用的签名文件在: $HOME/.android/debug.keystore
比如 C:\Users\chengcj1.android\debug.keystore
1.利用Gradle命令行进行签名
a. Release Mode 签名:
build.gradle:
[plain] view plaincopy
派生到我的代码片
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对应的配置名
b. 执行gradle 命令, $ gradlew assembleRelease
编译并发布。 在build/outputs/apk/ 下能看到未签名的apk 和 已经签名的apk
如果未用签名文件,使用debug mode的debug签名。那就会生成一个debug签名的apk
c. 签名密码写在gradle中不安全:
派生到我的代码片
signingConfigs { //gradle assembleRelease
myConfig {
storeFile file("stone.keystore")
storePassword System.console().readLine("\nKeystore password: ")
keyAlias "stone"
keyPassword System.console().readLine("\nKey password: ")
}
}
这样在命令 执行 命令时,就会被要求输入密码
2. 使用Android Studio 签名打包
菜单 Build > Generate Signed APK
3. 使用Android Studio 自动签名打包
a. 打开Project Structure,打开方法如下:
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
4. 使用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
android+命令行编译,打包生成apk文件,Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包...相关推荐
- 接口编译后生成什么文件_NDK编译生成Android可执行文件
测试代码 test.cpp #include int main(int argc, char **argv ) { printf("This is my test\n"); ret ...
- svn增量打包部署_利用svn的补丁文件打包生成增量文件
下面的代码是maven版本 1. 创建patch.txt增量文件 保存到 文件目录下 比如 E:\aa\patch.txt 2. 编写java代码 package utils; import java ...
- VS2019项目打包生成.exe文件与Setup的步骤实现
对于Visual Studio Installer ,我们通常称为:setup项目,是一个用于自定义安装部署的项目方案.但是在VS2019中不见了,微软是有意废除安装项目的,合作了一个第三方的安装项目 ...
- Linux下的GCC和Windows下Visual Studio的编译所生成的文件作用
首先先说一下Linux吧因为这也是博主最早接触的编程开发环境所以比较熟悉的! Linux下就说GCC GCC编译如果不指定编译选项的话是一步到位没有额外的后缀名文件! .i文件:.i文件是GCC -E ...
- VS2010 打包生成exe文件后 运行安装文件出现 TODO:文件说明已停止工作并已关闭
一.VS2010 打包生成exe文件后 运行安装文件出现 TODO:<文件说明>已停止工作并已关闭 TODO: <文件说明>已停止工作 原因: 打包的时候在文件系统中建立了 ...
- vue html引入资源dev下404,webpack vue 项目打包生成的文件,资源文件报404问题的修复方法(总结篇)...
最近在使用webpack + vue做个人娱乐项目时,发现npm run build后,css js img静态资源文件均找不到路径,报404错误...网上查找了一堆解决办法,总结如下 一.首先修改c ...
- java编译生成哪些文件_java编译后生成什么文件?生成的文件包括什么?
在大家编译完java程序的时候,都是会生成一个文件的,作为java新手不清楚java编译后生成什么文件?那么今天我们就给大家讲解一下这方面的内容,大家可以参考下文哦! java文件编译过后会生成一个c ...
- android 7 apk 安装程序,Android安装apk文件并适配Android 7.0详解
Android安装apk文件并适配Android 7.0详解 首先在AndroidManifest.xml文件,activity同级节点注册provider: android:name="a ...
- keil uvisoin软件打开他人的工程文件上面出现黄色感叹号警告标志,后续编译不能生成.o文件而报错
keil uvisoin软件打开他人的工程文件上面出现黄色感叹号警告标志,后续编译不能生成.o文件而报错 解决方案: 第一种:后续编译不能生成.o文件而报错 右键出现感叹号的文件 点击第一个" ...
- 将idea中编译输出目录 classes 里的文件删掉,发现再次编译不能生成class文件
将idea中编译输出目录 classes 里的文件删掉,发现再次编译不能生成class文件. 其他UP主给的解决方法如下: 解决方案:settings -> compiler 勾选自动编译选项 ...
最新文章
- Android JUnit测试说明和实例演示
- GraphPad Prism 教程 :标准差与平均值的标准误差有什么区别
- SAP OData $batch processing
- 高流量站点NGINX与PHP-fpm配置优化
- linux设备驱动程序架构的研究,Linux设备驱动程序学习(12)-Linux设备模型(底层原理简介)...
- jQuery keyup事件
- 人越是没钱,越要戒掉这4点毛病,否则穷苦一辈子!
- Java学习之Xpath报错 Exception in thread “main“ java.lang.NoClassDefFoundError: org/jaxen/Namespa
- html好看目录样式,HTML_CSS使用详解,目录样式类型(List Style Type) 说 - phpStudy
- 从C到C++___类继承(五)多重继承
- 智商高的人都不爱说话,程序员也是如此吗?
- Docker学习(五):Docker网络
- 【项目分享~写给应届生的一篇文章】基于Web电影院购票系统 ~~ 选座模块
- 有效的医疗设备维修保养解决方案
- CnOpenData·IFR工业机器人数据
- Windows通过修改注册表设置开机启动程序
- 2021-07-19 暑假集训Day1
- 关于pydicom参数说明
- 在线生成GIF数字雨头像HTML源码
- C语言——整型的截断与提升
热门文章
- DbHelperSQL 判断数据库表结构公用方法
- 《程序出错后,程序员给测试人员的20条高频回复》
- python中webdriver_Linux上部署python+selenium+webdriver常见问题解决方案
- 实现原理_Condition 实现原理
- python 网关控制家居_在树莓派上搭建智能家居网关
- 2.7 RMSprop-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
- 内核启动流程分析(一)编译体验
- 【问题解决】Processing库安装方法简介
- 【模块】ESP32CAM arduino程序下载方法及注意事项避坑笔记
- 点滴篇(一) 第一篇 博客