책 소개
안드로이드는 현재 전 세계 사람들이 가장 많이 사용하는 모바일 운영체제이다. 안드로이드는 컴퓨터 공학도라면 반드시 알고 지나가야 하는 중요한 주제가 되었다.
이 책은 안드로이드 입문자들을 위한 책이다. 이 책의 가장 큰 목표는 개발자들이 쉽게 이해할 수 있는 안드로이드 책을 만들어 보자는 것이었다.
그래서 적절한 그림을 가능한 많이 사용하여 안드로이드 개념을 쉽게 이해하도록 노력하였다. 안드로이드에서도 “인텐트”, “이벤트 처리”, “액티비티”와 같은 기본적인 개념을 이해하는 것이 무척 중요하다. 안드로이드의 가장 큰 문제점은 버전이 아주 빠르게 업데이트된다는 점이다. 따라서 개정5판에서는 안드로이드 10 버전에서 업데이트된 내용들을 수정하고 반영하였다.
이 책의 특징
- 최신 버전은 아주 방대한 내용을 다루기 때문에 이 책에서는 그중에서 가장 많이 사용되는 핵심적인 내용만을 수록하였다. 보다 자세한 내용은 안드로이드 개발자 웹페이지를 참조하여야 한다.
- 안드로이드 버전인 10 기반에서 모든 예제를 다시 작성하고 테스트하였다. 최신 버전에서는 보안이 아주 강조되고 있다. 따라서 10 버전에 맞지 않는 코드는 삭제하거나 수정하였고 최신 예제들을 보강하였다.
- 독자들이 조금 큰 규모의 앱을 개발할 때 사용할 수 있는 Lab을 제공한다. Lab에서는 여러 가지 분야의 대표적인 앱의 기초 버전을 제공한다. 독자들은 이 기초 버전에서 출발하여서 더 큰 규모의 앱을 작성할 수 있을 것이다. 예를 들어서 초보적인 “만보계”나 초보적인 그림판과 같은 앱을 Lab으로 제공한다. 독자들은 여기에 살을 붙여서 본격적인 앱을 제작할 수 있을 것이다.
- 기존의 내용 중에서 지나치게 자세한 부분은 삭제하였으며, 보다 쉽게 이해할 수 있도록 설명을 보강하였다. 많이 사용되지 않는 특수한 주제들은 생략하였다.
작가 소개
서울대학교 전자공학과에 입학하여 1983년에 공학사 학위를 취득하였고, 한국과학기술원 대학원에 입학하여 1985년에 전기 및 전자공학과 석사 학위를, 1993년에 박사 학위를 취득하였다. 1985년부터 1988년까지 삼성전자 종합연구소에 주임 연구원으로 재직하였고, 1993년부터 현재까지 순천향대학교 컴퓨터공학과 교수로 재직 중이다. 2005년에는 캐나다 UBC에서 방문교수를 지냈다.
목 차
CHAPTER 01 기초 사항
1. 스마트폰
2. 안드로이드란?
3. 안드로이드의 구조
4. 애플리케이션의 기초 개념
5. 안드로이드 개발 준비 사항
6. JDK 설치
7. 안드로이드 스튜디오 설치
8. 첫 번째 앱 만들기
9. 첫 번째 앱 실행하기
Lab 첫 번째 프로그램을 수정해보자
Lab AVD를 사용해보자
CHAPTER 02 애플리케이션 기본 구조
1. 앱 작성 절차
2. 첫 번째 애플리케이션의 분석
3. 비주얼 도구 사용하기
4. XML을 이용하여 앱의 화면 작성하기
5. 리소스
6. 매니페스트 파일
7. 자동으로 생성되는 파일의 분석
8. 에뮬레이터 로그캣
9. 안드로이드 폰을 연결한 개발 환경 구축
10. 정리
Lab 여러 가지 액티비티
CHAPTER 03 사용자 인터페이스 기초
1. 사용자 인터페이스 개요
2. 뷰
3. 기초적인 뷰들
4. 레이아웃
5. 선형 레이아웃
6. 테이블 레이아웃(TableLayout)
7. 상대적 레이아웃(RelativeLayout)
8. 코드로 사용자 인터페이스 작성 방법
Lab 계산기 앱 #1 작성
Lab 계산기 앱 #2 작성
CHAPTER 04 이벤트 처리
1. 입력 위젯
2. 버튼
3. 이벤트를 처리하는 방법
4. 이벤트 처리 객체를 이용하여 이벤트 처리하기
5. 텍스트 필드
6. 체크 박스
7. 라디오 버튼
8. 토글 버튼
9. 레이팅 바
10. 커스텀 컴포넌트
11. 터치 이벤트
12. 멀티 터치 이벤트
13. 디버깅 방법
Lab 여론 조사 앱 작성
Lab 온도 변환기 앱 작성
CHAPTER 05 메뉴와 대화 상자
1. 사용자 인터페이스 개요
2. 메뉴
3. XML로 메뉴 정의하기
4. 옵션 메뉴 생성하기
5. 컨텍스트 메뉴
6. 팝업 메뉴
7. 대화 상자
8. DatePickerDialog
9. 커스텀 대화 상자
10. 알림기능(notification)
Lab 예약 앱 작성
CHAPTER 06 그래픽
1. 그래픽
2. 커스텀 뷰를 사용하여 그리기
3. 그리기 속성
4. 패스 그리기
5. 이미지 표시하기
6. 도형 객체 이용하기
7. Transition API 애니메이션
8. 드로워블 애니메이션
9. 서피스 뷰(SurfaceView)
Lab 랜덤 그래픽 작성
Lab 그림판 예제 작성
CHAPTER 07 고급 위젯과 프래그먼트
1. 어댑터 뷰 클래스
2. 리스트 뷰
3. 그리드 뷰
4. 스피너
5. 프로그레스 바
6. 레이팅 바
7. 프래그먼트
8. 다중 창 지원
CHAPTER 08 액티비티와 인텐트
1. 애플리케이션, 액티비티, 액티비티 스택, 태스크
2. 인텐트
3. 명시적 인텐트
4. 여러 페이지로 구성된 애플리케이션 작성
5. 액티비티로부터 결과받기
6. 암시적 인텐트
7. 멀티태스킹
8. 태스크 관리하기
9. 인텐트 필터
10. 액티비티 생애주기
11. 액티비티 상태 저장
CHAPTER 09 리소스와 보안
1. 리소스
2. 기본 리소스와 대체 리소스
3. 리소스 참조
4. 다양한 화면 지원하기
5. 지역화
6. 보안
7. 권한 요청하기
CHAPTER 10 서비스와 방송 수신자
1. 서비스
2. 서비스 기초
3. IntentService 클래스
4. 연결 타입 서비스
5. 방송 수신자란?
Lab 센서값을 읽는 앱 작성
CHAPTER 11 스레드
1. 프로세스와 스레드
2. 스레드
3. 스레드에서 UI를 조작하는 방법
4. 스레드를 이용한 이미지 다운로드
5. 게임 예제
CHAPTER 12 데이터베이스
1. 데이터를 저장하는 방법
2. 공유 프레퍼런스
3. 내부 공간에 파일 만들기
4. 외부 저장 공간
5. 데이터베이스
6. 데이터베이스 사용하기
7. 데이터베이스와 어댑터
Lab 영화 데이터베이스 만들기
CHAPTER 13 네트워크
1. 네트워킹 상태 조회
2. 웹에서 파일 다운로드
3. 웹앱
4. XML 처리
CHAPTER 14 위치 기반 앱
1. 위치 기반 애플리케이션
2. 사용자 위치 파악하기
3. 구글 지도
4. 구글 플레이 서비스 설치
5. 구글 지도 애플리케이션 빠르게 만들기
6. 지도 위에 마커 그리기
7. 지도 위에 그림 그리기
8. 지도와 상호작용하기
CHAPTER 15 멀티미디어
1. 안드로이드의 멀티미디어 지원
2. 오디오 재생
3. 오디오 녹음
4. 이미지 캡처
5. 비디오 재생
6. 비디오 녹화
CHAPTER 16 센서
1. 센서 하드웨어
2. 방향 센서
3. 가속도 센서
Lab 만보계 제작
Lab 주사위 게임 앱 작성
CHAPTER 17 간단한 게임 만들기
1. 갤러그 게임
2. 어떤 객체들이 필요한가?
3. Sprite 클래스
4. StarShipSprite 클래스
5. AlienSprite 클래스
6. ShotSprite 클래스
7. SpaceInvaderView 클래스
8. MainActivity 클래스
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
반품사유 | 반품 배송비 부담자 |
---|---|
단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
고객 부담이 아닙니다. |
진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
---|---|---|---|
어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
결제수단 | 환불시점 | 환불방법 |
---|---|---|
신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
상품군 | 취소/반품 불가사유 |
---|---|
의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |