에너지경제연구원 전자도서관

로그인

에너지경제연구원 전자도서관

자료검색

  1. 메인
  2. 자료검색
  3. 통합검색

통합검색

교양도서

안드로이드 프로그래밍의 이해와 실제

발행사항
파주 : 생능출판사, 2010
형태사항
532 p. : 삽화 ; 27 cm
서지주기
참고문헌(p. 525-526)과 색인수록
소장정보
위치등록번호청구기호 / 출력상태반납예정일
이용 가능 (1)
연구외도서G100316대출가능-
이용 가능 (1)
  • 등록번호
    G100316
    상태/반납예정일
    대출가능
    -
    위치/청구기호(출력)
    연구외도서
책 소개
모바일 컴퓨팅의 미래 안드로이드

안드로이드는 ‘인간의 모습을 한 로봇’이란 의미를 지닌 자그마한 신생 업체의 이름으로, 구글이 인수하기 전까지는 비밀스럽지만 특별한 의미를 가지지 않았다. 하지만 검색 광고업계의 거인 구글이 모바일 시장에 진출하기 위하여 이 업체를 인수함으로써 이제 안드로이드는 아이폰과 함께 스마트폰을 이끌어나가는 특별한 단어가 되었다.
안드로이드의 최대 강점은 플랫폼의 개방과 무료이다. 일반적으로 폐쇄적이고 독점적인 정책은 사용자로부터 외면받는다. 운영체제의 경우 IBM OS2, 컴퓨터의 경우 애플 매킨토시, 비디오 레코더의 경우 소니의 베타(beta) 방식 등은 성능이 매우 우수하지만 폐쇄적인 환경을 고집함으로써 성공하지 못했다. 안드로이드는 모든 소스를 오픈하여 어떤 모바일 단말기 제조사도 안드로이드 SDK를 사용하고 수정해도 라이선스에 문제가 없다. 따라서 일개 회사에 종속적인 애플 아이폰과는 달리 안드로이드는 모든 모바일 단말기뿐만 아니라 임베디드 단말기를 위한 플랫폼으로 널리 사용될 수 있다.
안드로이드의 또 다른 강점은 개발 도구인 안드로이드 SDK의 편의성이다. 개발자를 제대로 지원하지 못하면 성공하기 어렵다. 아이폰 개발 도구는 사용하기 어렵고 주관적일 수 있는 애플리케이션 등록 과정으로 인하여 개발자를 점차 망설여지게 만든다. 모바일 컴퓨팅의 미래가 사용자가 원하는 콘텐츠에 달려 있다면 안드로이드가 모바일 시장에서 승리할 가능성은 매우 크다. 안드로이드 개발 도구의 편의성과 강력함으로 인해 많은 콘텐츠가 개발될 수 있기 때문이다.

기초와 실무를 아우르는 대학교재

현대인은 TGiF를 누리고 있다고 한다. 유명 패밀리 레스토랑의 음식을 즐기고 있다는 말이 아니다. 트위터(Twitter), 구글(Google), 아이폰(iPhone), 페이스북(Facebook)의 첫 자를 딴 합성어를 의미한다. 이것들은 우리나라는 물론 전 세계인의 삶을 점령하고 있는 키워드로서 모두 정보의 접근과 밀접한 용어이다.
특히 아이폰은 2007년 애플이 출시한 스마트폰으로 휴대폰과 PC의 융합상품이다. 아이폰의 출시는 세계를 스마트폰 폭풍 속에 몰아넣었다. 웹 분야의 최대 강자인 구글도 이에 뒤질세라 2008년도에 모바일 분야의 채널을 확보하기 위하여 안드로이드라는 야심찬 모바일 플랫폼을 OHA (Open Handset Alliance)와 함께 발표했다. 세계 1위의 모바일 단말기 업체인 노키아도 심비안 플랫폼을 공개하고 적극 공세에 나서고 있다. 노키아뿐이 아니라 내로라하는 모바일 업계는 모두 스마트폰 시장에 뛰어들고 있다. 스마트폰의 진정한 승리는 단말기의 하드웨어가 아니라 단말기에 탑재되는 소프트웨어에 달려 있다. 이를 위하여 각종 콘텐츠 장터가 출현하고 있으며 소프트웨어 개발자가 다양한 형태로 참여하고 있다. 안드로이드는 스마트폰 대중화의 기폭제 역할을 한 애플의 아이폰을 북미 지역부터 이미 추월하고 있다. 대부분의 모바일 전문가들은 머지않아 안드로이드가 모바일 시장을 선도할 것으로 예견하고 있다.
이에 따라 국내의 스마트폰 시장도 모두 안드로이드에 촉각을 곤두세우고 있다. 그러나 국내에 소개된 대부분의 안드로이드 서적은 번역서이며, 초보자부터 실무자에게 도움이 될 만큼 변변하지 못하다. 따라서 이 책의 저자들은 일반 휴대폰 분야의 강국이지만 스마트폰에서 한발 늦은 국내 모바일 분야에 일조하고, 또한 급격한 변화와 사회적 요구에 따라 대학생부터 실무 개발자에 이르기까지 기초와 실무에 쉽게 접할 수 있는 교재의 필요성을 느껴 이 책을 집필하였다.

