본문 바로가기
프로그래밍/안드로이드

안드로이드 앱 개발 - 프로젝트 폴더 기본 구조

by pentode 2018. 4. 8.

앞에서 생성한 간단한 앱으로 안드로이드 앱의 기본구조에 대해서 알아보겠습니다. 여기서는 먼저 Androidmanifest.xml 파일에 대해서 알아 봅니다.

 

안드로이드 스튜디오 실행화면

 

 

1. /app/manifests/Androidmanifest.xml 파일을 보겠습니다.

 

매니페스트 파일에서는 Android 시스템이 앱의 코드를 실행하기 전에 확보해야 하는 앱에 대한 필수 정보를 시스템에 제공합니다.

 

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

	<application
		android:allowBackup="true"
		android:icon="@mipmap/ic_launcher"
		android:label="안녕 안드로이드"
		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>

 

- package="com.tistory.pentode.helloandroid"

 

앱에서 사용하는 패키지 이름 입니다. 이 패키지 이름은 애플리케이션에 대한 고유한 식별자 역할을 합니다.

 

- android:allowBackup="true"

 

안드로이드 6.0 (API 레벨 23) 부터 지원하는 Backup 서비스를 앱이 지원하는지를 나타냅니다. 백업 서비스는 안드로이드폰의 설정 -> 백업 및 초기화 에서 사용할지 지정할 수 있습니다. 사용함으로 해두 면 Google 드라이브 계정에 업로드하여 응용 프로그램 데이터를 사용자당 25MB 까지 자동 백업하고, 폰을 바꾸거나 할때 이 데이터들이 복원됩니다.

 

- android:icon="@mipmap/ic_launcher"

 

앱이 기기에 설치되면 앱을 나타낼 아이콘입니다. @mipmap은 /app/res/mipmap폴더 나타냅니다. 그 폴더 아래의 ic_launcher.png 파일이 아이콘 파일 입니다. 이 위치는 논리적인 위치이면 실제로는 /app/resources/mipmap-hdpi 등 해상도별로 아이콘이미지가 있습니다.

 

- android:label="안녕 안드로이드"

 

프로젝트 생성시 입력한 내용으로 앱의 이름 입니다. 기기에 등록후 아이콘 아래에 나오는 이름도 이 이름입니다. 프로젝트를 생성한후 바로 이부분을 클릭하면 "@string/app_name" 으로 바뀔수도 있습니다. 이것은 /app/res/values/strings.xml 파일안에 app_name 을 키로 하여 "안녕 안드로이드" 문자열을 정의하고 그 키를 사용하여 문자열을 참조하는 방식입니다. 앱내의 대부분의 리소스들은 이런식으로  xml 파일내에 키와 값의 쌍으로 저장해두고 사용하는것이 권장 됩니다. 이렇게 하면 동일한 리소스를 한번 만들어 두면 반복해서 사용가능하고, 수정시도  xml 파일만 수정하면 사용하는 모든 곳에 적용이되기 때문입니다.

 

- android:supportsRtl="true"

 

RIGHT to LEFT 레이아웃을 지원한다는 뜻입니다. API 레젤 17부터 지원합니다. 왼쪽에서 오른쪽으로 쓰는 나라를 지원하는 것입니다.

 

- android:theme="@style/AppTheme"

 

앱의 테마를 설정합니다. /app/res/values/styles.xml 파일에 정의 되어 있습니다. 테마는 앱에서 사용되는 모든 모양, 색깔 들을 지정하고 있으므로, 추후 테마만을 교체하는것으로 앱의 스타일을 바꿀 수 있습니다.

 

- activity를 정의하는 부분 입니다.

 

<activity android:name=".MainActivity">
	<intent-filter>
		<action android:name="android.intent.action.MAIN" />
		<category android:name="android.intent.category.LAUNCHER" />
	</intent-filter>
</activity>

 

하나의 앱은 여러개의 activity를 가질 수 있습니다. 이러한 activity 들은 모두 manifest 파일에 등록이 되어야 합니다. 그리고 MainActivity 는 <intent-filter> 요소를 사용해서 action과 category 두 가지 intent 를 지정하는데, 이것은 MainActivity가 앱이 실행되면 최초로 보여지는 화면임을 나타냅니다.

 

 

2. /app/java 폴더

 

이 폴더에 java 파일이 만들어 집니다. 현재 이 폴더 아래에 com.tistory.pentode.helloandorid 패키지 아래 MainActivity.java 파일이 있습니다. 프로젝트 생성시에 지정한 파일 입니다.

 

 

3. /app/res 폴더는 앱에서 사용되는 자원들을 넣는 폴더 입니다.

 

- drawable : 이 폴더에는 이미지 파일이 들어갑니다.

- layout : 화면의 모양을 나타내는 레이아웃 파일이 들어갑니다. activity_main.xml 파일도 여기에 있습니다.

- mipmap : 아이콘 이미지 파일일 들어 갑니다.

- valuse : 앱에서 사용하는 공통 리소스 파일들이 들어 갑니다. 앱에서 "@string" 형태로 지정합니다. 현재 colors.xml, strings.xml, styles.xml 파일이 있습니다.

 

이것으로 앱을 구성하는 프로젝트 폴더의 구조에 대해서 알아 보았습니다. 앱이 복잡해질 수로 더 많은 양의 파일들이 생성되겠지만, 이것이 기본이 되는것에는 변함이 없습니다.

반응형