Top

예제로 시작하는 안드로이드 개발

  • 원서명Android Application Development: Programming with the Google SDK (ISBN 9780596521479)
  • 지은이릭 로저스, 존 롬바도, 지거드 메드닉스, 블레이크 메이크
  • 옮긴이안드로이드펍
  • ISBN : 9788960770973
  • 30,000원
  • 2009년 09월 21일 펴냄
  • 페이퍼백 | 440쪽 | 185*235mm
  • 시리즈 : 모바일 프로그래밍

책 소개

많은 인기를 끌고 있는 오픈소스 휴대폰 애플리케이션 개발 플랫폼인 안드로이드 개발환경을 이용해 애플리케이션을 개발할 때 알아야 하는 개념을 깊이 있게 설명하고 관련 코드를 제공한다. 운영체제와 SDK 등 개발환경 소개뿐 아니라 실행 가능한 예제 코드를 통해 안드로이드의 기능과 API 사용법을 자세히 배운다. 기초는 물론 휴대폰에 탑재할 상용 애플리케이션 개발에 필요한 애플리케이션 디자인, 빌드, 테스트 등 중고급 과정까지 모두 다룸으로써, 안드로이드 문서만으로는 부족함을 느꼈던 개발자들에게 도움이 되는 생생한 자료를 가득 담았다.


[ 소개 ]

“이렇게 잘 쓴 책을 읽어본 게 얼마만인지 모르겠다. 이 책의 가장 두드러지는 특징은 세부 사항까지도 세심하고 주의 깊게 설명했다는 점이다.”
- 하이셀 테일러 / 벤처기업 전문가 J2EE 아키텍트 컨설턴트

구글이 안드로이드 개발을 발표했을 때, 모바일 플랫폼 영역은 이미 잘 구축돼 있었다. 오픈 소스 플랫폼의 다양한 전문 분야에서 쓸 만한 대안이 수없이 제시되고 있는 상황이었다. 하지만 안드로이드는 기술적 관심 사항이 폭넓게 확장되도록 자극했을 뿐만 아니라, 개인용 장치의 세계를 완전히 변하게 할 잠재력에 대한 무성한 추측을 불러일으켰다. 안드로이드 기기는 단순히 전화 걸기, 이메일, 음식점 찾기 등의 익숙한 편의 기능만을 제공하는 것이 아니라 전 세계로 열린 창구가 될 수 있다. 간단히 말해서 사용자와 개발자가 만들고자 하는 무엇이든 될 수 있다.

설득력 있는 분석과 호언장담이 어느 정도로 실현가능한지에 대한 논의는 이 책에서 논외로 둔다. 이 책은 안드로이드 프로그래밍 환경을 배우고, 차별화된 제품을 만들기 위해 알아야 할 것을 익히려는 사람을 위한 책이다. 책을 쓰면서 여러 번 나온 배포본의 소스코드를 분석하고 라이브러리와 개발킷의 기능을 시험해 보느라 힘겨운 시간을 보냈다. 진정한 안드로이드를 드러내려고 노력했으며, 온라인이나 인쇄물에서 찾을 수 있는 문서 이상을 보여주려고 노력했다.

자바 프로그래머가 이 책을 꼼꼼히 읽는다면 누구나 유용하고 결함 없는 안드로이드 애플리케이션을 만들 수 있다. 일부 내용은 안드로이드가 어떤 식으로 기능을 구현하는지 내부 내용까지 다룬다. 원한다면 안드로이드 오픈 소스를 살펴볼 수도 있다.


[ 이 책에서 다루는 내용 ]

▶ 최신 휴대폰의 핵심 기능을 활용하는 안드로이드 애플리케이션 제작
▶ 안드로이드 사용자 인터페이스를 이용한 완전한 모듈식 프로그램 제작
▶ 뷰, 지도, 위치기반 서비스, 지속적인 데이터 저장, 전화 기능, 프로세스 간 통신 기능 등의 아키텍처와 개념 설명
▶ 실행 가능한 예제 코드를 적용한 세부 기능 구현
▶ 2D와 3D 그래픽, 디버깅, 성능 분석 등 고급 기술


[ 이 책의 대상 독자 ]

이 책은 안드로이드 모바일 환경에서 애플리케이션을 개발하려는 숙련된 소프트웨어 개발자를 대상으로 한다. 자바 프로그래밍 언어에 익숙하고, 자바로 사용자 인터페이스를 개발했으며, 적어도 안드로이드에서 사용하는 XML, SQL, GTalk(XMPP), OpenGL-ES, HTTP 등의 기술에 익숙하다고 가정한다.


[ 이 책의 구성 ]

