본문 바로가기
IT/안드로이드 Android

안드로이드 스튜디오 프로젝트 이해 . 코틀린

by SidePower 2022. 10. 8.

 

FirstApp 이름으로 Kotlin언어로 지정해서 Android 프로젝트를 만들면

아래와 같은 구조로 프로젝트가 생성됩니다.

 

크게 4개의 그룹으로 나눠져 있는데요.

하나씩 간단하게 알아볼게요.

 

 manifests

AndroidManifest.xml 파일은 앱이 실행되기 위한 필수 정보 목록입니다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.firstapp">

    <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.FirstApp">
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

 package="com.example.firstapp"

앱의 패키지 명

 android:allowBackup

백업 서비스로 구글 드라이브로 스마트폰의 데이타를 자동 백업하여

스마트폰의 문제가 생긴 경우 데이타를 복원할수 있습니다.

 android:icon

앱 설치될때의 아이콘 이미지

 android:label

앱 설치될때의 이름

 android:roundIcon

둥근 아이콘을 사용할 경우 이미지

 android:supportsRtl

Right to Left Layout 기능 지원 여부

 android:theme

앱의 태마 설정

 <activity ... </activity>

액티비티 설정 정보

액티비티는 앱이 실행했을때 우리가 보는 화면입니다.

 

 

 java

앱의 동작을 구현한 소스 파일의 위치입니다.

java라는 이름이지만 java나 코틀린 소스파일 사용할수 있으며

프로젝트 만들때 언어를 코틀린으로 지정해서 MainActivity.kt (확장자가 kt)으로 되어 있네요.

 

 MainActivity.kt

package com.example.firstapp

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }
}

 res

res는 resource의 줄임으며 

앱에 사용되는 자원들을 지정하고 있습니다.

 drawable

이미지 파일

 layout

화면을 구성(layout)하는 xml 파일

activity_main.xml

 mipmap

화면 해상도에 따른 아이콘 이미지 파일

 values

colors.xml . 사용자 임의로 색깔 지정

string.xml . 사용자 임의로 문자열 지정

themes.xml . 사용자 임의로 앱 테마 지정

 

 activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

 

 Gradle Scripts

Gradle (그래들)은 빌드 도구입니다.

ant와 maven의 단점들을 보완해서 요즘 많이 사용되는 빌드 자동화 도구입니다.

 build.gradle (Project FirstApp)

프로젝트 전체 적용되는 빌드 구성 정보

 build.gradle (Module: FirstApp.app)

각 모듈에만 적용되는 빌드 구성 정보

 gradle-wrapper.properties

Gradle 설정 정보

 proguard-rules.pro

proguard 설정 정보 . 프로가드란 난독화 도구입니다.

난독화는 읽기 어렵다는 뜻인데요

해킹 방지를 위해 프로그램을 디컴파일해도 코딩 내용을 분석할수 없게 하는 기능입니다.

 settings.gradle

프로젝트 설정 정보

 local.properties

SDK 경로

 

간단하게 의미를 아는 정도로 확인했습니다.

 

 

감사합니다.

반응형

댓글