You are on page 1of 36

본 저서는 ‘시작이 반이다’ 시리즈로 안드로이드 앱 만들기에 대한 내용으로 구성되어

있습니다. 책의 내용과 관련하여 문의사항이 있으시면 이메일(cfdkim@korea.ac.kr)로 문의


바랍니다.

제목: 한 번 앉은 자리에서 끝내는 안드로이드 앱 만들기


저자: 김현동, 장한별, 곽수빈, 최명숙, 김준석

Chapter1 효율적인 진료 대기 시스템 ∎ 1


Chapter 1
개발환경 구축 4

제 1 절 Android Studio 설치하기 5


1.1 내려받기 5
1.2 설치하기 7
제 2 절 SDK Manager로 SDK Tools 추가 설치 18

Chapter 2
앱 개발 시작하기 24

제 1 절 프로젝트 만들기 25
제 2 절 Eulator 설치하기 27
제 3 절 간단한 주사위 앱 만들기 31

2 ∎ 수학적 모델링 콘텐츠


Chapter 1
개발환경 구축

안드로이드 앱 개발

Chapter1 효율적인 진료 대기 시스템 ∎ 3


Chapter

1
개발환경 구축

제 1절 Android Studio 설치하기


1.1 프로그램 다운로드
프로그램을 내려받기 위해 아래의 주소로 접속한다.

https://developer.android.com/studio

PC의 운영체제가 Windows 64bit이면 화면에 보이는 를 누른다.

4 ∎ 수학적 모델링 콘텐츠


사용 약관에 동의하고 를 눌러 내려받는다.

Chapter1 효율적인 진료 대기 시스템 ∎ 5


1.2 설치하기
내려받은 Android Studio Setup 파일을 열어 설치를 시작한다. 다음과 같은 화면이 나

타나면 를 눌러 설치를 진행한다.

6 ∎ 수학적 모델링 콘텐츠


설치할 도구들을 모두 선택 후 를 누른다.

Chapter1 효율적인 진료 대기 시스템 ∎ 7


프로그램 설치 경로 선택하는 화면이다. 를 누르고 넘어간다.

시작 메뉴에 폴더 생성을 선택하는 화면이다. [Install]을 눌러 설치를 시작한다.

8 ∎ 수학적 모델링 콘텐츠


설치가 완료되면 를 누르고 다음 단계로 넘어간다.

설치가 완료되었다. [Finish]를 눌러 마무리한다.

Chapter1 효율적인 진료 대기 시스템 ∎ 9


다음 화면은 이전에 사용한 설정을 가져올 것인지에 대한 선택지이다. 안드로이드 스

튜디오를 처음 사용하는 사용자라면 를 선택 후 를 누른다.

안드로이드 스튜디오를 위한 개발환경 설정에 대한 내용이다. 를 선택하고

를 눌러 다음 단계로 넘어간다.

10 ∎ 수학적 모델링 콘텐츠


여러 가지 설정을 기본(Standard)으로 할지, 사용자가 직접 설정(Custom)을 할지에 대

한 선택 화면이다. 본 저서에는 ‘Standard’로 선택하여 설치를 진행한다. 를눌


러 다음 단계로 넘어간다.

Chapter1 효율적인 진료 대기 시스템 ∎ 11


안드로이드 스튜디오의 테마를 선택하는 화면이다. 사용자가 원하는 테마를 선택 후

를 누른다.

12 ∎ 수학적 모델링 콘텐츠


설정 확인을 위한 화면이다. 를 눌러 다음 단계로 넘어간다.

Chapter1 효율적인 진료 대기 시스템 ∎ 13


License Agreement 화면에서 설치할 구성요소들의 라이센스를 읽은 뒤, 조건과 내용에 동의

하면 오른쪽 하단에 ‘Accept’를 선택하고 를 누른다.

14 ∎ 수학적 모델링 콘텐츠


설치된 파일들을 보여주는 화면이다. 를 눌러 설치를 마친다.

Chapter1 효율적인 진료 대기 시스템 ∎ 15


설치가 완료되면 다음과 같이 ‘안드로이드 스튜디오’의 창이 나타낸다.

16 ∎ 수학적 모델링 콘텐츠


