기술연구

김경현 2017. 11. 22. 19:44

안녕하세요.

 

기술이 공유되지 않으면 미래의 사회는 지금보다 더욱 폐쇄적이고 불평등한 사회가 될 것입니다. 카피레프트(copyleft)는 개인의 지적재산권을 중시하는 기존의 카피라이트(copyright)에 대항해 사회적 공유를 강조하는 정신이자 운동입니다. DIY연구소는 카피레프트(copyleft) 정신과 4차 산업기술의 확산을 위하여 연구한 내용을 무료로 배포하고 있습니다. 오늘은 3D프린터 제어용 안드로이드 앱을 연구하고자 정재곤 박사님의 '안드로이드 앱 프로그래밍공부후 '

안드로이드 앱 프로그래밍 기초 (1/3)' 제작, 교육 정보를 

공유합니다.

 

안드로이드 앱 프로그래밍 기초 (1/3)

안드로이드 앱 프로그래밍 기초 (2/3) -[1] [2] [3]


안드로이드 앱 프로그래밍 기초 (3/3)

 

 


 

 

 

 

 

 

 

 

 

 

DIY연구소 김경현 배상 (010 8604 6802)

 
 

[교육내용]

 

☞ 1. 3D프린터 설계제작

☞ 2. 3D프린터 프로그램

☞ 3. 3D프린터 의수제작

☞ 4. Core XY 3D프린터 구동방식과 조립

☞ 5. Prusa i3 3D프린터 조립

☞ 6. Prusa i3 3D프린터 배선

☞ 7. 3D프린터 전기조립 기초

☞ 8. Fun i3 3D프린터 조립

☞ 9. 3D프린터 오픈소스 RepRap

☞ 10. 20만원대 교육용 3D프린터 개발

☞ 11. 3D프린터 전기자전거 개발

☞ 12. 원노즐 듀얼 3D프린터 개발

 

 

 

 

 


[안드로이드 앱 프로그래밍 기초 (#1/3)]

 

#1. 첫째마당. Hello! 안드로이드

 

1. 안드로이드란 무엇인가?

2. 개발환경 구축하기

3. 첫번째 앱 만들기4. 안드로이드 프로젝트와 개발도구5. 앱장터, Play 스토어에 앱 등록하기6. 실제 단말 연결하기
#2. 둘째마당. 안드로이드 완벽 가이드
1. 안드로이드 스튜디오와 기본 레이아웃 익히기2. 레이아웃과 기본 위젯 사용하기3. 애플리케이션 구성하기4. 다양한 위젯과 이벤트 활용하기5. 선택위젯의 사용과 커스텀뷰 만들기6. 그래픽7. 스레드와 애니메이션8. 네트워킹9. 데이터베이스10. 멀티미디어11. 위치기반 서비스와 앱 위젯12. 메시징과 소셜 네트워크 서비스13. 근거리 통신과 센서
#3. 셋째마당. 구글 Play 스토어에 올리는 안드로이드 애플리케이션

1. 멀티메모 앱

 

 

[안드로이드 앱 프로그래밍 기초 (1/3)]

 

☞ 1. 안드로이드란 무엇인가?

 2. 개발환경 구축하기

 3. 첫번째 앱 만들기 4. 안드로이드 프로젝트와 개발도구 5. 앱장터, Play 스토어에 앱 등록하기 6. 실제 단말 연결하기

 

 

 

☞ 1. 안드로이드란 무엇인가?

 

1-1. 안드로이드에 대한 이해 : 안드로이드는 구글(Google)에서 만든 스마트폰용 운영체제(OS)로 휴대용 단말기 뿐만 아니라 다양한 애플리케이션을 만들어 설치하면 실행될수 있도록 구성된 애플리케이션플랫폼(Platform)이기도 합니다. 안드로이드를 설명하기 위해서는 스마트폰 시장에 혜성처럼 나타난 아이폰을 먼저 얘기하는것이 좋습니다. 아이폰은 2007년 1월 애플의 스티브잡스(Steve Jobs)가 처음 발표한후 돌풍을 일으켰습니다. 윈도우 모바일로 대표되는 스타일러스펜과 메뉴기반 윈도우의 기존의 스마트폰의 고정관념을 수준높은 그래픽 기술과 손가락 터치입력방식 그리고 앱스토어에 등록된 수많은 앱을 통해 편리한 스마트폰의 방향을 제시하며 돌풍을 일으켰고 스마트폰 시장의 강자로 자리잡고 있습니다. 스크린의 압력을 입력 신호로 받은 방식인 감압식이 들고 다니는 장치에서는 어울리지 않아 사용성(Usability)을 강조하고자 아이폰이 손가락의 정전기 발생을 터치 입력신호로 받는방식인 정전식으로 바꾸게 된것이 좀더 편리한 스마트폰으로 변화하는 계기가 되었습니다. 정전식은 감압식에 비해 입력 좌표의오차가 심하고 일반펜과 같은 입력도구를 사용하기 쉽지 않은 단점이 있지만 손가락을 사용할수 있다는 아주 중요한 장점을 가지고 있습니다. 안드로이드는 아이폰의 많은 장점을 그대로 가지고 있으며 화면의 전환이나 리스트를 스크롤할대의 그래픽과 성능인 애니메이션기술과 스마트폰 기능의 편리함이 안드로이드에서도 그대로 표현됩니다. 또한 안드로이드에서만 사용할수 있는 다양한 화면크기와 더 얇은 두께를 지향하는 단말들과 기능들이 추가되고 빠르게 업그레이드하여 대규모 시장을 점유하고 있습니다.

 

 

1-2. 안드로이드의 특징 :

 

1) 오픈소스 : 안드로이드는 오픈소스로서 개발자에게 개방되어 있으며 아파티 2.0 라이선스를 사용합니다.

2) 자바개발언어 : 안드로이드를 개발할대 사용하는 언어는 자바(Java)입니다. 따라서 전세계의 많은 자바 개발자가 안드로이드 앱개발에 뛰어들수 있습니다.

3) 스마트폰을 위한 완벽한 컴포넌트 제공 : 안드로이드는 오픈소스이지만 스마트폰을 위한 완벽한 컴포넌트들을 제공합니다. 핵심적인 커널부분만 제공하고 다른 부분들은 개발자에게 맡기는 방식이 아니라 제공된 소스를 사용하면 스마트폰이라는 전화기가 그대로 만들어지므로 대부분의 개발자는 그위에 올라가는 앱만 만들면 됩니다.

4) 쉬운앱간 연동 : 안드로이드로 만든 앱은 다른 앱에서 제공하는 기능을 쉽게 사용할수 있도록 만들어져 있습니다. 사진을 찍기 위해 단말의 사진앱을 연동하면 카메라 미리보기 화면을 직접 만들지 않아도 됩니다.

5) 다양한 기능지원 : 안드로이드는 리눅스를 기반으로 하므로 새로운 하드웨어의 기능을 쉽게 연동할수 있습니다. 또한 빠른 업그레이드를 통해 플랫폼에서 다양한 기능을 제공하고 있습니다.

 

1-3. 안드로이드의 흐름 : 현재는 안드로이드가 스마트폰 시장에서 많은 부분을 차지하고 있습니다. 글로벌 시장에서 개인시장을 파고든 안드로이드 단말은 2010년 아이폰을 넘었고, 2016, 2017년에는 80% 이상의 시장 점유율을 차지해 앞으로 몇년 이상 상당한 시장 점유율을 유지할것으로 예상되고 있습니다. 이제는 개인 개발자가 애플의 앱스토어(AppStore)나 안드로이드 마켓인 플레이스토어(PlayStore)에 애플리케이션을 올리는 것으로도 수익을 올릴수 있게 되었고, 개인 개발자가 창업하여 왓츠앱(WhatsApp)이나 우서(Uber)와 같은 앱을 만들어 엄청난 수익을 올리며, 이제 안드로이드 앱은 일상생활과 회사의 업무에서 빼놓을수 없는 중요한 한 요소가 되었습니다. 스마트폰이 일반화된것은 불과 몇년만에 벌어진 일입니다. 그 이후에도 IT 트렌드는 매우 빠르게 변하고 있습니다. 이러한 IT 흐름에 대해 이제는 애플리케이션 개발자들도 잘 알야야 하는 시대가 되었습니다. 만약 IT흐름이 빨리 바뀌는 만큼 개발자들이 다라가지 못하면 금방 시대에 뒤처진다는것을 많은 사람이 경험하고 있습니다.

 

