서브메뉴

본문

안드로이드 API 바이블
안드로이드 API 바이블
저자 : 유동근|박정민
출판사 : 정보문화사
출판년 : 2010
정가 : 32000, ISBN : 9788956745107

책소개


안드로이드 앱 개발의 A to Z
실전 예제로 알아보는 안드로이드 핵심 개념


프로그래밍을 배우는 데 있어 좋은 예제만큼 중요한 자료는 없다. 이 책은 안드로이드가 제공하는 200여개의 핵심 예제를 통해 개발자들이 좀 더 쉽고 빠르게 안드로이드 시스템을 이해하고 개발에 바로 적용할 수 있도록 도와준다. 모든 레슨은 안드로이드가 제공하는 각 API 기능에 대해 기본 설명 및 실행 결과, 상세 해설 순으로 친절하게 설명하고 있다.

각각의 내용에는 예제와 그에 따른 소스, 결과 화면을 제공하고 있어 손에 잡히는 구체적인 지식을 얻을 수 있다. 안드로이드 등장 초기부터 개발에 몸담아온 저자들은 구글이 안드로이드 플랫폼의 API를 설명하기 위해 작성한 API 데모를 참고하면서 느꼈던 명쾌함과 유용함을 공유하고자 이 책을 저술했다. 이 책은 안드로이드 애플리케이션 개발을 위해 준비해야 할 것들을 소개하는 것으로 시작해 프로요 SDK에 포함된 API 데모 중 꼭 필요한 예제들을 이해하기 쉬운 순서로 재구성하여 싣고 있다. 각 예제마다 주의점이나 버그 등에 대한 설명도 친절하게 안내하고 있다.

목차


Intro 시작을 위한 준비
1. 애플리케이션 개발을 위해 준비할 것들
운영체제
JDK와 SDK
이클립스(eclipse)와 ADT

2. 첫 번째 안드로이드 애플리케이션
프로젝트 만들기
프로젝트 빌드와 실행
디버깅

3. 안드로이드 애플리케이션 구조
「AndroidManifest.xml」과 애플리케이션 시작 구조
액티비티 상태 변화
레이아웃과 리소스

4. 뷰와 유저 인터페이스
유저 인터페이스(User Interface)
뷰의 계층(View Hierarchy)
레이아웃
위젯(Widgets)
UI 이벤트(UI Events)
메뉴(Menu)

Chapter 01 App_다양한 액티비티 꾸미기
1. 액티비티 애니메이션 전환 - [액티비티 애니메이션]
2. 다이얼로그 기반 액티비티 - [다이얼로그]
3. 다이얼로그 꾸미기 - [커스텀 다이얼로그]
4. 헬로 액티비티 - [헬로 월드]
5. 액티비티 타이틀 꾸미기 - [커스텀 타이틀]
6. 액티비티 시작을 다른 액티비티에 전달하기 - [포워딩]
7. 액티비티 상태 저장하고 읽기 - [퍼시스턴스]
8. 주소록 배지 사용하기 - [퀵 컨택츠 배지]
9. 액티비티 결과값 받기 - [결과 받기]
10. 액티비티 실행 방향 변경하기 - [리디렉션]
11. 액티비티 계층 순서 변경하기 - [액티비티 순서]
12. 액티비티 상태 저장과 복원 - [상태 저장과 복원]
13. 안드로이드 배경 변경하기 - [안드로이드 바탕화면]
14. 반투명 액티비티 만들기 - [반투명 액티비티]
15. 반투명 액티비티 블러 효과 주기 - [반투명 블러]
16. 액티비티 배경을 안드로이드 배경으로 - [액티비티 배경]

Chapter 02 App_알람과 알림 서비스
1. 시스템으로부터 알람 받기 - [알람 컨트롤러]
2. 알람 서비스 만들기 - [알람 서비스]
3. 다양한 모양으로 대화상자 만들기 - [다이얼로그]
4. 컴포넌트 사이의 연결은 인텐트로 - [인텐트]
5. 홈 스크린에 숏컷 만들기 - [숏컷]
6. XML로 다양한 메뉴 만들기 - [메뉴]
7. 알림 매니저 사용하기 - [알림 매니저]
8. 알림 서비스 만들기 - [알림 서비스 컨트롤러]
9. 토스트 윈도우를 알림으로 사용하기 - [문자열로 알리기]
10. 상태 바에 알림 표시하기 - [상태 바]