2장에서 소개하는 예제 프로그램을 중심으로 구성돼 있다. 2장 이후에서는 가능하다면 이 예제에 모듈화된 확장 기능을 구현해 추가하는 방식으로 개발 기술을 설명한다. 몇 개 장과 부록은 좀 더 고급 주제를 다룬다. 그러나 보통은 그런 기능이 반드시 필요하지는 않다.

1부. 구글 SDK 따라하기: 애플리케이션을 만들 때 필요한 기초 내용을 배운다.

1장. 안드로이드 개요: 시장에서 안드로이드의 위치를 설명하고, 기본 구조를 배운다.
2장. 안드로이드 개발환경 구축: 이클립스, 안드로이드 플러그인 등 개발에 필요한 소프트웨어를 다운로드하고 프로그래밍을 시작한다.
3장. 안드로이드 개발환경을 이용한 실제 애플리케이션 개발: 일반적인 안드로이드 프로그램을 구성하는 파일에 대해 설명한다.
4장. MJAndroid 애플리케이션의 시작 코드와 리소스: 모든 애플리케이션에 필수인 자바 코드와 XML 리소스를 살펴 본다.
5장. 애플리케이션 디버깅: 이클립스, 로그, 안드로이드 디버그 브릿지adb, DDMS, 트레이스뷰 등의 디버깅 도구를 소개한다.
6장. ApiDemos 애플리케이션: 툴킷에 들어 있는 안드로이드 샘플 코드를 살펴보고, 직접 소스코드를 찾는 방법을 배운다.
7장. 애플리케이션 서명과 배포: 애플리케이션을 공개하기 전에 준비하는 작업을 알아 본다.

2부. 안드로이드 프로그래밍: 중요한 라이브러리를 자세히 살펴보고, 효과적으로 사용하는 방법을 알아 본다.

8장. 영속적인 데이터 저장소: SQLite 데이터베이스와 컨텐트 프로바이더: 안드로이드에서 데이터를 저장하고 제공하는 두 가지 효과적인 방법을 배운다.
9장. 위치 정보와 지도 서비스: 사용자의 위치를 확인하고 표시하는 방법을 배우고, 구글 맵을 사용하는 방법을 알아 본다.
10장. 뷰 생성: 윈도우와 뷰를 만들고 조종하는 방법을 설명해, 안드로이드 그래픽 프로그래밍을 소개한다.
11장. 위젯: 안드로이드가 제공하는 그래픽 인터페이스 구성 요소를 다룬다.
12장. 2D, 3D 그래픽: 그래픽을 배치하는 방법을 살펴보고, 그리기, 변환, 애니메이션을 자세히 배운다.
13장. 프로세스 간 통신: 인텐트와 리모트 메소드를 써서 다른 애플리케이션의 기능에 접근한다.
14장. 간단한 전화 걸기: 애플리케이션에서 전화를 거는 방법과, 안드로이드가 이 요청을 처리하는 방식을 설명한다.
15장. 텔레포니 상태 정보와 안드로이드 텔레포니 클래스: 텔레포니 서비스와 전화 걸기 상태 정보를 알아내는 방법을 배우고 텔레포니 인터널을 살펴본다.

부록. 무선 프로토콜: 무선 통신 서비스의 배경과 역사를 알아본다.

저자/역자 소개

[ 저자 소개 ]

릭 로저스
30년 이상을 임베디드 소프트웨어 개발에 몰두했으며 현재는 윈드리버시스템(Wind River Systems)에서 모바일 솔루션 아키텍트로 일하고 있다.

존 롬바도
샘즈(Sams) 출판사에서 펴낸 『임베디드 리눅스(Embedded Linux)』의 저자며 IPSEC과 ARM-7 기반 NAT 라우터 등 여러 임베디드 리눅스 제품을 만드는 데 기여했다.

지거드 메드닉스
D2 테크놀로지(D2 Technologies)의 UI 아키텍처 총책임자며 임베디드 UI 분야 기업들의 컨설턴트로 일한다.

블레이크 메이크
GUI 툴킷과 자바 모바일 디바이스 플랫폼을 두루 섭렵한 개발자다.


[ 옮긴이의 말 ]

박성서