1-4. 안드로이드의 현재 : 안드로이드는 구글에서 만들지만 안드로이드를 스마트폰과 태블릿 등의 기기인 단말로 만들고 이를 배포하는 것은 제조사와 이동통신사입니다. 안드로이드는 아이폰의 스마트폰 운영체제인 iOS보다 늦게 만들어졋지만 다른 OS들이 갖고 있는 특징과 장점을 흡수함과 동시에 오픈소스로 모든 제조사가 단말을 만들수 있도록 하였습니다. 따라서 안드로이드는 이미 국내시장과 글로벌 시장에서 최신의 스마트폰을 출시하기 위해 사용되는 주요 플랫폼이 되었습니다. 안드로이드 단말이 시장 점유율을 높일수 있었던 주요 요인들중 하나는 오픈소스라는 점과 함께 단말 OS, 단말제조사, 이동통신사 그리고 애플리케이션 개발자 등 하나의 단말이 시장에 나와 사용자들이 사용하는 과정에서 각 역할을 담당하는 주요 참여자들을 하나로 묶어주는 생태계인 '에코시스템(Eco system)'을 잘 구성했기 때문입니다. 중요한것은 개발자로서 목표로하는 좋은 앱을 개발하여 이것을 플레이 스토어에 올려 수익을 얻는것 그리고 이 목적을 얼마나 빨리 그리고 잘 달성할수 있는가 입니다. 안드로이드 플랫폼 업그레이드와 버전별 대표 특징은 다음과 같습니다.

 

1) 안드로이드 버전 1.0 (새로운 스마트폰 OS) (A ...)

2) 진저브레드 버전 2.3 (NFC 지원) (G)

3) 허니콤 버전 3.0 (태블릿 지원) (H)

4) 아이스크림 샌드위치 버전 4.0 (스마트폰, 태블릿) (I)

5) 젤라빈 버전 4.2 (그래픽 성능 향상) (J)

6) 킷캣 버전 4.4 (저사양 단말 지원) (K)

7) 롤리팝 버전 5.0 (새로운 디자인) (L)

8) 마시멜로 버전 6.0 (보안 강화) (M)

9) 누가 버전 7.0 (다중창 지원) (N 현재 ...)

 

 

 

☞ 2. 개발환경 구축하기

 

안드로이드를 개발할수 있는 환경을 구성하기 위해 위해서는 몇가지 프로그램을 설치하여야 합니다. 과거는 이클립스로 개발했지만 지금은 안드로이드 공식 개발 도구인 안드로이드 스튜디오를 사용하여 개발해야 문제없이 앱을 만들수 있습니다. 자바를 설치후 안드로이드 스튜디오 설치하고 SDK 매니저로 플랫폼 추가 설치합니다.

 

 

 

2.1 개발환경 구축을 위한 프로그램

 

자바(Java) 설치 : 자바가 설치되지 않았다면 가장 먼저 자바를 설치해야 합니다. 자바 프로그램중 일반 PC용 버전인 자바SE(Java Standard Edition)를 설치할 것입니다. 그러기 위해서는 자바 개발 도구인 JDK(Java Development Kit)를 다운로드해야 합니다. JDK는 오라클 사이트에서 다운받습니다. 32비트용과 64비트용이 있으니 자신이 PC에 맞는 버전을 선택해야 합니다. 내컴퓨터에서 마우스 오른쪽 버튼을 눌러 속성 선택하거나 제어판, 시스템 및 보안, 시스템을 누르면 내컴퓨터가 32비트인지 64비트인지 확인할수 있습니다. 

 

안드로이드 스튜디오(Android Studio) 설치 : 안드로이드 스튜디오는 인텔리제이(IntelliJ) 프로그램을 확장하여 만든 안드로이드 앱 개발 도구입니다. 개발에 필요한 기능이 한꺼번에 설치되는 프로그램이며, 파일을 다운로드한 다음, 실행하면 설치가 진행됩니다. 개발에 필요한 프로그램들은 자주 초신 버전으로 변경되므로 설치 지점에 따라 버전이 약간 다를수 있다는 점에 주의하기 바랍니다. 

 

2.2 자바 설치하기

 

자바가 설치되어 있지 않다면 사이트에서 다운로드한후 설치해야 합니다. 자바는 오라클 사이트에서 다운로드 할수 있습니다. 비슷한 버전이 많으니 꼭 'http://www.oracle.com' 사이트로 들어가서 JavaSE(Standard Edition)를 받습니다. 다운로드하는 시점에 따라 최신 버전은 다를수 있으니 최신버전을 다운로드하면 됩니다.

 

1) 웹브라우저의 주소 검색창에서 'http://www.oracle.com' 입력후 [Enter]를 누릅니다. 웹브라우저 탭중에서 [Downloads] 탭위로 마우스 올리면 목록이 나타나며 좌측상단 [Popular Downloads] 항목중에서 [Java SE]를 클릭후 JDK(Java SE Develpment Kit) [Download] 버튼을 클릭합니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

2) 윈도우 바탕화면 왼쪽아래의 시작 아이콘에서 마우스 오른쪽 버튼 누르면 메뉴가 표시됩니다. [Windows PowerShell] 메뉴를 누르면 새로운 명령 프롬프트 창이 열립니다. 창안에 'java'를 입력한후 [Enter]키를 누르면 사용법을 알려주는 메시지가 출력됩니다. 이 메시지가 나타난다면 자바의 환경변수가 제대로 추가된 것입니다.

 

 

 

2.3 안드로이드 스튜디오 설치하기

 

1) 안드로이드 개발자 사이트 'https://developer.android.com/studio/index.html

' 사이트에서는 안드로이드를 개발할수 있는 도구로 '안드로이드 스튜디오' 설치프로그램을 제공합니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2) 안드로이드 스튜디오는 자주 사용하니 바탕화면이나 시작화면에 가져다 놓으세요.

 

 

 

☞ 3. 첫번째 앱 만들기

 

안드로이드 단말에서 동작하는 간단한 앱(Application)을 만드는 과정은 쉽습니다. 안드로이드 스튜디오는 다른 프로그래및 언어에서도 제공되는 일반적인 통합 개발환경(IDE)과 유사합니다. 첫번째 앱을 만들고 변형하다보면 앱의 기본구조를 빠르게 익힐수 있습니다. 프로젝트 만들기, 하나씩 바꾸어 보기, 여러개의 버튼에 기능 추가하기, 새로운 화면 만들어 띄우기 과정을 설명합니다.

 

☞ 3-1. 첫 프로젝트 만들기☞ 3-2. 하나씩 바꾸어 보기 3-3. 여러 개의 버튼에 기능 추가하기
 3-4. 새로운 화면 추가한 후 띄워주기 3-5. 새로운 프로젝트 만들 때 다른 종류의 화면 선택해 보기

 

 

3.1 첫 프로젝트 만들기

 

1) 안드로이드 스튜디오 실행했을때 사용자 계정이 한글로 되어 있다면 오류가 발생할수 있습니다. 윈도우 7에서는 [제어판-사용자계정 및 가족보호-사용자계정-계정유형변경]에서 수정한후 실행해야 합니다. 안드로이드 스튜디오를 설치하고 SDK 매니저를 이용해 필요한 플랫폼을 추가로 설치후 실행하면 다음과 같은 시작 화면이 나타납니다. 만약 화면이 나오지 않으면, 상단 메뉴에서 [File-New Project]를 선택하세요.

 

 

 

