이미 소장하고 있다면 판매해 보세요.
|
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 ViewGroups 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 부록. 무선 프로토콜 |
|
오픈 핸드셋 얼라이언스의 오픈 소스 모바일 플랫폼인 안드로이드가 처음 발표된 지 이제 2년이 되어갑니다. 구글이 주도한 프로젝트는 개발자의 큰 관심을 끌었고 이제는 아이폰과 함께 스마트폰 애플리케이션 개발의 양대 산맥으로 자리를 잡았습니다. 지금도 여전히 빠르게 발전하고 있는 안드로이드는 모바일 플랫폼으로서 가능성이 무궁무진하여 개발자들의 새로운 애플리케이션 개발에 대한 열정을 자극하고 있습니다. 게다가 완전한 오픈 소스 플랫폼이라는 특징은 이 플랫폼이 어느 한 회사의 소유가 아니라는 것을 말해줍니다. 누구라도 익숙해지고 잘 활용할 수 있다면 바로 이 플랫폼의 주인이 될 수 있기에 모바일 기술은 발전했지만 운영체제 플랫폼을 갖지 못했던 한국 개발자들과 기업에게 기회가 될 수 있습니다.
1.0이라는 버전으로 처음 출시된 후 1년간은 아직 완벽하지 못했던 안드로이드 플랫폼에 대한 검증의 기간이었습니다. 올해 말에는 안드로이드를 채택한 수많은 휴대폰 제조사들이 출시를 앞두고 본격적인 안드로이드폰의 확산을 눈앞에 두고 있습니다. 휴대폰 제조사에 들어갈 소프트웨어를 만드는 입장에서든 안드로이드 마켓에 올릴 애플리케이션을 만드는 입장에서든 안드로이드는 관심만 둔 단계를 지나 실제 수많은 개발자가 직접 개발에 참여하고 있습니다. 이러한 스마트폰에서의 관심과 참여는 단지 시작일 뿐이라는 것이 오랫동안 안드로이드를 지켜보던 저의 생각입니다. 앞으로 스마트폰을 넘어 PMP, TV, 셋탑박스 등 수많은 장치들에서 채택되기 시작하면서 안드로이드는 임베디드 소프트웨어 시장에 혁신을 일으킬 것으로 기대됩니다. 이런 안드로이드 개발에 있어서 한국 개발자들이 앞서가서 안드로이드를 우리의 플랫폼이라고 말할 수 있을 정도로 경쟁력을 갖추기를 기대하며 번역 작업을 진행했습니다. 그동안 안드로이드를 같이 공부하고 개발했고 이번에 번역까지 함께해준 정욱이, 진혁이와 잠시 귀국한 소중한 시간을 번역에 투자해준 종률이 등 오랜 친구인 역자들에게 함께해서 즐거웠고 또 고맙다는 말을 전하고 싶습니다. 안드로이드 서적의 번역과 출판에 관심이 많고 앞으로도 여러 안드로이드 관련 서적을 준비 중이신 에이콘 출판사에도 감사의 말씀을 드립니다. --- '박성서 옮긴이의 말' 중에서 책을 번역하기 전 안드로이드 개발에 대한 지식이 부족했던 저에게 1부는 많은 도움이 됐습니다. 1부는 저처럼 안드로이드를 처음 접하는 개발자를 위한 내용입니다. 기초적인 자바 프로그래밍을 해본 개발자라면 1장에 나오는 주요 개념들을 읽어본 후 2장에서 4장까지 나오는 튜토리얼 방식의 내용을 따라해보며 어느 정도 큰 그림을 보실 수 있을 것입니다. 나머지 내용은 그때그때 필요에 따라 참고하시면 될 것 같습니다. 이번 계기로 안드로이드에 대해 조금 알고 난 후, 안드로이드가 단지 또 하나의 모바일 플랫폼이라는 생각을 재고하게 됐습니다. 안드로이드가 아이폰을 포함한 기존의 모바일 플랫폼과 차별화되는 이유는 오픈 핸드셋 얼라이언스를 통해 여러 일류 휴대폰 제조업체와 통신사의 지원을 받고 있기 때문입니다(오픈 핸드셋 얼라이언스에 대해서는 1장에서 설명합니다). 이들은 개방을 지향하고 안드로이드라는 공동 플랫폼을 지원하기로 해 개발자에게 모바일 환경으로의 진입 장벽을 상당히 낮췄습니다. 이런 시기에 애플리케이션 개발을 할 수 있다는 점은 참 신나는 일입니다. 마지막으로 오픈 핸드셋 얼라이언스를 통해 통신사의 폐쇄적인 비즈니스 모델이나 휴대폰 기능 접근 제한 때문에 개발자와 사용자가 답답해지는 일이 차차 사라지리라 조심스레 기대해봅니다. --- '김종률 옮긴이의 말' 중에서 모바일 기기에 관심이 있거나, 모바일 기기용 소프트웨어를 개발해 본 사람에게 안드로이드는 매우 큰 기회입니다. 성공 가능성이 큰 마케팅 모델이라는 측면을 제쳐 두고, 순전히 소프트웨어 개발 측면에서도 그렇습니다. 화면에 점 하나를 찍기도 무척이나 힘든 일이 되는 다른 플랫폼에 비해, 안드로이드는 푸짐하게 차려진 호화로운 환경에서 마음에 드는 것을 가져다 쓸 수 있는 편리한 플랫폼이기 때문입니다. 누구나 한 번쯤 고민했을 이미지 투명 처리 같은 일도 별다른 어려움 없이, 기본 제공되는 기능만으로 쉽게 처리할 수 있습니다. 가끔은 기능이 너무 풍부해 전체적인 성능을 떨어뜨리게 되는 것은 아닌지 걱정스러운 마음이 들기도 합니다만, 무척 잘 설계된 구조 덕분에 안드로이드는 매우 빠르게 반응합니다. 이런 편리한 플랫폼에서 개발하는 일은, 그 자체로 매우 즐겁습니다. 하지만 때로는 다양한 기능들을 어디서부터 건드려야 할지 헤매곤 합니다. 이 책이 그런 상황을 피할 수 있는 길잡이가 되기를 바랍니다. 단순한 Hello World 프로그램으로부터 디버거 사용법, 구글맵, 전화 걸기 기능에 이르기까지 다양한 주제를 다루므로, 안드로이드 개발을 처음 시작하는 사람이 쉽게 안드로이드 전체 구성을 어림잡아 볼 수 있을 것입니다. --- '박정욱 옮긴이의 말' 중에서 지금 스마트폰 시장에는 다양한 모바일 운영체제가 등장하고 있습니다. 심비안과 윈도우 모바일이 주를 이루던 모바일 업계에 애플이 아이폰을 들고 나타나 큰 반향을 일으켰습니다. 애플의 아이폰은 앱스토어라는 새로운 시장을 창출하고 모바일 폰의 거대한 변화를 불러왔습니다. 그리고 이제 구글이 지원하는 안드로이드 OS가 나타나 자리를 차지해 나가고 있습니다. 아직 아이폰 만큼의 파괴력은 보이지 않지만, 2년의 시간이 지나면서 안드로이드 운영체제는 더 안정적이 되고 더 많은 기능을 포함하게 됐습니다. 그리고 아직도 발전해 나가는 중입니다. 세계 시장에 안드로이드 폰들이 하나씩 모습을 드러내고, 이르면 올해 말 늦어도 내년 초에는 국내에도 안드로이드 폰이 출시되어 안드로이드의 힘을 보여주게 될 것입니다. 휴대폰뿐만이 아닌 다양한 모바일 기기에 안드로이드 플랫폼이 올라가고 안드로이드가 우리 생활의 구석구석을 차지하는 날이 오는 것도 꿈만은 아닐 것입니다. 이 책은 기본적인 각 주제에 대해서 프로그램 경험이 있는 사람의 입장에서 깊이 있게 다룹니다. 안드로이드를 어느 정도 알고 있는 분들에게는 더 깊이 알 수 있는 기회가 될 것이고, 처음 안드로이드를 접하시는 분이라도 두려워하지 않고 기본 예제를 중심으로 하나하나 따라가면서 책을 읽다 보면 어느 새 많은 부분이 이해가 되고 나도 새로운 애플리케이션을 만들 수 있겠다라는 자신감이 붙을 것입니다. 이 책이 안드로이드의 세상을 향해 나아가는 많은 개발자 분들께 힘이 될 수 있었으면 합니다. --- '배진혁 옮긴이의 말' 중에서 |
|
안드로이드 SDK 버전 1.5 반영
"이렇게 잘 쓴 책을 읽어본 게 얼마만인지 모르겠다. 이 책의 가장 두드러지는 특징은 세부 사항까지도 세심하고 주의 깊게 설명했다는 점이다." - 하이셀 테일러, 벤처기업 전문가 J2EE 아키텍트 컨설턴트 구글이 안드로이드 개발을 발표했을 때, 모바일 플랫폼 영역은 이미 잘 구축돼 있었다. 오픈 소스 플랫폼의 다양한 전문 분야에서 쓸 만한 대안이 수없이 제시되고 있는 상황이었다. 하지만 안드로이드는 기술적 관심 사항이 폭넓게 확장되도록 자극했을 뿐만 아니라, 개인용 장치의 세계를 완전히 변하게 할 잠재력에 대한 무성한 추측을 불러일으켰다. 안드로이드 기기는 단순히 전화 걸기, 이메일, 음식점 찾기 등의 익숙한 편의 기능만을 제공하는 것이 아니라 전 세계로 열린 창구가 될 수 있다. 간단히 말해서 사용자와 개발자가 만들고자 하는 무엇이든 될 수 있다. 설득력 있는 분석과 호언장담이 어느 정도로 실현가능한지에 대한 논의는 이 책에서 논외로 둔다. 이 책은 안드로이드 프로그래밍 환경을 배우고, 차별화된 제품을 만들기 위해 알아야 할 것을 익히려는 사람을 위한 책이다. 책을 쓰면서 여러 번 나온 배포본의 소스 코드를 분석하고 라이브러리와 개발킷의 기능을 시험해 보느라 힘겨운 시간을 보냈다. 진정한 안드로이드를 드러내려고 노력했으며, 온라인이나 인쇄물에서 찾을 수 있는 문서 이상을 보여주려고 노력했다. 자바 프로그래머가 이 책을 꼼꼼히 읽는다면 누구나 유용하고 결함 없는 안드로이드 애플리케이션을 만들 수 있다. 일부 내용은 안드로이드가 어떤 식으로 기능을 구현하는지 내부 내용까지 다룬다. 원한다면 안드로이드 오픈 소스를 살펴볼 수도 있다. 최신 휴대폰의 핵심 기능을 활용하는 안드로이드 애플리케이션 제작 안드로이드 사용자 인터페이스를 이용한 완전한 모듈식 프로그램 제작 뷰, 지도, 위치기반 서비스, 지속적인 데이터 저장, 전화 기능, 프로세스 간 통신 기능 등의 아키텍처와 개념 설명 실행 가능한 예제 코드를 적용한 세부 기능 구현 2D와 3D 그래픽, 디버깅, 성능 분석 등 고급 기술 이 책은 안드로이드 모바일 환경에서 애플리케이션을 개발하려는 숙련된 소프트웨어 개발자를 대상으로 한다. 자바 프로그래밍 언어에 익숙하고, 자바로 사용자 인터페이스를 개발했으며, 적어도 안드로이드에서 사용하는 XML, SQL, GTalk(XMPP), OpenGL-ES, HTTP 등의 기술에 익숙하다고 가정한다. 예제 프로그램을 중심으로 구성돼 있다. 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장. 텔레포니 상태 정보와 안드로이드 텔레포니 클래스: 텔레포니 서비스와 전화 걸기 상태 정보를 알아내는 방법을 배우고 텔레포니 인터널을 살펴 본다. 부록. 무선 프로토콜: 무선 통신 서비스의 배경과 역사를 알아 본다. |