1장. 안드로이드
모바일 운영체제의 일반적인 특징과 안드로이드의 주요 특징 및 전체적인 아키텍처를 소개한다. 안드로이드의 버전별 추가 기능에 대해 알아 보고 그 발전 과정을 정리한다.
1.1 스마트폰
1.2 안드로이드
1.3 안드로이드의 역사
2장. 안드로이드 스튜디오
안드로이드 학습을 위한 개발툴을 설치하며 원활한 실습을 위한 환경 설정 방법을 알아 보고 기본적인 개발툴 사용법을 학습한다. 프로젝트를 직접 만들어 보고 AVD를 통해 실행해 본다.
2.1 개발툴 설치
2.2 프로젝트 관리
2.3 개발 환경
3장. 첫 번째 예제
첫 번째 안드로이드 예제를 작성하고 마법사가 생성하는 프로젝트의 구조를 분석해 본다. 샘플 예제 컴파일 방법, 도움말을 구하는 방법을 소개한다.
3.1 프로젝트 제작
3.2 프로젝트 분석
3.3 샘플 예제
4장. 뷰
안드로이드는 화면에 직접 출력하는 대신 레이아웃과 뷰를 통해 UI를 구성한다. 이 장에서는 안드로이드의 화면을 채우는 가장 기본적인 요소인 뷰의 일반적인 특징에 대해 소개하고 대표적인 몇 가지 위젯의 상세한 속성을 실습한다. 또한 배포 예제의 형식과 사용 방법을 설명한다.
4.1 뷰와 뷰그릅
4.2 기본 위젯
4.3 배포 예제
5장. 레이아웃
리니어를 통해 레이아웃을 배치하는 방법과 차일드 뷰를 배치하는 방법에 대해 학습하고 그외 레이아웃을 소개한다. 안드로이드의 UI를 구성하는 가장 기본적이면서도 중요한 실습이다.
5.1 레니어 레이아웃
5.2 렐러티브 레이아웃
5.3 기타 레이아웃
6장. 레이아웃 관리
레이아웃을 관리하는 고급 기법과 레이아웃 파라미터에 대해 실습한다. 또한 새로 추가된 그리드 레이아웃을 활용하는 방법에 대해 연구한다. 이 장을 통해 각 레이아웃의 상세한 사용 방법과 레이아웃을 조합한 응용 방법을 터득할 수 있다.
6.1 레이아웃 관리
6.2 레이아웃 파라미터
6.3 그리드 레이아웃
7장. 출력
이 장에서는 Canvas와 Paint 객체를 통해 화면에 원하는 도형을 그리고 속성을 변경하는 기본적인 방법과 셰이더를 이용한 고급 채색 방법에 대해 소개한다. 또한 토스트로 메시지를 출력하는 방법과 스피커를 통해 소리를 출력하는 방법, 진동을 출력하는 방법에 대해서도 알아보고 변경된 퍼미션 모델을 소개한다.
7.1 캔버스
7.2 그리기 객체
7.3 셰이더
7.4 그 외의 출력
7.5 퍼미션
8장. 이벤트
GUI 운영체제는 이벤트를 받아 동작한다. 이 장에서는 이벤트를 처리하는 여러 가지 형식과 각 형식의 장단점에 대해 상세하게 연구하고 기본적인 이벤트에 대한 실습을 한다. 사용자의 입력을 자유자재로 처리하기 위해서 반드시 습득해야 하는 중요한 기술이다.
8.1 이벤트 핸들러
8.2 여러 가지 이벤트
9장. 메뉴
메뉴는 사용자의 명령을 받아들이는 가장 기본적인 장치이다. 옵션 메뉴와 컨텍스트 메뉴를 작성 및 출력하고 메뉴를 통해 프로그램의 현재 상태를 표시할 수 있다.
9.1 메뉴
9.2 메뉴의 편집
10장. 개발 환경
중간 규모의 기억력 게임을 분석해 봄으로써 지금까지 배운 내용을 총정리하며 개발툴에 대한 고급 사용법을 익힌다. 이 장까지가 안드로이드의 기초에 해당한다.
10.1 실습 예제
10.2 개발툴
11장. 기본 위젯
사용자를 직접적으로 대면하는 위젯은 안드로이드의 UI를 구성하는 부품이다. 가장 기본적인 위젯인 TextView를 통해 위젯의 일반적인 특징과 프로그래밍 방법을 상세하게 연구해 보고 버튼의 사용 방법을 익힌다. 이 장을 통해 안드로이드 위젯의 계층 구조와 보편적인 특성을 익힐 수 있다.
11.1 리소스
11.2 텍스트뷰
11.3 버튼
11.4 이미지뷰
12장. 어댑터뷰
어댑터로부터 데이터를 공급 받아 화면에 출력하는 리스트뷰, 스피너 등의 고급 위젯 사용 방법을 소개한다. 어댑터뷰로 대량의 정보를 화면에 출력하고 관리한다.
12.1 리스트뷰
12.2 항목 뷰
12.3 어댑터뷰
13장. 고급 위젯
작업 단계를 표시하거나 입력 받는 프로그래스바, 시크바 등을 연구한다. 시간, 날짜를 보여 주거나 입력받는 위젯, 기타 고급 위젯을 소개하고 위젯을 이용한 종합 실습 예제로 스포츠 경기 점수판 프로젝트를 분석한다. 최신 SDK에 새로 추가된 위젯에 대해서도 요약적으로 설명한다.
13.1 프로그래스바
13.2 날짜와 시간
13.3 기타 위젯
13.4 추가 위젯
14장. 커스텀 위젯
기존 위젯을 변경하여 실제 프로젝트에 바로 사용할 수 있는 커스텀 위젯을 제작하는 방법을 익힌다. 위젯이 상위의 뷰그룹과 통신하는 방법을 연구해 볼 수 있으며 커스텀 속성을 통해 위젯의 활용성을 높이는 방법에 대해서도 알아본다.
14.1 기존 위젯 변형
14.2 새로운 위젯
15장. 리소스 관리
안드로이드는 다양한 화면 크기와 밀도를 지원한다. 이 장에서는 장비 호환성을 확보하기 위한 대체 리소스 작성법과 화면 다양성에 대처하는 방법을 학습한다.
15.1 대체 리소스
15.2 화면 다양성
15.3 화면 크기
16장. 대화상자
대화상자는 사용자와 통신하는 장치이다. 이 장에서는 사용자에게 메시지를 전달하는 방법, 사용자에게 질문을 하고 응답 결과에 따라 프로그램의 동작을 결정하는 방법 등을 익힌다.
16.1 AlertDialog
16.2 대화상자 활용
16.3 대화상자 고급
17장. 액티비티
안드로이드의 화면 하나는 액티비티로 구성되며 액티비티는 안드로이드 응용 프로그램을 구성하는 가장 중요한 컴포넌트이다. 인텐트를 통해 액티비티끼리 통신하는 방법과 액티비티의 생명 주기를 관리함으로써 상태를 저장하는 방법에 대해 연구해 본다.
17.1 액티비티
17.2 생명주기
17.3 복잡한 액티비티
18장. 프로세스
액티비티보다 상위의 개념인 태스크 개념과 태스크를 관리하는 고급 속성, 인텐트의 플래그 등을 연구한다. 액티비티 하위의 윈도우를 응용하는 여러 가지 고급 기법도 소개한다.
18.1 프로세스
18.2 Window
18.3 패키지 관리
19장. 스레드
안드로이드는 멀티 스레드를 지원하는 운영체제이다. 이 장에서는 스레드를 생성하는 방법과 핸들러를 통해 스레드끼리 통신하는 방법 등을 소개하고 스레드를 활용하여 작업을 스케줄링하고 ANR을 회피하는 방법에 대해서 연구해 본다.
19.1 스레드
19.2 스레드의 활용