안드로이드

안드로이드 시작하기2

베노 2021. 11. 5. 18:36

이제 안드로이드를 시작할 차례다. 아마 이전 포스트를 봤으면 안드로이드 스튜디오 설치하는거 까진 했을거다. 설치가 다 끝났다고 가정하고 시작한다.

 

 

 


안드로이드 스튜디오 메인화면


 

안드로이드 스튜디오 첫 실행

 

위에서 부터 설명하면,

 

Create New Project : 새로운 안드로이드 프로젝트를 만든다. 쉽게말해 새로만들기

Open an Existing Project : 내가 이전에 했던거 혹은 다운받은 프로젝트를 여는것, 파일열기

이 2개만 보면 된다. 나머지는 재끼자.

 

 

 

새로만들기로 해서 앱 만들파일을 생성 해보자.

 

처음보는 사람은 어질하다

실행하면 위 사진처럼 뜨는데 머리깨질거같다. 안드로이드야 이제 어디든 다 들어가는것이니 저렇게 많다.

맨위 메뉴들을 보면 

Phone and tablet, Wear OS, Android TV, Automotive, Android Things 이렇게 있다. 이거는 어떤 용도에 쓰일것인지 선택하는거다. Phone and tablet은 우리가 사용하는 안드로이드 폰, 태블릿 상대로 만들 앱이다. 제일 많이 쓰이는 메뉴로 대부분 이걸로 프로젝트를 진행할것이고, Wear OS는 웨어러블 기기에 적용되는거다. 대표적으론 워치에 사용되는거다. 갤럭시 워치는 워치4이전에는 삼성에서 독자적으로 개발한 타이젠OS라는 운영체제가 들어갔지만. 워치4부터는 아마 이 wearOS가 들어간걸로 안다. Android TV는 말 그대로 TV에 적용하는것. 삼성이나 엘지가 사용한다. Automotive는 말 그대로 자동차에 쓰이는거다. 이게 뭔말인지 궁금할텐데 최신차들에게는 안드로이드 및 애플 기기를 연동하여 네비게이션, 음악등 연동해서 사용하는거다. Android Things는 임베디드 시스템에 많이 사용된다.

 

Phone and tablet에서 여러가지 선택부분이 많다. 이거는 템플렛으로 구글에서 쉽게 개발하라고 내준거다. 여러가지가 있지만 나는아예 공백인 부분부터 하나씩 디자인과 기능까지 싹 만드는편으로 그게 편하다. 그래서 Empty Activity를 눌러서 깨끗한 상태의 프로젝트를 만들자. 누른 후 아래의 Next를 눌러서 다음단계로 넘어간다.

 

이거지~

 

 

이렇게 나오는데 여기서도 중요한 부분이 있다. 하나씩 설명하겠다.

 

Name : 우리가 만들 앱 이름이다. 어떤거든 상관없고 이거는 추후 변경이 가능하다.

Package name : 패키지 이름으로 앱의 고유이름이다. 보통 회사도메인으로 해서 작성하는걸 표준이다. 도메인은 지구상에 딱 하나만 존재하는것이다. 보통 도메인은 거꾸로 작성한다. 내 도메인은 https://veno.kr로 로 보면 kr이 먼저, veno가 중간, 마지막은 앱 이름이다. 패키지는 공백이 있으면 안된다. 얘는 바꿀수는 있지만 오류가 발생하고 오류를 잡더라도 또 다른 오류가 나올 수 있다. 주의하자 

save location : 하드 어디에 저장하느냐 지정해주는거다.

Language : 앱 개발할때 어떤 언어로 개발할것인지 선택하는거다. 자바랑 코틀린 2가지인데 코틀린으로 한다. 

Minimum SDK : 안드로이드 시스템에서 어디부터 작동시킬것인지에 대한 설정이다. 안드로이드는 A~P까지는 디저트 네이밍을 따서 코드명? 같을걸 부여했지만 P다음부터는 그냥 알파벳으로 간다. API23은 해당하는 번호다. 이 부분은 자신이 어떤 앱을 만들것인지에 대한 설정이므로 앱 개발할때 고려해야한다. 이것도 나중에 수정가능하다.

 

위에 오류가 있지만 무시, 다 했으면 Finish를 눌러서 본격적인 앱 개발에 들어간다.

 

 

오랜먼아네...

 

