ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Android 기초강의) Step 1. HelloWorld
    안드로이드 | Android/강의 | Lecture 2015. 9. 20. 09:00

    서론


     

    대부분의 프로그래밍언어가 그렇듯 안드로이드 어플리케이션을 제작 하기에 앞서 가장 기본적으로 알아야하는 코드내용이 있습니다. 바로, 'HelloWorld'입니다. 첫번째 강의인만큼 무겁지 않은 소재로 시작하겠습니다.

    이번 Step 1에서는 어플리케이션을 만들기위한 프로젝트 생성부터 자신의 휴대폰에 어플리케이션을 설치하여 확인해보는 작업까지 진행하도록 하겠습니다.

    저는 Android Studio로 강의를 할 계획이며, Eclipse를 사용하셔도 무방합니다. 결과론적으로 안드로이드 어플리케이션을 만드는데 있어서 두 툴의 차이는 거의 없습니다만, 개인적으로 UI 측면에서 Android Studio가 Eclipse에 비해 더 깔끔해서 사용하기 시작했습니다.

     

    1. 프로젝트 생성 : File > New > New Project

    다음 아래 그림과 같이 경로를 찾아가 프로젝트를 생성합니니다.

     

     

    2. 프로젝트 설정 

    프로젝트 생성창에서 아래 표와 같은 속성값을 입력합니다.

     

    속성

    값 

     Application name

     MyApplication

     Package name

    com.sample.seok.myapplication

     Minimum SDK

     API 18

     Activity Name

     HelloWorld_Activity

     Layout Name

     main

    ※ 프로젝트 속성은 자신이 원하는 대로 설정하여도 무방합니다.

     

    3. 기본으로 생성된 프로젝트 둘러보기

    기본으로 생성된 프로젝트에는 layout, res, manifest 등 여러 파일과 그 내부에 xml, java와 같은 것들이 있는것을 확인할 수 있습니다. 간단하게 몇가지를 살펴보도록 하겠습니다.

    * layout : 레이아웃(layout)은 화면을 어떻게 구성하는 곳입니다. 즉, 어떠한 컴포넌트들을 선택하고 어떻게 배치할 것인지를 결정하는 곳입니다. 아래에서 살펴볼 내용중 'main.xml'이 이에 해당됩니다.

    * manifest : 매니페스트(manifest)는 어플리케이션에 있는 모든 컴포넌트에 대하여 기술해놓은 파일입니다. 즉, 어플리케이션을 구성하는 컴포넌트를 선언하는 곳입니다. 일반적으로 'AndroidManifest.xml'이 이에 해당하는데, 지금 다룰 내용은 없기때문에 추후에 자세하게 다루도록하겠습니다.

     

     

    본론


     

    다음으로 기본으로 생성된 프로젝트 내에 파일을 분석해보도록 하겠습니다. 먼저, 'main.xml'을 열어서 아래와 같은 코드를 확인하고, 'HelloWorld_Activity.java'를 확인해보도록 하겠습니다.

     

    1. main.xml

    <RelativeLayout
         xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:tools="http://schemas.android.com/tools"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:paddingLeft="@dimen/activity_horizontal_margin"
         android:paddingRight="@dimen/activity_horizontal_margin"
         android:paddingTop="@dimen/activity_vertical_margin"
         android:paddingBottom="@dimen/activity_vertical_margin"
         tools:context=".HelloWorld_Activity"/>
    
         <TextView
             android:layout_height="wrap_content"
             android:layout_width="wrap_content"
             android:text="@string/hello_world"/>
    
    </RelativeLayout>
    

     

    위의 코드를 설명하기 앞서 안드로이드 어플리케이션은 xml 파일로 UI를 구성하고 선언하는 방식이 일반적이라는것을 염두해두어야합니다. 즉, 위의 'main.xml'은 우리가 사용할 어플리케이션의 UI라고 볼수있습니다. 위의 코드 구조를 보면 크게 RelativeLayout이 있고, 그 안에 TextView가 있는 구조로 확인할수 있습니다. Layout과 View는 여러가지가 존재하지만 여기서는 다루지 않고, 차후 강의에서 다루도록 하겠습니다.

    또한, Android Studio는 xml파일을 볼때 바로 옆에 Preview를 제공하여 현재 내가 구성하고 있는 UI가 어떻게 만들어 지고 있는지를 바로 보여주는 편리함이 있습니다. 이에 대한 설명은 아래의 그림과 같이 확인할 수 있습니다.

     

     

    2. HelloWorld_Activity.java

    package com.sample.seok.myapplication;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    
    public class HelloWorld_Activity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.menu_hello_world_, menu);
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            int id = item.getItemId();
    
            //noinspection SimplifiableIfStatement
            if (id == R.id.action_settings) {
                return true;
            }
    
            return super.onOptionsItemSelected(item);
        }
    }
    

     

    위의 코드는 java 코드로 어플리케이션의 화면에서 위젯에 대한 특정 이벤트를 처리하는 곳이라고 생각하면 쉽게 이해할 수 있습니다.

     

    *package : 패키지(package)는 클래스들을 보관하는 곳이라고 생각하면 됩니다.

     

    *import : import는 외부의 패키지나 클래스를 소스에 포함시킬때 사용하는데, Android Studio에서는 이 외부의 패키지나 클래스가 자동으로 import되기때문에 크게 신경쓰지 않아도 됩니다. 단, 이클립스(eclipse) 같은 경우 'Ctrl+Shift+O'로 외부 패키지나 클래스를 import 해주어야합니다.

     

    *public class HelloWorld_Activity extends Activity{...} : 클래스는 객체 지향 프로그래밍에서 가장 기본이 되는 최소단위입니다. 안드로이드에서 액티비티는 Activity 클래스로 생성됩니다. 위의 코드는 Activity 클래스를 상속받아 HelloWorld_Activity 클래스가 만들어졌습니다. 여기서, 액티비티란 안드로이드에서 어플리케이션을 구성하는 컴포넌트 중 하나입니다.

     

    *protected void onCreate(Bundle savedInstanceState){...} : onCreate 메소드는 안드로이드 시스템에 의하여 액티비티가 생성되는 순간에 한번만 호출됩니다. 그렇기 때문에 모든 초기화와 사용자 인터페이스 설정이 이 메소드 안에서 이루어져야 합니다.

     

    *super.onCreate(savedInstanceState); : 부모 클래스인 Activity 클래스의 onCreate()를 호출하는 코드입니다. super는 상속 관계에서 부모 클래스를 나타내는 키워드입니다.

     

    *SetContentView(R.layout.main) : 액티비티 화면을 'main.xml'로 설정합니다. 이 메소드의 매개변수는 R.layout.main으로 main.xml의 경로를 나타낸것입니다.

     

    코드 설명은 이쯤으로 해두고, 이 어플리케이션을 자신의 휴대폰에 설치하여 진짜로 preview에서 봤던 화면이 내 휴대폰에서 실행이 되는지 확인해보겠습니다. 위의 코드에서 설명되지 않은 부분은 '메뉴'를 다루는 부분인데, 지금은 다루지 않으므로 따로 설명하지 않겠습니다.

     

    3. 실행

    이제 마지막 단계인 실행단계입니다. 실행단계에서는 위에 만든 프로젝트(어플리케이션)를 자신의 휴대폰이나 공기계에 설치하여 실행해보겠습니다.

    먼저 자신의 휴대폰 회사에 맞는 usb 통합 드라이버를 설치합니다. 이 usb 드라이버를 설치하는 이유는 사실 설치하지 않아도 되는데, 특정 pc에서 연결 목록에 뜨지 않는 현상을 몇번 목격했기 때문입니다. 사실상 설치하는 것을 권장합니다.

    이후 아래의 그림과 같이 메뉴표시줄에 있는 'Run App(Shift+F10)'인 초록색 화살표를 눌러줍니다. 아니면 메뉴에서 'Run > Run App'을 실행하여도 무방합니다.

     

     

    'Run App'을 누르게 되면 아래와 같은 창이 뜨면서 자신이 어플리케이션을 넣은 디바이스를 선택할 수 있게됩니다.

    이 창이 뜬 상태에서 어플리케이션을 설치할 장치에 한가지 할일이 남아있습니다. '환경설정 > 개발자 옵션 > usb 디버깅'을 찾아 usb 디버깅 옵션을 체크하거나 on으로 바꾸어줍니다. usb 디버깅을 설정하지 않을경우 디바이스 선택창에서 호환되지 않는 장치라고 뜰것이며, 어플리케이션을 설치하여 실행할 수가 없습니다. 따라서, 자신의 디바이스의 usb 디버깅 옵션을 켜주도록 합니다. 이를 켜준 상태에서 디바이스를 usb 케이블을 이용하여 PC에 연결하면 자신의 디바이스 화면에 RSA 키를 확인하는 창이 뜰 것입니다. 여기서 '확인'을 눌러주도록 합니다. 만약에 RSA 키를 확인하는 창이 뜨지 않는다면, usb 포트를 다른곳에 연결해보도록 합니다.

     

     

    연결이 완료된 상태에서 'Choose Device' 창에서 OK를 눌러주면 설치가 완료됩니다. 필자는 어플리케이션을 설치할 디바이스는 SHW-M440S로 'Choose Device' 창에서 2번째 디바이를 선택하였습니다.

    여기서 한가지 궁금증이 드는 사람들이 몇몇 있을것입니다. 에뮬레이터를 사용하면 될것을 왜 굳이 귀찮게 디바이스에 어플리케이션을 설치하는가입니다. 사실 이 부분에서 에뮬레이터를 사용해서 어플리케이션을 확인하겠다는 사람들을 말리지는 않겠습니다. 하지만, 에뮬레이터는 솔직하게 사용하기에 느리다는 단점이 있으며, 많은 제약이 따르게 됩니다. 그래서 필자는 디바이스에 어플리케이션을 설치하여 확인하는 것을 추천드립니다.

    다시 본론으로 돌아가서 설치가 완료되면 자신의 디바이스에 아까 만든 'main.xml'의 화면이 뜨면서 하얀 화면에 HelloWorld라는 글씨가 떠 있을것을 확인할 수 있을것입니다.

    이로써, 우리의 첫번째 어플리케이션이 완성되었습니다.

     

     

    마무리


    기초강의 중에서 제일 처음으로 시작하는 강의라 간단하게 시작하자고 한것이 조금 지루할만큼 길게 작성된것 같습니다. 매번 그렇지만 짧게 하겠다고 해놓고 길게 늘어 진적이 한두번이 아닌것 같기도 합니다. 시작이 반이라고 했는데, 계속해서 강의를 포스팅할 수 있도록 틈틈히 노력해야겠습니다. 그리고, 서론이나 본론이 약간 반말투로 느껴질수도 있는데, 이 점 양해 부탁드리겠습니다.

    마지막으로 포스팅된 글을 읽고 궁금하거나 안되는 부분이 있으면 편안하게 이야기 해줬으면 좋겠습니다.

    긴 글 읽어주셔서 감사합니다.

     

    '안드로이드 | Android > 강의 | Lecture' 카테고리의 다른 글

    [android studio] kotlin : hello world  (0) 2020.04.06

    댓글

Designed by Tistory.