안드로이드 프로젝트의 구성요소
안드로이드 프로젝트는 크게 app 과 Gradle Scripts 영역으로 구분됩니다.
app 영역에는 앱을 개발하기 위해 필요로 하는 기본적인 파일들이 있고
Gradle Scripts 에는 앱을 컴파일하고 실행하기 위해 필요한 파일들이 있습니다.
이 구조는 실제 디렉터리 구조는 아니며 안드로이그 개발을 좀더 편하게 할 수 있도록 개발에 필요한 디렉터리만 나열되어 있는 구조입니다.
실제 디렉터리 구조를 보고싶다면 app 위의 '보기 모드 설정 메뉴' 인 Android 를 Project 로 변경하면 볼 수 있습니다.
안드로이드 프로젝트의 4가지 구성요소
위 구성요소를 설명하면 다음과 같습니다.
요소 | 설명 |
mainfests | 앱의 기본 정보를 담고 있는 AndroidManifest.xml 을 포함 |
java | 안드로이드 소스 코드를 포함 |
res | 안드로이드 리소스를 포함 |
Gradle Scripts | 안드로이드 프로젝트에 대한 빌드 정포를 포함 |
mainfests
mainfests 에는 AndroidManifest.xml 의 파일이 있으며 안드로이드 앱에서 매우 중요한 역할을 하는 파일입니다.
앱의 구성을 하는 다양한 정의를 하는 곳으로, 앱에서 필요로 하는 권한, 액티비티, 서비스 등의 정의를 작성합니다.
AndroidManifest.xml 의 코드는 다음과 같습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapplication">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.MyApplication">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
|
cs |
앱을 실행하기 위해 필요한 권한은 <manifest> 와 <application> 태그 사이에 작성합니다.
코드 몇줄만 간략하게 설명해 보겠습니다.
속성 | 설명 |
icon, roundIcon | 앱의 아이콘을 정의하는 속성 |
label | 앱의 타이틀을 정의합니다. @string/app_name 은 Rayout 의 string.xml 파일의 app_name 값 입니다. |
activity | 안드로이드 앱에서 사용하는 액티비티를 선언하는 부분 android.intent.action.MAIN 은 현재 액티비티를 이 앱의 메인 액티비티로 지정 android.intent.category.LAUNCHER 은 앱에 설치된 아이콘을 클릭했을 때 실행되어야 할 액티비티 |
java
앱을 구성하는 소스코드 파일을 작성합니다.
액티비티를 추가하기 위해 자바 파일이 추가로 필요한 경우 패키지 우클릭 후 New - Java Class 를 하면 됩니다.
이클립스에서 자바파일을 생성하는 방법과 동일합니다.
이러한 방식으로 새로운 자바(액티비티)가 추가된다면, 반드시 AndroidManifest.xml 파일에 추가해야 합니다.
MainActivity.java 의 코드는 다음과 같습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
package com.example.myapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
|
cs |
AppCompatActivity 클래스를 상속받아 안드로이드 기능을 사용할 수 있습니다.
onCreate 메소드는 액티비티의 생명주기 메소드 중에 하나로, 이 메소드가 실행되면서 액티비티가 생성되고 동작합니다.
setContentView 는 액티비티에서 보여줄 화면을 설정하는 코드입니다.
자바코드는 앱에서 액티비티로 동작해야 하고 그러기 위해서는 기본 동작을 정의해야 하는데, 개발자가 모두 정의할 수 없기 때문에 안드로이드에서 기본동작을 정의한 Activity 나 AppcompatActivity 클래스를 제공합니다.
AppcompatActivity 는 최신 안드로이드 기능을 이전버전의 안드로이드에서 사용할 수 있도록 하기위해 추가된 클래스입니다.
res
앱 개발에 필요한 다양한 리소스를 저장하는 디렉터리 입니다.
이미지는 drawable 폴더에 저장합니다.
액티비티 위젯 배치는 layout 폴더에 저장합니다.
앱 아이콘 이미지는 mipmap 폴더에 저장합니다.
색상/문자열/치수와 같은 값은 values 폴더에 저장합니다.
Gradle Scripts
안드로이드 프로젝트를 빌드하여 안드로이드 기기에 탑재할 수 있는 상태로 만들어주는 빌드도구입니다.
build.gradle 에는 Project 와 Module 로 나뉩니다.
Project 의 경우 크게 수정할 일이 없지만 Module 의 경우 앱 정보와 라이브러리 정보를 수정하기 위해 사용합니다.
build.gradle (Module:app) 코드는 다음과 같습니다.
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
36
37
38
|
plugins {
id 'com.android.application'
}
android {
compileSdkVersion 30
buildToolsVersion "30.0.3"
defaultConfig {
applicationId "com.example.myapplication"
minSdkVersion 27
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:2.0.1'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
|
cs |
코드 몇줄만 간략하게 설명해 보겠습니다.
속성 | 설명 |
compileSdkVersion | 컴파일(빌드)할 때 사용하는 안드로이드 SDK 버전으로 API 레벨로 지정 |
minSdkVersion | 앱을 실행하기 위한 안드로이드 최소 버전 |
targetSdkVersion | 앱을 실행한 안드로이드 기본 버전 |
versionCode / Name | 구글플레이 스토어에 앱을 등록할 때 앱의 버전 플레이스토어에 새로운 앱을 등록할 때는 반드시 versionCode 숫자를 증가시켜야 함 |
'Computer Language > Android' 카테고리의 다른 글
[Android] 안드로이드 레이아웃 XML 위젯 접근 방법 (0) | 2021.06.20 |
---|---|
[Android] 안드로이드 스튜디오 가상기기 생성방법 (1) | 2021.06.20 |
[Android] 안드로이드 스튜디오 화면 구성 (0) | 2021.06.19 |
[Android] 안드로이드 스튜디오 프로젝트 생성하기 (0) | 2021.06.19 |
[Android] 안드로이드 스튜디오 설치하기 (0) | 2021.06.19 |