Finish를 눌렀으면 위 사진같이 뜨는데 이게 안드로이드 앱 개발할때 보이는 화면이다. 뭔가 뭔지 모르는게 정상이다.

https://developer.android.com/studio/intro?hl=ko 

 

Android 스튜디오 소개  |  Android 개발자  |  Android Developers

Android 스튜디오는 Android 앱 개발을 위한 공식 통합 개발 환경(IDE)이며 IntelliJ IDEA를 기반으로 합니다.

developer.android.com

구글형님들이 이쁘게 설명해주신다. 다행스럽게 글을 적게 올릴수있다. 구글은 착하다. 하지만 나쁘다.

 

이게 코틀린언어이다. 나는 앱 개발하면서 이론도 같이 나갈거다. 

 

package com.company.myapplication

이 부분은 패키지로 우리가 처음에 작성한거랑 동일하다. 패키지명이 틀리면 오류가 나오니 주의

 

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

임폴트하고 하는 친구들이다. 우리가 사용하는 api를 먼저 선언해 주고 어떤녀석인지 부모를 지정해야한다. 만약 앱 개발하다가 빨간줄이 나오면 대부분 오타나 임폴트 문제다. 임폴트 문제는 추가해주면 되거나 저기를 수동으로 수정해주면 된다.

 

class MainActivity : AppCompatActivity() {

class는 자바에서 똑같이 파일선언, 즉 얘는 MainActivity라는 파일에서 작성중, AppcompatActivity()는 엑티비티클래스이다. 여기서 엑티비티란 안드로이드에서 보여주는 디자인부분은 엑티비티가 담당한다. 화면실행, 화면감지 등등... 엑티비티가 쓰인다. AppcompatActivity는 호환성을 위한 클래스이다. 과거버전과 구글에서 새로운 기능을 사용가능하도록 해 주는 클래스. 당연히 이게 제일 좋다. 상황에 따라 편집해서 쓰인다.

 

 

override fun onCreate(savedInstanceState: Bundle?)

override fun 부분은 함수다. override는 상위의 동작을 전달받은 하위에서 매소드 동작을 변경하기 위해 사용하는것. fun부분은 함수 단어 function의 앞 3글자 딴거다, onCreate는 엑티비티의 생명주기이다. 

 

 

 

 

엑티비티 생명주기

 

우리가 앱 사용하면서 하나의 앱만 사용하는건 아니다. 뭐 게임하다가 문자앱에 의해 문자가 오거나 전화가 오거나 이때 엑티비티에 생명주기를 해서 다양한 상황에서 처리를 할 수 있다.

엑티비티는 순서대로 진행한다.

 

onCreate() : 엑티비티가 생성되면 호출 및 초기화 기능을 담당한다.

onRestart() : 엑티비티가 멈췄다가 시작하기 전에 호출

onStart() : 엑티비티가 우리 눈에 보여주기 직전에 호출

onResume() : 엑티비티가 우리들에 의해 상호작용하기 직전에 호출

onPause() : 다른 엑티비티가 보여질때쯤 호출된다.

onStop() : 엑티비티가 더이상 보여지지 않을때 호출된다.

onDestroy() : 엑티비티가 소멸될때 호출

 

위에서 아래로 작용한다. 상황에 따라 쓰이면 된다.

 

 

 

 

 

그 다음 savedInstanceState: Bundle? 은 OnCreate 의 특성으로 보면 "초기화"라는 기능이 있어서 설정값이 초기화 된다. savedInstanceState은 지정된 값을 다시 가져온다는것이다 그래서 번들(Bundle)을 다시 가져온다는것이다.

 

super.onCreate(savedInstanceState)

spuer은 상위클래스를 의미이고, 상위 클래스인 OnCreate를 호출한다는것. savedInstanceState는 설명한거랑 동일

 

 

setContentView(R.layout.activity_main)

setContentView 는 영어 그래도 해석해서 콘텐트뷰를 설정한다는뜻이다. 그 대상은 괄호로 표기한다. 

R.layout.activity_main은 경로이다.

이걸 해석해보면

 

R은 안드로이드 리소스를 관리하는 R클래스

layout은 폴더

activity_main은 파일 이름이다.

 

 

 

다음은 디자인편을 살펴볼거다. 디자인도 대부분 코드로 이뤄져있으므로 머리털을 다같이 뜯어 볼 준비를 해 보자.

참고로 디자인부분도 꽤 복잡하니 마음준비를 잘 하자