2) 가장 위쪽 [Start a new Android Studio project] 메뉴를 선택하면 새로운 안드로이드 프로젝트를 만들기 위한 대화상자가 표시됩니다. 'Application Name:'란에는 'diylab'이라고 입력하고 'Company Domain'이라는 란에는 'kimgyunghyun.com'을 입력합니다. 그 아래에 있는 'Package name'란에는 'com.kimgyunghyun.diylab'가 자동으로 들어갑니다. 'Project location'란에는 여러분이 만들 프로젝트와 해당 파일들이 PC의 어디에 저장될지 폴더 위치가 표시됩니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3) 에뮬레이터 만들기 : AVD(Android Virtual Device)는 안드로이드 가상기기 생성을 의미합니다. 앱을 실행하려면 우선 에뮬레이터를 화면에 띄워야 합니다. 에뮬레이터란 단말 등의 다른 장치를 똑같이 흉내 내도록 설계딘 장치나 프로그램을 말합니다. 에뮬레이터란 다말 등의 다른 장치를 똑같이 흉내 내도록 설계된 장치나 프로그램을 말합니다. 다음 그림과 같이 안드로이드 스튜디오 상단 툴바에 있는 여러 아이콘 중에서 [AVD Manager] 아이콘을 클릭하면 에뮬레이터를 플랫폼으로 만들고 실행할수 있는 창을 띄울수 있습니다.새로 만들어진 프로젝트에 어떤것들이 들어 있는지 구체적으로 알아보기 전에 먼저 프로젝트에서 자동으로 만든 앱의 기능이 어떤 것이 있는지 앱을 실행해서 확인합니다. 처음에는 만들어져 있는 에뮬레이터가 하나도 없기 때문에 새로운 가상 단말을 만들라는 안내화면이 표시됩니다. [Create Virtual Device...] 버튼을 클릭하면 새로운 에뮬레이터를 만드는 과정이 단계별로 진행됩니다. 첫뻔째로 보이는 화면은 'Select Hardware' 화면입니다. 가상으로 보일 에뮬레이터를 위한 하드웨어를 선택하는 화면입니다. 본인의 휴대폰 삼성갤럭시S6엣지플러스 디스플레이 사양과 동일한 'Nexus 6P'를 선택후 [Next] 버튼을 클릭합니다. 휴대폰 [설정-소프트웨어 정보]에서 '안드로이드 버전 7.0' 확인후 표시된 'System Image' 화면에서 동일한 'Android 7.0...'을 선택후 'Download'부분을 눌러 다운로드합니다. 선택한 정보가 맞는지 확인하는 'Andoid Virtual Device (AVD)' 화면이 나옵니다. 기본설정정보를 사용하므로 하단우측의 [Finish] 버튼을 클릭합니다. 대화상자 없어지고 약간의 시간이 지난후 새로운 에뮬레이터가 만들어 집니다. 우측 '전원' 버튼을 클릭시 안드로이드 단말의 홈 화면이 나타납니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 초보자를 위한 초간단 안드로이드 스튜디오 사용법

 

1. 실수로 왼쪽 프로젝트 구성 보여주는 트리 모양의 창이 없어졌을때 방법 : 안드로이드 스튜디오 상단의 메뉴들 중에서 [View-Tool Windows-Project] 메뉴를 선택하면 됩니다.

 

 

 

 

2. 실수한 프로젝트를 새로 만들고 싶을때 방법 : [File-Close Project] 메뉴를 눌러 현재 프로젝트를 닫은후 시작화면에서 다시 [Start a new Android Studio Project] 메뉴를 선택하면 됩니다. 만약 이전 만들어진 'Recent Projects' 항목들을 삭제하고 싶다면 시작화면에서 최근에 만든 프로젝트 항목에 마우스커서 올리면 [x] 모양 아이콘 나타나는데 클릭하면 해당 프로젝트 정보가 삭제됩니다. 실제 프로젝트가 삭제되는 것은 아닙니다. 안드로이드 스튜디오 상단의 [Run] 아이콘을 눌러 앱을 실행합니다. 앱을 어떤 단말에 실행할것인지 물어보는 대화상자가 보이면 이미 샐행해 둔 에뮬레이터가 선택디어 있으므로 [OK] 버튼을 클릭해서 진행합니다. 잠시 기다리면 에뮬레이터 화면이 보이고 하단의 작업표시줄에 에뮬레이터 아이콘이 생성됩니다.

 

 

 

 

 

 

 

 

 

 

 

3. 애플리케이션을 실행하기 위한 단축키 사용법 : 마우스를 이용해 상단의 [Run] 아이콘을 클릭하여 실행하는것보다 단축키 [Shift] + [F10] 을 사용하면 간답합니다. 앱이 실행되면 안드로이드 스튜디오 화면의 아래에 로그를 볼수 있는 탭이 보입니다. 

 

4. 앱이 실행되지 않고 오류 메시지만 보이는 경우 방법 : 앱 실행시 필요량한 메모리 용량이 적으면 '파일작업실패... 액세스가 거부되었습니다' 라는 오류 메시지가 표시될수 있습니다. 이 경우 안드로이드 스튜디오에서 사용할수 있는 최대 메모리 용량이 크기를 늘려 주어야 합니다. 파일 탐색기를 열고 안드로이드 스튜디오가 설치된 폴더 (일반적으로 C:/Program Files/Android/Android Studio) 아래에 있는 bin 폴더를 찾습니다. 이 폴더 아래에 studio64.exe.vmoption 파일이 있으면 그 파일을 메모장에서 엽니다. 해당 폴더는 관리자 권한이 없으면 수정하지 못할수도 있습니다. 이때는 먼저 studio64.exe.vmoption 파일을 복사해서 사용자 폴더로 복사해서 수정한후 다시 원래 파일을 덮어쓰는 과정이 필요할수 있습니다. studio64.exe.vmoption 파일을 메모장이나 다른 텍스트 편집기에서 열면 -Xmx 로 시작하는 줄이 나타나는데, 그 뒤에는 숫자가 적혀 있습니다. -Xmx 로 시작하는 줄에 있는 숫자를 더 큰 숫자로 수정합니다. [-Xmx2048m] 수정한 파일을 저장한후 다시 안드로이드 스튜디오를 실행합니다.  

 

5. 첫번째 앱 확인하는 방법 : 앱이 만들어졌고 에뮬레이터로 실행됩니다. 'diylab' 이라는 글자 하나만 보이지만 이 앱은 실제 단말에서 실행해도 그대로 실행되는 진짜 앱입니다. 이 글자가 어떻게 보이는것인지 안드로이드 스튜디오의 [MainActivity.java] 탭을 열어 확인합니다. [MainActivity.java] 탭을 열어 자바파일 내용을 보면 표준 자바나 다른 언어의 main 함수가 없습니다. onCreate() 함수가 시작점이 되는것 같은데 그 안에는 간단한 두줄의 코드가 들어 있습니다. 첫째는 super 키워드를 사용하고 있는데 상속을 받는 클래스인 부모클래스를 super 키워드로 사용하므로 부모클래스에 있는 동일한 이름 onCreate() 함수를 호출하는것임을 알수 있습니다. 결국 한줄의 코드가 화면에 글자를 보이도록 한것으로 생각할수 있습니다. 이 한줄 코드 setContentView()라는 함수와 파라미터로 전달된 R.layout.activity_main 은 기존 표준자바 형태가 아니지만 화면에 어떤 내용이 보이도록 만든 정보로 이해해야 합니다. 안드로이드 스튜디오 화면의 왼쪽에 보이는 영역이 프로젝트 영역인데, [Android] 탭안에 트리구조로 만들어진 내용들이 표시되어 있습니다. 이곳의 app 항목아래 /res 폴더를 보면 밑에 여러개 폴더중에 layout 폴더가 있고 그 밑에 activity_main.xml 이름의 파일이 있습니다. 소스코드의 R.layout.activity_main 과 /res/layout 폴더속 activity_main.xml 파일 이름의 유사성으로 연관을 짐작할수 있습니다. activity_main.xml 파일을 더블클릭하면 프로젝트가 만들어질때 자동으로 만들어진 탭이 다시 화면에 보이는데 그안에 "Hello world!" 라는 글자가 들어 있습니다. 결국 activity_main.xml 파일은 앱을 실행했을때 처음 보이는 화면이 어떤 모양으로 구성되어 있는지를 담고 있습니다. 이 화면 하단 탭중 [Text]탭 선택시 XML 내용을 직접 보고 바꿀수 있으며, [Designt] 탭 선택시 마우스 이용해 버튼과 같은 것들을 화면에 직접 넣을수 있는 디자인 화면이 표시됩니다. 화면에 보이는 형태를 바꾸려면 이 XML 파일의 내용을 바꾸면 된다는 정도만 우선 이해해도 충분합니다.


 

 

 

 