이 책의 내용과 특징

이 책은 사회적 요구와 기술의 변화를 능동적으로 반영하여 이론과 실습을 함께 다루며, 자바(Java) 프로그래밍 언어와 리눅스(Linux)에 대한 기초 지식만 있어도 이해할 수 있도록 기초편, 응용편, 실제편으로 나누어 쉽게 설명하고 있다.
기초편은 안드로이드를 처음 접하면서 안드로이드의 가장 기본적인 내용을 다루는 부분이다. 먼저 안드로이드의 탄생 배경, 안드로이드 플랫폼의 의미, 안드로이드의 구조, 안드로이드의 미래 등을 살펴본다. 그리고 안드로이드 애플리케이션을 개발하기 위하여 데스크톱 컴퓨터에 필요한 소프트웨어를 설치하고 환경 설정을 한 후 모든 프로그램의 기본인 문자열 출력하기와 같은 프로젝트를 구축하고 실행해본다. 그런 다음 기본적인 문자열 프로그램의 내부를 해석하고 간단하게 응용해본다. 끝으로 안드로이드에서 가장 중요한 액티비티와 리소스의 개념을 학습하고, 이를 이용한 간단한 애플리케이션을 개발한다.
응용편에서는 안드로이드의 주요한 개념들을 실습을 통해 학습한다. 먼저 사용자와 상호작용하기 위하여 사용하는 다양한 위젯, 뷰, 뷰 그룹, 레이아웃, 대화창, 선택 위젯 등을 살펴보고, 옵션 메뉴와 컨텍스트 메뉴를 배운다. 사용자 인터페이스는 주로 사용자와 입력과 출력을 주고받고, 그래픽스와 애니메이션은 주로 화면에 출력하는 특징이 있다. 실습을 통해 다양한 그래픽스와 애니메이션 관련 개념 및 효과들을 학습한다. 컴포넌트 간 메시지 전달 메커니즘인 인텐트를 배우고, 고급 개념인 서비스와 브로드캐스트 리시버에 대하여 살펴본다. 애플리케이션이 단말기에 데이터를 저장하는 프레퍼런스와 데이터베이스를 배우고, 다른 애플리케이션에게 데이터를 제공하는 컨텐트 프로바이더에 대하여 살펴본다. 마지막으로 휴대 단말기의 고유한 특징인 위치를 활용하는 위치 기반 서비스와 관련된 개념들을 배운다.
실제편은 최근 갤러시탭 모델에서 사용하는 (주)하이버스(Hybus)의 H-AndroSV210을 타깃 시스템으로 하여 애플리케이션 검증부터 마켓으로의 판매 관련 기술을 다룬다. 그에 따라 안드로이드 소프트웨어 플랫폼, 에뮬레이터, 리눅스 기반의 안드로이드 플랫폼 개발, 하드웨어 플랫폼 및 마켓 관련 내용을 자세히 기술한다. 실제 모바일 타깃 장치에서 애플리케이션을 구동시키기 위해서는 여러 가지 사항이 필요하다. 에뮬레이터를 기반으로 개발한 애플리케이션을 실제 모바일 타깃 장치에서 테스트를 수행하여 유효성에 대한 검증 과정을 거쳐야 한다. 또한 에뮬레이터에서 지원하지 않은 하드웨어 장치의 동작 검증을 수행하여야 하며, 에뮬레이터와는 다른 실제 타깃 장치에 적합한 새로운 파일시스템을 구성할 수 있어야 한다. 끝으로 애플리케이션을 개발한 후 마켓에 배포하기 위한 기술을 설명한다.

