Android 앱/Android 개발

4. Android Studio Project 둘러보기(안드로이드)

arvigoes 2020. 1. 7. 01:22

지난번에 이어서 하려다 내용이 너무 길어져서 Studio 와 Project 로 크게 나눠 보았습니다.

툴에 대해서 어떤내용이 있는지 당장 필요한 내용위주로 알아 봤고 나머지는 천천히 개발하면서 익혀도 충분하니 모르는게 있더라도 나중에 질문이나 나중에 설명될 예정이니 기다려 주세요

 

이번에는 프로젝트에 관한 내용입니다.

Android Studio 는 프로젝트 단위로 관리가 됩니다.

 

App

보통 프로젝트는 한개의 앱으로 생각 하시면 됩니다.

여러 프로젝트를 묶어서 솔류션이란 계념도 있는데 Android Studio 에는 Project 가 기본 단위로 사용 됩니다.

프로젝트 익스플로러

이전에 첫 프로젝트로 만든 ArvGreetings 라는 앱의 구성입니다.

최상단 은 App 폴더 밑으로

manifest, java, res (generated 는 자동 생성내용이 담기는 곳으로 신경쓰시지 않아도 됩니다)

그리고 Gradle Script 폴더

이렇게 총 4개의 구성이 있습니다.

 

1. manigest : "AndroidManifest.xml" 이라는 파일이 하나 있습니다. 만들고 있는 앱의 기본 실행 정보가 포함됩니다.

프로그램 시작지점등 많은 정보가 포함되고, 자주 변경하는 파일이 아니니 내용을 잊어버리기 쉽습니다.

프로젝트 빌드를 위해선 필수 설정요소 입니다. 눈에 많이 익혀 두는게 중요 합니다.

 

2. java : 우리가 만드는 앱의 소스코드를 관리 하는 폴더 입니다.

java 폴더

프로젝트 생성시 자동으로 생성되는 MainActivity.kt 파일도 여기에 포함 되어 있습니다.

많은 클래스를 만들고 앱 용도가 커지면 여기에 파일이 많아 지는데 관리가 중요합니다.

폴더 관리는 하면서 익숙해 지도록 합시다. 

 

3.res : Resource 폴더로 UI 관련 파일과 디자인 리소스 문자열 등을 담고 관리 하는 폴더입니다.

소스는 관리를 잘 못해도 검색으로 해결이 가능하지만 리소스는 관리 잘 못 하면 진짜 헬입니다.

종류별, 용도별, 분류 잘 하시길 바랍니다.

다른 사람들 프로젝트 리소스 관리도 한번씩 찾아보시고 따라 하시는 것도 추천 드립니다.

 

4. Gradle Scirpts : 어플리케이션 빌드를 위한 설정 옵션 및 라이브러리 정보가 포함된 곳 입니다.

내용이 많이 있지만 지금 설명하기엔 어려우니 이정도로 이해만 하시면 될 것 같습니다.

 

프로젝트 폴더(=패키지 (동일한 의미)) 구성을 간략히 살펴 보았습니다.

 

manifest

manifest 에 대해 좀 더 자세히 보면서 앱 전체 구조에 대해 좀 더 자세히 보도록 하겠습니다.

프로젝트 익스플로러 에서 app -> manifest -> AndroidManifest.xml 파일을 더블클릭해서 에디터 창에 열어 보도록 합시다.

androidManifest.xml

xml 파일 포맷으로 만들어져 있습니다. (확장자도xml 입니다)

xml 형식은 html 과 유사 합니다. <블라블라> 1290238029 </블라블라> 형태로 시작과 종료가 있습니다.

파일 내용을 보면 크게 6가지로 되어 있습니다.

1.<manifest>

2.--<application> 

3.----<activity>

4.------<intent-filter>

5.--------<action>

6.--------<category>


1. <manifest>

 패키지 명 표시 (package="com.arvigoes.greetings") - 프로젝트 만들면서 작성한 패키지명 입니다.

 

2. <application>

앱 아이콘, 앱 표시이름 테마 등을 설정합니다.

xml application

android:icon="@mipmap/ic_launcher" :: 아이콘으로 mipmap폴더의 ic_launcher 를 설정한다.

라는 의미 입니다. 보시면 res 하위에 동일한 리소스가 존재하는게 보입니다.

이런식으로 쌍을 잘맞춰 설정 해 주시면  됩니다.

