하루 노트 2020

[Do it 개정7판] Hello! 안드로이드 본문

프로그래밍/안드로이드

[Do it 개정7판] Hello! 안드로이드

haru0118 2020. 3. 9. 16:59

책: Do it 안드로이드 앱 프로그래밍 (개정 7판)

날짜: 20-03-09

내용: Chapter01

 

도구: 안드로이드 스튜디오

언어: 자바

환경: Windows10

 


 

01-1. 안드로이드란?

 

안드로이드 : 구글에서 만든 스마트폰용 운영체제(OS)

특징 : 오픈소스 / 자바 개발언어 / 쉬운 앱간 연동 / 다양한 기능 지원 / 스마트폰을 위한 완벽한 컴포넌트 제공

 

안드로이드에는 ART라는 런타임이 탑재되어 있다,

런타임은 프로그램을 실행시키는 엔진과 같은 것인데 프로그램의 성능에 영향을 미치는 가장 중요한 요소 중 하나이다.

옛날 표준 자바를 휴대 단말에서 사용할 때 가상 머신의 속도가 느려 성능 문제가 제기 되었지만

안드로이드는 빠른 속도의 런타임을 만들고 성능을 지속적으로 개선하였다.

 

@16p

 

01-2. 안드로이드의 흐름 살펴보기

 

*참고

안드로이드 스튜디오에서 자동으로 만들어지는 앱의 외부 라이브러리가 바뀌었다.

 

support 라이브러리나 AppCompat 라이브러리로 불리던 외부 라이브러리가 andoridx로 변경되었다.

support 라이브러리는 안드로이드 최신 라이브러리들을 예전 단말기에서도 사용할 수 있도록 만들어주는 역할을 했는데

이 라이브러리들의 패키지명이 androidx로 변경되었다.

 

이렇게 패키지명을 바꾼 이유는 다양한 라이브러리들을 하나의 통일된 패키지로 통합하고

코틀린에서 필요한 기능들을 지원하기 위해서이다.

 

@17p

 

 


 

02-1. 안드로이드 스튜디오 설치하기

 

안드로이드 스튜디오 설치 링크 : https://developer.android.com/studio

 

Download Android Studio and SDK tools  |  Android 스튜디오

developer.android.com

주의사항

* 컴퓨터 사용자 계정이 한글인 경우 오류가 발생한다.

* 실행할 수 있는 메모리 용량이 적은 경우 오류가 발생한다.

 

 

안드로이드 플랫폼

안드로이드 플랫폼이란 버전별로 만들어진 실행 환경을 말한다.

PC에서는 에뮬레이터이고 실제 단말에서는 단말의 OS라고 생각하면 된다.

 

안드로이드 스튜디오 글자크기 변경하기 : File - Settings - Editor - Font

 

 

안드로이드 스튜디오에서 자동으로 import구문을 자동으로 넣는 기능

코드가 입력되었을 때 필요한 import 구문을 자동으로 넣을 수 있는 기능을 제공한다.

File - Settings - Editor - General - Auto Import

ㅁ Add unambiguous imports on the fly 체크

ㅁ Optimize imports on the fly ( for current project ) 체크

 

패키지 이름

패키지 이름은 앱을 구분하는 고유한 값이다.

만든 앱이 단말에 설치되었을 때 다른 앱과 구분될 수 있는 역할을 한다.

실무에서는 패키지 이름을 인터넷 사이트 주소(도메인)처럼 짓는 경우가 많다.


 

03-1. 첫 프로젝트 만들기

 

1) MainActivity.java ( 소스코드 )

 

- 자바 소스파일

 

안드로이드에서의 시작점은 main함수가 아니라 onCreate( )함수이다.

 

setContentView( )함수는 화면에 무엇을 보여줄 것인지를 설정해주는 역할

R.layout.activity_main은 화면의 구성 요소에 대한 정보이다. ( 파라미터 )

 setContentView(R.layout.activity_main);

 

 

 

 

2) activity_main.xml ( 화면수정 )

 

- 왼쪽 (디자인 화면) : 실제 스마트폰에 나타날 화면

- 오른쪽 (청사진 화면) : 화면의 구성 요소만을 보여주는 화면 , Blue Print

( 청사진 화면을 사용하면 화면 안의 요소가 서로 겹쳐 있을 때 요소를 투명하게 보고 작업할 수 있어 유용하다. )

 

Palette (팔레트) : 화면에 추가할 요소들이 들어있다.

 

 

 

03-2. 에뮬레이터로 Hello World 앱 실행하기

 

가상단말 ( Android Virtual Manager )

Pixel2 -> Android 10.0 ( Google APIs) x86_64 설치 -> 실행

 

 

 

 

 

03-3. Hello 프로젝트 하나씩 바꾸어보기

 

1) 버튼 추가하기

 

버튼1 : 메시지 보여주기

버튼2 : 네이버 실행하기

버튼3 : 전화 걸기

 

 

(1) XML 레이아웃 파일의 버튼에 onClick 속성 값 넣기

activity_main.xml 파일에 들어 있는 버튼에 onClick 속성 값으로 클릭 이벤트를처리할 함수 이름을 입력한다.

이때 이 함수 이름은 소스 코드(MainActivity.java)에 들어 있는 함수 이름을 그대로 사용한다.

 

XML 파일의 코드도 자동으로 바뀐다.

 

 

 

 

(2) 소스파일에 이벤트 처리 함수 추가하기

MainActivity.java 파일을 열고 XML에서 지정하 함수를 추가한다.

이 함수의 이름은 위에서 넣은 onClick 속성 값과 같아야 한다.

 

 

 

Toast(토스트) : 작고 간단한 메시지를 잠깐 보여주는 역할을 한다.

Intent(인텐트) : 애플리케이션 구성 요소간에 데이터를 전달하거나 실행하려는 기능이 무엇인지

                    안드로이드 플랫폼에 알려줄 수 있다.

 

 

 

결과

 

 


04. 실제 단말 연결하기

 

삼성 단말기 드라이버 다운 링크 : https://local.sec.samsung.com/comLocal/support/down/kies_main.do?kind=usb

 

https://local.sec.samsung.com/comLocal/support/down/kies_main.do?kind=usb

 

local.sec.samsung.com

 


정리

 

setContentView( ) : 화면에 무엇을 보여줄지 결정하는 함수

 

R.layout.activity_main : 화면에 보여줄 대상이 되는 XML의 위치를 지정

 

/app/res/layout/activity_main : 자바 소스에서 R.layout.activity_main이라고 입력하여 가져올 수 있는

                                        프로젝트 안의 파일이며, 화면을 구성할 때 사용한다.

 

text 속성 : 화면에 보이는 글자를 변경할 때 사용하는 속성

 

onClick 속성 : 버튼을 클릭했을 때 어떤 메소드를 실행할 것인지 간단하게 지정할 수 있는 속성

 

Intent : 어떤 기능을 실행할 것인지 지정할 때 사용

 

Toast : 화면에 잠깐 보였다 없어지는 메시지를 간단하게 보여주고 싶을 때 사용