[안드로이드] 안드로이드 앱 시작

3 분 소요

안드로이드 앱 소개

Android Studio를 통해서 안드로이드 앱 개발이 가능하다.

안드로이드는 .apk 파일을 이용한다.

apk는 Android Application Package의 약자이다.

apk파일에는 안드로이드 앱의 모든 콘텐츠가 들어 있다.

안드로이드 앱의 동작 개념(앱 실행하는 경우)

우리가 작성한 코드를 이용해서 Android 앱을 만들려면, Android SDK를 이용하여 모든 데이터 및 리소스와 함께 코드를 컴파일하여 하나의 APK를 만들어야한다.

안드로이드 앱 아이콘을 실행하면 안드로이드 시스템에서 설치한 리소스와 코드를 이용해서 화면 그려주고 행동한다. 안드로이드 시스템은 apk 안에는 ‘매니페스트 파일(Manifest file)’이라는 “사용설명서”가 들어 있어 안드로이드 시스템은 실행된 앱의 “사용설명서”를 읽고 사용설명서에 적혀있는 대로 동작을 시작한다.

매니페스트 파일은 사용설명서와 같다. 매니페스트 파일에는 앱에서 사용하는 화면, 앱이 요구하는 권한, 앱에 필요한 정보 등과 같은 앱에 대한 정보들이 기록되어 있다.

안드로이드 앱의 동작 개념(앱 표시하는 경우)

화면 정보는 액티비티(Activity)에 담겨 있다. 안드로이드 앱에서의 액티비티는 화면, 페이지라고 생각하면 된다.

액티비티에 표시해야하는 UI(사용자 인터페이스)의 생김새는 레이아웃에 들어있다. 레이아웃은 앱 리소스 중 하나로 이 덕분에 화면을 볼 수 있다.

안드로이드 앱에서 보여지는 리소스는 하드웨어와 같다. 앱이 동작하게 하려면 소프트웨어를 만들어 버튼이 동작하게 해야 한다.

이러한 앱 동작에 대한 정보는 앱 컴포넌트(App Component)에 들어 있다.

앱 컴포넌트는 안드로이드 앱 필수 기본 구성요소로 앱에 표시해야하는 정보와 앱의 동작이 담겨있는 문서다.

액티비티는 앱 컴포넌트 중 하나다. 그래서 액티비티를 통해 앱의 화면을 표시하고 동작을 정의할 수 있다.

위에서 언급한 것 처럼 안드로이드 앱은 매니페스트 파일, 앱 리소스, 앱 컴포넌트로 구성된다. 여기서 매니페스트 파일과 앱 리소스는 xml을 이용하고 앱 컴포넌트는 코틀린을 이용해 작성할 수 있다.

안드로이드 앱은 Kotlin, Java, C 언어를 사용하여 작성할 수 있다.

코틀린의 경우 안드로이드를 만든 구글에서 2017년도부터 공식 언어로 추가했다. 이후 2019년도부터는 구글 내부의 안드로이드 프로젝트에서도 Java 대신 Kotlin을 사용하기 시작했고 안드로이드 공식 문서에서도 Java보다 Kotlin 예제가 먼저 나온다.

안드로이드 스튜디오 이용해 앱 만들기

프로젝트 이름은 영어를 권장한다.

패키지이름은 앱을 구분하는 고유의 값으로 id와 같다. 앱이 스마트폰에 설치되었을 때 다른 앱들과 구분하는 역할을 해야하다보니 겹치면 안된다.

일반적으로 웹 사이트주소가 유니크해 사이트 명을 많이 사용한다. ex) com.[회사이름].[앱이름]

만든 앱은 안드로이드 에뮬레이터를 이용해 실행할 수 있다. 에뮬레이터는 실제 안드로이드 기기처럼 전화, SMS 수신, 회전과 같은 거의 모든 기능을 제공한다.

프로젝트 구성

  • app > manifests > AndroidManifest.xml 앱의 사용설명서로 앱의 기본 특성을 설명하고 앱의 각 구성요소를 정의한다.

  • app > java > com.example.[이름] > MainActivity 안드로이드 시스템에서는 매니페스트 파일을 확인해 화면을 표시하는데 화면 정보는 안드로이드의 액티비티에 있다. 자동으로 MainActivity라고 이름이 지어져 있다. 앱을 빌드하고 실행하면 안드로이드 시스템에서 기본 액티비티를 실행하고 레이아웃을 로드한다.

  • app > res > layout > activity_main.xml 액티비티에서 로드할 보여지는 정보는 액티비티에 들어있지 않다. 보여지는 정보는 레이아웃에 들어있고 레이아웃은 앱 리소스 중 하나이다. layout에 들어있는 xml 파일은 주로 액티비티의 사용자 인터페이스 레이아웃을 정의한다. res 디렉토리안에 layout 말고도 drawable, mipmap, values 디렉토리가 있네요. 이들도 모두 앱 리소스에 해당한다.

  • Gradle Scripts > build.gradle 앱을 apk로 빌드하기 위한 정보가 있다.

  • app > java > com.example.[이름] (androidTest), app > java > com.example.[이름] (test) 앱 테스트를 위한 디렉토리로 앱 테스트를 위한 코드가 포함되는 폴더이다. 여기서 앱 테스트는 사람이 하는 테스트가 아니라 코드 상으로 진행하는 테스트를 의미한다.

  • java (generated), res (generated) 개발자가 작성한 java와 res 코드를 바탕으로 안드로이드 스튜디오에서 앱을 빌드하면 자동으로 만들어주는 코드이다. (generated) 디렉토리는 수정할일이 없으며 삭제하게 되는 경우 앱을 빌드할 때 다시 생성이 시작되어야해서 빌드시간이 오래걸린다.

앱 이름과 앱 아이콘 변경

<resources>
    <string name="app_name">처음 만든 앱</string>
</resources>

app > res > values에 위치한 strings.xml파일을 열어 수정하면 앱이름이 변경된다.

앱 아이콘을 변경하기 위해서는 우선 안 쓸 icon을 먼저 지운다. app > res > mipmap에 위치한 ic_launcher_round 디렉토리를 우클릭해서 Delete…를 누른다. Delete Anyway 를 누르면 해당 아이콘이 삭제된다. app > res > mipmap에 위치한 ic_launcher도 함께 삭제한다. 바꾸려는 아이콘 이미지들을 다운받아 mipmap에 마우스로 끌어서 넣는다.

레이아웃 에디터

app > res > layout에 위치한 activity_main.xml 파일을 더블클릭한다.

오른쪽 위의 Code, Split, Design 버튼이 있다.

Design을 클릭하면 표시되는 화면을 레이아웃 에디터라고 부릅니다. 레이아웃 에디터를 이용하면 xml 코드를 작 성하는 대신 복잡한 코드없이 레이아웃을 수정하고 만들 수 있다.

화면 가운데 표시되는 하얀색 화면은 ‘Design’ 뷰로 실제 모양을 보는 화면이고, 파란색 반투명 화면은 ‘Blueprint’ 뷰로 윤곽선을 보기 위한 화면이다.