ic_launcher 에는 여러 이미지와 xml 파일이 포함되어 있는데 이에 대해선 또 다음으로...

 

java 패키지(=폴더) 

(패키지와 폴더는 같은 의미 입니다)

우리는 kotlin 으로 프로그래밍 한다고 했는데 java 로 만들어졌네요

Android app 자체가 java 패키지 단위라 이건 프로그래밍 언어가 다르더라도 동일하게 적용 됩니다.

어떤 언어로 사용하여 개발하더라도 동일하게 JVM 기반으로 패키지 단위로 바이트코드화 되어 운영 되니까요

 

우리가  언어를 이용해 안드로이드 프로그래밍을 한다고 하는 부분이 바로 이 패키지내에 kotlin(or java)파일(파일명.kt( or .java)의 형식의 파일)을 만들고 수정하는 것 입니다.

우리의 앱이 작동하는 방식에 대해 정의하는 내용들이 이 곳에 있는 파일들에 적혀 있게 될 것입니다.

java 패키지

지금은 MainActivity 하나 밖에 없지만 어플의 기능이 늘어 날 수록 많아지게 되겠지요

 

MainActivity.kt

패키지내에 "com.arvigoes.greeting" 패키지를 열어서 봅시다.(androidTest나 test가 적혀있지 않은 패키지를 엽니다.)

MainActivity 파일을 더블클릭 합니다.

MainActivity.kt 는 모든 프로젝트에 필수적으로 있어야하는 기본 파일입니다.

Entry Point 라고 앱의 시작 지점이라고 생각 하시면 됩니다.

위에서 살펴본 AndroidManifest.xml에서 12번 줄에 MainActivity가 적혀 있는것을 살펴보았습니다.

그 내용이 어플리케이션이 실행될때 가장 먼저 MainActivity를 실행하면 된다는 내용입니다.

// (슬래쉬)2개로 시작하는 줄은 주석 (설명) 입니다

class MainActivity : AppCompatActivity() {
// 코드를 간략히 설명하면 AppCompatActivity 클래스를 상속 받는 MainActivity 클래스를 선언하고

    override fun onCreate(savedInstanceState: Bundle?) {
// Budle 타입의 savedInstanceState 를 인자로 가지는 onCreate 함수를 재정의(override) 합니다.
        super.onCreate(savedInstanceState)
// 부모객체(AppCompatActivity) 의 OnCrate 를 수행하고
        setContentView(R.layout.activity_main)
// layout 패키지 아래에 있는 activity_main.xml 일을 View 로 연결한다
    }
}

setContentView(R.layout.activity_main) 에서 R 의 의미는 resource 를 참조 를 나타 냅니다.

리소스 패키지에서 Activity_main 이라는 layout 을 참조 할 것이다. 라는 뜻!

 

package 는 패키지 명이고

import 는 포함되는 패키지 입니다.

 

코드에 대해서 지금은 이해가 안가더라도 차차 언어를 익히면서 진행할수 있도록 kotlin language 에 대해서도 포스팅 하도록 하겠습니다.

 

어플리케이션이 실행이 되면 Activity가 수행이되고 Activity는 Layout(activity_main.xml) 으로 구성이 되어 화면으로 보이게 됩니다.

 

 

activity_main.xml

Layout Editor 입니다. 오늘은 하단의 Text 위주로 살펴 봅시다.

AndroidManifest.xml 이전에도 말 했듯이 XML형식의 파일입니다.

보통은 래이아웃은 디자이너가 많이 다루고 디자인을 좀더 정형화 할대 프로그래머가 작업을 합니다.

그렇지만 우린 1인개발자 이니 다 알아야 합니다.

xml 이 어렵다면 Design 으로 하시면 되고, xml도 쉽고 디자인도 텍스트로 설정하는게 편하다 하시면 text 로 편집 하면서 하시면 됩니다.

자세한 내용은 design에서 편집 해 보면서 text 의 내용의 변화를 확인 하시면서 진행 하시면 됩니다.

저장 위치는 이전에 설명 했듯이 res/layout 입니다.

 

 

Android Studio 에서 생성된 하나의 프로젝트는 한개의 어플리케이션 입니다.

한개의 어플리케이션 = Project

한개의 화면 = Activity

화면 구성 = Layout

하나의 어플리케이션은 여러개의 액티비티로 구성이 됩니다.

Activity 와 Layout 은 항상 쌍을 이룹니다.

Activity 에서 Layout 을 선정하여 연결 해 줍니다.

 

입니다.