Gradle 학습(3): 안드로이드 Gradle 플러그인
3834 단어 android 학습gradle
1. Android Gradle 플러그인
제3자 플러그인을 도입하는 방법: 루트build.gradle 중:
buildscript{
repositories {
jcenter()
}
dependecies {
classpath 'com.android.tools.build:gradle:1.5.0'
}
}
제3자gradl e라이브러리를 도입하는 방법: 먼저 루트build.gradle에서classpath 도입 경로를 사용합니다. 루트 프로젝트에 설정되어 있기 때문에 모든 하위 프로젝트는 설정할 필요가 없습니다.
다른 모듈, 예를 들어 App 모듈, 모듈 아래의build.gradle 파일:
apply plugin : 'com.android.application'
android{
compileSdkVersion 23
buildToolsVersion "23.0.1"
}
apply plugin: ‘com.android.애플리케이션 '애플리케이션 프로젝트 만들기 apply plugin:'com.android.library'라이브러리 프로젝트 만들기 apply plugin:'com.android.테스트 프로젝트 만들기
2. 일반적인 안드로이드 구성
SDK 버전 및 빌드 도구 버전 컴파일
android {
// Android SDK
compileSdkVersion 23
//Android
buildToolsVersion "23.0.1"
}
defaultConfig: 기본 구성, ProductFlavor
defaultConfig {
//
applicationId "com.breeze.qrcode"
// Android
minSdkVersion 15
// Android
targetSdkVersion 26
//
versionCode 1
//
versionName "1.0.0"
}
서명 정보 구성
signingConfigs {
release {
//
storeFile file("myrelease.keystore")
//
storePassword "password"
//
keyAlias "Alias"
//
keyPassword "password"
}
//
debug {
//....
}
}
//
defaultConfig{
signingConfig signingConfigs.release
}
구축된 응용 유형
android {
buildTypes {
release {
//
minifyEnabled true
// Dex
multiDexEnabled true
// , false
shrinkResources true
//
signingConfig signingConfigs.release
//
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
// zip
zipAlignEnabled true
}
//
debug {
//
minifyEnabled false
zipAlignEnabled true
signingConfig signingConfigs.debug
}
}
}
생성된 apk의 이름을 수정하려면 먼저 하나의 개념을 소개합니다: 변체: 패키지 채널과 컴파일 형식의 조합, 대응하는 apk 패키지
this.afterEvaluate {
tasks['build'].doLast {
android.applicationVariants.all {
variant ->
variant.outputs.each {
output->
def fileName = "xxxxx.apk"
if(variant.buildType.isDebuggable()) {
fileName = "yyyy.apk"
}
def outputFile = output.outputFile
File targetFile = new File(outputFile.parent, fileName)
if (targetFile.exists()) {
targetFile.delete()
}
if (outputFile != null && outputFile.name.endsWith(".apk")) {
output.outputFile.renameTo(targetFile)
}
}
}
}
}
다중 경로 패키지
android {
productFlavors {
google {
applicationId "com.xxx.game.google"
manifestPlaceholders.put("UMENG_CHANNEL", "google")
}
}
}
//manifest
3. 모듈화 시 사용
모듈화 프레임워크를 만들 때 모듈을 응용 프로그램으로 독립적으로 컴파일하여 실행하고 모듈을libiary로 간주하며 서로 다른 Manifest와 다른 원본 코드를 사용할 수 있습니다
//isBuildModule module lib application
if (IsBuildModule.toBoolean()) {
apply plugin: 'com.android.application'
} else {
apply plugin: 'com.android.library'
}
// manifest
sourceSets {
main {
if (IsBuildModule.toBoolean()) {
manifest.srcFile 'src/main/debug/AndroidManifest.xml'
} else {
manifest.srcFile 'src/main/release/AndroidManifest.xml'
// debug Java
java {
exclude 'debug/**'
}
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
kernel 버전 번호 수정kernel 버전 번호 수정 방법은 다음과 같습니다. 파일을 수정하려면 다음과 같이 하십시오. 구체적으로 다음과 같이 수정되었습니다. kernel/fs/proc/version.c linux_proc_banner 는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.