오픈 핸드셋 얼라이언스의 오픈 소스 모바일 플랫폼인 안드로이드가 처음 발표된 지 이제 2년이 되어갑니다. 구글이 주도한 프로젝트는 개발자의 큰 관심을 끌었고 이제는 아이폰과 함께 스마트폰 애플리케이션 개발의 양대 산맥으로 자리를 잡았습니다. 지금도 여전히 빠르게 발전하고 있는 안드로이드는 모바일 플랫폼으로서 가능성이 무궁무진하여 개발자들의 새로운 애플리케이션 개발에 대한 열정을 자극하고 있습니다. 게다가 완전한 오픈 소스 플랫폼이라는 특징은 이 플랫폼이 어느 한 회사의 소유가 아니라는 것을 말해줍니다. 누구라도 익숙해지고 잘 활용할 수 있다면 바로 이 플랫폼의 주인이 될 수 있기에 모바일 기술은 발전했지만 운영체제 플랫폼을 갖지 못했던 한국 개발자들과 기업에게 기회가 될 수 있습니다.

1.0이라는 버전으로 처음 출시된 후 1년간은 아직 완벽하지 못했던 안드로이드 플랫폼에 대한 검증의 기간이었습니다. 올해 말에는 안드로이드를 채택한 수많은 휴대폰 제조사들이 출시를 앞두고 본격적인 안드로이드폰의 확산을 눈앞에 두고 있습니다. 휴대폰 제조사에 들어갈 소프트웨어를 만드는 입장에서든 안드로이드 마켓에 올릴 애플리케이션을 만드는 입장에서든 안드로이드는 관심만 둔 단계를 지나 실제 수많은 개발자가 직접 개발에 참여하고 있습니다. 이러한 스마트폰에서의 관심과 참여는 단지 시작일 뿐이라는 것이 오랫동안 안드로이드를 지켜보던 저의 생각입니다. 앞으로 스마트폰을 넘어 PMP, TV, 셋탑박스 등 수많은 장치들에서 채택되기 시작하면서 안드로이드는 임베디드 소프트웨어 시장에 혁신을 일으킬 것으로 기대됩니다. 이런 안드로이드 개발에 있어서 한국 개발자들이 앞서가서 안드로이드를 우리의 플랫폼이라고 말할 수 있을 정도로 경쟁력을 갖추기를 기대하며 번역 작업을 진행했습니다.

그동안 안드로이드를 같이 공부하고 개발했고 이번에 번역까지 함께해준 정욱이, 진혁이와 잠시 귀국한 소중한 시간을 번역에 투자해준 종률이 등 오랜 친구인 역자들에게 함께해서 즐거웠고 또 고맙다는 말을 전하고 싶습니다. 안드로이드 서적의 번역과 출판에 관심이 많고 앞으로도 여러 안드로이드 관련 서적을 준비 중이신 에이콘 출판사에도 감사의 말씀을 드립니다.


김종률

책을 번역하기 전 안드로이드 개발에 대한 지식이 부족했던 저에게 1부는 많은 도움이 됐습니다. 1부는 저처럼 안드로이드를 처음 접하는 개발자를 위한 내용입니다. 기초적인 자바 프로그래밍을 해본 개발자라면 1장에 나오는 주요 개념들을 읽어본 후 2장에서 4장까지 나오는 튜토리얼 방식의 내용을 따라해보며 어느 정도 큰 그림을 보실 수 있을 것입니다. 나머지 내용은 그때그때 필요에 따라 참고하시면 될 것 같습니다.

이번 계기로 안드로이드에 대해 조금 알고 난 후, 안드로이드가 단지 또 하나의 모바일 플랫폼이라는 생각을 재고하게 됐습니다. 안드로이드가 아이폰을 포함한 기존의 모바일 플랫폼과 차별화되는 이유는 오픈 핸드셋 얼라이언스를 통해 여러 일류 휴대폰 제조업체와 통신사의 지원을 받고 있기 때문입니다(오픈 핸드셋 얼라이언스에 대해서는 1장에서 설명합니다). 이들은 개방을 지향하고 안드로이드라는 공동 플랫폼을 지원하기로 해 개발자에게 모바일 환경으로의 진입 장벽을 상당히 낮췄습니다. 이런 시기에 애플리케이션 개발을 할 수 있다는 점은 참 신나는 일입니다. 마지막으로 오픈 핸드셋 얼라이언스를 통해 통신사의 폐쇄적인 비즈니스 모델이나 휴대폰 기능 접근 제한 때문에 개발자와 사용자가 답답해지는 일이 차차 사라지리라 조심스레 기대해봅니다.


박정욱

