Android build相关用法
文章目录
- 一.使用signingConfigs进行打包
- 二.修改APK名称
一.使用signingConfigs进行打包
1.首先生成jks文件
点击build -> Generate Signed APK,填写相关内容即可生成。
2.生成signingConfigs
这里只展示了debug的内容,release的创建方式同理。
生成之后build文件应该是这样的
apply plugin: 'com.android.application'android {compileSdkVersion 26defaultConfig {applicationId "com.nxx.myapplication"minSdkVersion 16targetSdkVersion 26versionCode 1versionName "1.0"testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"}signingConfigs {release {keyAlias 'keytest'keyPassword '1067983778'storeFile file('D:/NxxApp/MyApplication/key.jks')storePassword '1067983778'}debug {keyAlias 'keytest'keyPassword '1067983778'storeFile file('D:/NxxApp/MyApplication/key.jks')storePassword '1067983778'}}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'signingConfig signingConfigs.release}debug {signingConfig signingConfigs.debug}}
}dependencies {implementation fileTree(include: ['*.jar'], dir: 'libs')implementation 'com.android.support:appcompat-v7:26.1.0'implementation 'com.android.support.constraint:constraint-layout:1.0.2'testImplementation 'junit:junit:4.12'androidTestImplementation 'com.android.support.test:runner:1.0.1'androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
这样切换版本就可以自动生成apk了
apk的地址:MyApplication\app\build\outputs\apk
当然我们可以在延伸一下,找到gradle.properties文件
将一些参数写进来,以我新建的项目举例
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx1536m
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
# 这句代码一定要加
android.injected.testOnly=falseKEY_STORE_PATH=../key.jks
KEY_STORE_PASS=1067983778
KEY_RELEASE_ALIAS=keytest
KEY_RELEASE_PASS=1067983778
KEY_DEBUG_ALIAS=keytest
KEY_DEBUG_PASS=1067983778
build文件修改
apply plugin: 'com.android.application'android {compileSdkVersion 26defaultConfig {applicationId "com.nxx.myapplication"minSdkVersion 16targetSdkVersion 26versionCode 1versionName "1.0"testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"}signingConfigs {release {keyAlias KEY_RELEASE_ALIASkeyPassword KEY_RELEASE_PASSstoreFile file(KEY_STORE_PATH)storePassword KEY_STORE_PASS}debug {keyAlias KEY_DEBUG_ALIASkeyPassword KEY_DEBUG_PASSstoreFile file(KEY_STORE_PATH)storePassword KEY_STORE_PASS}}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'signingConfig signingConfigs.release}debug {signingConfig signingConfigs.debug}}
}dependencies {implementation fileTree(include: ['*.jar'], dir: 'libs')implementation 'com.android.support:appcompat-v7:26.1.0'implementation 'com.android.support.constraint:constraint-layout:1.0.2'testImplementation 'junit:junit:4.12'androidTestImplementation 'com.android.support.test:runner:1.0.1'androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
这样就完成了。
二.修改APK名称
同样先在gradle.properties文件增加参数
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx1536m
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=trueKEY_STORE_PATH=../key.jks
KEY_STORE_PASS=1067983778
KEY_RELEASE_ALIAS=keytest
KEY_RELEASE_PASS=1067983778
KEY_DEBUG_ALIAS=keytest
KEY_DEBUG_PASS=1067983778APPNAME_PREFIX = OnLine
APPNAME_SUFFIX = _alpha
build文件相应修改
apply plugin: 'com.android.application'android {compileSdkVersion 26defaultConfig {applicationId "com.nxx.myapplication"minSdkVersion 16targetSdkVersion 26versionCode 1versionName "1.0"testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"buildConfigField "String", "APPNAME_PREFIX", "\"${APPNAME_PREFIX}\""buildConfigField "String", "APPNAME_SUFFIX", "\"${APPNAME_SUFFIX}\""}signingConfigs {release {keyAlias KEY_RELEASE_ALIASkeyPassword KEY_RELEASE_PASSstoreFile file(KEY_STORE_PATH)storePassword KEY_STORE_PASS}debug {keyAlias KEY_DEBUG_ALIASkeyPassword KEY_DEBUG_PASSstoreFile file(KEY_STORE_PATH)storePassword KEY_STORE_PASS}}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'signingConfig signingConfigs.release}debug {signingConfig signingConfigs.debug}}applicationVariants.all { variant ->variant.outputs.all {def versionName = variant.versionNamedef versionCode = "." + "21" + variant.versionCodeoutputFileName = APPNAME_PREFIX + versionName + versionCode + APPNAME_SUFFIX + ".apk"}}
}dependencies {implementation fileTree(include: ['*.jar'], dir: 'libs')implementation 'com.android.support:appcompat-v7:26.1.0'implementation 'com.android.support.constraint:constraint-layout:1.0.2'testImplementation 'junit:junit:4.12'androidTestImplementation 'com.android.support.test:runner:1.0.1'androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
Android build相关用法相关推荐
- android room表关联,Android Room的用法
Android Room的用法 SQLite是Android内置的轻量级关系型数据库,但直接使用SQLite core包做数据库操作有以下劣势:需要编写长且重复的代码,这会很耗时且容易出错. 管理SQ ...
- Android build编译过程
Android build编译过程及Android.mk与Android.bp分析 Android的官方网站:http://source.android.com/source/building.htm ...
- 理解 Android Build 系统
Android Build 系统是用来编译 Android 系统,Android SDK 以及相关文档的一套框架.众所周知,Android 是一个开源的操作系统.Android 的源码中包含了许许多多 ...
- android build获取ext,android – 如何在Gradle中获取当前构建类型
我的问题非常直接且易于理解. 题 在Gradle中,有什么办法可以在运行时获取当前的构建类型.例如,在运行assembleDebug任务时,build.gradle文件中的任务是否可以根据此任务与调试 ...
- android开发相关资料整理【2011-11-10】
常用的Android指令和模拟器参数 如何在windows下不用Eclipse,用dos命令启动emulator呢??? Android中的Task相关问题: Flag和LaunchMode同时起作用 ...
- Android build.gradle文件详解(转述自《Android第一行代码》第二版)
Android build.gradle文件详解 1. 最外层目录下的build.gradle文件 1.1 repostories 1.2 dependencies 2. app目录下的build.g ...
- 深入分析Android (build/core/*.mk脚本)
深入分析Android (build/core/*.mk脚本) 文档简要整理Android的make脚本的内容.以供备忘和参考. 1. Build Layers Build Layers描述的是 ...
- android图片显示组件,Android可循环显示图像的Android Gallery组件用法实例
本文实例分析了Android可循环显示图像的Android Gallery组件用法.分享给大家供大家参考,具体如下: Gallery组件主要用于横向显示图像列表,不过按常规做法.Gallery组件只能 ...
- Android RxJava 基本用法
Android RxJava 基本用法 RxJava 使用函数响应式编程方式,它可以简化项目,处理嵌套回调的异步事件. RxJava 依赖 这里以 RxJava 2.2.1 为例.在 build.gr ...
最新文章
- MySQL 备份和恢复策略
- fcm算法c语言实现,基于特征权重的FCM算法研究及应用
- (016)java后台开发之Eclipse安装反编译插件
- 管中窥豹,初探Win RE(Windows恢复环境)
- 关于系统异常设计的再思考
- sturts2标签判断多个条件
- 【数学基础】参数估计之贝叶斯估计
- 一篇文章详解大数据技术和应用场景
- redis的压缩列表源码ziplist解析
- c语言动态双端栈的原理,数据结构(C语言版)例题(第三章:栈和队列)
- android activity根节点addview_Android嵌入到页面中的加载动画工具类
- 初识Git 如何使用Git将本地项目上传到Github
- 使用BabeLua在VS中创建Lua项目。
- Scrapy爬虫快速入门
- EA开发系列---技术指标的使用
- Android push到/system/app下,导致找不到so文件,抛出java.lang.UnsatisfiedLinkError的原因分析和解决方案
- Scratch滚动的天空(1)
- 2019 广工ACM新生赛决赛 K题(立方差公式)
- Java ibatis批量insert,ibatis批量insert是什么写法?要怎么编写?
- EEPROM - AT24C02
热门文章
- 基于 VITA57.1 标准的单通道 6GSPS 12 位AD采集,单通道 6GSPS 16 位 DA(AD9176)输出 子卡
- Leecode 第 289 场周赛 6072. 转角路径的乘积中最多能有几个尾随零 前缀和
- Linux网络编程(六)-高并发服务器03-I/O多路复用03:epoll【红黑树;根节点为监听节点】【无宏FD_SETSIZE限制;不需每次都将要监听的文件描述符从应用层拷贝到内核;不需遍历树】
- 用下标的方式遍历对象
- Cadence Virtuoso 自定义快捷键
- 在 iPhone 中设置 APP 的使用时间!合理使用手机时间
- THE9爱奇艺扫楼 弹幕热度排名及词云图制作
- 上传文件服务器异常怎么办,解决上传图片服务器发生故障的问题
- Deterctron2 训练自己的数据集
- Illustrator尺寸标注扩展插件Measure(支持AI CC 2015~2019)