목차

PART 1 기초편
CHAPTER 1 안드로이드 둘러보기
1.1 스마트폰과 무선 인터넷
1.2 모바일 플랫폼
1.3 모바일 시장은 전쟁터
1.4 안드로이드 개요
1.5 안드로이드 아키텍처
1.6 안드로이드 애플리케이션
1.7 안드로이드의 미래
■ 연습문제
CHAPTER 2 개발 환경 구축
2.1 교차 개발 환경
2.2 소프트웨어 다운로드
2.3 JDK와 안드로이드 SDK 설치
2.4 이클립스 설치 및 설정
2.5 AVD와 가상 SD 카드 생성
2.6 안드로이드 SDK 둘러보기
■ 연습문제
CHAPTER 3 안드로이드 프로그램의 첫걸음
3.1 프로젝트 생성하기
3.2 프로젝트 파일 및 소스 코드 이해
3.3 코드로 문자열 표시하기
3.4 문자열 출력 프로그램 응용
3.5 프로젝트에 새로운 파일 혹은 속성 추가
■ 연습문제
CHAPTER 4 액티비티와 리소스
4.1 액티비티의 이해
4.2 리소스의 이해
4.3 리소스의 응용
4.4 애플리케이션 디버깅
■ 연습문제

PART 2 응용편
CHAPTER 5 사용자 인터페이스(Ⅰ)
5.1 위젯
5.2 레이아웃
■ 연습문제
CHAPTER 6 사용자 인터페이스(Ⅱ)
6.1 리스트 뷰
6.2 대화창
6.3 메뉴
■ 연습문제
CHAPTER 7 그래픽스와 애니메이션
7.1 이미지 출력
7.2 커스텀 뷰와 캔버스
7.3 셰이프드로어블
7.4 그래디언트
7.5 애니메이션
■ 연습문제
CHAPTER 8 인텐트, 서비스와 브로드캐스트 리시버
8.1 인텐트
8.2 서비스
8.3 알림
8.4 브로드캐스트 리시버
8.5 알람
■ 연습문제
CHAPTER 9 데이터 저장
9.1 프레퍼런스
9.2 데이터베이스 저장
9.3 컨텐트 프로바이더
■ 연습문제
CHAPTER 10 위치 기반 서비스
10.1 위치 정보 출력
10.2 요구 기준에 의한 위치 정보 조회
10.3 지오코딩
10.4 MapView와 MapActivity를 이용한 지도 출력
10.5 Maps API 키 발급
■ 연습문제

PART 3 실제편
CHAPTER 11 안드로이드 아키텍처의 이해 및 분석
11.1 안드로이드 소프트웨어 플랫폼
11.2 안드로이드 커널
■ 연습문제
CHAPTER 12 안드로이드 개발 지원 환경 및 분석
12.1 안드로이드 개발 환경
12.2 안드로이드 개발 지원 도구
12.3 에뮬레이터에 안드로이드용 busybox 설치
12.4 파일 추출 실습
12.5 에뮬레이터에 SD 카드를 가상 장치로 연결하기
■ 연습문제
CHAPTER 13 실제 타깃 제작하기
13.1 타깃 개발 개요
13.2 안드로이드 모바일 하드웨어 플랫폼
13.3 실제 타깃 개발 환경 구축
13.4 실제 타깃 커널 제작
13.5 타깃으로 이미지 다운로드
13.6 파일시스템 구성
13.7 부팅 및 실행
■ 연습문제
CHAPTER 14 타깃 장치로 고급 포팅하기
14.1 안드로이드에서 C 프로그램 실행시키기
14.2 안드로이드 NDK 설치
14.3 NDK 기초 실습
14.4 NDK 고급 실습
■ 연습문제
CHAPTER 15 안드로이드 마켓
15.1 Apk 파일
15.2 안드로이드 마켓
■ 연습문제
■ 참고문헌
■ 찾아보기