개정판이 출간되었습니다.
이미 소장하고 있다면 판매해 보세요.
|
1부 안드로이드 기초
1장 개요 안드로이드 프로그램 구조 액티비티 컨텐트 프로바이더 인텐트 서비스 사용 가능한 구성 요소 데이터 보관 네트웍 멀티미디어 GPS 전화 서비스 개발환경 준비 안드로이드 SDK 설치 개발환경 설정 이클립스 플러그인 설치 안드로이드 가상 기기 생성 2장 프로젝트 디렉토리 루트 디렉토리 생성되는 내용 그 밖의 디렉토리 결과로 얻는 내용 3장 매니페스트 파일 루트 엘리먼트 권한, 기본 연동 요소, 애플리케이션 애플리케이션 엘리먼트 SDK 버전 2부 액티비티 4장 애플리케이션 작성 프로젝트 생성 액티비티 액티비티 분석 빌드와 실행 5장 XML 레이아웃 XML 기반 레이아웃 XML로 레이아웃을 지정하는 이유 XML 레이아웃 파일 구조 엘리먼트 ID 자바 코드와 연결하는 방법 종합정리 6장 기본 위젯 레이블 버튼 이미지 입력 필드 체크 박스 라디오 버튼 뷰 유용한 속성 유용한 메소드 7장 컨테이너 LinearLayout 개념과 속성 LinearLayout 예제 RelativeLayout 개념과 속성 RelativeLayout 예제 TableLayout 기본 개념과 속성 TableLayout 예제 스크롤 8장 선택 기능 위젯 공통의 인터페이스 어댑터 ArrayAdapter 그 밖의 어댑터 리스트 예제 스핀 컨트롤 그리드 입력 필드: 타이핑 줄이기 갤러리 9장 리스트 고급 활용 가장 간단한 작업 동적인 내용 인플레이션 다시 리스트로 돌아가서 성능 개선 convertView 활용 홀더 패턴 원하는 대로 만들기 다시 살펴봅시다 10장 고급 위젯과 컨테이너 날짜, 색상 선택 시계 진행상태 표시 탭 탭 구성 요소 주의할 점 연결과 탭 완성 동적으로 탭 추가 인텐트와 뷰 플리퍼 그 밖의 위젯 11장 메뉴 메뉴 종류 옵션 메뉴 컨텍스트 메뉴 메뉴 예제 메뉴 인플레이션 메뉴 XML의 구조 메뉴 관련 속성 메뉴 인플레이션 12장 글꼴 기본 포함 글꼴 13장 웹킷 브라우저 단순한 브라우저 원하는 내용 표시 브라우저 내비게이션 WebViewClient 설정과 옵션 14장 팝업 메시지 토스트 경고창 팝업 메시지 예제 15장 스레드 Handler 객체 Message 객체 Runnable 객체 Handler 없이 실행 사용자 인터페이스 스레드 주의해야 할 점 16장 액티비티 생명주기 액티비티 상태 액티비티 생명주기 onCreate(), onDestroy() onStart(), onRestart(), onStop() onPause(), onResume() 부드러운 상태 변화 3부 데이터 보관, 네트웍 서비스, API 17장 환경설정 원하는 값 추출 환경설정 관리 환경설정 XML 환경설정 기능 제공 모양새 갖추기 환경설정 팝업 18장 파일 고정된 파일 읽고 쓰기 19장 리소스 리소스의 종류 문자열 일반 문자열 문자열 포매팅 화면 표시 스타일 스타일이 적용된 포매팅 이미지 XML 기타 리소스 크기 색깔 배열 환경에 맞는 리소스 선택 20장 로컬 데이터베이스 SQLite 기초 테이블 준비 데이터 추가 데이터 불러오기 SQL문 직접 지정 일정한 형식의 쿼리 쿼리 구문 생성 커서 활용 커서 구현 데이터 직접 다루기 21장 외부 자바 라이브러리 제한 사항 Ant와 JAR 스크립트 활용 기타 사항 22장 인터넷 연결 REST 기본 HTTP 작업 응답 분석 고려 사항 4부 인텐트 23장 인텐트 필터 인텐트 인텐트 구조 인텐트 라우팅 인텐트 생성 인텐트 리시버 일시정지 문제 24장 액티비티 실행 액티비티 종류 실행 인텐트 작성 호출 탭 브라우징 25장 대상 액티비티 찾기 액티비티 선택 메뉴 직접 확인 26장 화면 회전 종료 및 재시작 가로보기, 세로보기 더 많은 정보 보관 직접 처리하는 회전 작업 화면 고정 가속도계만 사용 5부 컨텐트 프로바이더, 서비스 27장 컨텐트 프로바이더 Uri 구성 Uri 생성 쿼리 실행 데이터 자동 적용 데이터 수동 추출 위치 속성 읽기 데이터 추가와 변경 BLOB 문제 28장 컨텐트 프로바이더 구현 내부 구성 요소 데이터 타입 1단계: 컨텐트 프로바이더 클래스 생성 onCreate() 메소드 query() 메소드 insert() 메소드 update() 메소드 delete() 메소드 getType() 메소드 2단계: Uri 지정 3단계: 속성 정의 4단계: 매니페스트 설정 변경 사항 알림 29장 권한 권한 확보 권한 요청 AndroidManifest.xml 파일에 권한 명시 그 밖의 권한 요청 방법 자세한 문서와 설명 30장 서비스 구현 서?스 클래스 프로세스 간 통신 AIDL 작성 인터페이스 구현 AndroidManifest.xml IPC 클라이언트 호출 원격 서비스, 프로그램의 나머지 부분 31장 서비스 호출 바인딩 서비스 호출 서비스 연결 해제 수동 실행 데이터 수신 32장 사용자 알림 알림 메시지 종류 기기 알림 메시지 아이콘 알림 메시지 예제 6부 안드로이드의 다양한 기능 33장 위치 기반 서비스 위치 정보 프로바이더 위치 확인 변경 사항 업데이트 목표 지점 도착 알림 테스트 34장 지도, MapView, MapActivity 구글 지도 사용권 계약 구글 지도 기초 지도 제어 기능 확대/축소 배율 중심 이동 위성 사진 지도 레이어 오버레이 클래스 ItemizedOverlay 표시 화면 터치 처리 현재 위치와 방향 API 키 발급 35장 전화 TelephonyManager 전화 걸기 36장 검색, SearchManager 검색 결과 수집 애플리케이션 내부 검색 검색 액티비티 작성 매니페스트 검색 실행 37장 개발 도구 계층 탐색기 달빅 디버깅 로그 파일 업로드, 다운로드 화면 캡처 위치 지정 전화 걸기, SMS 발송 SD카드 SD카드 이미지 생성 SD카드 삽입 38장 안드로이드 관련 정보 얻기 질문과 대답 안드로이드 소스 코드 최신 소식 부록 안드로이드 1.5 & 1.6 안드로이드 가상 장비 프로젝트 생성 프로젝트 설정 부가 기능 추가 위젯 소프트 키보드 홈 화면 스레드 기타 음성 인식 IntentService 음악 재생 옵션 MediaRecorde |
|
안드로이드의 세계에 발을 담근 독자 여러분을 환영한다. 지금 모바일 애플리케이션 개발의 측면에서 새로운 시대가 열리고 있다. 오픈 플랫폼과 오픈 소스를 바탕으로 모바일 관련 개발자가 온실속의 화초로 자랄 수 있는 따뜻한 환경이 갖춰지는 중이다. 안드로이드는 개발자 입장에서 적응하기가 쉽기 때문에 이와 같은 혁신을 통해 짧은 시간 안에 개발자와 사용자가 연결되는 대규모 시장이 형성될 것으로 기대한다. 평범한 자바 개발자라면 누구든지 각자가 만들고자 하는 모바일 애플리케이션을 구상해 개발할 수 있고, 개발한 애플리케이션은 수많은 일반 소비자에게 직접 노출해 판매할 수 있다.
또한 이 책을 선택해준 데 깊이 감사한다. 이 책은 안드로이드 환경에서 애플리케이션을 개발하고 고급 애플리케이션 개발 단계로 쉽게 넘어가도록 돕는 데 목표를 뒀다. 안드로이드는 필요한 기능을 이미 충분히 갖추고 있으며 데스크탑 자바 개발 환경과 비교할 수 있는 수준에 이르렀다고 본다. 따라서 안드로이드 플랫폼을 활용해 상상 속의 멋지고 특별한 애플리케이션을 얼마든지 작성할 수 있다는 뜻이다. 책에서 소개한 예제 코드는 모두 출판사 웹사이트에서 내려받을 수 있다. 따라서 안드로이드의 기본적인 부분에 대한 설명을 읽으면서, 완벽하게 동작하는 예제를 간편하게 돌려볼 수 있다. 또한 예제 코드를 기반으로 책에서 설명하는 다양한 클래스와 API를 실행해 보면 안드로이드에 좀 더 빠르게 적응하리라 생각된다. 책을 다 읽고 나면 어떤 안드로이드 애플리케이션을 만들어볼까 고민하게 될 시간이 올 거라 믿는다. --- '저자의 말' 중에서 그야말로 스마트폰과 모바일 애플리케이션의 전성기가 시작되는 요즘이다. 그동안 스마트폰이라고 부르는 휴대폰은 많이 나왔었지만 그저 하드웨어 성능이 좋았을 뿐이었는데, 애플의 아이폰을 선두로 스마트폰이 정말 똑똑해지고 있다. 또한 아이폰과 앱스토어에서 벌어지는 성공 신화는 벌써 헤아리기 어려울 수준에 이르렀다. 하지만 아이폰은 애플의 독자 플랫폼이며 오브젝티브C라는 언어를 알아야 하는 등 여러 가지 어려움이 있었다. 반면 그 뒤를 따르는 안드로이드 플랫폼은 아이폰이 갖고 있던 단점을 상당 부분 해소하고 있다. 바닥부터 오픈 소스로 공개되어 있으며, 여러 하드웨어 업체에서 안드로이드를 탑재한 기기를 생산하거나 생산할 예정이다. 더군다나 안드로이드에서 동작하는 애플리케이션은 요즘 가장 많이 사용되는 언어인 자바로 프로그램할 수 있으니 금상첨화다. 국내에서는 안드로이드 기반 휴대폰이 아직 출시되지 않았지만, 안드로이드를 활용하고자 하는 업체와 개발자는 엄청나게 늘어나고 있다. 대기업은 안드로이드 휴대폰 단말기를 외국에 출시해 판매하고 있고, 안드로이드 기반 게임기 등을 준비 중인 업체도 있고, 뜻있는 개발자가 모여 벤처 업체를 창업하기도 한다. 플래시/플렉스를 개발하던 개발자도, 방송 관련 일을 하던 개발자도, 회계 프로그램을 만들던 개발자도, GIS 일을 하던 개발자도 모두 안드로이드에 뛰어들고 있다. 특히 국내에는 자바 개발자 기반이 넓기 때문에 안드로이드가 더 빨리 대중화될 수 있으리라 생각된다. 안드로이드는 데스크탑 환경에서 사용자 인터페이스를 개발해본 경험이 있는 개발자라면 굉장히 쉽게 접근할 수 있다. 대신 AWT, 스윙, SWT 등의 사용자 인터페이스 프레임웍이 아닌 안드로이드만의 인터페이스 프레임웍을 사용해야 하기 때문에 적응 기간이 필요한 건 사실이다. 이 책 『알짜만 골라 배우는 안드로이드 프로그래밍』은 이런 적응 기간을 최대한 줄일 수 있도록 대표적인 기능을 모아 예제와 함께 소개한다. 물론 이 책에서 미처 다루지 못한 고급 개발 관련 내용도 굉장히 많지만, 일단 이 책을 보고 나면 웬만한 개인용 또는 기업용 애플리케이션 정도는 어렵지 않게 개발할 수 있으리라고 본다. 예를 들어 웹 페이지로 제공되던 POS 또는 매출 관리 프로그램 화면을 안드로이드 버전으로 제공한다면, 안드로이드 기반 휴대폰을 통해 어디에서건 자신의 매장과 매출을 쉽게 조회할 수 있어 파급 효과가 크지 않을까. 물론 지금도 WML 또는 일부 풀브라우징이 가능한 휴대폰으로 서비스가 가능하겠지만, 웹페이지가 아닌 전용 애플리케이션으로 제공되는 인터페이스의 편리함과 명확함을 따라오기는 쉽지 않다고 본다. 또한 안드로이드 애플리케이션은 크기가 작은 만큼 대기업에서 규모 있는 애플리케이션을 만들기보다는, 한두 명 정도의 개발자와 디자이너가 모여 상상력이 톡톡 튀는 기능을 구현하기에 적당하다. 또한 안드로이드 마켓 등을 통해 소비자와 직접 연결되어 판매가 가능하기 때문에 개인 또는 소규모 팀에게 더할 나위 없는 기회가 아닐 수 없다. 하루 빨리 국내에도 다양한 안드로이드 단말기가 출시되고, 기업에서 생각지도 못했던 상상력을 동원한 멋진 애플리케이션을 많이 볼 수 있기를 기원한다. --- '옮긴이의 말' 중에서 |