티스토리 뷰

책의 내용은 정말 두껍습니다. 따라서, 간단한 책 한권을 먼저 정독하고 모르는 부분을 이 책으로 채워 나가면 더할 나위 없을 거 같습니다. 설명들이 상세하게 기술 되어 있어서 동작 원리에 대해 정확히 이해 할 수 있고  내부 동작이나 스레드 관리까지 상세히 적혀 있어서 자바를 응용하여 공부하기에도 좋고 실질적인 앱을 만들기에도 좋은 책입니다. 안드로이드 책 중 기본 서적  안드로이드 프로그래밍 정복 강추 합니다.

안드로이드의 역사와 함께 발전해온 세 번째 판(版) 안드로이드 프로그래밍 정복 . 2010년에 초판이 출간된 이래 2011년 개정판을 거쳐 2013년 3판이 출간되었다. 2.3 진저브레드를 기준으로 한 개정판과 비교한다면 3판은 3.0 허니콤에서 추가된 모든 기능을 포괄하고 4.2 버전의 젤리빈을 기준으로 한다. 그동안 안드로이드에는 수많은 기능이 추가되었으며 기존 기능도 확장 및 수정되었다. 또 마법사를 비롯하여 에뮬레이터와 개발 환경도 많이 바뀌었다. 3판에서는 새 버전의 기능과 예제를 거의 대부분 추가했으며 기존 내용은 예제와 설명을 보강했다. 모든 예제는 4.1 및 4.2 버전에서 이상 없이 컴파일되도록 수정하였고 에뮬레이터와 2013년 3월 현재 발표된 모든 실장비에서 테스트했다.

안드로이드 프로그래밍 정복 3판, 1권 목차

1장. 안드로이드
모바일 운영체제의 일반적인 특징과 안드로이드의 주요 특징 및 전체적인 아키텍처를 소개한다. 안드로이드의 버전별 추가 기능에 대해 알아 보고 그 발전 과정을 정리한다.
__1.1 스마트폰
__1.2 안드로이드
__1.3 안드로이드의 역사

2장. 개발 툴 설치
안드로이드 학습을 위한 개발툴을 설치하며 원활한 실습을 위한 환경 설정 방법과 업그레이드 및 재설치 방법을 알아 본다. 리눅스와 매킨토시에서의 개발툴 설치 방법도 소개한다.
__2.1 개발툴 설치
__2.2 설치 고급

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 그 외의 출력

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 스레드의 활용