목차 일부
저자소개 ... 5
옮긴이의 말 ... 6
들어가며 ... 12
Part 1 핵심개념
01 개요 ... 17
스마트폰 프로그래밍의 장단점 ... 17
안드로이드 프로그램 구조 ... 19
안드로이드에서 사용 가능한 기능 ... 20
나머지 부분에 대한 요약 ... 21
02 안드로이드 설치 ... 22
...
더보기
목차 전체
저자소개 ... 5
옮긴이의 말 ... 6
들어가며 ... 12
Part 1 핵심개념
01 개요 ... 17
스마트폰 프로그래밍의 장단점 ... 17
안드로이드 프로그램 구조 ... 19
안드로이드에서 사용 가능한 기능 ... 20
나머지 부분에 대한 요약 ... 21
02 안드로이드 설치 ... 22
1단계 : 자바 설치 ... 22
2단계 : 안드로이드 SDK 설치 ... 24
3단계 : 이클립스를 위한 ADT 설치 ... 28
4단계 : 아파치 Ant 설치 ... 30
5단계 : 애뮬레이터 설정 ... 31
6단계 : 실체 휴대폰을 위한 설정 ... 35
03 안드로이드 프로젝트 ... 38
1단계 : 새로운 프로젝트 생성 ... 38
2단계 : 애플리케이션 컴파일, 설치 그리고 에뮬레이터나 휴대폰에서의 실행 ... 42
04 첫 프로젝트 점검 ... 46
프로젝트 구조 ... 46
매니페스트 파일 ... 49
05 이클립스 ... 52
ADT가 제공하는 것 ... 52
이클립스 다루기 ... 53
IDE들을 대체할 수 있는 것 ... 59
IDE와 이 책의 관계 ... 60
06 첫 프로젝트 향상 ... 61
다양한 크기의 화면 지원 ... 61
특징 버전들 ... 62
Part 2 액티비티
07 첫 프로젝트 재작성 ... 67
액티비티 ... 67
액티비티 분석 ... 68
액티비티의 구축과 실행 ... 70
08 XML 기반 레이아웃 사용 ... 72
XML 기반 레이아웃이란 무엇인가? ... 72
왜 XML 기반 레이아웃을 사용하는가? ... 73
XML 레이아웃은 어떻게 생겼는가? ... 73
@ 부호는 무엇인가? ... 75
어떻게 XML 레이아웃을 자바에 적용할 것인가? ... 75
종합 정리 ... 76
09 기본 위젯 ... 78
라벨 배치 ... 78
버튼은 누가 가지고 있는가? ... 80
이미지 사용하기 ... 80
녹색 필드와 다른 색상들 ... 82
다른 성질을 가진 체크 박스 ... 84
라디오 버튼 켜기 ... 86
보기 좋은 View ... 88
10 컨테이너(Container) ... 91
선형적 생각 ... 91
LinearLayout의 개념과 속성 ... 92
LinearLayout의 예제 ... 95
모든 위젯들의 상관관계 ... 101
오버랩 ... 106
공백 상태 ... 108
TableLayout 예제 ... 110
스크롤 작업 ... 112
11 입력메소드 프레임워크 ... 115
하드키보드와 소프트키보드 ... 115
요구에 대한 맞춤 기능 ... 116
안드로이드가 알려주는 선택에 대한 방향 제시 ... 120
맞게 조정하기 ... 123
IME가 불필요한 경우 ... 124
12 선택 위젯 사용하기 ... 126
상황에 적응하기 ... 126
ArrayAdapter 사용하기 ... 127
부적당한 리스트와 좋은 리스트 ... 128
선택 모드 ... 130
회전 제어 ... 132
격자무늬 ... 136
필드 : 지금부터는 35% 적게 타이핑! ... 140
갤러리 ... 144
13 리스트 고급 활용 ... 145
가방 기본적인 작업 ... 145
동적 표현 ... 148
각 행의 팽창하기 ... 150
성능 개선 ... 153
14 고급 위젯과 컨테이너 ... 164
엄선하기 ... 164
시간 유지 ... 169
탐색 슬라이더 ... 171
탭에 삽입하기 ... 172
연동하기 ... 174
탭의 넘김 기능 ... 180
서랍에서 가져오기 ... 186
그 밖의 다른 좋은 위젯들 ... 189
15 웹킷 브라우저 삽입 ... 191
작은 문서에 대한 브라우저 ... 191
원하는 내용 불러오기 ... 194
네비게이션 기능 ... 195
재미있는 클라이언트 ... 196
각 종류의 설정, 환경 설정과 옵션 ... 198
16 메뉴 적용 ... 199
메뉴의 특징 ... 199
옵션에서의 메뉴 ... 200
컨텍스트에서의 메뉴들 ... 201
간단히 살펴보기 ... 202
여전히 더 많은 팽창 ... 208
메뉴의 범위와 허니컴 ... 212
17 팝업 메시지 ... 213
토스트 띄우기 ... 213
경고! 경고! ... 214
팝업 메시지 확인하기 ... 215
18 액티비티 생명주기와 이벤트 ... 218
슈뢰딩거의 액티비티 ... 218
액티비티의 활동(생성)과 소멸 ... 219
상태의 유예기간 ... 221
19 회전처리 ... 222
소멸의 철학 ... 222
조금 다를 뿐이지 모두 동일하다 ... 223
이제 좀 더 많은 것을 저장해보자! ... 230
DIY 회전 ... 232
빠른 결정 강요하기 ... 236
그 모든 것의 타당성 ... 239
20 스레드 ... 241
메인 애플리케이션 스레드 ... 241
ProgressBar를 이용한 진행 처리하기 ... 242
핸들러 사용하기 ... 243
UI 스레드는 어디로 사라졌는가? ... 247
Async에 대한 느낌 ... 247
스레드와 회전 ... 255
그리고 현재, 주의 사항 ... 260
21 인텐트 필터 ... 262
인텐트 ... 262
인텐트 생성 ... 264
인텐트 리시버 ... 266
일시정지 문제 ... 267
22 액티비티 실행 ... 268
액티비티 종류 ... 268
실행 ... 269
탭 브라우징 ... 273
23 리소스 ... 277
리소스의 종류 ... 277
문자열 ... 278
이미지 ... 283
XML ... 285
기타 리소스 ... 288
환경에 맞는 리소스 선택 ... 290
RTL 언어 ... 294
24 스타일 ... 296
DIY DRY ... 296
스타일 엘리먼트 ... 298
Theme : 다른 스타일 ... 301
25 다양한 화면크기 ... 303
기본 화면 크기 ... 3003
화면 크기별 대응 ... 304
기기별 레이아웃 ... 307
밀도와 실제 크기 ... 310
레이아웃 변경 ... 312
예제 : EU4You ... 313
Part 3 허니컴과 태블릿
26 허니컴 UI 소개 ... 327
왜 허니컴인가? ... 327
사용자들이 보는 것들 ... 328
홀로그래픽 테마 ... 331
나머지 디바이스를 다루는 방법 ... 332
27 액션 바 ... 335
Action bar 사용 가능하게 만들기 ... 335
메뉴 아이템을 액션 바에 올리기 ... 336
Logo에 대응하기 ... 337
Custom view를 action bar에 추가하기 ... 338
휴대폰을 잊지 마라! ... 343
28 프래그먼트 ... 344
Fragment 소개 ... 344
Fragment class 만들기 ... 347
Fragments, 레이아웃, 액티비티 그리고 다양한 화면 크기 ... 355
Fragment와 설정 변경하기 ... 362
Fragment 설계하기 ... 362
29 플랫폼 변경 ... 364
실패하게 만드는 요인들 ... 364
API 변화에의 대처 ... 365
허니컴을 위한 패턴들 ... 370
30 파일 접근 ... 374
참조 데이터 사용 ... 374
읽기와 쓰기 ... 378
외부 저장장치: 거대한 이코노미 사이즈의 공간 ... 381
StrictMode : Janky 코드 피하기 ... 383
리눅스 파일 시스템 ... 387
Part 4 데이터저장, 네트워크 서비스, API
31 환경설정 ... 391
원하는 값 추출 ... 391
환경설텅 관리 ... 392
PreferenceActivity 소개 ... 393
환경설정 기능 제공 ... 394
구조 변경 ... 398
환경설정 팝업의 종류 ... 401
프래그먼트를 통한 환경설정 ... 405
32 로컬 데이터베이스 관리 및 실행 ... 412
SQLite 요약 웹문서 ... 414
시작하기 ... 414
표의 구축 ... 418
데이터 생성 ... 418
무엇이 오가는가 ... 420
플래시 : 원래보다 빠른 소리 ... 423
모든 곳에 존재하는 데이터 ... 424
33 자바 라이브러리 ... 426
Ants와 JARs ... 426
외부적 한계 ... 427
스크립트를 따라가기 ... 428
스크립트 리뷰 ... 432
34 인터넷을 통한 의사소통 ... 433
휴양과 휴식 ... 433
Internet-Aware 안드로이드 컴포넌트 ... 439
Janky 코드로부터 벗어나기 ... 450
Part 5 서비스
35 서비스 이론 ... 453
서비스가 왜 필요한가? ... 453
서비스 셋업하기 ... 454
서비스와의 소통 ... 456
서비스로부터 의사소통하기 ... 458
36 기본적인 서비스 패턴 ... 461
다운로더 ... 461
뮤직 플레이어 ... 466
웹 서비스 인터페이스 ... 470
37 알림(Notification) ... 485
알림 설정 ... 485
작동하는 알림 ... 488
포어그라운드에 위치하기 ... 491
알림과 허니콤 ... 494
Part 6 기타 안드로이드 능력
38 승인 문의 및 요청 ... 499
승인 받기 ... 499
보안 ... 500
구 애플리케이션에서의 새로운 승인 ... 503
승인 : 선불 또는 안함 ... 504
39 위치기반 서비스 접속 ... 505
위치 제공자 ... 505
위치 제공자 선택 ... 506
이동 ... 507
목적지 ... 509
테스트 ... 510
40 MapView와 MapActivity로 Mapping하기 ... 511
약정 ... 511
Piling on ... 512
API KEY ... 512
베어본 ... 513
맴 컨트롤 ... 516
레이어 위의 레이어 ... 517
MyLocationOverlay ... 520
험한 지형 ... 521
지도와 Fragment들 ... 522
41 휴대폰 전화 다루기 ... 527
매니저에게 보고하기 ... 527
전화 걸기!! ... 528
실제로 전화 걸기 ... 531
42 폰트(글자체) ... 532
글자체를 사랑하자 ... 532
추가적인 서체들 ... 534
글리프 ... 536
43 개발 도구 ... 538
계층 탐색기 ... 538
DDMS : 안드로이드 후드 아래 ... 541
adb : DDMS ... 549
Part 7 애플리케이션 환경
44 안드로이드 대체 환경 ... 553
자바 ... 553
장점 ... 554
트렌스 거스르기 ... 555
지원, 구조 ... 555
Caveat 개발자 ... 556
45 HTML5 ... 557
오프라인 애플리케이션 ... 44
웹 보관함 ... 563
상품 ... 566
단점 ... 567
HTML5와 대체 안드로이드 브라우저 ... 570
HTML5 : 기준 ... 570
46 PhoneGap ... 571
PhoneGap은 무엇인가 ... 571
사용 ... 574
PhoneGap과 Checklist 예제 ... 578
만나게 되는 문제들 ... 584
더 많은 정보 ... 586
47 다른 대체 환경 ... 587
Rhodes ... 587
Flash, Flex, AIR ... 588
Jruby와 Ruoto ... 588
안드로이드에 대한 MONO ... 588
App Inventor ... 589
티타늄 모바일 ... 591
다른 Jvm 컴파일 언어 ... 591
Part 8 안드로이드의 진화
48 장치 다루는 법 ... 595
이 앱은 명확한 지시를 포함한다 ... 595
보장된 시장 ... 598
다양한 다른 것들 ... 599
버그 ... 599
디바이스 테스트 ... 600
49 당면과제 ... 601
질문과 답변 ... 601
소스를 향해 ... 602
뉴스 ... 603
찾아보기 ... 604
더보기 닫기