제 2절 SDK Manager로 SDK Tools 추가 설치
‘안드로이드 스튜디오’를 설치하였지만, PC에서 개발한 앱을 실제 단말기에서 사용
할 수 있도록 단말기의 OS 버전에 맞는 emulator 등 SDK 도구들의 추가 설치가 필요하
다. SDK Manager를 사용하여 필요한 SDK Tool을 설치해보자. 안드로이드 스튜디오의
첫 화면 하단에 를 누른 뒤 를 선택한다.

Chapter1 효율적인 진료 대기 시스템 ∎ 17


안드로이드 설정 창에서 [SDK Platforms]가 선택되어 있고, 사용 가능한 버전의 플랫
폼과 설치된 플랫폼을 볼 수 있다. 다음 화면과 같이 최신 플랫폼이 설치되어 있다면 그
대로 사용하고 그렇지 않다면 맨 위에 있는 최신 플랫폼을 선택 후 [Apply]를 눌러 설치
한다. 이 교재에서는 Android 10.0 (Q)를 사용한다. Status에 Not installed로 되어 있다면
체크를 하고 아래에서 Apply를 클릭한다.

18 ∎ 수학적 모델링 콘텐츠


설치가 끝나면 SDK Tools 탭을 선택한다.

다음 화면은 설치된 라이브러리나 도구를 보여준다. 우리는 아래의 라이브러리를 사


용할 것이다. 설치가 되어있지 않거나 최신 버전이 아니라면 다음 항목들을 선택 후
[Apply]를 눌러 설치를 진행한다.
- Android SDK Build-Tools 33
- Android Emulator
- Android SDK Platform-Tools
- Intel x86 Emulator Accelerator (HAXM installer)

Chapter1 효율적인 진료 대기 시스템 ∎ 19


설치를 진행하는 화면이다.

설치가 완료되면 [Finish]를 눌러 설치를 마친다.

20 ∎ 수학적 모델링 콘텐츠


최종적으로 [OK]를 눌러 개발환경 구축을 마친다.

Chapter1 효율적인 진료 대기 시스템 ∎ 21


22 ∎ 수학적 모델링 콘텐츠
Chapter 2
앱 개발 시작하기

안드로이드 앱 개발

Chapter1 효율적인 진료 대기 시스템 ∎ 23


Chapter

2
앱 개발 시작하기

제 1 절 프로젝트 만들기
안드로이드 스튜디오의 첫 화면에서 ‘New Project’를 눌러 새로운 프로젝트를 생성한
다.

이미 안드로이드 스튜디오가 설치된 상태에서 새로운 프로젝트를 생성하고자 한다


면, 다음과 같이 ‘File’ → ‘New’ → ‘New Project...’ 순서로 눌러 진행한다.

24 ∎ 수학적 모델링 콘텐츠


No Activity를 선택하고 를 누른다.

Name은 ‘firstproject’로 변경한다.

Chapter1 효율적인 진료 대기 시스템 ∎ 25


Language에서 ‘Java’를 선택하고 를 누른다.

를 누른 후 시간이 좀 걸릴 수 있다.

제 2 절 Emulator 설치하기
Android Virtual Device (AVD) Manager 를 실행한다.

26 ∎ 수학적 모델링 콘텐츠


안드로이드 스튜디오 창의 오른쪽에 Device Manager 화면에서 ‘Virtual’탭을 선택한 뒤,
‘Create virtual device’를 누른다.

설치할 device로 화면의 왼쪽의 ‘Category’ 메뉴에서 ‘Phone’을 선택하고, ‘Nexus 5’를

선택한 뒤 를 누른다.

Chapter1 효율적인 진료 대기 시스템 ∎ 27


화면에서 ‘API 33 Download’를 누른다.

설치되어 있는 System Image(우리가 SDK manager에서 최신 플랫폼을 선택하여 최신

화를 했었다. 그 플랫폼이 System Image다.)를 선택하고 를 누른다.

28 ∎ 수학적 모델링 콘텐츠


AVD 이름과 화면의 세로, 가로 설정을 진행하는 부분이다. [Finish]를 누르면 설치가
완료된다.

다음 장부터 간단한 예제를 통해 앱을 만든다.