모바일 기기에 관심이 있거나, 모바일 기기용 소프트웨어를 개발해 본 사람에게 안드로이드는 매우 큰 기회입니다. 성공 가능성이 큰 마케팅 모델이라는 측면을 제쳐 두고, 순전히 소프트웨어 개발 측면에서도 그렇습니다. 화면에 점 하나를 찍기도 무척이나 힘든 일이 되는 다른 플랫폼에 비해, 안드로이드는 푸짐하게 차려진 호화로운 환경에서 마음에 드는 것을 가져다 쓸 수 있는 편리한 플랫폼이기 때문입니다. 누구나 한 번쯤 고민했을 이미지 투명 처리 같은 일도 별다른 어려움 없이, 기본 제공되는 기능만으로 쉽게 처리할 수 있습니다. 가끔은 기능이 너무 풍부해 전체적인 성능을 떨어뜨리게 되는 것은 아닌지 걱정스러운 마음이 들기도 합니다만, 무척 잘 설계된 구조 덕분에 안드로이드는 매우 빠르게 반응합니다.

이런 편리한 플랫폼에서 개발하는 일은, 그 자체로 매우 즐겁습니다. 하지만 때로는 다양한 기능들을 어디서부터 건드려야 할지 헤매곤 합니다. 이 책이 그런 상황을 피할 수 있는 길잡이가 되기를 바랍니다. 단순한 Hello World 프로그램으로부터 디버거 사용법, 구글맵, 전화 걸기 기능에 이르기까지 다양한 주제를 다루므로, 안드로이드 개발을 처음 시작하는 사람이 쉽게 안드로이드 전체 구성을 어림잡아 볼 수 있을 것입니다.


배진혁

지금 스마트폰 시장에는 다양한 모바일 운영체제가 등장하고 있습니다. 심비안과 윈도우 모바일이 주를 이루던 모바일 업계에 애플이 아이폰을 들고 나타나 큰 반향을 일으켰습니다. 애플의 아이폰은 앱스토어라는 새로운 시장을 창출하고 모바일 폰의 거대한 변화를 불러왔습니다. 그리고 이제 구글이 지원하는 안드로이드 OS가 나타나 자리를 차지해 나가고 있습니다. 아직 아이폰 만큼의 파괴력은 보이지 않지만, 2년의 시간이 지나면서 안드로이드 운영체제는 더 안정적이 되고 더 많은 기능을 포함하게 됐습니다. 그리고 아직도 발전해 나가는 중입니다. 세계 시장에 안드로이드 폰들이 하나씩 모습을 드러내고, 이르면 올해 말 늦어도 내년 초에는 국내에도 안드로이드 폰이 출시되어 안드로이드의 힘을 보여주게 될 것입니다. 휴대폰뿐만이 아닌 다양한 모바일 기기에 안드로이드 플랫폼이 올라가고 안드로이드가 우리 생활의 구석구석을 차지하는 날이 오는 것도 꿈만은 아닐 것입니다.

이 책은 기본적인 각 주제에 대해서 프로그램 경험이 있는 사람의 입장에서 깊이 있게 다룹니다. 안드로이드를 어느 정도 알고 있는 분들에게는 더 깊이 알 수 있는 기회가 될 것이고, 처음 안드로이드를 접하시는 분이라도 두려워하지 않고 기본 예제를 중심으로 하나하나 따라가면서 책을 읽다 보면 어느 새 많은 부분이 이해가 되고 나도 새로운 애플리케이션을 만들 수 있겠다라는 자신감이 붙을 것입니다. 이 책이 안드로이드의 세상을 향해 나아가는 많은 개발자 분들께 힘이 될 수 있었으면 합니다.


[ 옮긴이 소개 ]

