일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- gcd #최대공약수 #백준 #2981 #검문
- context #android #getApplicationContext #activity #생명주기 #lifecycle
- dfs #python #leetcode #combination
- 해시테이블 #heapq #파이썬 #리트코드 #알고리즘
- Python #leetcode #dfs #그래프 #백트래킹
- dfs #python #leetcode
- python #백준 #9375 #패션왕 #신해빈
- 리트코드 #팰린드롬 #파이썬
- final #java #자바 #안드로이드
- 코틀린 #Do it #깡샘 #안드로이드
- AsyncTask #doinbackground #스레드 #thread #android #안드로이드
- dfs #bfs #이진트리 #파이썬 #리트코드
- 2004 #조합 0의 개수 #백준
- dfs #leetcode #python #graph #그래프
- dfs #bfs #leetcode #python
- leetcode #python #dfs #재귀
- 다익스트라 #dijkstra #leetcode #파이썬 #python #algorithm #787
- 백준 #파이썬 #bfs #백트래킹 #1697 #숨바꼭질
- 아스테리스크 #Asterisk #파이썬
- exoplayer #mediaplayer #엑소플레이어 #안드로이드 #android
- leetcode #subsets #dfs #itertools #python
- 다익스트라 #알고리즘 #bfs #그리디 #다이나믹프로그래밍 #leetcode #python
- 파이썬 #zip
- dfs #bfs #트리구조 #이진트리 #leetcode #python #파이썬
- dfs #이진트리 #트리구조 #직렬화 #역직렬화 #파이썬 #리트코드 #leetcode #python
- dfs #그래프 #graph #python #leetcode #course #schedule
- python #백준 #2580 #스도쿠 #dfs #백트래킹
- dfs #bfs #트리구조 #이진트리 #leetcode #파이썬 #python
- handler #looper #thread #runnable #핸들러 #루퍼 #스레드 #러너블
- dfs #leetcode #python
- Today
- Total
멋진 개발자가 되고 싶다
[Android] build.gradle이란 무엇일까 본문
Gradle은 빌드, 테스트, 배치 등을 자동화하는 데 사용되는 빌드 시스템(open source)입니다.
"Build.gradle"은 작업을 자동화할 수 있는 스크립트입니다.
예를 들어, 실제 빌드 프로세스가 발생하기 전에 Gradle 빌드 스크립트를 통해
디렉터리 간에 일부 파일을 복사하는 간단한 태스크를 수행할 수 있습니다.
Gradle이 필요한 이유?
모든 Android 프로젝트에는 프로젝트의 .java 및 .xml 파일에서 애플리케이션을 생성하기 위한 Gradle이 필요합니다.
간단히 말해, Gradle은 모든 소스 파일(Java 및 XML)을 가져와서 적절한 도구를 적용합니다.
예를 들어, Java 파일을 dex 파일로 변환하고 apk라고 하는 단일 파일로 압축합니다.
build.gradle 스크립트에는 두 가지 유형이 있습니다.
* Top-level build.gradle
* Module-level build.gradle
Top-level build.gradle
루트 프로젝트 디렉터리에 위치하며
프로젝트의 주요 기능은 프로젝트의 모든 모듈에 적용될 빌드 구성을 정의하는 것입니다.
다음과 같이 구현됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
// Top-level build file where you can add configuration
// options common to all sub-projects/modules.
buildscript
{
repositories
{
google()
jcenter()
}
dependencies
{
classpath 'com.android.tools.build:gradle:3.0.1'
// Do not place the application dependencies here;
// they belong to individual module build.gradle files
}
}
allprojects
{
repositories
{
google()
jcenter()
}
}
task clean(type
: Delete)
{
delete rootProject.buildDir
}
|
cs |
Top-level build.gradle은 다음과 같은 다양한 빌드 구성을 지원합니다.
(1) buildscript : 이 블록은 Gradle의 저장소 및 종속성을 구성하는 데 사용됩니다.
- dependencies : 빌드 스크립트의 이 블록은 Gradle이 프로젝트 중에 빌드해야 하는 dependency를 구성하는 데 사용됩니다.
[주의: 여기에는 종속성을 포함하지 마십시오. (이 종속성은 module-level build.gradle에 포함됩니다.)]
(2) allprojects : 타사 플러그인 또는 라이브러리를 구성할 수 있는 블록입니다. 새로 생성된 프로젝트의 경우 Android 스튜디오에는 기본적으로 JCenter와 Google의 maven 저장소가 포함되어 있습니다.
(3) 태스크 정리(유형:삭제): 이 블록은 프로젝트가 실행될 때마다 디렉터리를 삭제하는 데 사용됩니다. 이렇게 하면 settings.gradle과 같은 전체 정리가 필요한 일부 구성 파일을 수정할 때 프로젝트가 깨끗하게 유지됩니다.
Module-level build.gradle
프로젝트의 project/module directory에 있는 Gradle script는 모든 종속성이 정의되고 sdk 버전이 선언되는 곳입니다.
이 스크립트에는 main/app manifest 또는 Top-level build.gradle 파일의 추가 빌드 유형 및
재정의 설정을 포함하는 많은 기능이 있습니다.
다음과 같이 구현됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
// The first line in this file indicates
// the Android plugin is applied for Gradle to
// this build
apply plugin : 'com.android.application'
android
{
compileSdkVersion 26 defaultConfig
{
applicationId "example.mehakmeet.geeksforgeeks"
minSdkVersion 19
targetSdkVersion 26
versionCode 1
versionName "1.0"
}
buildTypes
{
release
{
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies
{
implementation fileTree(include
: [ '*.jar' ], dir
: 'libs')
implementation 'com.android.support:appcompat-v7:26.1.0'
}
|
cs |
module-level build.gradle은 다음과 같은 다양한 빌드 구성을 지원합니다.
(1) android : 이 블록은 특정 Android 빌드 옵션을 구성하는 데 사용됩니다.
- complieSdkVersion – 앱의 API 레벨을 정의하는 데 사용되며, 이 레벨과 하위 레벨의 기능을 사용할 수 있습니다.
(2) defaultConfig:
- applicationId – 앱 게시를 위한 고유 ID를 식별하는 데 사용됩니다.
- minSdkVersion – 애플리케이션을 실행하는 데 필요한 최소 API 레벨을 정의합니다.
- targetSdkVersion – 앱을 테스트하는 데 사용되는 API 레벨을 정의합니다.
- versionCode – 앱의 버전 코드를 정의합니다. 앱 업데이트가 필요할 때마다 버전 코드를 1개 이상 늘려야 합니다.
- versionName – 앱의 버전 이름을 정의합니다. 업데이트를 생성하는 동안 이 값이 얼마든지 증가할 수 있습니다.
(3) buildtypes(release):
- minifyEnabled – 그러면 릴리스 빌드에 대한 코드 축소가 활성화됩니다.
- proguardFiles – proguard 설정 파일을 지정합니다.
(4) dependencies – 프로젝트를 구축하는 데 필요한 dependencies를 지정합니다.
Top-level 및 module-level build.gradle 파일은 모두 Android 프로젝트의 작업을 자동화하기 위한 main 스크립트 파일이며 Gradle에서 소스 파일로부터 APK를 생성하는 데 사용합니다.
'Android' 카테고리의 다른 글
[android] @Nullable이란 무엇일까 (0) | 2021.08.02 |
---|---|
[Android] AsyncTask란 무엇일까? (0) | 2021.08.02 |
[Android Studio] SDK 라이브러리를 내 프로젝트로 가져오기 (0) | 2021.07.04 |