이 책을 독자 여러분에게 소개하는 지금 가슴이 살짝 뛰는데요, 좀 우여곡절이 있었던 타이틀입니다. 이 책은 [Pro Android 2]를 번역한 책입니다. 사실은 이 책의 전 버전인 [Pro Android]를 계약을 했지만, 번역을 진행하는 도중 역자와 개인적인 사정으로 인해 계약이 파기되는 상황이 있어서 결국 1판을 못 내고 1년여의 시간이 흐른 뒤 2판을 내게 된 것이거든요. 결국 다른 분을 역자로 모셔서 2판을 진행했는데, 번역을 마치고 난 다음 보니 예상했던 것보다 내용과 구성이 훨씬 더 좋아 이렇게 기쁜 마음으로 소개를 하고 있습니다. ^^*
이번 책의 번역을 맡아주신 분은 『CSS 비밀 매뉴얼』, 『시스템 관리자를 위한 시간관리 전략』, 『Programming Flex 3』등을 번역하신 김지원 님입니다. 원서의 구성이 군더더기 없는 설명에 명확한 문체이긴 하지만, 원서의 내용을 오류 없이 잘 전달하였을 뿐 아니라 최신 버전인 SDK 2.2에서 코드 전체를 테스트한 후 수정/변경하여 책에 실어주었고, 국내 독자들을 위해 SDK 2.2의 주요 업데이트 사항들, 공부하면서 참고할 만한 사이트와 자료들을 따로 정리하여 부록으로 실어주셨습니다. 이 자리를 빌어 다시 한 번 감사의 말씀을 드립니다.
오늘 오후부터 아래 다섯 곳의 인터넷서점을 통해 예약판매를 시작합니다. 900페이지가 넘는 바이블에 가까운 책이라 정가 산정에 어려움이 좀 있었지만, 그래도 독자분들에게는 부담이 될 수밖에 없을 것 같습니다. 지금까지의 안드로이드 책들 중 가장 비싼 40,000원으로 책정되었으니까요. ㅠㅠ 출판사에서 드리고 싶은 말씀은, 최근의 제작비 증가에 비해서는 다소 착한 가격으로 책정하였답니다. 양해 부탁드립니다. 그리고 또 하나 말씀드린다면, 실제 책을 보시면 절대 책 값이 아깝다는 느낌은 들지 않을 것 같습니다. 그래도 아깝다는 분들을 있을까 싶어 예약판매 기간에 구입하시는 분들에게는 3,000원 할인쿠폰을 제공해드립니다. ^^
안드로이드를 처음 접했던 역자 김지원 님이 이 책을 번역하면서 완벽하게 마스터하셨다는 블로그 글을 한 번 읽어보세요. 그리고 아래에 적어 드린 역자 머리말 중 일부를 보시면 책의 진가를 짐작하실 수 있을 것 같네요.
(중략) 이 원서를 번역하면서 근래의 다른 많은 원서들과 달리 전체적으로 깔끔하고 군더더기 없는 설명이 마음에 들었다. 간결한 문체는 자칫 부실한 내용을 낳는 경우가 있는데, 이 책은 중요한 내용의 누락이 없으며 문체도 간결하고 전체적인 구성도 체계적이다. 이 책은 공동 저자가 3명이지만 배가 산으로 가지 않고 웬만한 1인 저술서와 비교해서 오히려 나을 정도의 통일성을 유지하고 있다는 점에서도 여러 차례 다듬어진 느낌이다. 실용성 면에서 각 기본 주제별 예제도 충실하고, 안드로이드를 처음 공부하기에 내용 설명이 아주 쉽게 되어 있는 책이라서 입문자에게 아주 적합하다. (중략)
아래는 현재 예약판매를 하고 있는 인터넷서점들입니다. 아직 링크가 되지 않은 곳들은 등록이 되는 대로 링크를 걸도록 하겠습니다. 3000원 할인쿠폰들도 제공하니 꼭 다운받아 사용하시기 바랍니다.
1장 안드로이드 플랫폼 소개 새로운 PC를 위한 새 플랫폼
안드로이드 역사
달빅 가상 머신 심층 탐구
안드로이드와 Java ME 비교
안드로이드 소프트웨어 스택
안드로이드 SDK로 최종사용자 애플리케이션 개발하기
안드로이드 에뮬레이터
안드로이드 UI
안드로이드 기본 구성요소
고차원적 UI 개념들
서비스 구성요소
미디어와 전화통신 구성요소
안드로이드 자바 패키지
안드로이드 소스코드 활용
핵심정리
2장 시작하기 환경 구성하기
JDK 6 다운로드
이클립스 3.5 다운로드
안드로이드 SDK 다운로드
ADT 설치하기
기본 구성요소
뷰
액티비티
인텐트
콘텐트 프로바이더
서비스
AndroidManifest.xml
안드로이드 가상 기기
Hello World!
안드로이드 가상 기기와 SDK 버전
안드로이드 애플리케이션의 구조
노트패드 애플리케이션 분석
애플리케이션 로딩 및 실행
애플리케이션 해부
애플리케이션의 수명주기 검사
디버깅
핵심정리
3장 리소스, 콘텐트 프로바이더, 인텐트
리소스
문자열 리소스
레이아웃 리소스
리소스 참조 문법
나중을 위해 고유 리소스 ID 정의하기
컴파일 리소스와 미 컴파일 리소스
주요 안드로이드 리소스
임의의 XML 리소스 파일
미가공 리소스
애셋
리소스 디렉터리의 구조
콘텐트 프로바이더
안드로이드 내장 프로바이더
콘텐트 프로바이더의 구조
콘텐트 프로바이더 구현
인텐트
안드로이드 제공 인텐트
인텐트와 데이터 URI
범용 액션
엑스트라 정보
컴포넌트를 이용하여 직접 액티비티 호출하기
컴포넌트 설계 우수 사례
인텐트 카테고리
인텐트를 컴포넌트로 해독하는 공식
ACTION_PICK
GET_CONTENT 액션
부가 자료
핵심정리
4장 UI 제작과 컨트롤 사용
안드로이드 UI 개발
안드로이드 공통 컨트롤
텍스트 컨트롤
버튼 컨트롤
리스트 컨트롤
그리드 컨트롤
날짜와 시간 컨트롤
그 밖의 독특한 안드로이드 컨트롤
맵뷰 컨트롤
갤러리 컨트롤
스피너 컨트롤
레이아웃 관리자
LinearLayout 레이아웃 관리자
TableLayout 레이아웃 관리자
RelativeLayout 레이아웃 관리자
FrameLayout 레이아웃 관리자
각종 기기 환경에 맞게 레이아웃 사용자 정의
어댑터
SimpleCursorAdapter
ArrayAdapter
사용자 정의 어댑터 작성
계층 뷰어로 레이아웃 디버깅하고 최적화하기
핵심정리
5장 메뉴와 대화창 안드로이드 메뉴
메뉴 작성
메뉴 그룹
메뉴 항목에 반응하기
메뉴 검사를 위한 테스트 하니스 작성하기
다른 종류의 메뉴들
확장 메뉴
아이콘 메뉴
하위 메뉴
시스템 메뉴를 위한 예비
콘텍스트 메뉴
콘텍스트 메뉴용 뷰 등록
얼터너티브 메뉴
데이터 변화에 따라 달라지는 메뉴
XML 파일을 통해 메뉴 로딩하기
XML 메뉴 리소스 파일의 구조
XML 메뉴 리소스 파일을 메뉴에 주입
XML 기반 메뉴 항목에 반응
추가 XML 메뉴 태그 속성들
안드로이드 대화창
경고 대화창 설계
프롬프트 대화창 설계
안드로이드 대화창의 특성
프롬프트 대화창 재설계
관리 대화창
관리 대화창 프로토콜
비관리 대화창을 관리 대화창으로 개조
관리 대화창 프로토콜 단순화하기
핵심정리
6장 2D 애니메이션 프레임 단위 애니메이션
프레임 단위 애니메이션 구상하기
액티비티 작성
액티비티에 애니메이션 추가
레이아웃 애니메이션
트윈 애니메이션의 기본 종류
레이아웃 애니메이션의 테스트 하니스 구상
액티비티와 ListView 작성
ListView에 애니메이션 효과 주기
인터폴레이터 사용하기
뷰 애니메이션
뷰 애니메이션의 개념
애니메이션 추가
Camera를 이용하여 2D에 원근감 부여
AnimationListener 클래스
변환행렬 참고사항
핵심정리
7장 보안과 위치 서비스
안드로이드 보안 모델
보안 개요
배포용 애플리케이션에 서명하기
런타임 보안 검사 실시
프로세스 경계에서의 보안
권한 선언과 사용
사용자 정의 권한
URI 권한
위치 서비스
맵 패키지
위치 패키지
핵심정리
8장 서비스 제작과 소비 HTTP 서비스 소비하기
HTTP GET 요청을 위한 HttpClient 사용법
HTTP POST 요청을 위한 HttpClient 사용법
예외 처리
멀티스레딩 문제 해결
프로세스 간 통신
간단한 서비스 제작
안드로이드 서비스
로컬 서비스
AIDL 서비스
AIDL에 서비스 인터페이스 정의
AIDL 인터페이스 상속구현
클라이언트 애플리케이션에서 서비스 호출
서비스에 복합 형 전달
핵심정리
9장 미디어 프레임워크와 전화통신 API 미디어 API 사용법
음성 재생
setDataSource 메서드
영상 재생
MediaPlayer 특이사항
음성 녹음
영상 녹화
MediaStore 클래스
미디어 스토어에 미디어 콘텐트 추가
전화통신 API 사용법
SMS
전화통신 관리자
핵심정리
10장 OpenGL을 이용한 3D 그래픽 프로그래밍 OpenGL의 역사와 배경
OpenGL ES
OpenGL ES와 Java ME
또 하나의 Java ME 3D 그래픽 표준, M3G
OpenGL 기초
OpenGL ES를 이용한 기초적인 그리기
OpenGL 카메라와 좌표
OpenGL ES를 안드로이드에 접목
GLSurfaceView와 관련 클래스 사용법
삼각형 그리기의 간단한 테스트 하니스
카메라 설정 변경
인덱스를 사용해서 삼각형 하나 더 추가
간단한 삼각형에 애니메이션 적용
OpenGL 고급 - 도형과 텍스처
여러 예제를 하나의 액티비티에 통합하는 간단 메뉴 작성
사각형 그리기
도형
텍스처
여러 도형 그리기
OpenGL 참고 자료
핵심정리
13장 메인화면 위젯
메인화면 위젯의 구성
메인화면 위젯이란?
메인화면 위젯 사용 패턴
위젯 수명주기
샘플 위젯 애플리케이션
위젯 프로바이더 정의
위젯 크기 정의
위젯 레이아웃 관련 파일들
위젯 프로바이더 작성
위젯 모델 작성
위젯 설정 액티비티 작성
위젯 제한과 확장
참고 자료
핵심정리
14장 안드로이드 검색 안드로이드 검색 패턴
전역 검색
제시항목 프로바이더의 전역 검색 가용화
QSB와 제시항목 프로바이더의 상호작용
액티비티와 검색 키 상호작용
일반 액티비티에서의 검색 키 비헤이비어
검색을 불용화하는 액티비티의 비헤이비어
메뉴에서 검색 호출
로컬 검색과 관련 액티비티들
입력즉시검색 허용
간단한 제시항목 프로바이더 구현하기
간단한 제시항목 프로바이더 구상
간단한 제시항목 프로바이더 구현 파일들
SimpleSuggestionProvider 클래스 작성
간단한 제시항목 프로바이더 검색 액티비티
검색 호출 액티비티
간단한 제시항목 사용 패턴
사용자 정의 제시항목 프로바이더 구현하기
사용자 정의 제시항목 프로바이더 구상
SuggestURLProvider 프로젝트 구성 파일들
SuggestUrlProvider 클래스 작성
사용자 정의 제시항목 프로바이더용 검색 액티비티 작성
사용자 정의 제시항목 프로바이더 매니페스트 파일
사용자 정의 제시항목 사용 패턴
액션 키와 애플리케이션별 검색 데이터
안드로이드 검색에서 액션 키 사용
애플리케이션별 검색 문맥
참고 자료
핵심정리
15장 텍스트 음성 변환과 번역 API
텍스트 음성 변환 개요
어터런스를 이용하여 읽기 지점 알아내기
본인의 음성 녹음 파일 사용하기
TTS 엔진의 고급 기능
오디오 스트림 지정
이어콘 넣기
무음 재생
언어 메서드 사용
텍스트를 타국어로 번역
핵심정리
16장 터치스크린 MotionEvent 시리즈
VelocityTracker 사용
드래그 앤 드롭
멀티터치
맵 터치 기능
제스처
핵심정리
17장 티타늄 모바일 - WebKit을 이용한 개발
티타늄 모바일 개요
아키텍처
티타늄 생태계
티타늄 디벨로퍼 다운로드와 설치
티타늄 프로젝트 No.1
티타늄 모바일 프로젝트 생성
Hello World 다듬기
나중의 디버깅을 위한 대비
애플리케이션 패키지화
에뮬레이터에 패키지 파일 설치해보기
실전 애플리케이션 구상
JQuery 기초 요약
고급 자바스크립트 기초 요약
마이크로템플릿 엔진
그 밖의 티타늄 모바일 API
핵심정리
18장 안드로이드 마켓
판매자 등록
규칙 준수
디벨로퍼 콘솔
애플리케이션 판매 준비
다양한 기기에서 테스트
각종 화면 크기 지원
AndroidManifestxml 업로드 준비
애플리케이션 지역화
애플리케이션 아이콘 마련
애플리케이션 가격 책정
사용자를 마켓으로 리다이렉팅
패키지 파일 업로드 준비
애플리케이션 업로드
안드로이드 마켓 이용 안내
핵심정리
19장 전망과 자료
안드로이드 현황
안드로이드 휴대폰 제조업체
안드로이드 앱 스토어
안드로이드 전망
모바일 운영체제 간략 정리
안드로이드와 타 모바일 OS 비교
HTML 5 지원, 그것이 시사하는 바는…
안드로이드 참고 자료
안드로이드 학습 사이트
안드로이드 관련 뉴스 사이트
핵심정리
부록 A 안드로이드 2.2 Froyo
안드로이드 2.2 플랫폼의 주요 변화
리비전
API 레벨
프레임워크 API 변경사항
번들 애플리케이션
로케일
에뮬레이터 스킨