안드로이드펍 (http://www.androidpub.com)
안드로이드 사용자와 개발자 모두를 위한 인터넷 커뮤니티다. 현재는 개발자들을 위주로 운영하는 커뮤니티며 안드로이드 보급에 중요한 번역, 스터디, 세미나 등 다양한 활동을 한다. 커뮤니티의 주요 멤버들이 모여 번역 작업을 진행했으며, 모두 친구 사이다.

김종률
서울대학교 컴퓨터공학과 학부를 졸업하고 현재는 컬럼비아대학교 대학원에 재학중이다. 친구들과 함께 책을 번역하고 대화를 나누는 과정에서 안드로이드가 모바일 네트워크에서 대중에게 실어주는 힘을 이해하게 됐다. 그 힘을 프로그래머와 연구자들이 어떻게 활용할지 기대가 크다. 원서보다 나은 번역서를 만들고자 애쓴 노력이 독자들에게 전달되기를 바란다. 오래 전에 옮긴 책으로 『디버깅 자바』가 있다.

박성서
서울대학교 컴퓨터공학과를 졸업하고, 다양한 모바일 소프트웨어 업계에 근무했다. 2008년 구글의 안드로이드 개발자 챌린지 1에서 한국에서는 유일하게 입상을 한 안드로이드 애플리케이션 개발 전문가다. 현재 다양한 안드로이드 관련 활동을 하며 국내에서의 안드로이드 기반 확산을 위해 노력하고 있다.

박정욱
서울대학교 컴퓨터공학과를 졸업하고, 다양한 분야의 소프트웨어 개발에 참여했다. 지금은 웹서비스, 데스크탑 애플리케이션, 임베디드 시스템, 멀티미디어 처리 등의 일을 주로 하고 있다. 항상 새로운 것을 찾아다니길 좋아하며, 안드로이드라는 새로운 즐거움을 만나 깊이 빠져들었다.

배진혁
2001년 서울대학교 컴퓨터공학과를 졸업하고 병특 3년, 모바일 관련 업계에서 4년간 근무한 7년차 개발자다. 현재는 회사를 퇴직하고 안드로이드 펍 주인장에게 꾐에 빠져 안드로이드를 열심히 공부하는 중인 30대 white hand. 첫 번역이라 쉽지 않았지만 프로그래밍 개발을 어느 정도 해본 경험자들에 도움이 될 수 있는 책이 되기를 바라면서 열심히 작업했다.

목차

목차
  • 1부 구글 SDK 따라하기
  • 1장 안드로이드 소개
    • 왜 안드로이드인가?
    • 오픈 핸드셋 얼라이언스
    • 안드로이드 실행 환경
    • 안드로이드 애플리케이션 구성요소
    • 안드로이드 액티비티 생명주기
    • 안드로이드 서비스 생명주기
    • 이 책의 구성
  • 2장 안드로이드 개발환경 구축
    • 개발환경 구축
      • 안드로이드 개발환경 구축의 첫 단계
    • 헬로, 안드로이드
      • 첫 프로그램
      • 새 애플리케이션 만들기: HelloWorld
      • HelloWorld 소스코드 작성
      • HelloWorld 실행하기
  • 3장 안드로이드 개발환경을 이용한 실제 애플리케이션 개발
    • 주요 예제 MicroJobs 애플리케이션
    • 안드로이드와 소셜 네트워킹
    • MJAndroid 코드 다운받기
    • MJAndroid 소스코드 개요
      • 프로젝트 최상위 폴더(MJAndroid)
      • 소스코드 폴더(src)
      • 리소스 폴더(res)
    • 첫 순서: MicroJobs 애플리케이션 빌드와 실행
      • 안드로이드 SDK/이클립스 간단히 살펴보기
      • 애플리케이션 로딩과 실행
      • 유의해야 할 점
      • T모바일 휴대폰에서 애플리케이션 실행
    • 요약
  • 4장 MJAndroid 애플리케이션의 시작 코드와 리소스
    • AndroidManifest.xml에 나오는 초기화 파라미터
    • MicroJobs.java로 본 초기화 과정
      • MicroJobs.java에 나온 나머지 초기화 과정
    • 요약
  • 5장 애플리케이션 디버깅
    • 이클립스 자바 편집기
      • 자바 오류
      • 디버거
      • 로그캣
      • 안드로이드 디버그 브릿지
      • 달빅 디버그 모니터 서비스: DDMS
      • 트레이스뷰
    • 요약
  • 6장 ApiDemos 애플리케이션
    • 매니페스트 파일에서 애플리케이션 설정
    • 예제의 소스코드 찾기
      • Custom Title 데모
      • Linkify 데모
    • 직접 만든 예제를 ApiDemos에 추가
  • 7장 애플리케이션 서명과 배포
    • 애플리케이션 테스트
    • 최종 사용자 사용권 계약 추가
    • 아이콘과 레이블 만들고 붙이기
    • 정리하고 배포 버전 만들기
    • 애플리케이션에 버전 기록
    • 서명 인증서와 API 키 획득
      • 배포할 애플리케이션용 서명 인증서 만들기
      • 디버그 서명 인증서 쓰기
    • 애플리케이션 서명
    • 애플리케이션 다시 테스트
    • 안드로이드 마켓에 발행
      • 안드로이드 개발자 등록
      • 애플리케이션 업로드
  • 2부 안드로이드 프로그래밍
  • 8장 영속적인 데이터 저장소: SQLite 데이터베이스와 컨텐트 프로바이더
    • 데이터베이스
      • MicroJobsDatabase 클래스 기본 구조
      • 데이터베이스에서 데이터 읽기
      • 데이터베이스 변경
    • 컨텐트 프로바이더
      • NotePad 소개
      • 컨텐트 프로바이더
      • 컨텐트 프로바이더 사용
  • 9장 위치 정보와 지도 서비스
    • 위치 기반 서비스
    • 지도
    • 구글 지도 액티비티
    • MapView와 MapActivity
    • MapView로 작업하기
      • MapView와 MyLocationOverlay 초기화
      • MapActivity의 중지와 재시작
      • 메뉴 버튼으로 지도 컨트롤하기
      • 키패드로 지도 컨트롤하기
    • 지도 없이 위치정보 사용하기
      • Manifest와 Layout 파일
      • 위치 제공자와 연결해 받는 위치 업데이트
      • 에뮬레이트된 위치의 업데이트
  • 10장 뷰 생성
    • 안드로이드 GUI 구조
      • 모델
      • 컨트롤러
      • 기능 통합
    • 그래픽 인터페이스 조합
    • 컨트롤러 연결
      • 모델 리스닝
      • 터치 이벤트를 위한 리스닝
      • 키 이벤트를 위한 리스닝
      • 기타 이벤트 처리 방법
      • 고급 연결: 포커스와 스레딩
    • 메뉴
  • 11장 위젯
    • 안드로이드 뷰
      • TextView와 EditText
      • Button과 ImageButton
      • Adapter와 AdapterView
      • CheckBox와 RadioButton과 Spinner
    • ViewGroup
      • Gallery와 GridView
      • ListView와 ListActivity
      • ScrollView
      • TabHost
    • 레이아웃
      • 프레임 레이아웃
      • LinearLayout
      • TableLayout
      • AbsoluteLayout
      • RelativeLayout
  • 12장 2D, 3D 그래픽
    • 자신만의 위젯 만들기
      • 레이아웃
      • 캔버스 그리기
      • 드로어블
      • 비트맵
    • 블링
      • 그림자, 그래디언트, 필터
      • 애니메이션
      • OpenGL 그래픽
  • 13장 프로세스 간 통신
    • 인텐트: 간단하고 오버헤드가 적은 IPC
      • 프로세스 간 통신에 사용되는 인텐트 객체
      • 액티비티 객체와 계층적 UI
      • 예제: ‘Hello World’를 어떻게 할지 고르는 인텐트
      • 프로세스 간 통신으로 결과 가져오기
    • 리모트 메소드와 AIDL
      • 안드로이드 인터페이스 정의언어
      • AIDL로 만든 인터페이스에 내재된 클래스
      • 인터페이스 발행
      • 자바 네이티브 인터페이스와 안드로이드 IPC의 비교
      • 바인더가 하지 않는 일
      • 바인더와 리눅스
  • 14장 간단한 전화 걸기
    • 빠르고 쉬운 전화 걸기
      • call 메소드를 실행하는 예제 애플리케이션 만들기
      • 애플리케이션에 코드 조각 끼워 넣기
    • 디버거를 이용한 전화코드 탐색
      • Intent 인스턴스 만들기
      • Intent 인스턴스에 데이터 추가하기
      • 전화 걸기
    • 예외처리
    • 안드로이드 애플리케이션 수준 모듈화와 텔레포니
  • 15장 텔레포니 상태정보와 안드로이드 텔레포니 클래스
    • android.telephony 패키지에서 제공하는 기능
      • 패키지 요약
      • 애플리케이션에서 전화 작업을 할 때 제약 사항
      • 예제: 전화 걸기 상태 확인하기
    • 안드로이드 텔레포니 인터널
      • 프로세스 간 통신과 com.android.internal.telephony 패키지의 AIDL
      • android.internal.telephony 패키지
      • android.internal.telephony.gsm 패키지
      • 안드로이드 텔레포니 인터널 살펴보기
    • 안드로이드와 VoIP

관련 블로그 글

예제로 "쉽게" 시작하는 안드로이드 애플리케이션 개발
사용자 삽입 이미지
예제로 시작하는 안드로이드 개발
릭 로저스, 존 룸바도, 지거드 메드닉스, 블레이크 메이크 지음
안드로이드펍 (www.anrdroidpub.com) 옮김 | 모바일 프로그래밍 시리즈 4
2009년 9월 21일 출간예정 | 440쪽 | 30,000원
작년에 만난 모 역자분이 제게 그러셨죠. "내년엔 모바일이 화두가 될 거예요." 올 초 『예제로 시작하는 아이폰 개발』을 펴내고 절감했었습니다. 당시 기술서로는 드물게 YES24 베스트셀러 순위 연 1위를 차지하며 강풍을 불러일으켰더랬죠. 아이폰 출시가 여전히 낚시줄 떡밥 신세를 못 면하는 지금, 또 하나의 OS 안드로이드 열풍이 불고 있습니다. 그러고 보면 새로운 이슈와 새로운 주제를 따라 늘 공부해야 하는 우리 개발자 분들 정말 대단하세요! 짝짝짝.

그리하여 드디어 에이콘에서도 안드로이드 개발서가 나옵니다. 윈도우 모바일 애플리케이션 가이드부터 시작해 예제로 시작하는 아이폰 개발에 이어 아이폰 코어 애니메이션까지 확장했다가 이제 예제로 시작하는 안드로이드 개발이라니 이 책의 성격을 간파하실 수 있으리라 생각합니다.

그렇다면 몇 권의 안드로이드 책이 독자들께 선을 보인 지금 이 책의 장점이나 특징은 무엇인지 살펴볼까요?

[ 이 책에서 다루는 내용 ]

▶ 최신 휴대폰의 핵심 기능을 활용하는 안드로이드 애플리케이션 제작
▶ 안드로이드 사용자 인터페이스를 이용한 완전한 모듈식 프로그램 제작
▶ 뷰, 지도, 위치기반 서비스, 지속적인 데이터 저장, 전화 기능, 프로세스 간 통신 기능 등의 아키텍처와 개념 설명
▶ 실행 가능한 예제 코드를 적용한 세부 기능 구현
▶ 2D와 3D 그래픽, 디버깅, 성능 분석 등 고급 기술

이 책의 원서는 지난 5월 말에 출간된 따끈따근한 신간입니다. 역자분들이 열심히 번역해주셔서 원서가 나온 지 근 3개월 여만에 번역서를 독자 여러분께 선보일 수 있게 됐습니다. 제목을 보시면 아시다시피 이 책은 초급자가 차근차근 따라해볼 수 있는 예제 위주의 안드로이드 애플리케이션 개발서입니다. (설마 제목을 보시고 안드로이드를 타겟으로 직접 개발하는 책?이라고 느끼신 분은 없으시길 바랍니다 ^^)

이 책은 여타 책과 마찬가지로 자발 개발자라면 쭉 읽어보기만 해도 안드로이드 개발에 대해 감을 잡을 수 있도록 쉽게 설명해놓았습니다. 게다가 예제로 설명하면서, 책에 나오는 새로운 개념이 나올 때면 아주 쉽게 그 개념을 짚고 넘어갑니다. 모델-뷰-컨트롤러 MVC 모델을 설명할 때도 폰에서의 mp3 플레이어 기능을 예로 들어 각각을 리스트에 든 코드와 화면, 외부 동작에 반응하는 부분 등으로 나눠 알기 쉽게 설명합니다.

"이렇게 쉽고 자세히 이야기할 필요까지?"라고 느낄 만큼 짧고 명료하게 대신 이해하기 쉽도록 설명하는 초중반부는 막 안드로이드 개발에 입문하려는 개발자들에게 큰 도움이 되어드릴 것입니다.

그리고 간단한 애플리케이션 디버깅, 그리고 서명과 배포를 통해 안드로이드 애플리케이션을 공개하는 방법까지 개발자가 현실적으로 꼭 알아두면 좋을 내용까지 알려주죠. 그리고 중반부에 들어서면, 안드로이드 폰에서 꼭 필요하고 실제로 많이 쓰이는 기능을 활용해 간단한 예제를 만들어보면서 기법을 익힙니다.

그러고는 위치 정보와 지도 서비스 설명으로 넘어갑니다. 이는 여러분도 잘 알고 계시다시피, 위피의 고비도 무사히 넘은 지금, 아이폰 도입에 최대 걸림돌로 최근 급부상한 항목이죠. 어떻게 해결될지 모르겠지만 안드로이드 폰에서도 동일하게 적용될 법망이 어떻게 해결될지 모르겠습니다. 모쪼록 아이폰이든 초콜렛폰이든 안드로이드폰이든 외국에서는 누구나 사용하도록 잘 만들어주신 기능을 부디 국내에서도 아무 제약없이 동등하게 사용할 날이 곧 오게 되길 저희도 간절히 바랍니다.

다시 책 이야기로 돌아와, 안드로이드 GUI 구조를 자세히 설명하고 MVC 기능통합 예제도 만들어보고, 2D/3D 그래픽 기능을 직접 설명함으로써 자신만의 위젯을 만들어 봅니다. 폰의 가장 궁극적인 기능이라 할 수 있는 전화걸기와 관련한 다양한 프로그래밍을 살펴보는 건 물론 기본이구요.

단순한 Hello World 프로그램으로부터 디버거 사용법, 구글맵, 전화 걸기 기능에 이르기까지 다양한 주제를 다루므로, 안드로이드 개발을 처음 시작하는 사람이 쉽게 안드로이드 전체 구성을 어림잡아 볼 수 있을 것입니다.
...
안드로이드를 어느 정도 알고 있는 분들에게는 더 깊이 알 수 있는 기회가 될 것이고, 처음 안드로이드를 접하시는 분이라도 두려워하지 않고 기본 예제를 중심으로 하나하나 따라가면서 책을 읽다 보면 어느 새 많은 부분이 이해가 되고 나도 새로운 애플리케이션을 만들 수 있겠다라는 자신감이 붙을 것입니다.
- 옮긴이의 말 중에서

안드로이드 운영체제가 많은 이의 관심을 불러일으키는 것은 단지 휴대전화뿐만 아니라 넷북, 셋탑박스 등에 탑재될 예정이기 때문이라죠. 자바 개발자라면 누구나 쉽게 배울 수 있고 윈도우 기반도 가능하고 여러 플랫폼에서 구현될 예정이라고 하니 진입 장벽이 더욱 낮은 게 아닌가 싶습니다. 그러니 뜻하신 바가 있다면, 바로 지금 도전해 볼 만한 가치가 있는 일이지 않을까요? ^^

이 책은 그야말로 안드로이드의 드림팀이 저술하고 번역했다고 해도 과언이 아닐 겝니다. 물론 저자진들도 그 분야에서는 내로라하는 분들이겠지만, 우리 역자들이야말로 안드로이드 보급에 앞장서고 있는 진정한 드림팀이시죠.

온라인에서 "회색"이라는 필명으로 활동하시는 박성서님은 2008년 구글의 안드로이드 개발자 챌린지에 참가해 한국인으로 유일하게 입상을 하신 안드로이드 전문가십니다. 후일담으로는 만드신 애플리케이션이 더욱 높은 결과를 올릴 수 있었는데, 결선을 앞두고 만든 애플리케이션의 기능이 구글 안드로이드 폰에서 빠지면서 가산점을 놓치게 됐다고 하죠. 올 봄 우리 모바일 시리즈 에디터이신 드리밍 김동현님의 추천으로 무작정 찾아가 번역을 부탁드리고 만나뵈었었는데요. 박성서님이 대학 동창 친구들이신 김종률님, 박정욱님, 배진혁님과 함께 번역을 해주셔서 첫 책임에도 불구하고 아주 빠른 시간에 훌륭히 번역을 해주셨습니다.

사용자 삽입 이미지

이 네 분이 참여하여 이끌어가는 안드로이드 커뮤니티 안드로이드펍(androidpub.com )입니다. 첫 페이지만봐도 정말 다들 열심이시라는 생각이 팍팍 들어요. 모두 한번 찾아가보셔서 많은 정보 얻어가시길 바랍니다. 이 분들의 활약으로 국내 안드로이드 개발이 더욱 활성화되리라 믿어 마지 않습니다.

특히 김종률님은 미국에서 학업 중에 잠시 짬을 내어 우리나라를 찾은 동안 번역을 해주셨는데 못 뵈어서 참 아쉬웠습니다. 이 자리를 빌려 감사 말씀 드리구요. 나머지 세 분은 책 나오면 제가 곧 다시 인사 올리겠습니다. ^^ 고생하셨어요. 좋은 역자분들을 모셔서 좋은 책 펴낼 수 있어서 저희도 기뻤습니다. 감사합니다.

마지막으로 한 가지 더, 표지를 보면 대번에 알아차리셨겠지만, 드디어 에이콘에서도 동물 표지를 볼 수 있게 됐죠. 바로 그 유명한 오라일리(O'reilly) 출판사 책을 펴내게 됐습니다. 앞으로 많은 책을 만나실 수 있을 거예요. 워낙 우리나라의 좋은 출판사들께서 훌륭한 번역서를 많이 내주신 오라일리 책인지라 적잖이 부담되기도 합니다만, 저희도 잘 할 수 있을 거예요. 그쵸?

에이콘에서 만나는 오라일리 책은 또다른 맛이 있을 테니 많이 기대해주세요. 자, 안드로이드 책과 오라일리 책, 모바일 시리즈 책은 곧 또 여러분을 찾아갑니다. 지갑에 총알 장전 가득 해주세요. ^^

예제로 시작하는 안드로이드 개발』은 YES24, 교보문고, 강컴, 인터파크, 알라딘에서 예약판매중입니다.

CC

크리에이티브 커먼즈 라이센스 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

 1, 2쇄 오류/오탈자 

[ p277 8-9행 중복 ]
txt1 = (TextView) findViewById(R.id.txtDemo);
txt1 = (TextView) findViewById(R.id.txtDemo);
→ txt1 = (TextView) findViewById(R.id.txtDemo);