Android/개념

안드로이드 프로젝트 구조, 역할

모딩 2021. 3. 9. 14:50
반응형

안드로이드 프로젝트를 수행하기 전에 기초가 되는 구조와 그에 따른 역할을 알아보는 시간을 가져보았다.

 

숲을 먼저 보자: 안드로이드 패키지 구조 이해 (manifest, java, res, Gradle)

안드로이드 스튜디오에서는 폴더와 패키지라는 용어를 동일하게 사용하고 있다. 따라서, Project 안에 있는 폴더를 지칭할 때 '패키지' 라고 지칭한다. 

 

(1) manifests

AndroidManifest.xml 파일이 담겨있는 패키지, 안드로이드의 컨트롤 타워. 어플리케이션을 구동하는데 필요한 설정값을 관리해준다. 

 

(2) java

클래스를 관리하는 패키지이다.

 

(3) res

Resource 패키지. UI와 관련된 파일, 디자인 리소스., 문자열 리소스를 담고있다. 

 

(4) Gradle Scripts

어플리케이션을 빌드하기 위해 필요한 설정 옵션, 라이브러리 정보를 담고있다. 

 

컨트롤 타워: 안드로이드 필수 설정 파일 (manifest/AndroidManifest.xml, build.gradle) 

프로젝트를 빌드하기 위해 반드시 선행되어야 하는 필수 설정 요소이다. 하지만 개발하면서 자주 쓰는 부분이 아니다. 에러가 생기거나 눈에 보이지 않는 버그가 발생한 경우 manifest의 특정 설정값을 빼먹은 것이 원인일 수 있다. 따라서 파일을 살펴보고 필요할 때마다 값을 입력해줘야 잠재적으로 발생할 에러에 대비할 수 있다. 

 

(manifest/AndroidManifest.xml)

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

    <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/AppTheme">
        <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>

태그 형식(꺽쇠<>)으로 코드들이 구분되어 있는데, 위의 코드는 6가지 요소들(manifest, application, activity, intent-filter, action, category)로 이루어져 있다. 프로젝트를 생성할 때 자동으로 생성되는 부분이다. 필요할 때 직접 설정값을 추가하면 된다. 

 

<manifest package="org.pytorch.helloworld"> // 패키지의 구조를 표시

<application android:icon="@mipmap/ic_launcher"> // mipmap폴더 아래에 있는 ic_launcher라는 파일을 앱 아이콘으로 설정

<activity android:name=".MainActivity"><intent-filter><action><category> // MainActivity가 생성될 때 자동으로 생성 및 추가되는 부분

 

manifest 파일을 공부하며 기억할 포인트는 "안드로이드 프로젝트는 application위에 activity가 실행되는 구조" 라는 것! 

 

중요한 나무들을 살펴보자: 안드로이드 파일 설명(java/MainActivity, rest/.xml)

(1) java 패키지: 앱을 구동하는 코드의 집합 

- MainActivity.java: 앱을 구동하는 메인 파일이다. 가장 먼저 실행되는데, 이는 AndroidManifest.xml에 등록되어 있기 때문이다. 

public class MainActivity extends AppCompatActivity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

onCreate 함수에는 실제 앱을 구동하기 위한 기능을 담고있다.

 

setContentView(R.layout.activity_main) // activity_main.xml 파일을 View로 연결

 

(2) res 패키지: 디자인을 담당하는 파일들이 위치해 있다. 

- layout : 디자인의 뼈대를 담당 

- drawable: 이미지 파일

- mipmap: 앱 아이콘 이미지 

- values: 문자열, 색상값, 수치값, 스타일 저장 

 

MainActivity와 xml의 포인트는 "activity 파일은 xml 파일과 한 쌍으로 연결되어 있다" 는 것!

 

결론

1. 안드로이드 프로젝트는 app과 Gradle Scripts 로 이루어져 있다.

2. app은 manifests, java, res 패키지로 이루어져 있다.

3. manifests는 프로젝트 설정, java는 프로그래밍 구현, res는 레이아웃과 이미지, 문자열 리소스등 UI를 관장하는 부분이다.

4. 모든 안드로이드 프로젝트는 MainActivity를 기본적으로 갖고 있고 manifests/AndroidManifest.xml에서 설정해준다.

5. 화면을 만들때는 Activity파일(xxx,java파일)과 XML파일(xxxx.xml)을 쌍으로 만들어주고 Activity파일에서 XML파일을 연결해준다.

 

출처

https://codeasy.tistory.com/6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형