Chapter 03 App_프리퍼런스와 서비스, 그리고 음성
1. XML로 프리퍼런스 화면 만들기 - [프리퍼런스]
2. 한번에 프리퍼런스 값 모두 읽기 - [프리퍼런스 값]
3. 프리퍼런스 의존 관계 만들기 - [프리퍼런스 의존 관계]
4. 프리퍼런스 디폴트 값 만들기 - [프리퍼런스 디폴트 값]
5. 코드에서 직접 프리퍼런스 구성하기 - [코드 프리퍼런스]
6. 프리퍼런스 사용 고급 기법 - [프리퍼런스 고급]
7. 안드로이드 검색 실행하기 - [검색 실행]
8. 검색 결과 표시하기 - [검색 결과 표시]
9. 포-그라운드 서비스 만들기 - [포-그라운드 서비스]
10. 로컬 서비스 만들기와 바인딩하기 - [로컬 서비스 바인딩]
11. 서비스 시작하고 종료하기 - [로컬 서비스 컨트롤러]
12. 리모트 서비스 만들기와 바인딩하기 - [리모트 서비스 바인딩]
13. 리모트 서비스 시작하고 종료하기 - [리모트 서비스 컨트롤러]
14. 서비스에 인자 전달하기 - [서비스 인자]
15. 문장을 음성으로 출력하기 - [음성출력]
16. 음성인식 - [음성인식]

chapter 04 Content
1. 애플리케이션 포함 파일 읽기 - [에셋]
2. 문자열 리소스 읽기 - [리소스]
3. 스타일 문자열 사용하기 - [스타일 문자열]

Chapter 05 Graphics I
1. 알파 비트맵 만들기 - [알파 비트맵]
2. 비트맵 애니메이션 만들기 - [비트맵 애니메이션]
3. 호 그리기 - [아크]
4. 다양한 이미지 디코딩 - [디코드 스트림]
5. 2차원 비트맵 메쉬 - [비트맵 메쉬]
6. 코드에서 비트맵 직접 생성하기 - [비트맵 픽셀]
7. 카메라 미리 보기 - [카메라 미리 보기]
8. 그리기 영역 묶어두기 - [그리기 클리핑]
9. 컬러 필터 적용해서 그리기 - [컬러 필터]
10. 컬러 매트릭스로 컨트라스트 구현 - [컬러 매트릭스]
11. 나침반 만들기 - [컴파스]
12. 비트맵 생성 옵션 조정하기 - [비트맵 옵션]
13. 안드로이드 덴시티 - [덴시티]
14. XML로 ShapeDrawable 정의하기 - [쉐이프 그리기 객체 I]
15. 직접 ShapeDrawable 만들기 - [쉐이프 그리기 객체 II]
16. 터치로 그림 그리기 - [터치 그리기 I]
17. 그리기에 페이드(fade) 효과 만들기 - [터치 그리기 II]
18. 백 스크린 비트맵 이용하기 - [레이어]
19. 현재 폰트로 문자열 폭 측정하기 - [문자열 폭 측정]

Chapter 06 Graphics II
1. 3차원 공간상에 물체 만들기 - [OpenGL 뷰]
2. 3차원 객체에 이미지 입히기 - [텍스처]
3. 3차원 뷰에서 이벤트 처리하기 - [터치 회전]
4. 2차원 뷰 위에 3차원 렌더링하기 - [투명 OpenGL 뷰]
5. 그리기 선분에 패스효과 적용하기 - [패스효과]
6. 패스 내부 채우기 - [패스 채움 타입]
7. 쉐이더 객체로 패턴 만들기 - [패턴]
8. 픽처 객체로 메타파일 만들기 - [픽처 객체]
9. 한번에 여러 선 그리기 - [선 그리기]
10. 좌표 매핑으로 그리기 행렬 만들기 - [그리기 행렬 I]
11. 맞추기(fit) 행렬 만들기 - [그리기 행렬 II]
12. 자동 제거 가능 비트맵 만들기 - [제거 가능 비트맵]
13. 영역 연산과 분해 - [영역 연산]
14. 그레이디언트를 이용해 둥근 사각형 만들기 - [둥근 사각형]
15. 센서 테스트 - [센서 테스트]
16. 3D 위에 2D 뷰 만들기 - [오버레이]
17. 스윕 그레이디언트 - [스윕]
18. 문자열 정렬하기 - [텍스트 정렬]
19. 다양한 서체 사용하기 - [서체]
20. 유니코드 사용하기 - [유니코드]
21. 2차원 버텍스 - [버텍스]
22. 픽셀 합성 규칙 - [합성 규칙]

