책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 모바일/무선/임베디드 프로그래밍
· ISBN : 9788992939690
· 쪽수 : 600쪽
· 출판일 : 2012-04-25
책 소개
목차
▣ 01장_안드로이드 시작하기
안드로이드란
안드로이드의 역사
안드로이드 아키텍처
앱 아키텍처
- 컴포넌트
- 인텐트
- 매니페스트
- 앱 패키지
액티비티 자세히 살펴보기
서비스 자세히 살펴보기
브로드캐스트 리시버 자세히 살펴보기
콘텐츠 프로바이더 자세히 살펴보기
1-1. 안드로이드 SDK 설치
문제; 해결책; 문제 풀이
1-2. 안드로이드 플랫폼의 설치
문제; 해결책; 문제 풀이
1-3. 안드로이드 가상 기기의 생성
문제; 해결책; 문제 풀이
1-4. AVD 시작하기
문제; 해결책; 문제 풀이
1-5. UC 앱에 대한 소개
문제; 해결책; 문제 풀이
1-6. UC 액티비티 만들기
문제; 해결책; 문제 풀이
1-7. UC의 설치와 실행
문제; 해결책; 문제 풀이
1-8. UC 앱의 배포 준비
문제; 해결책; 문제 풀이
1-9. 이클립스에서 작업하기
문제; 해결책; 문제 풀이
1-10. 이클립스를 활용한 UC 앱 개발
문제; 해결책; 문제 풀이
정리
▣ 02장_사용자 인터페이스 레시피
2-1. 창 커스터마이징
문제; 해결책; 문제 풀이
2-2. 뷰의 생성과 표시
문제; 해결책; 문제 풀이
2-3. 클릭 액션의 감지
문제; 해결책; 문제 풀이
2-4. 해상도 독립적인 에셋
문제; 해결책; 문제 풀이
2-5. 액티비티 화면 고정
문제; 해결책; 문제 풀이
2-6. 동적인 방향 고정
문제; 해결책; 문제 풀이
2-7. 직접적인 회전 처리
문제; 해결책; 문제 풀이
2-8. 팝업 메뉴 액션의 생성
문제; 해결책; 문제 풀이
2-9. 옵션 메뉴 커스터마이징
문제; 해결책; 문제 풀이
2-10. 뒤로가기 버튼의 커스터마이징
문제; 해결책; 문제 풀이
2-11. 홈 버튼 흉내내기
문제; 해결책; 문제 풀이
2-12. TextView의 변화 감지
문제; 해결책; 문제 풀이
2-13. TextView 티커 스크롤
문제; 해결책; 문제 풀이
2-14. 뷰 애니메이션
문제; 해결책; 문제 풀이
2-15. 배경 드로어블의 생성
문제; 해결책; 문제 풀이
2-16. 커스텀 상태 드로어블의 생성
문제; 해결책; 문제 풀이
2-17. 이미지에 마스크 적용
문제; 해결책; 문제 풀이
2-18. 상태 유지 대화상자의 생성
문제; 해결책; 문제 풀이
2-19. 상황 관련 레이아웃의 구현
문제; 해결책; 문제 풀이
2-20. 키보드 동작의 커스터마이징
문제; 해결책; 문제 풀이
2-21. 소프트 키보드 사라지게 하기
문제; 해결책; 문제 풀이
2-22. AdapterView의 비어 있는 뷰 처리
문제; 해결책; 문제 풀이
2-23. ListView 행 커스터마이징
문제; 해결책; 문제 풀이
2-24. ListView 섹션 헤더 만들기
문제; 해결책; 문제 풀이
2-25. 복합 컨트롤의 생성
문제; 해결책; 문제 풀이
알아두면 좋은 툴 - DroidDraw
DroidDraw의 설치와 실행
DroidDraw UI 살펴보기
간단한 화면 개발
정리
▣ 03장_통신과 네트워크
3-1.웹 정보 보여주기
문제; 해결책; 문제 풀이
3-2. 웹뷰 이벤트 가로채기
문제; 해결책; 문제 풀이
3-3. 자바스크립트를 통한 웹뷰 접근
문제; 해결책; 문제 풀이
3-4. 이미지 파일 내려받기
문제; 해결책; 문제 풀이
3-5. 백그라운드를 통한 완전한 다운로드
문제; 해결책; 문제 풀이
3-6. REST API 접근
문제; 해결책; 문제 풀이
3-7. JSON 파싱
문제; 해결책; 문제 풀이
3-8. XML 파싱
문제; 해결책; 문제 풀이
3-8. SMS 수신
문제; 해결책; 문제 풀이
3-9. SMS 메시지 전송
문제; 해결책; 문제 풀이
3-10. 블루투스 통신
문제; 해결책; 문제 풀이
3-11. 네트워크 연결 상태 조회
문제; 해결책; 문제 풀이
정리
▣ 04장_기기 하드웨어 및 미디어 활용
4-1. 기기 위치 연동
문제; 해결책; 문제 풀이
4-2. 위치 매핑
문제; 해결책; 문제 풀이
4-3. 지도에 표시 남기기
문제; 해결책; 문제 풀이
4-4. 사진과 동영상 캡처
문제; 해결책; 문제 풀이
4-5. 커스텀 카메라 오버레이 만들기
문제; 해결책; 문제 풀이
4-6. 오디오 녹음
문제; 해결책; 문제 풀이
4-7. 음성 인식 기능의 추가
문제; 해결책; 문제 풀이
4-8. 오디오/동영상의 재생
문제; 해결책; 문제 풀이
4-9. 가속도계 모니터링
문제; 해결책; 문제 풀이
4-10 나침반 방향 모니터링
문제; 해결책; 문제 풀이
알아두면 유용한 툴 - 센서 시뮬레이터
- 센서 시뮬레이터 내려받기
- 센서 시뮬레이터 설정과 센서 시뮬레이터의 실행
- 앱에서 센서 시뮬레이터 접근하기
정리
▣ 05장_데이터 영속화
5-1. 환경설정 화면 만들기
문제; 해결책; 문제 풀이
5-2. 단순 데이터의 영속화
문제; 해결책; 문제 풀이
5-3. 파일 읽고 쓰기
문제; 해결책; 문제 풀이
5-4. 파일을 리소스로 활용
문제; 해결책; 문제 풀이
5-5. 데이터베이스 관리하기
문제; 해결책; 문제 풀이
5-6. 데이터베이스 조회
문제; 해결책; 문제 풀이
5-7. 데이터 백업
문제; 해결책; 문제 풀이
5-8. 데이터베이스의 공유
문제; 해결책; 문제 풀이
5-9. 기타 데이터의 공유
문제; 해결책; 문제 풀이
알아두면 유용한 툴 - SQLite3
- SQLite3와 UC
정리
▣ 06장_시스템 연동
6-1. 백그라운드로 알림 보내기
문제; 해결책; 문제 풀이
6-2. 예약 작업과 주기적인 작업의 생성
문제; 해결책; 문제 풀이
6-3. 주기적인 작업의 예약
문제; 해결책; 문제 풀이
6-4. 끝까지 완료되는 작업의 생성
문제; 해결책; 문제 풀이
6-5. 지속적인 백그라운드 작업의 실행
문제; 해결책; 문제 풀이
6-6. 다른 애플리케이션의 실행
문제; 해결책; 문제 풀이
6-7. 시스템 애플리케이션의 실행
문제; 해결책; 문제 풀이
6-8. 외부 애플리케이션에서 애플리케이션 실행 가능하게 하기
문제; 해결책; 문제 풀이
6-9. 주소록 활용
문제; 해결책; 문제 풀이
6-10. 기기 미디어 선택하기
문제; 해결책; 문제 풀이
6-11. MediaStore에 저장하기
문제; 해결책; 문제 풀이
정리
▣ 07장_라이브러리 활용
7-1. 자바 JAR 라이브러리 만들기
문제; 해결책; 문제 풀이
7-2. 자바 JAR 라이브러리의 활용
문제; 해결책; 문제 풀이
7-3. 안드로이드 라이브러리 프로젝트의 생성
문제; 해결책; 문제 풀이
7-4. 안드로이드 라이브러리 프로젝트의 활용
문제; 해결책; 문제 풀이
7-5. 차트
문제; 해결책; 문제 풀이
7-6. 현실적인 푸시 메시지
문제; 해결책; 문제 풀이
정리
▣ 부록A_안드로이드 스크립팅 레이어
SL4A의 설치
SL4A 살펴보기
- 셸 스크립트 추가
- 리눅스 셸 접근
파이썬 인터프리터 설치
파이썬을 활용한 스크립팅
▣ 부록B_안드로이드 NDK
NDK 설치
NDK 살펴보기
NDK에서 온 안부 인사
- 안드로이드 SDK를 활용한 NDKGreetings의 빌드와 실행
- 이클립스를 활용한 NDKGreetings 빌드와 실행
NDK 예제
▣ 부록C_앱 설계 가이드라인
C-1. 앱 필터링 설계
문제; 해결책; 문제 풀이
C-2. 고성능 앱 설계하기
문제; 해결책; 문제 풀이
C-3. 빠르게 반응하는 앱의 설계
문제; 해결책; 문제 풀이
C-4. 다른 앱과 잘 호환되는 앱의 설계
문제; 해결책; 문제 풀이
책속에서
안드로이드 레시피의 세계에 온 것을 환영한다!
이 책을 읽고 있는 독자라면 모바일 기기가 소프트웨어 개발자에 사용자에게 제공하는 엄청난 기회에 대해 새삼스럽게 다시 얘기하지 않아도 될 것이다. 지난 몇 년 사이 안드로이드는 기기 사용자들이 사용하는 최고의 모바일 플랫폼 중 하나가 됐다. 이 말은 개발자인 여러분이 이런 모바일 플랫폼 시장에 참여해 시장의 잠재력을 활용하려면 안드로이드를 활용하는 법을 알고 있어야 한다는 뜻으로 해석할 수 있다. 하지만 새 플랫폼이 항상 그렇듯 처음 플랫폼을 접할 때는 모범 개발 방식이라든가 특정 필요나 문제와 관련한 해결책을 몰라 헤매는 경우가 많다.
안드로이드 레시피는 이런 독자들이 해결하려는 문제와 직접 관련된 예제를 통해 안드로이드 플랫폼용 애플리케이션을 개발할 수 있는 도구를 갖출 수 있게 도와주는 책이다. 이 책에서는 안드로이드 SDK, NDK, 기타 다른 툴에 대해서 깊이 살펴보지는 않는다. 이 책에서는 모든 세부 사항과 내부 이론을 상세히 소개해 독자들에게 지레 겁을 주지 않는다. 물론 이런 세부 내용이 중요하지 않은 것은 아니다. 이런 내용을 시간을 들여 배워두면 나중에 같은 실수를 되풀이하는 것을 막을 수도 있다. 하지만 당장 직면한 문제를 해결하려고 할 때 이런 세부 사항은 보통 문제 자체에 집중하는 것을 방해하는 장애물일 뿐이다.
이 책은 자바 프로그래밍이나 안드로이드 애플리케이션의 구성 요소를 개발하는 법을 다루는 책이 아니다. 이 책에서는 기본 레시피(예를 들어 TextView를 사용해 텍스트를 보여주는 법)를 많이 다루지 않는다. 이런 내용은 한 번 배워두고 나면 언제든 쉽게 기억할 수 있기 때문이다. 대신 이 책에서는 안드로이드에 익숙한 개발자가 자주 접하면서도 지나치게 복잡하지 않은 문제들을 단 몇 줄의 코드로 해결하는 법을 설명하고 있다.
안드로이드 레시피는 작업을 빠르게 효과적으로 끝내줄 수 있는 실전 가이드 쿡북으로 생각하면 된다. 이 책은 언제든 필요할 때 참고해 바로 쓸 수 있는 레시피로 가득 채워져 있다.
★ 이 책에서 다루는 내용
이 책은 안드로이드 초보자용 가이드는 아니지만 책의 1장에서는 책의 나머지 내용을 이해하는 데 필요한 안드로이드 기본 구조에 대한 전반적인 설명을 제공한다. 또 1장에서는 안드로이드 앱을 개발할 수 있게 개발 환경을 설정하는 법도 보여준다. 특히 안드로이드 SDK를 설치하는 법과 이클립스에서 ADT 플러그인을 설치하는 법을 살펴본다.
안드로이드 앱 개발에 조금씩 익숙해지다 보면 처음부터 모든 내용을 다시 구현하느라 들이는 시간을 조금이라도 줄이고 싶은 생각이 들기 마련이다. 이를 위해서는 재사용할 수 있는 코드로 이뤄진 커스텀 라이브러리를 만들어 사용하거나 다른 사람들이 만들어 놓은 라이브러리를 사용하는 게 좋다. 7장에서는 JAR 기반의 커스텀 라이브러리와 안드로이드 라이브러리 프로젝트를 생성하고 사용하는 법을 살펴본다. 더불어 커스텀 라이브러리를 생성하는 것 외에 애플리케이션에서 활용할 수 있는 외부 자바 라이브러리를 한두 개 소개한다.
1장과 7장 사이의 장에서는 안드로이드 SDK를 활용해 실제 문제들을 해결한다. 이를 통해 모든 기기에서 잘 실행되는 UI를 효과적으로 개발하는 트릭을 배우고, 모바일 플랫폼에 독창적인 성격을 부여하는 다양한 하드웨어(무선 통신 장치, 센서, 카메라)와 연동하는 법을 마스터한다. 또 시스템과 연동해 구글 및 다양한 기기 제조사에서 제공하는 서비스와 애플리케이션을 활용하는 법도 살펴본다. 더불어 애플리케이션의 개발과 테스트를 더 쉽게 진행할 수 있도록 커뮤니티에서 개발한 일부 툴에 대해서도 소개한다.
독자들 중에 스크립팅 언어(파이썬이나 루비 등)에 관심이 있는 사람이 있다면 부록 A를 살펴보자. 부록 A에서는 안드로이드용 스크립팅 레이어를 소개한다. 부록에서 소개한 특수 앱을 활용하면 스크립트 언어의 인터프리터와 스크립트를 기기에 설치한 다음 이들 스크립트를 실행해 개발을 더 빠르게 진행할 수 있다.
또 앱이 성공하려면 성능도 중요하다. (안드로이드 2.2 버전부터는) 안드로이드 달빅 가상 머신에서 달빅 바이트 코드를 기기의 네이티브 코드로 컴파일하는 JIT 컴파일러를 제공하는 만큼 대부분의 경우 성능은 크게 문제가 되지 않는다. 하지만 JIT 컴파일러로도 부족하다면 안드로이드의 NDK를 활용해 성능을 더 올릴 수 있다. 부록 B에서는 NDK를 소개하고 오픈지엘 예제를 통해 이를 유용하게 활용하는 법을 살펴본다.
앱을 개발할 때는 앱이 최적화돼 있고, 빠르게 응답하고, 부드럽게 연동되는지 항상 확인해야 한다. 성능이 좋은 앱은 배터리도 그만큼 덜 소모하며, 응답이 빠른 앱은 무시무시한 '애플리케이션 응답 없음' 대화상자가 나타나지 않게 해준다. 또 부드럽게 연동되는 앱은 다른 앱들과도 잘 상호작용해 사용자를 방해하거나 혼란스럽게 하지 않는다. 추가적으로 구글의 안드로이드 마켓에 앱을 배포할 때는 앱이 호환되지 않는 기기에 노출되지 않게 해야 한다. 이 경우 안드로이드 마켓 필터를 활용해 호환되지 않는 기기의 사용자들이 앱을 내려받지 못하게(볼 수도 없게) 해야 한다. 부록 C에서는 성능이 우수하고 빠르게 반응하며, 부드럽게 연동하는 앱을 만드는 데 필요한 가이드라인을 제시해 책의 내용을 마무리한다. 더불어 호환되는 기기 사용자만 앱을 (안드로이드 마켓에서) 내려받을 수 있게 필터를 적용하는 법도 살펴본다.
- 서문 중에서




















