장바구니 담기 close

장바구니에 상품을 담았습니다.

안드로이드를 지배하는 통신 프로그래밍

안드로이드를 지배하는 통신 프로그래밍

  • 박헌재
  • |
  • 프리렉
  • |
  • 2011-03-21 출간
  • |
  • 896페이지
  • |
  • 188 X 254 X 40 mm /1550g
  • |
  • ISBN 9788965400097
판매가

34,000원

즉시할인가

30,600

카드할인

0원(즉시할인 0%)

적립금

1,700원 적립(5%적립)

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

추가혜택

네이버페이 무조건 1%적립+ 추가 1%적립

수량
+ -
총주문금액
30,600

이 상품은 품절된 상품입니다

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

현재 출시된 안드로이드 서적은 주로 안드로이드 개발 사이트에서 제시한 방법이나 안드로이드 소개에 중점을 두고 있다. 이 책은 “안드로이드 시스템에서 통신이란 무엇인가?”, “안드로이드의 SDK에서 제공하지 않는 기능들은 어떻게 구현해야 하는가?”, “안드로이드의 생명주기는 어떻게 통신 프로그램에 영향을 주는가?”, “자바에서 제공하는 클래스와 안드로이드에서 제공하는 클래스는 어떤 차이가 있는가?”와 같은 질문에서 출발했다. 이러한 질문에 해답을 얻는 데 필요한 개념이나 원리 그리고 'SwiFTP', 'DatagramSocket', 'Wifi Keyboard', 'Base64', 'Wiktionary', 'SampleSyncAdapter', 'YouTube', 'JumpNoteAndroid', 'Mms', 'android-smspopup', 'BlutoothChat', 'teddsdroidtools', 'Panoramio', 'android-wifi-connecter', 'android-wifi-tether' 등의 애플리케이션을 분석하면서 답을 찾아나간다. 더불어 모든 소스 안드로이드 SDK 3.0에서 테스트를 마쳤다.

목차

PART 1 인터넷 응용 프로그램
Chapter 01 안드로이드와 자바 기초 지식
01 안드로이드 아키텍처
02 안드로이드 컴포넌트와 생명주기
03 액티비티
04 서비스
4.1 스타트 서비스
4.2 바인드 서비스
05 브로드캐스트리시버
06 콘텐트프로바이더
07 컴포넌트 활성화
08 컴포넌트 종료
09 인텐트
9.1 인텐트 전송 메서드
9.2 인텐트 객체의 구성요소
9.3 펜딩인텐트
10 AsyncTask 클래스
10.1 AsyncTask 클래스의 파라미터 지정
10.2 AsyncTask 클래스의 진행 단계
10.3 기타 AsyncTask 메서드
11 스레드
11.1 스레드 구현
11.2 스레드 메서드
11.3 스레드 생명주기
11.4 스레드 동기화
11.5 wait/notify 메서드
11.6 스레드 Join
11.7 스레드 강제 종료
12 핸들러
13 Runtime와 Process 클래스
13.1 Runtime 클래스의 메서드들
13.2 Process 클래스의 메서드들
13.3 Runtime/Process 클래스의 사용 예
13.4 안드로이드 파일 퍼미션
14 안드로이드 기초 지식 마무리

Chapter 02 안드로이드 소켓 통신
01 소켓 통신 프로토콜
1.1 TCP 프로토콜
1.2 IP 헤더와 TCP 헤더
1.3 TCP 패킷 작동 원리
1.4 UDP 프로토콜
02 IP 주소
03 소켓 프로그램
3.1 InetAddress 클래스
3.2 InetAddress 클래스의 메서드
3.3 InetAddress 클래스의 사용방법
3.4 SocketAddress 클래스
3.5 NetworkInterface 클래스
04 소켓 통신과 스레드
05 서버소켓 프로그램
5.1 서버 프로그램 절차
5.2 ServerSocket 클래스의 메서드
5.3 FTP 프로토콜
5.4 FTP 서버 안드로이드 구현
06 소켓 통신과 스트림
07 소켓 프로그램
7.1 클라이언트 프로그램 절차
7.2 소켓 클래스의 메서드
7.3 소켓 타임아웃 설정
7.4 클라이언트 소켓 프로그램 사용 예
08 데이터그램 소켓과 패킷
8.1 UDP 프로그램 절차
8.2 DatagramSocket과 DatagramPacket 클래스
8.3 DatagramSocket 사용 예제
8.4 DatagramPacket 읽고 쓰기
09 안드로이드 소켓 통신 마무리