Chapter1 효율적인 진료 대기 시스템 ∎ 29


제 3 절 간단한 주사위 앱 만들기

다음은 주사위 앱에 대한 ‘activity_main.xml’ 파일의 source code이다.


https://mathematicians.korea.ac.kr/cfdkim/database/ 에서 코드를 내려받을 수 있습니다.

<?xml version="1.0" encoding="utf-8"?>


<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/imagescroll"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:paddingRight="5px"
android:weightSum="1">
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="33dp"
android:layout_marginBottom="8dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginTop="8dp"
android:gravity="center_horizontal|center_vertical"
android:text="주사위를 던지자"
android:textSize="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.051"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.017" />

<TextView
android:id="@+id/Result"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="8dp"
android:layout_marginRight="8dp"
android:layout_marginBottom="8dp"
android:gravity="center_horizontal|center_vertical"
android:text="주사위 눈"
android:textSize="50dp"
android:textStyle="italic"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.117"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"

30 ∎ 수학적 모델링 콘텐츠


app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.842" />

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:gravity="center_horizontal|center_vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical"
android:gravity="center_horizontal|center_vertical">
<Button
android:id="@+id/Calculate"
android:layout_width="150dp"
android:layout_height="50dp"
android:layout_marginBottom="8dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginTop="8dp"
android:layout_weight="1"
android:text="주사위 굴리기"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.966"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.741" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>

Chapter1 효율적인 진료 대기 시스템 ∎ 31


다음은 주사위 앱을 만들기 위한 ‘-.java’ 파일의 source code이다.
위에서 9번째 줄에 ‘public class’ 다음에는 ‘-.java’ 파일의 이름을 입력한다. 예를 들어 파일
이름이 ‘MainActivity.java’이면 ‘MainActivity’를 입력한다.
(Source code를 입력하기 어렵다면 https://mathematicians.korea.ac.kr/cfdkim/database/ 에서
코드를 내려받을 수 있습니다. ‘한 번 앉은 자리에서 끝내는 안드로이드 앱 만들기’ 게시물
에 있는 ‘MainActivity.java’와 ‘activity_main.xml’의 source code를 내려받아서 메모장으로
해당 파일을 열고, 코드를 복사하여 붙여넣는다.)

package com.example.firstproject;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import java.util.Random;

public class MainActivity extends AppCompatActivity {

Button Calculate_button;
TextView Dice_Result;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle("Dice");
Dice_Result= findViewById(R.id.Result);
Calculate_button = findViewById(R.id.Calculate);
Calculate_button.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Random dice = new Random();
int result = dice.nextInt(6) + 1;

Dice_Result.setText(String.valueOf(result));
}
});
}
public void onBackButtonClicked(View V) {
Toast.makeText(getApplicationContext(), "Back", Toast.LENGTH_LONG).show();
finish();
}
}

32 ∎ 수학적 모델링 콘텐츠


‘activity_main.xml’의 Source code를 붙여넣기 위해 왼쪽 카테고리창에서
app → res → layout → activity_main.xml을 차례대로 선택한다.

같은 방법으로 ‘MainActivity.java’의 source code를 붙여넣기 위해, 화면 왼쪽의 project 폴더


창에서 app → java → com.example.firstproject → MainActivity를 차례로 선택한다.

Chapter1 효율적인 진료 대기 시스템 ∎ 33


‘activity_main.xml’의 source code는 아래의 그림에서와 같이 탭을 선택하
고 편집기에 코드를 입력한다.

34 ∎ 수학적 모델링 콘텐츠


‘MainActivity.java’의 source code는 아래의 그림에서와 같이 탭을 선택하고
편집기에 코드를 입력한다.

Source code를 모두 입력하였으면 정상적으로 작동되는지 확인하기 위해 emulator로 구동


해보자.

Chapter1 효율적인 진료 대기 시스템 ∎ 35


안드로이드 스튜디오 화면의 오른쪽 상단에 Run 버튼을 누른다.

Emulator가 나타나면 구동이 잘 되는지 확인해보자. ‘주사위 굴리기’를 누르면 주사위 눈의 값


이 나온다.

36 ∎ 수학적 모델링 콘텐츠

You might also like