6. 안드로이드 스튜디오에서 경로를 확인하는 방법 : 경로가 길어 app/src/main/ 이라는 경로를 생략하고 소스의 참조 파일 경로를 표기하고자 합니다. 안드로이드 스튜디오 창에서 경로를 보는 방법은 왼쪽 창 상단의 [Android] 탭을 선택하면 경로가 app부터 보이고, [Project]를 선택하면 전체 경로가 보입니다.

 

 

 

 

3.2 하나씩 바꾸어 보기
 
1) 화면에 있는 글자 바꾸기 : [activity_main.xml] 탭 선택후 아래쪽 [Text] 탭 선택합니다. XML로코드들이 표시되며 이중 'Hello world!' 글자를 한글 '3D프린터 DIY연구소'로 바꾸어 줍니다. 스튜디오 상단의 [실행] 아이콘 클릭하거나 [Shift} + [F10]을 눌누면 글자가 바뀐 에뮬레이터 화면이 보입니다.
 

 

 

※ 참고사항

 

1. 디자인 화면에 한글 표시되지 않는 경우 : 한글 폰트 변경을 위하여 안드로이드 설치 폴더를 찾은후 아래 폴더로 이동하면 fonts.xml 파일이 있습니다. 파일을 바로 열어 수정 권한이 없기에 사용자 폴더로 복사후 <family lang="ko"> 태그부분을 찾아 수정후 파일을 복사하여 파일을 덮어 씁니다. 안드로이드 스튜디오 다시 시작후 디자인 화면이나 미리보기 화면에서 한글이 정상적으로 보이는지 확인합니다. 안드로이드는 프로젝트의 기본구조와 실행방식을 이해하면 수정작업을 쉽고 간단히 할수 있기에 기본구조를 이해하는것이 중요합니다.

 

 

 

2. 소스 글자 크기 키우고 줄 번호 넣는 방법 : 안드로이드 스튜디오 상단 메뉴 [File-Settings] 선택후 설정화면에서 [Editor-Colors & Fonts-Font] 선택합니다. 설정의 'Duplicate' 선택후 'myfont'라는 이름으로 저장합니다. 'Primary font' 항목은 'Consolas'를 선택하고, 'Size'는 '18' 입력후 아래쪽 [OK] 버튼을 클릭합니다.이렇게 설정하면 XML 파일을 열때 글자가 크게 표시됩니다. 만약 줄번호 보이게 하고 싶다면 소스코드 보이는 왼쪽 회색영역에 마우스 갖다 대고 오른쪽 마우스를 클릭하면 팝업 메뉴가 보이며 [Show Line Numbers] 체크합니다.

 

 

 

 

 

 

 

 

 

3. 버튼을 하나 만들고 그 버튼을 눌렀을때 정보를 보여 주는 기능을 넣는 방법 : /res/layout/activity_main.xml 파일이 화면에 보이는 형태를 결정하며 그안의 <TextView>라는 태그는 화면 글자를 참조하는 속성이 있습니다. 이 태그를 간단하게 <Button> 이라는 이름의 태그로 바꾼후 실행합니다. 소문자 입력하면 오류가 생기니 태그의 대소문자에 유의하세요. 화면에 버튼이 하나 만들어졌습니다. 안드로이드는 기초 코드부터 디자인 패턴을 많이 적용하여 쉽게 이해하며 프로그래밍 할수 있습니다. Button 이 TextView를 상속하고 있으므로 정의된 버튼은 <TextView> 태그를 <Button> 태그로 바꾸어도 텍스트뷰 속성을 그대로 사용하므로 오류없이 우측 화면에 바뀌어 나타납니다. 

 

 

 

 

 

 

버튼을 만들었으니 이 버튼을 눌렀을때 어떤 메시지를 보여주는 기능을 넣습니다. 버튼을 사용한다는 것은 이벤트를 처리한다는 의미인데 기존의 표준 자바에서는 코드 상에서 이벤트를 처리합니다. 안드로이드에서는 표준 자바와 동일한 방식을 사용하는데 지금 만든 버튼은 /res/layout/activity_main.xml 파일 안에 있으므로 자바 소스가 아닙니다. 이 때문에 자바 소스에 이벤트 처리를 위한 코드를 추가 할수 없기에 추가 작업이 필요합니다. 자바 코드 상에서 버튼 이벤트 처리를 위한 과정은 다음과 같습니다. 

 

1) XML 레이아웃 파일의 버튼에 'on Click' 속성 값 넣기 : /res/layout/activity_main.xml 파일에서 정의된 버튼에 'on Click' 속성을 추가합니다. 화면 가운데 'activity_max.xml' 이름 탭 선택후 아래 [Design] 탭을 누르면 스마트폰 화면 모양이 보입니다. 화면에서 버튼 선택후 Properties 영역 'on Click' 속성의 값으로 'onButton1Clicked'라는 글자를 입력합니다. 이렇게 값을 지정하면 이 버튼이 클릭되었을때 'onButton1Clicked' 라는 함수(또는 메소드)를 찾아 실행하라는 의미가 됩니다. 스마트폰 화면 모양이 보이는 영역 아래쪽 [Text] 탭을 눌러보면 XML 원본코드가 보이는데 '<Button>' 으로 시작하는 태그안에 'android:on Click' 이라는 속성이 추가되어 있고 입력한 'onButton1Clicked' 라는 글자가 들어가 있는것을 알수 있습니다. 이렇게 코드가 변경된것은 버튼을 클릭했을때의 속성은 'android:on Click' 이라는 이름을 가진다는것을 의미합니다. 스마트폰 화면 모양이 보이는 곳에서 속성 값을 넣어주면 이 코드도 자동으로 바뀌어 집니다. 자동으로 추가되는 속성은 순서가 달라질수 있습니다. 디자이너 도구에서 속성을 지정하면 XML 원본에 해당 속성이 자동으로 추가 됩니다. 이때 태그에 추가된 속성은 순서가 다를수 있습니다. 예를 들어, android:on Click 속성은 android :layout_height 속성 아래에 들어갈수도 있고 android:text 속성 아래에 들어갈수도 있습니다.

 

 

 

 

 

 

 