Chapter 03 통신과 스트림
01 자바 스트림
1.1 바이트 스트림와 문자 스트림
1.2 노드 스트림과 필터 스트림
02 유니코드와 문자 스트림
2.1 UTF-8
2.2 자바의 MUTF-8
03 객체 직렬화
04 바이트 스트림
4.1 InputStream의 주요 메서드
4.2 OutputStream의 주요 메서드
05 파일 스트림 클래스
5.1 파일 스트림 클래스의 생성자
5.2 파일 스트림의 메서드
5.3 파일 스트림의 사용 예
06 바이트 배열 스트림 클래스
6.1 바이트배열 스트림의 주요 메서드
6.2 바이트 배열 스트림 사용 예제
07 데이터 스트림 클래스
7.1 데이터 스트림의 생성자
7.2 데이터 스트림의 주요 메서드
7.3 데이터 스트림의 사용 예
08 객체 스트림 클래스
8.1 객체 스트림의 주요 메서드
8.2 객체 스트림의 사용 예
09 PushbackInputStream 클래스
9.1 PushbackInputStream의 주요 메서드
9.2 PushbackInputStream의 사용 예
10 문자 스트림
10.1 Reader 클래스의 메서드
10.2 Writer 클래스의 메서드
11 InputStreamReader와 OutputStreamWriter 클래스
12 파일 문자 스트림 클래스
12.1 FileReader와 FileWriter 사용 예
13 버퍼 문자 스트림 클래스
14 문자배열 스트림 클래스
15 문자열 스트림 클래스
16 StreamTokenizer 클래스
17 LineNumberReader 클래스
18 스트림의 압축과 복원
18.1 GZIPOutputStream 클래스
18.2 GZIPInputStream 클래스
18.3 ZIPOutputStream 클래스
18.4 ZIPInputStream 클래스
19 체크섬 스트림 클래스
20 제이슨 클래스
21 통신과 스트림 마무리

Chapter 04 소켓 채널 통신
01 소켓 통신의 문제점
02 소켓 채널의 기본원리
03 소켓 채널의 작업 순서
3.1 서버 소켓 채널의 작업 예
3.2 클라이언트 소켓 채널의 작업 예
04 NIO 버퍼 관리
05 채널 인터페이스
5.1 Channel 인터페이스
5.2 InterruptibleChannel 인터페이스
5.3 ReadableByteChannel 인터페이스
5.4 WritableByteChannel 인터페이스
5.5 ScatteringByteChannel와 GatheringByteChannel 인터페이스
5.6 ByteChannel 인터페이스
06 채널 패키지
6.1 SelectableChannel 클래스
6.2 Selector 클래스
6.3 SelectionKey 클래스
6.4 ServerSocketChannel과 SocketChannel 클래스
6.5 DatagramChannel 클래스
6.6 Channels 클래스
07 클라이언트 소켓 채널 구현
08 Charset 패키지
09 ServerSocketChannel 구현 예제-1
10 ServerSocketChannel 구현 예제-2
11 소켓 채널 통신 마무리

Chapter 05 URL & URLConnection
01 HTTP 프로토콜과 메시지
1.1 HTTP 요청 라인
1.2 HTTP 상태 라인
1.3 메시지 헤더
1.4 일반 헤더
1.5 요청 헤더
1.6 응답 헤더
1.7 엔티티 헤더
1.8 엔티티 본문
02 URI와 URL
2.1 URL 생성
2.2 URL 메서드
2.3 URL로 직접 호출
03 URLEncoder 클래스
04 URLConnection 클래스
4.1 URLConnection 클래스의 스트림
4.2 URLConnection 메서드
4.3 URLConnection 활용 예
05 HttpURLConnection 클래스
06 HTTP 쿠키
07 HTTP 사용자 인증
7.1 HTTP 사용자 기본 접근 인증
7.2 HTTP 다이제스트 인증
08 URL & URLConnection 마무리

Chapter 06 아파치 HttpClient 컴포넌트
01 HttpClient 컴포넌트의 지원 버전
02 HttpClient 컴포넌트의 사용방법
03 HTTP 메서드
3.1 HTTP GET 메서드의 사용 예
3.2 HTTP POST 메서드의 사용 예
3.3 HTTP 메서드 에러
3.4 HTTP 리소스 해제
3.5 안드로이드 애플리케이션 개발 시 주의사항
04 HTTP 요청 메시지
4.1 HTTP 기본 요청 메시지 수정
4.2 기본 소켓 설정 값 변경
05 HTTP 응답 메시지
06 애플리케이션 자동 패치 예제
6.1 웹사이트 제공 버전 읽기
6.2 설치 버전과 비교 분석
6.3 다운로드 작업
6.4 다운로드 파일 설치 작업
07 HttpClient 커스텀 작업
7.1 HTTP 소켓 생성
7.2 프로토콜 스킴
7.3 SSLSocketFactory 클래스
7.4 HTTP 컨텍스트
7.5 HTTP 연결관리자
7.6 HTTP 호스트와 라우트 설정
7.7 HTTP 멀티 요청 메시지
7.8 연결 개수와 라우트 개수 조정
08 HTTP 쿠키
8.1 쿠키 정책 적용
8.2 쿠키 생성과 저장
09 HTTP 기본 접근 인증
9.1 사용자 자격
9.2 자격 공급자
9.3 사용자 인증 예제
10 HTTPS 사용자 인증
11 AndroidHttpClient 클래스 소개
12 아파치 HttpClient 마무리

