휴대폰 제조사들은 로열티를 지불하지 않고 플랫폼을 이용할 수 있으며 자유롭게 커스터마이징할 수 있다는 이유로 안드로이드를 좋아하며, 개발자들은 파산하거나 인수될지 모를 특정 공급업체에 발이 묶여 있지 않고 유동성이 있어 좋아한다.
• 인터넷 매시업에 영감받은 구성 요소 기반의 아키텍처
응용프로그램의 한 부분은 다른 곳에 개발자들이 미처 생각하지도 못했던 방식으로 쓰일 수 있다. 기본적으로 제공되는 내장 구성요소를 자신만의 버전으로 대체할 수 있다. 이것은 모바일 공간에서 창조의 새로운 장을 열어 줄 것이다.
• 격이 다른 수많은 기본 제공 서비스
위치 기반 서비스는 여러분이 위치에 따라, GPS 또는 휴대전화 기지국을 이용하며 사용자가 자신의 경험을 직접 정의하게 해 준다. SQL 데이터베이스는 최대 전원으로 가동되는데, 지속적이지 않은 인터넷 연결성과 동기화에 개별 로컬 저장소의 이점을 이용한다. 브라우저와 지도 보기가 응용프로그램에 직접 임베딩될 수 있다. 이와 같이 다양한 내장 기능은 성능의 기준은 높이며 개발비용은 낮춰 준다.
• 응용프로그램 수명주기의 자동 관리
프로그램은 여러 보안층으로 서로 격리되어, 스마트폰에서는 여태껏 볼 수 없던 수준의 시스템 안정성을 제공한다. 어떤 응용프로그램이 활성화되어 있으며 다른 프로그램을 실행시키기 위해 무엇을 종료시켜야 하는지 등을 더 이상 걱정하지 않아도 된다. 안드로이드는 낮은 전력과 낮은 메모리 장치에 최적화되어 있는데, 이전 어느 플랫폼도 시도해보지 못한 수준이다.
• 고품질의 그래픽과 음향
플래시에 영감 받은 부드럽고 앤티엘리어싱된 2D 벡터 그래픽과 애니메이션은 3D로 가속된 OpenGL 그래픽과 합쳐져 신종의 게임과 비즈니스 응용프로그램들을 창조해내고 있다. 오디오와 비디오의 가장 흔한 산업 표준인 H.264(AVC), MP3, AAC 등의 형식을 위한 코덱이 내장되어 있다.
• 현재와 미래의 광범위한 하드웨어를 넘나드는 휴대성
모든 프로그램은 자바로 작성되고, 안드로이드의 달빅 가상 머신에서 실행되므로 ARM, x86 및 여러 아키텍처에 걸쳐 모두 사용될 수 있다. 키보드, 터치, 기울임, 카메라, 음성, 트랙 볼 등의 다양한 입력 방식의 지원. 사용자 인터페이스는 어떤 화면 해상도나 화면 방향에 맞춰서도 정의될 수 있다.
이 책의 구성
이 책은 세 부분으로 나뉘어 있다. 대략적으로 말하자면, 쉬운 주제에서 어려운 주제로, 또는 일반적인 부분에서부터 덜 흔한 내용 쪽으로 진행된다고 볼 수 있다.
여러 장에서 공통된 스도쿠 게임 예제가 사용된다. 점차적으로 게임에 기능을 추가함으로써, 사용자 인터페이스, 멀티미디어, 안드로이드의 수명주기 등을 포함한 안드로이드 프로그래밍의 다양한 면을 배우게 된다.
제1부는 안드로이드에 대한 소개로 시작한다. 안드로이드 에뮬레이터를 설치하는 방법과 통합 개발 환경(IDE)을 사용하는 방법을 배우고 나서 안드로이드 수명주기와 같은 개념을 배워 본다. 안드로이드 개발은 조금 낯설 수 있으므로 다음 주제로 넘어가기 전, 이러한 개념을 확실히 알고 넘어간다.
제2부에서는 안드로이드 사용자 인터페이스, 2차원 그래픽, 멀티미디어 구성요소 및 간단한 데이터 액세스를 다뤄 본다. 이러한 기능은 여러분이 만들 대부분의 프로그램에 사용될 것이다.
제3부는 안드로이드 플랫폼에 대해 더욱 깊이 들어간다. 여기서는 외부 세상에 연결하는 법, 위치 기반 서비스, 내장된 SQLite 데이터베이스 및 3차원 그래픽에 관해 배워 본다.
이 책 마지막의 부록에는 안드로이드와 자바 표준 에디션(SE: Standard Edition)의 차이점, 안드로이드 위젯, 안드로이드 마켓에 대한 내용이 있다.
이 책의 대상 독자
이 책의 유일한 요구사항은 자바 또는 다른 객체 지향 프로그래밍 언어(C# 정도면 충분하다)에 대한 기본적인 이해다. 모바일 기기 소프트웨어 개발에 관한 사전 경험은 필요하지 않다. 개발 경험이 있다면 그 경험을 잊는 게 나을 것이다.
저자 소개 에드 버넷(Ed Burnette)
프로그래머이자 저자로서, 그리고 연설자로서 25년 이상의 경험을 갖고 있는 소프트웨어 업계의 베테랑이다. 상업용 컴퓨터 게임에서 고성능 그리드 컴퓨팅 시스템에 이르기까지 다양한 개발을 두루 섭렵하였다. 에드는 SAS 고급 컴퓨팅 연구소(SAS Advanced Computing Lab)의 창립 멤버이자 수석 연구원이며, 『Google Web Toolkit: Taking the Pain out of Ajax』와『Eclipse IDE Pocket Guide』를 포함한 많은 기술 관련 기사 및 서적을 집필하였다. ZDNet의 개발 커넥션(Dev Connection) 블로그를 담당하고 플래닛 안드로이드(http://www.planetandroid.com)를 만들어 운영중에 있다.
역자 소개 한정민
미국 카네기 멜론 대학Carnegie Mellon University에서 정보 시스템Information Systems과 휴먼 컴퓨터 인터랙션HCI, Human-Computer Interaction을 전공으로, 그리고 커뮤니케이션 디자인Communication Design을 부전공으로 공부하였다. 웹2.0, UX, 사용성, 모바일, SNS 등에 관심이 많으며 최근 SK C&C의 mobile commerce 사업추진단에 합류하였다. SK C&C에 합류하기 전에는 삼성 전자 모바일 및 웹 서비스 전략과 기획을 위한 리서치 및 컨설팅을 하였다.
모바일과의 인연은 아이폰의 첫 출시에 맞춰 애플리케이션을 선보이기 위해 애플과 함께 일하던 샌프란시스코의 IT 회사에서 시작되었다. 여행을 좋아해 유럽, 하와이, 팔라우(태평양의 섬)의 정부와 비영리 단체에서 일한 경험이 있으며 미국 샌프란시스코에서 직장 생활을 하다 귀국했다. 번역 서적으로는 ‘헬로, 안드로이드’, ‘IT 개발자가 쓴 통쾌한 인간관리 이야기’, ‘고성능 MySQL(공역)’, ‘웹 접근성(공역)’, ‘웹 표준(진행 중)’ 등이 있다.