Chapter 07 Media
1. 미디어 플레이어 만들기 - [미디어 플레이어]
2. 비디오 플레이어 만들기 - [비디오 플레이어]

Chapter 08 OS
1. 바이브레이터로 모스 부호 만들기 - [바이브레이터]
2. 다양한 센서 테스트 - [센서]

Chapter 09 Text
1. 링크 텍스트 만들기 - [링키파이]
2. 스크롤 가능 텍스트 뷰 만들기 - [스크롤 텍스트 뷰]
3. 움직이는 텍스트 - [마키 텍스트]

Chapter 10 View_위젯과 그 특성
1. 가장 간단한 위젯 버튼 사용해보기 - [버튼]
2. 타이머 만들어 시간 측정하기 - [크로노미터]
3. 날짜 입력 받기 - [날짜 선택 다이얼로그]
4. 시간 입력을 위젯으로 받기 - [시간 선택 위젯]
5. 이미지로 버튼 더 예쁘게 꾸미기 - [이미지 버튼]
6. 이미지 원하는 대로 표시하기 - [이미지 뷰]
7. 작업의 진행 정도 깔끔하게 보여주기 - [단계 모드 프로그레스 바]
8. 언제 끝날지 모르는 작업에 사용하는 프로그레스 바 - [무한 모드 프로그레스 바]
9. 언제 끝날지 모르는 작업 중 사용자 조작을 막아야 할 때 - [무한 모드 프로그레스 다이얼로그]
10. 사용자가 선택 사항 중 하나를 선택할 수 있게 하기 - [라디오 버튼 그룹]
11. 점수를 줄 수 있는 편리한 위젯 - [별점 바]
12. 스크롤 바 다양하게 꾸미기 - [스크롤 바]
기본적인 스크롤 바 - [기본 스크롤 바]
좀 더 예쁜 스크롤 바 - [사용자 이미지 스크롤 바]
스크롤 바 위치 미세하게 조절하기 - [스크롤 바 스타일]
13. 컨텐츠의 특정 지점으로 바로 갈 수 있게 하기 - [검색 바]
14. 간편한 방법으로 웹 페이지 화면에 보여주기 - [웹 뷰]
15. 다양한 테마 적용으로 단숨에 애플리케이션 외형 바꾸기 - [위젯 - 테마적용하기]
16. 필요할 때 위젯을 보여주고 필요 없으면 숨기기 - [뷰의 가시성]
17. 마음에 드는 위젯이 없다면 직접 만들기 - [사용자 정의 뷰]
18. 포커스를 마음대로 조절하기 - [포커스]
포커스 비활성화로 위젯 사용 못하게 하기 -[수직 방향 포커스 변화]
포커스 진행 방향 변경하기 - [수평 방향 포커스 변화]
포커스 진행 방향 변경 응용 - [원형 방향 포커스 변화]
내부 선택이 가능한 아이템을 가지는 사용자 정의 뷰에서 포커스 다루기 - [사용자 방향 포커스 변화]

Chapter 11 View_레이아웃
1. 수직 또는 수평 한 방향으로 위젯 배치하기 - [리니어 레이아웃]
기초적인 수직 배치 방법 - [리니어 레이아웃 - 수직배치]
수직 배치 후 남는 빈 공간 채우기 - [리니어 레이아웃 - 수직 방향 화면 채우기]
수직 배치 시 자식 뷰들의 크기에 가중치 부여하기 - [리니어 레이아웃 - 가중치]
수평 배치 시 동일한 크기로 배치하기 - [리니어 레이아웃 - 수평 방향 배치]
사용자 입력창 만들기 1 - [리니어 레이아웃 - 사용자 입력창]
가장 큰 뷰에 크기 맞추기 - [리니어 레이아웃 - 동일 크기 자식 뷰]
부모 뷰의 크기 결정에 따르기 - [리니어 레이아웃 - 부모 뷰 크기 모두 차지하기]
뷰의 시작 위치를 자유자재로 바꾸기 - [리니어 레이아웃 - 자식 뷰 정렬]
가중치 속성으로 큰 뷰를 적절한 크기로 만들기- [리니어 레이아웃 - 가중치의 또 다른 특징]
여러 뷰를 하나의 뷰처럼 쓰기 - [레이아웃 - 자식 뷰와 상태공유]