Chapter 07 안드로이드 계정관리 및 서버 동기화
01 계정관리자
02 구글 인증 프로세스
2.1 구글 인증 ClientLogin
2.2 유튜브 사용자 인증과 업로드
03 계정인증자
3.1 계정인증자 서비스 프로그램 작성
3.2 XML 메타데이터 파일 작성
3.3 AbstractAccountAuthenticator 클래스

04 AbstractAccountAuthenticator
클래스의 메서드
4.1 addAccount 메서드
4.2 confirmCredentials 메서드
4.3 editProperties 메서드
4.4 getAuthToken 메서드
4.5 getAuthTokenLabel 메서드
4.6 hasFeatures 메서드
4.7 updateCredentials 메서드
05 계정인증자 액티비티 작성
06 안드로이드 계정 등록과 읽기
6.1 AccountManager 인스턴스 생성
6.2 사용자 계정 생성
6.3 기존 계정 읽기
6.4 인증 토큰 요청
6.5 AccountManager 클래스의 사용 예 1
6.6 AccountManager 클래스의 사용 예 2
6.7 유튜브 인증토큰 사용 예
07 싱크관리자
7.1 안드로이드 동기화 방식
08 싱크어댑터
8.1 싱크어댑터 서비스 작성
8.2 메타데이터 XML 파일 작성
09 싱크어댑터 클래스
9.1 onPerformSync 메서드
9.2 싱크어댑터 실행
10 안드로이드 계정과 서버동기화 마무리

PART 2 통신 시스템 프로그램
Chapter 08 3세대 무선 이동통신
01 Access Point Name
02 무선이동통신 네트워크
03 SMS/MMS 설정
04 안드로이드 테스트 설정
05 무선 데이터 네트워크 관리
5.1 APN 변경 작업
06 3세대 무선 이동통신 마무리

Chapter 09 SMS와 MMS
01 SmsManager와 SmsMessage 클래스
1.1 SmsManager 클래스
1.2 SmsMessage 클래스
02 SMS 발신과 결과 확인 작업
03 SMS Message 수신
04 SMS 메시지 수신과 파워 관리
4.1 PowerManager 클래스
4.2 SMS 메시지 수신과 파워 관리 예제
05 SMS/MMS와 콘텐트프로바이드 URI
06 SMS와 MMS 마무리
Chapter 10 안드로이드 블루투스 통신
01 블루투스 아키텍처
02 블루투스 네트워크
2.1 외부 블루투스 검색
2.2 블루투스 모드
03 안드로이드 블루투스
3.1 블루투스 퍼미션
04 블루투스 모듈의 활성화
4.1 블루투스 지원 확인 작업
4.2 블루투스 활성화
05 블루투스 검색
5.1 페어링된 블루투스 쿼리
5.2 블루투스 기기 검색
5.3 검색응답 모드
06 블루투스 데이터 네트워크 연결
6.1 서버로 동작
6.2 클라이언트로 동작
07 데이터 송신과 수신 작업
08 블루투스 작업 종료
09 android.bluetooth 패키지
9.1 BluetoothAdapter 클래스
9.2 BluetoothDevice 클래스
9.3 BluetoothSocket 클래스
9.4 BluetoothServerSocket 클래스
9.5 BluetoothClass 클래스
10 블루투스 데이터 통신 예제
11 안드로이드 블루투스 통신 마무리

Chapter 11 전화수신과 블루투스 헤드셋
01 블루투스의 음성 기술
1.1 블루투스 헤드셋 프로그램 개발
1.2 IBluetoothHeadset.aidl 인터페이스 구현
1.3 BluetoothHeadset 프로그램 작성
02 전화 수신과 통화
2.1 사용 권한 확보
2.2 ITelephony.aidl 인터페이스 구현
2.3 브로드캐스트 리시버 프로그램
2.4 서비스 프로그램 작성
2.5 블루투스 헤드셋 활성화
2.6 다른 프로그램으로 수신전화 이전
2.7 ITelephony 리플렉션
2.8 전화 통화 종료
03 전화통화 기능 설정
04 ITelephony.aidl 메서드
05 전화수신과 블루투스 헤드셋 마무리