2) 자바 파일에 이벤트 처리 메소드 추가하기 : MainActivity.java 라는 이름의 자바 파일을 열고 이벤트 처리 메소드를 추가합니다. 이벤트 처리 메소드의 이름은 위에서 넣은 'on Click' 속성의 값과 같아야 합니다. 코드 입력시 대소문자 띄워쓰기에 유의하여 입력합니다. Toast(토스트)는 안드로이드에서 작고 간단하게 메시지를 잠깐 보여줄수 있는 방법으로 익숙하지 않더라도 그냥 따라서 입력합니다. 이때 새로 추가된 Toast 클래스를 발견할수 없다는 의미로 Toast 밑에 줄이 생기는것을 볼수 있습니다. 또한 파일 이름이 표시된 탭에도 빨간 밑줄이 표시됩니다. 이 오류 표시줄을 없애려면 [Alt] + [Enter] 키를 몇번 눌러주면 됩니다. 즉 안드로이드 스튜디오에서 자동으로 필요한 클래스를 import 하는 코드를 넣어 Toast 밑에 있던 오류 표시줄이 없어지도록 합니다. 코드를 입력했을때 자동으로 import 되도록 만들수도 있습니다. 안드로이드 스튜디오에서는 코드가 입력되었을때 필요한 import 구문을 자동으로 넣을수 있는 기능을 제공합니다. 안드로이드 스튜디오 상단 메뉴들 중에서 [File-Setting]를 선택하여 보이는 설정 화면에서 왼쪽에 있는 [Editor-General-Auto Imports]를 선택합니다. 오른쪽 화면에서 'Optimize imports on the fly' 와 'Add unambiguous imports on the fly' 항목을 체크한후 아래쪽에 있는 [OK] 버튼을 클릭합니다. 이제부터는 코드를 입력할때마다 자동으로 처리되므로 오류 표시없어 넘어갑니다.

 

 

 


public void onButton1Clicked(View v) {        Toast.makeText(getApplicationContext(), "시작 버튼이 눌렸어요.", Toast.LENGTH_LONG).show();    }

 

 

 

위의 코드에서 볼수 있는 Toast 라는 클래스는 잠깐 보였다 없어지는 메시지를 표시할수 있도록 해주는 것으로 makeText() 메소드와 show() 메소드를 이용해 메시지를 보여 줄수 있습니다. 여기서는 버튼이 눌렸을때 '시작 버튼이 눌렸어요.' 라는 메시지를 보여 주도록 하였습니다. 코드가 오류 없이 완성되었다면 앱을 실행한후 화면에 보이는 버튼을 클릭합니다. 화면 아래쪽에 간단한 메시지가 보였다가 사라지는것을 확인할수 있습니다. 

 

 

 

 

안드로이드의 기본 구조를 이해하고 이용하는 과정과 화면에 있는 버튼을 클릭하는 이벤트 처리를 통해 기능들을 연결해 보았습니다. 이와 같은 과정을 통해 좀 더 많은 내용을 차근차근 해 볼수 있습니다.

 

 

3.3 여러 개의 버튼에 기능 추가하기
 
화면에 버튼을 추가하고 싶다면 버튼 태그를 하나 추가하고 기본적으로 들어가는 몇가지 속성을 그대로 넣어주면 됩니다. 버튼은 [Design] 탭에 보이는 스마트폰 화면에 직접 끌어다 넣을수도 있고 XML 코드에서 입력할수도 있습니다. 먼저 [Design] 텝에서 버튼을 추가하겠습니다. [activity_main.xml] 탭을 선택하면 보이는 화면에서 아래쪽 [Design] 탭이 선택되어 있는지 확인합니다. 스마트폰 화면이 보이면 원래 있던 [3D프린터 DIY연구소] 라는 버튼을 선택후 [Delete] 키를 눌러 삭제합니다. 디자인 화면 위쪽 아이콘중 눈 모양 아이콘과 자석모양 아이콘을 눌러 금지선이 표시되지 않는 상태로 변경합니다. 이후 오른쪽 Palette 영역에서 버튼을 끌어다 화면 왼쪽 상단에 추가합니다. [activity_main.xml] 탭을 더블클릭하면 가운데 영역부분이 화면 전체로 커지면서 좀더 집중하여 작업할수 있도록 합니다. 탭을 다시 한번 더블클릭하면 원래대로 돌아갑니다. 화면에 추가한 버튼이 선택된 상태에서 오른쪽 Properties 영역에서 text 속성을 찾아 'DIY연구소 접속하기'라는 값을 입력하고 [Enter] 키를 누릅니다. 그 다음에는 on Click 속성을 찾은후 'onButtonCicked'라는 값을 입력합니다. 
 

 

 

똑 같은 방식으로 버튼을 하나 더 추가합니다. 오류가 발생하지 않는 위치를 찾아서 버튼을 옮겨보기 바랍니다. 새로운 버튼을 추가한후 실행했을때 오류가 표시되는 경우가 있습니다. 이것은 새로운 버튼을 추가할때마다 제약(Constranint)이 자동으로 만들어져야 하는데 이 제약이 온전하게 만들어지지 않았기 때문인 경우가 많습니다. 이때는 버튼의 각 테두리에 있는 동그란 점을 끌어다가 화면의 벽면이나 다른 버튼의 테두리 쪽에 가져다 놓아야 합니다. 두번째 버튼은 첫번째 버튼의 오른쪽에 추가하고 두번째 버튼이 선택된 상태로 오른쪽 Properties 창에서 text 와 on Click 속성에 다음처럼 값을 입력합니다. text 속성에는 'DIY연구소 전화걸기'라는 값을 입력하고 on-Click 속성에는 'onButton2Clicked'라는 값을 입력합니다. 몇줄의 코드만으로 웹브라우저를 띄우거나 전화를 거는 이런 기능들은 기존 사요아던 언어에서는 보기 드문 것으로 이것을 가능하게 하는것이 바로 '인텐트(Intent)' 입니다. 인텐트란 내가 하고자 하는 행위를 의미하는 것으로 안드로이드에서는 인텐트를 이용하여 애플리케이션 구성 요소간에 데이터를 전달하거나 실행하려는 기능이 무엇인지 시스템에 알려줄수 있습니다. 간단히 생각하면 인텐트는 안드로이드 플랫폼에게 원하는 것을 말할때 전달하는 우편물 같은 것입니다. 웹브라우저는 안드로이드 단말(Device)에 이미 만들어져 제공되는 앱인데, 여러분들이 직접 만든 앱에서 안드로이드 단말에 "웹페이지를 띄워보고 싶어요." 라고 편지를 쓰면 그 편지를 단말에서 받아 웹브라우저에 전달하게 되고 웹브라우저는 그 편지를 받아 내용을 보고 그 내용에 맞는 웹페이지를 띄워 주게 됩니다. 안드로이드 스튜디오에서 모든 작업을 끝냈다면 [File-Close Project] 메뉴를 선택해서 프로젝트 창을 빠져나올수 있습니다. 여기서는 기존 프로젝트를 그대로 사용하면서 새로운 화면을 추가해 볼것이므로 프로젝트 창을 닫지 말고 다음 내용으로 넘어갑니다.
 

 

 

 

 

 

 

 

 

※ 참고사항 : 안드로이드스튜디오 와 에뮬레이터 동시 작동시 램(RAM)과 보조기억장치(HDD : Hard Disk Drive) 과부하로 램은 기존 4G 를 8G 로, HDD는 SSD(Solid State Drive) 로 성능 업그레이드가 필요하여 기존 프로젝트 파일명과 저장경로를 변경하였습니다. 파일명은 기존 diylab 에서 DIY LAB 으로, 저장경로는 C:/users/lge pc/Androidstudioprojects/diylab/..  에서 D:/App/.. 으로 변경하였습니다.

 

 

 
3-4. 새로운 화면 추가한 후 띄워주기
 
실제 앱에서는 내가 직접 새로운 화면을 하나 더 만들고 그 화면을 띄우는 경우가 많습니다. 새로운 화면을 만들때 액티비티(Activity)라는것을 만듭니다. 안드로이드에서는 하나의 화면을 액티비티라고 부르고 새로운 화면을 만들때마다 액티비티를 하나씩 만든다 생각하면 됩니다. 새로운 액티비티를 만들기 위한 가장 간단한 방법은 메뉴를 사용하는 것입니다. 왼쪽 프로젝트 영역에서 app 항목을 선택한 후 오른쪽 마우스 버튼을 누릅니다. 메뉴가 [New-Activity-Empty Activity] 메뉴를 선택합니다. 자바소스파일 하나와 XML 레이아웃 파일 하나가 만들어지고 앱 구성과 권한 등을 기술한 설명서인 AndroidManifest.xml 파일명의 매니페스트에 액티비티 정보가 자동으로 등록됩니다. 이후 메인 액티비티 버튼에 새로운 액티비티를 띄우기 위한 코드를 추가합니다. 수정한 소스코드를 저장한후 실행하면 세개의 버튼이 화면에 보입니다. 화면에 들어 있는 버튼들 중에서 세번째 버튼을 누르면 다음과 같은 화면이 나타납니다. 또한 새로 띄워진 화면에서 [돌아가기] 버튼을 누르면 언래의 메인화면으로 돌아가는 것도 확인할수 있습니다. 경우마다 화면 아래 쪽에 토스트 메시지가 잠깐씩 나타납니다. 버튼을 클릭해서 새로운 화면을 띄우고 또 다시 원래의 화면으로 돌아가는 기능까지 만들어 보았습니다. 첫번째 앱이라고는 하지만 이 기능들은 여러분이 직접 앱을 만들때 항상 사용하는 가장 기본적이면서도 중요한 기능입니다. 
 