2. 상대적인 위치로 위젯 배치하기 - [상대 위치 레이아웃]
수직 배치 흉내내기 -[상대 위치 레이아웃 - 수직 방향 배치]
사용자 입력창 만들기 2 - [상대 위치 레이아웃 - 사용자 입력창]

3. 화면 스크롤시키기 - [스크롤 뷰]
스크롤 뷰 선언하기 - [내용이 적은 스크롤 뷰]
실제로 동작하는 스크롤 뷰 살펴보기 -[내용이 많은 스크롤 뷰]
사용자 정의 뷰에서 스크롤 구현하기 - [스크롤 뷰 - 사용자 정의 뷰와 어울리기]

4. 자식 뷰를 표로 배치하여 정렬시키기 - [테이블 레이아웃]
테이블 레이아웃 기초 사용법 - [테이블 레이아웃]
표 사이사이에 빈칸 만들기 - [테이블 레이아웃 - 빈칸처리]
긴 내용물은 줄어들기 속성으로 대처하기 - [테이블 레이아웃 - 줄어들기 속성]
빈 공간을 늘여서 화면에 배치하기 - [테이블 레이아웃 - 늘이기 속성]
늘이기 속성과 줄로 메뉴처럼 배치하기 - [테이블 레이아웃 - 줄긋기]
늘이기 속성과 줄로 메뉴처럼 배치하기 2 - [테이블 레이아웃 - 줄긋기 응용]
특정 열에 접었다 펴기 속성을 주어 공간 아끼기 - [테이블 레이아웃 - 특정 셀 접기]
사용자 입력창 만들기 - [테이블 레이아웃 - 사용자 입력창]
정렬 속성으로 다양한 위치 주기 - [테이블 레이아웃 - 정렬 속성]
셀 합치기 - [테이블 레이아웃 - 셀 합치기]

5. 다른 뷰와 문자열 위치를 어울리게 만들기 - [베이스라인 속성]
리니어 레이아웃의 베이스라인 속성 익히기- [베이스라인 속성 - 리니어 레이아웃]
상대 위치 레이아웃에서 멀티 라인을 가지는 필드와 베이스라인 맞추기 - [멀티라인 베이스라인]
리니어 레이아웃에서 특정 뷰를 지정하여 베이스라인 정렬하기 - [중첩된 뷰 -베이스라인 속성]

Chapter 12. View_어댑터 뷰
1. 목록을 보여주는 위젯 - [리스트 뷰]
2. 배열에 있는 문자열을 보여주는 리스트 - [리스트 뷰 - 배열 데이터]
3. 주소록 연락처 리스트로 보여주기 - [리스트 뷰 - 전화번호부 연락처 데이터]
4. 주소록에 있는 사람 이름을 전화번호와 함께 보여주기 - [리스트 뷰 - 전화번호부 전화번호 데이터]
5. 필요한 어댑터가 없으면 직접 정의하기 - [리스트 뷰 - 사용자 정의 어댑터]
6. 리스트 사이에 분리 기호 삽입하기 - [리스트 뷰 - 아이템 분리 기호]
7. 사용자 어댑터를 응용하여 리스트 아이템을 접었다 펴는 동작 만들기 - [리스트 뷰 - 펼칠 수 있는 아이템]
8. 아이템이 선택되었을 때 전화번호부의 전화번호 보여주기 - [리스트 뷰 - 아이템 선택 시 동작]
9. 실시간으로 리스트 뷰에 아이템 추가하기 - [리스트 뷰 - 사용자 정의 어댑터 - 사진보기]
10. 스크롤 시 중첩된 정보창으로 유용한 정보 보여주기 - [리스트 뷰 - 아이템 인덱스]
11. 리스트 뷰를 단일 선택 모드로 사용하기 - [리스트 뷰 - 단일 선택 모드]
12. 리스트 뷰를 다중 선택 모드로 사용하기 - [리스트 뷰 - 다중 선택 모드]
13. 사용자가 입력한 데이터를 리스트 뷰에 필기록처럼 보여주기 - [리스트 뷰 - 필기록 모드]
14. 데이터를 보여줄 필요가 있을 때만 가져오기 - [리스트 뷰 - 데이터를 천천히 가져오는 어댑터]
15. 어댑터에서 뷰를 만들 때 좀 더 효율적인 방법 - [리스트 뷰 - 효율적인 어댑터]
16. 정말 간단하게 구현하는 입력창 자동 완성 기능 - [자동 완성 텍스트 뷰]
17. 커서 어댑터를 사용한 주소록 인명 자동 완성 기능 - [자동 완성 텍스트 뷰 - 사용자 정의 어댑터]
18. 사용법을 잘 모르는 사용자를 위해 자동 완성창에 힌트 보여주기 - [자동 완성 텍스트 뷰 - 힌트기능]
19. 자동 완성 기능 한 창에서 여러 번 사용할 수 있게 하기 - [다중 자동 완성 텍스트 뷰]
20. 리스트 아이템 확장하여 사용하기 - [확장 가능한 리스트 뷰]
21. 전화번호부를 사람별로 그룹지어 보여주기 - [확장 가능한 리스트 뷰 - 전화번호부]
22. 간단하게 확장 가능한 리스트 뷰 사용하기 - [확장 가능한 리스트 뷰 - 간단한 사용법]
23. 선택 가능한 아이템 중 사용자가 선택한 것 고정된 위치에 보여주기 - [갤러리 위젯]
순차적으로 사진을 보여주는 갤러리 위젯 사용 방법 - [갤러리 위젯 - 사진 보여주기]
순차적으로 주소록의 이름을 보여주는 갤러리 위젯 사용 방법 - [갤러리 위젯 - 주소록 보여주기]
24. 아이템을 가상의 격자 공간에 보여주기 - [그리드 뷰]
설치된 모든 애플리케이션 아이콘들을 격자 공간에 보여주기 - [그리드 뷰- 아이콘 보여주기]
이미지를 격자 공간에 보여주기 - [그리드 뷰- 사진 보여주기]
25. 많은 선택 사항 다이얼로그로 띄워서 보여주기 - [스피너]
26. 한 화면에 여러 개의 화면 통합하기 - [탭 위젯]
ID로 화면을 지정해서 보여주기 -[탭 기능 - ID를 이용한 사용법]
화면이 필요할 때 뷰를 생성해서 보여주기 - [탭 기능 - 팩토리를 이용한 사용법]
이미 만들어진 액티비티를 활용하기 -[탭 기능 - 인텐트를 이용한 사용법]

Chapter 13. View_애니메이션
1. 암호가 틀리면 로그인창 흔들기 - [애니메이션 - 흔들기]
2. 여러 개의 애니메이션을 조합해서 새로운 애니메이션 만들기 - [애니메이션 - 조합하기]
3. 애니메이션의 처음과 끝만 지정하고 나머지는 편리하게 안드로이드에 맡기기 - [애니메이 션 - 인터폴레이터]
4. 3D 전환 효과 구현하기 - [애니메이션 - 3D 전환]
5. 이미지 부드럽게 전환하여 보여주기 - [이미지 전환기]
6. 글자 부드럽게 전환하여 보여주기 - [텍스트 전환기]
7. 레이아웃에서 배치 애니메이션 주기 - [레이아웃 애니메이션]
그리드 뷰에서 아이템 서서히 나타나게 하기 -[레이아웃 애니메이션 - 그리드 뷰 - 서서히 나타나기]리스트 뷰에서 아이템 차례대로 나타나게 하기 - [레이아웃 애니메이션 - 리스트 뷰 - 차례대로 나타나기]
리스트 뷰에서 아이템 역순으로 나타나게 하기 - [레이아웃 애니메이션 - 리스트 뷰 - 반대순서로 나타나기]
그리드 뷰에서 아이템 무작위로 나타나게 하기 - [레이아웃 애니메이션 - 그리드 뷰 - 무작위로 나타나기]
그리드 뷰의 아이템 물결치듯 나타나게 하기 - [레이아웃 애니메이션 - 그리드 뷰 - 물결치듯 나타나기]
레이아웃 애니메이션 여러 개 중첩해서 보여주기 - [레이아웃 애니메이션 - 중첩된 애니메이션]