Chapter 12 안드로이드 와이파이 통신
01 무선랜이란
1.1 무선 LAN의 구성요소
1.2 용어 해설
1.3 와이파이 규격
1.4 무선 보안 기술
02 안드로이드 와이파이
2.1 와이파이 퍼미션
2.2 와이파이 활성화
03 와이파이 스캔
3.1 ScanResult 클래스
04 와이파이 환경설정
4.1 WifiConfiguration 클래스
4.2 WifiManager 클래스
4.3 와이파이 환경설정
05 와이파이 네트워크 연결
5.1 네트워크 정보 읽기
5.2 기타 네트워크 비활성화
5.3 네트워크 연결 우선순위 조정
06 와이파이 상태 정보 확인
6.1 WifiInfo 클래스
6.2 브로드캐스트 리시버
07 와이파이 록 설정
7.1 WifiManager.WifiLock 클래스
7.2 WifiManager.WifiLock 클래스 사용 예
7.3 WifiManager.MulticastLock 클래스
08 인터넷 서비스 우선순위 설정
09 와이파이 마무리
Chapter 13 위치기반 서비스
01 안드로이드 위치정보 서비스
02 지리 좌표 체계
03 Location 서비스
3.1 사용자 퍼미션
3.2 위치 업데이트
3.3 위치정보사업자 선정
3.4 근접 경보 기능
04 android.location 패키지
4.1 Criteria 클래스
4.2 LocationManager 클래스 메서드
4.3 Location 클래스
05 위치 정확성 유지
06 거리 측정
07 구글 맵
7.1 구글 맵 사용방법
08 'com.google.android.maps' 패키지
8.1 MapView 클래스
8.2 MapActivity 클래스
8.3 MapController 클래스
8.4 ItemizedOverlay 클래스
8.5 MyLocationOverlay 클래스
8.6 OverlayItem 클래스
09 줌 기능과 위치 설정
10 아이템 오버레이 작업
11 구글 맵 사용 예제
12 위치기반 서비스 마무리

Chapter 14 네트워크 시스템 관리
01 네트워크 연결 상태 확인
1.1 ConnectivityManager 클래스
1.2 네트워크 연결 확인
1.3 네트워크 변경 브로드캐스트
02 네트워크 세부정보 확인
2.1 NetworkInfo 클래스
2.2 네트워크 세부정보 확인
03 안드로이드 edify
3.1 edify 언어의 특성
3.2 논리 연산자
3.3 진행 연산자
3.4 edify 매크로 명령어
04 안드로이드 프로퍼티
4.1 프러퍼티 시스템 작동 원리
4.2 프로퍼티 특성
4.3 프로그램에서 프로퍼티 읽고 쓰기
05 네트워크 시스템 관리 마무리

Chapter 15 테더링과 애드혹 서비스
01 안드로이드 환경 분석
1.1 root 권한 확보
1.2 Netfilter 패키지 설치 확인
1.3 데몬 실행 확인 작업
1.4 패킷 포워딩
02 파일 복사와 실행 모드 변경
03 DNS & DHCP 서버 구축
3.1 DNS 서비스
3.2 DHCP 서비스
3.3 DNS & DHCP 서버 실행
04 블루투스 애드혹 설정
05 와이파이 애드혹 설정
5.1 와이파이 드라이버와 인터페이스
5.2 wpa_supplicant.conf 설정 작업
06 IP 주소 설정
07 라우팅 테이블 설정
08 Netfilter 패키지 설정
8.1 iptables 명령어
09 테더링 퍼미션
10 테더링 실행
11 안드로이드 생명주기 고려
12 테더링과 애드혹의 마무리

APPENDIX
01 메모리 관리와 mmap
02 블루투스 아키텍처
03 블루투스 프로파일
04 블루투스 보안
05 wpa_supplicant 상태 값
06 NetworkInfo.DetailedState 상태 값
07 HttpURLConnection 응답 상수
08 HTTP 상태코드
09 엔디언
10 안드로이드 퍼미션
11 구글맵 사용 API KEY 얻기
12 용어 설명

저자소개

저자 박헌재는 20년간의 리눅스 및 자바 프로그래밍 분야에서 개발을 수행했던 전문가이다. SAP, 오라클과 같이 ERP 도입을 위한 UNIX 포팅 작업, 오라클 DBA 업무 및 최적화 작업 그리고 현지화 작업으로 ERP를 국내 성공적으로 안착시키는 업무를 수행하였으며, 이후 Unix나 Linux 기반으로 범용 디바이스 장비 개발이나 방화벽, VPN, IPS와 같이 네트워크 보안 장비 개발 등에 이르기까지 다양한 애플리케이션, 임베디드 리눅스 커널 수정, 하드웨어/소프트웨어 테스트 작업 그리고 장애업무처리, 초기 리눅스 커널 2.4 버전에 대한 버그 리포트를 비롯하여 대만 하드웨어 제조사들과 연구 작업, 하드웨어(인텔, 리얼텍) 디바이스에 대한 버그 리포트를 비롯하여 네트워크 보안 애플리케이션 개발 등을 포함하여 많은 경험이 있다.

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.