※ 참고사항 : MenuActivity.java 파일의 'Toast' 속성에 빨간줄이 표시되며 에러 메시지가 뜨면 [Alt]+[Enter] 키를 누르면 'import' 되며 에러 문제가 해결됩니다.
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
3-5. 새로운 프로젝트를 만들때 다른 종류의 화면 선택해 보기
 
앞에서 새로운 프로젝트 만들때 새로 만들어질 첫 화면의 종류를 'Empty Activity' 로 선택했습니다. 이번에는 새로운 프로젝트 만들때 'Basic Activity' 를 선택합니다. 안드로이드 스튜디오 상단 [File-Close Project] 메뉴를 선택후 'DIY LAB' 프로젝트를 위한 창이 없어지며 시작화면이 나타납니다. 'DIY LAB' 프로젝트는 [D:/APP] 폴더에 'Diylab1' 프로젝트는 [D:/Diylab1] 폴더에 파일이 생성됩니다. 'res/layout' 폴더 안에 두개의 XML 파일이 만들어져 있다는 점이 다릅니다. 두개의 XML 파일이 만들어진 이유는 'activity_main.xml' 이라는 빈 화면 위에 'content_ain.xml' 이라는 것이 올라와 있도록 만들었기 때문입니다. 이때문에 앱을 사용하는 사람들에게는 'content_main.xml' 에서 구성한 화면이 보여지게 됩니다. 자바소스파일인 MainActivity.java 파일을 열어보면 좀더 많은 코드가 만들어져 있습니다. 새로운 프로젝트를 만들때 화면의 종류를 선택하는 창에서 기본적으로 'Empty Activity'를 선택하겠지만 가끔씩 'Basic Activity' 를 선택하는 경우도 있을것 입니다. 화면의 'Hello World!' 는 '3D프린터 DIY연구소' 로 변경후 안드로이드 스튜디오 상단의 [Run] 아이콘 클릭하여 앱을 실행하면 다음과 같은 화면을 볼수 있습니다
 

 

 

 

 

 

 

 

 

 

 

 

이번에는 새로운 프로젝트를 만들때 'Navigation Drawer Activity' 를 선택합니다. 안드로이드 스튜디오 상단의 [File-Close Project] 메뉴 선택후 'Diylab1' 프로젝트 창을 닫고 시작화면으로 돌아갑니다. 새로운 프로젝트 만드는 세번째 과정입니다. 시작화면 가장 위쪽 'Start a new Android Studio project' 항목 선택후 'Application name' 항목에 'DIYLAB2' 입력후 아래쪽 [Next] 버튼 클릭합니다. 'Add an Activity to Mobile' 화면에서 'Navigation Drawer Activity' 를 선택합니다. 'res/layout' 폴더에 XML 파일이 네개 만들어집니다. 앱을 실행할때 화면 왼쪽위에 있는 아이콘을 클릭하면 왼쪽에서 슬라이딩 메뉴가 나타납니다. 간단하게 프로젝트 안에 만들어질 화면의 종류만 바꾸어도 이렇게 자동으로 만들어지므로 편리하게 사용할수 있습니다.

 

※ 참고사항 : 

 

프로젝트 만들기 : 안드로이드 스튜디오에서 안드로이드 프로젝트를 만들수 있습니다.

setContentView() : 화면에 무엇을 보여줄지를 결정하는 함수(메소드) 입니다.

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

/res/layout/activity_main.xml : 위의 R.layout.activity_main 에 해당하는 프로젝트 안의 파일로, 화면을 구성할때 사용합니다.

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

android:on Click 속성 : 버튼을 클릭했을때 어떤 메소드를 실행할것인지 간단하게 지정할수 있는 속성입니다.

Intent : 어떤 기능을 실행할지 지정하기 위해 사용합니다.

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

 

 

 

 

 

 

 

 

 

☞ 4. 안드로이드 프로젝트와 개발도구

 

안드로이드 스튜디오의 프로젝트는 어떻게 구성되어 있고 내부적으로 어떤 과정을 거쳐 빌드되는 것인지 또한 안드로이드 SKD 에 포함되어 있는 개발 도구에 대해서도 공부합니다. 

 

☞ 4-1. 안드로이드 최근 버전의 주요 특징

☞ 4-2. 안드로이드 프로젝트

☞ 4-3. 안드로이드 SDK의 개발 도구

 

 

4-1. 안드로이드 최근 버전의 주요 특징

 

안드로이드 플랫폼의 최근 버전에서 추가된 특징들은 개발자가 좀 더 다양한 기능을 활용할수 있도록 해줍니다. 각 버전의 개략적인 내용을 공부합니다.

 

 

1) 안드로이드 4.0 (아이스크림 샌드위치) : 스마트폰과 태블릿의 통합, 하드웨어 버튼을 버추얼 홈 키로 변경, 위젯기능 강화, 카메라로 얼굴 인식하여 잠금해제하는 얼굴 인식기능 강화, 음성인식 텍스트 실시간 입력, 두개의 단말을 가까이 대면 정보공유 할수있는 NFC 빔 공유, WiFi 다이렉트 기능, 2D 그래픽 하드웨어 가속 기본지원.

2) 안드로이드 4.3 (젤리빈) : 그래픽 성능향상, 텍스트와 폰트기능 강화, 확장 가능한 알림 메시지, 위젯 크기 변경가능, 네트워킹 기능강화, 웹뷰 기능강화, 푸시 메시지 상용화.

3) 안드로이드 4.4 (킷캣) : 저사양 단말에서도 동작할수 있도록 최적화, 프린팅 프레임워크, 저장공간 접근 프레임워크, 센서배치처리, SMS 프로바이더 변경, 전체화면 모드, 애니메이션을 위한 트랜지션 프레임워크, 크롬 기반 웹뷰.

4) 안드로이드 5.0 (롤리팝) : 새로운 디자인, 시스템 성능향상, 그래픽 성능향상, 강해진 멀티미디어 기능, 업데이트 가능 웹뷰.

5) 안드로이드 6.0 (마시멜로) : 런타임 권한 부여, 지문인식 스캐너 지원, USB Type-C/3.1 지원, 앱백업과 복원, 엔터프라이즈 업무지원, UI 와 메모리 관리자의 변화.

6) 안드로이드 7.0 (누가) : 멀티윈도우 지원, 알림기능 확장, 단말성능향상, 빠른설정타일API. 

 

4-2. 안드로이드 프로젝트

 

안드로이드 스튜디오는 앱을 만들기 위해 필요한 프로젝트를 자동으로 만들업 줍니다. 프로젝트는 자바 소스코드는 물론 이미지와 같은 리소스 파일 등을 체계적으로 관리할수 있도록 트리 형태로 구성되는데 다음과 같은 폴더들을 포함하고 있습니다. 필요할때마다 위쪽의 탭을 달리 선택하여 볼수 있지만 보통은 [Android] 탭을 그대로 둔채 사용합니다. 폴더들 중에서 자주 사용하는 폴더는 '/java' 오 '/res' 폴더이며, 'AndroidManifest.xml' 파일도 애플리케이션을 구성할때 자주 편집하게 됩니다.

 

1) /java : 자바소스파일이 들어 있는 폴더로 '/app/src/main' 폴더안에 있고, 표준자바와 마찬가지로 패키지명과 동일한 하위 폴더들이 만들어집니다.

2) /res : 리소스 파일이 들어 있는 폴더로 '/app/src/main' 폴더안에 있고, XML 레이아웃, 그림파일, 문자열을 정의한 XML 파일등이 들어 있는데 각 파일의 유형에 따른 하위 폴더들이 만들어져 있습니다. 예로 XML 레이아웃 파일은 'res/layout' 폴더, 그림 파일은 '/res/drawable' 폴더, 문자열 정의 파일은 '/res/values' 폴더에 들어 있습니다. 

3) /build : 개발환경이 자동으로 만드는 소스파일이 들어가는 폴더로 프로젝트 폴더와 '/app' 폴더에 있습니다.

4) /assets : 처음부터 만들어지는 폴더는 아니고, 동영상 파일 등의 처리하는 파일들을 저장합니다.

5) AndroidManifest.xml : 앱에 대한 정보를 담고 있는 파일로 '/app/src/main' 폴더안에 있으며, 매니페스트라고 부르고 애플리케이션 구성요소나 권한 등의 정보를 정의합니다. 

 

 

 

 

소스파일이 프로젝트로 묶여 빌드되기까지 : 안드로이드 스튜디오는 그레이들 (Gradle) 이라는 것을 이용하여 빌드 과정을 자동으로 진행하며 코드나 리소스 정보가 바뀔때마다 자동으로 빌드 결과를 만듭니다. 빌드 과정의 내부를 살펴보면 자바 코드와 리소스 크리고 매니페스트가 빌드되어 하나의 앱으로 만들어 집니다. 자바소스파일은 표준자바와 마찬가지로 클래스 파일로 빌드된후 하나의 앱으로 만들어지는데 이렇게 만들어진 파일들은 안드로이드의 런타임에서 실행될수 있는 포맷으로 변환됩니다. 배포를 위해 만들어지는 파일은 'apk' 라는 확장자를 가지고 있습니다. 파일은 배포를 위한 과정인 패키징 (Packaging) 과정이 끝나면 만들어지며 플랫폼에 설치하면 런타임에서 실행될수 있습니다. '안드로이드 스튜디오에서 앱작성 - 자바에서 빌드 (컴파일) - 바이트코드로 변환 및 패키징 - ART 런타입, 안드로이드 커널 (Linux)' 다이아그램으로 프로젝트 빌드과정이 표현됩니다. 개발도구와 안드로이드 프로젝트 상세빌드는 과정은 아래와 같습니다. SDK에서 제공하는 개발 도구들은 항상 필요한것은 아니고 필요에 따라 사용하는 것입니다. 프로젝트 구성과 빌드과정을 간단하게 살펴보면 빌드과정에서 build.gradle 파일 안에 있는 설정 정보가 사용되고, dx 나 aapt 와 같은 개발도구들도 사용됩니다. 이 개발 도구들은 개발단계에서 개발자들이 필요에 따라 사용할수 있도록 제공되는 것이지만 안드로이드 스튜디오에서 자동으로 처리하는 부분이 많으므로 자세하게 알아보지 않아도 앱을 만드는데는 불편함이 없습니다. 내부에서 처리되는 과정을 자세하게 설명하고자 안드로이드 SDK에서 제공하는 개발도구들을 공부합니다.

 

1) compileSdkVersion (예 : 25) : 컴파일할때 사용할 SDK (Software Development Kit : 소프트웨어 개발키트) 버전을 지정합니다. 값이 25로 되어 있다면 API (Application Programming Interface : 운영체제와 응용프로그램 사이 통신에 사용되는 언어나 메시지 형식) 버전이 25인 SDK 를 이용해 컴파일한다는 것을 의미합니다.2) buildToolsVersion (예 : 25.0.1) : 빌드도구의 버전을 지정합니다. SDK 매니저에서 설치한 Tools의 항목중 Android SDK Build-tools 모듈의 버전과 일치해야 합니다.3) minSdkVersion (예 : 15) : 프로젝트가 지원하는 최소 SDK 버전을 지정합니다. 값이 15로 되어 있다면 API 버전이 15 이전의 단말에서는 앱이 동작하지 않습니다.4) targetSdkVersion (예 : 25) : 실행을 위해 검증한 SDK가 어떤 것인지를 지정합니다. 값이 25로 되어 있다고 하더라도 하위버전인 24나 22 버전에서 동작하지 않는것은 아닙니다. 하지만 SDK 매니저에 API 버전이 25인 모듈은 설치되어 있어야 합니다.5) ... appcomat ... (예 : 25.0.1) : dependencies 안에 들어 있는 항목들 하나로 최근 API 에서는 지원하지 않는 예전 단말들을 지원하기 위한 추가 클래스들이 들어가 있는 라이브러리를 지정합니다. 보통 appcompat 라는 이름의 모듈로 제공됩니다.

 

 

4-3. 안드로이드 SDK의 개발 도구

 

개발환경 구축과정중 설치한 SDK 폴더에는 개발도구, 시스템이미지, 애플리케이션 샘플, 문서 내용들이 있습니다. SDK 폴더는 <사용자 폴더>/AppData/Local/Android/sdk 폴더를 찾아보면 됩니다. 예를 들어 사용자 계정 이름이 'DIYLAB2' 이라면 'C:/Users/DIYLAB2/AppData/Local/Android/sdk' 폴더 또는가 됩니다. 만약 사용자 폴더 아래에 AppData 폴더가 보이지 않는다면 숨겨져 있기 때문입니다. 파일 탐색기의 메뉴중에서 [보기-옵션-폴더 및 검색 옵션변경] 메뉴를 눌러보면 파일 탐색기의 옵션을 조절할수 있는 대화상자가 표시됩니다. [보기] 탭을 누른후 '숨김파일, 폴더 및 드라이브 표시' 체크박스를 체크하면 AppData 폴더가 나타납니다.

 

 

tools 폴더 (개발도구 폴더)는 개발 도구들이 들어 있는 폴더로 앱을 만드는 과정에서 코드와 UI를 개발/디버깅하기 위해 필요한 여러가지 개발 도구가 들어 있습니다. platforms 폴더에는 안드로이드 플랫폼들을 위한 시스템 이미지들이 들어 있으며, samples 폴더에는 다양한 샘플 코드와 튜토리얼을 위한 애플리케이션 프로젝트가 들어 있습니다. docs 폴더에는 문서들이 들어 있는데 도움말이나 API 레퍼런스 등을 찾아 볼수 있습니다. AppData 폴더가 보이지 않는다면 숨겨져 있기 때문으로, 파일 탐색기의 메뉴중 [보기-옵션-폴더 및 검색옵션 변경] 메뉴를 눌러 파일탐색기 옵션을 조절하는 대화상자에서 [보기] 탭 누른후 '숨김파일, 폴더 및 드라이브 표시' 체크박스를 체크하면 AppData 폴더가 나타납니다. UI 뷰어 (UI Automator Viewer) 를 통하여 사용자 인터페이스 구성을 확인할수 있으며 개발도구는 안드로이드 스튜디오 화면의 메뉴중 [Tools-Android] 메뉴를 눌러보면 알수 있습니다. 안드로이드 디바이스 모니터 (Android Device Monitor) 화면과 에뮬레이터 제어 (Emulator Control) ADB (Android Debug Bridge)는 안드로이드 개발 환경에서 매우 중요한 역할을 합니다. ADB는 플랫폼 (실제 단말이나 에뮬레이터)과 개발 환경을 연결해 주므로 개발 단계에서 오류수정, 프로그램의 잘못을 찾아내고 고치는 디버깅 작업을 하거나 실제 단말에 개발한 애플리케이션을 설치해 테스트 할때 사용됩니다. 또한 플랫폼에 연결되어 있으므로 필요한 명령어를 실행시키는 등의 역할을 수행할수도 있습니다. 디버그 브리지 (ADB, Android Debug Bridge) 를 이용하여 단말과 PC를 연결합니다.

 

 

 

 

 

 

 

 

☞ 5. 앱장터, Play 스토어에 앱 등록하기

 

개발자는 자신이 만든 앱을 앱 장터에 올려 판매할수 있습니다. 아이폰의 앱 장터는 '앱 스토어 (App Store)' 이고, 안드로이드의 앱 장터는 'Play 스토어 (Play Store)' 입니다. 사용자는 무료나 유료로 앱을 다운로드 할수도 있습니다. 개발자는 앱 안에 광고를 삽입하거나 유료로 앱을 등록하여 수익을 올릴수 있으므로 1인 스타트업 사업가로 변신할수도 있습니다. 여러분도 직접 만든 앱을 손쉽게 등록하고 판매할수 있습니다. 이번 장에서는 Play 스토어가 무엇이고 어떻게 앱을 등록하여 판매하면 되는지를 공부합니다. 'Play 스토어에 앱을 등록하는 과정은 개발자가 '설치 패키지 서명' 도구 안드로이드 스튜디오로 작성한 안드로이드 프로젝트 설치파일과 'apk' 서명된 설치파일을 'Play 스토어 개발자 콘솔 페이지에 등록' Google play 에 으로 등록합니다. 

 

☞ 5-1. 안드로이드의 앱 장터, Play 스토어

☞ 5-2. 애플리케이션 판매를 위한 개발자 등록하기

☞ 5-3. 서명된 설치 파일 만들기

☞ 5-4. Play 스토어에 등록하기

 

 

5-1. 안드로이드 앱 장터, Play 스토어

 

스마트폰은 다양한 앱 중에서 입맛에 맞는 앱을 다운로드하고 설치하여 사용할수 있습니다. 이렇게 스마트폰의 확장성을 높여주는 통로가 바로 앱 장터입니다. 앱스토어(App Store)는 아이폰앱을 다운로드할수 있는 앱장터로 애플의 아이폰에서 사용하면서 유명해졌으며, 안드로이등서는 Play 스토어라는 앱장터를 제공합니다.

 

[아이폰의 앱 스토어 화면]

 

 

 

[안드로이드의 Play 스토어 화면]

 

 

안드로이드폰에는 기본으로 탑재되어 있는 Play 스토어 이외에도 이동통신사에서 제공하는 one Store 와 같은 다른 장터도 있습니다. 안드로이드 Play Store 는 전세계 사용자들이 다운로드 할수 있는 통로라면 one Store 는 국내 사영자에게 특화된 통로이므로 각각 장점과 단점이 있습니다. 여기서는 만든앱을 Play  스토어에 등록하여 다른사람들이 다운로드 할수 있는 방법을 공부합니다.

 

5-2. 애플리케이션 판매를 위한 개발자 등록하기

 

Play 스토어에 앱을 등록하는 과정은 쉽고 간단합니다. 다만 여러분이 직접 만든 앱을 등록하려면 먼저 개발자 등록 단계부터 진행해야 합니다. 개발자가 Play 스토어에 앱을 등록하기 위한 구글 플레이 개발자 콘솔 페이지 (☞ http://play.google.com/apps/publish/)로 이곳에서 개발자 등록을 합니다. 구글계정이 있어야 로그인 할수 있으니 만약 구글 계정이 없다면 새로 만든후 로그인 합니다. 25달러를 지불해야 개발자로 등록할수 있습니다. 

 

 

 

 

※ 참고사항 : 비자, 마스터 카드 등의 지정된 신용카드 또는 체크카드만 가능한데, 저의 신용카드는 유니온페이 신용카드로 개발자 등록이 불가능하여 카드 교체후 등록 하겠습니다. 

 

☞ 6. 실제 단말 연결하기

 

앱을 테스트하기 위해 사용하는 에뮬레이터는 실제 단말의 기능을 그대로 가지고 있지만 PC에서 실행되므로 실제 단말과 다르게 작동할수 있습니다. 특히 멀티미디어 기능과 같이 단말에 들어가 있는 코덱 등 단말마다 다를수 있는 기능은 실제 단말에서 테스트해야 정상 동작 여부를 확인할수 있습니다. 이번에는 실제 단말을 연결하는 방법을 공부합니다. 어떤 단말을 사용하는가에 따라 단말기 연결 방법이 다를수 있습니다. 여기서는 국내에서 많이 사용되는 대표적인 삼성전자 갤럭시 S 시리즈를 연결하는 방법을 중심으로 설명합니다. 하지만 연결하는 과정을 한번 따라하면 다른 단말기도 어렵지 않게 연결할수 있습니다.

 

 

 

☞ 6-1. PC에 드라이버 설치하기

☞ 6-2. 단말 연결하고 설정 바꾸기

 

 

6-1. PC에 드라이버 설치하기

 

단말기는 PC의 외부 장치로 연결되는 것이기 때문에 드라이버를 먼저 설치해야 합니다. 삼성 갤럭시 S 시리즈단말의 드라이버를 다운로드 받을수 있는 사이트 ( 

http://local.sec.samsung.com/comLocal/support/down/kies_main.do?kind=usb) 화면입니다. 

드라이버를 다운로드 받은후 설치파일을 클릭하면 설치가 시작됩니다. 삼성전자의 통합 드라이버는 압축 파일로 되어 있으며 압축을 풀면 실행할수 있는 파일이 들어 있습니다. 

 

 

 

 

 

 

6-2. 단말 연결하고 설정 바꾸기

 

드라이버 설치후 USB 케이블을 이용해 단말과 PC를 연결합니다.실제 단말기를 USB로 연결하기 위해서는 단말기의 설정부분에서 바꾸어야 하는 부분이 있습니다. 갤럭시 S6 플러스 단말에서 설정하는 과정을 설명합니다. 단말기가 연결되면 PC는 드라이버를 이용해 장치를 인식하게 되는데 그 과정에서 아래와 같은 화면들을 볼수 있습니다. PC에서 장치 설치가 끝났다고 알려주면 안드로이드 스튜디오 상단의 [Tools-Android-Android Device Montor] 메뉴를 눌러 안드로이드 디바이스 모니터 화면이 띄워지지 않으면 [View-Tool Windows-Device File Explorer] 메뉴를 눌러 안드로이드 디바이스 모니터 화면을 띄웁니다. PC와 연결된 단말들이 보이고 그 단말에서 실행되는 프로세스들이 보이게 됩니다. 

 

 

 

 

 

 

 

 

 

 

 

 

 

※ 참고사항 : 안드로이드 스튜디오 프로젝트 저장, 불러오기 방법을 소개합니다. 작업했던 PC가 아닌 다른 장소에서 쉽게 불러올수 있습니다. 안드로이드 스튜디오 프로젝트 저장시 [File-Power Save Mode] 클릭후 저장합니다. 예로 D 드라이브에서 작업하였던 'DIYLAB' 프로젝트 폴더를 압축후 C드라이브 바탕화면에 복사후 붙여놓고 압축을 풉니다. 안드로이드 스튜디오 동작후 '기존 안드로이드 스튜디오 프로젝트 불러오기 (Open an existing Android Studio project)' 클릭후 C 드라이브 바탕화면의 DIYLAB 폴더내 Gradle Scripts 배치파일 선택합니다. 안드로이드 스튜디오의 모니터 화면이 보이면 좌측 탐색기에서 작업하였던 폴더를 찾아 DIYLAB.java 파일과 content_diylab.xml 파일을 선택하면 기존 D 드라이브에서 작업하였던 내용을 작업했던 PC가 아닌 다른 장소에서 쉽게 불러올수 있습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

사업자 정보 표시
| | | 사업자 등록번호 : -- | TEL : -- | 사이버몰의 이용약관 바로가기