HOME > 상세정보

상세정보

안드로이드를 지배하는 통신 프로그래밍 : 안드로이드를 해부하고 진보한 통신 기술을 훔쳐라

안드로이드를 지배하는 통신 프로그래밍 : 안드로이드를 해부하고 진보한 통신 기술을 훔쳐라 (56회 대출)

자료유형
단행본
개인저자
박헌재
서명 / 저자사항
안드로이드를 지배하는 통신 프로그래밍 : 안드로이드를 해부하고 진보한 통신 기술을 훔쳐라 / 박헌재 지음
발행사항
부천 :   프리렉,   2011  
형태사항
xxxii, 896 p. : 삽화 ; 24 cm
ISBN
9788965400097
일반주기
안드로이드 SDK 3.0 테스트 완료  
색인수록  
부록: 메모리 관리와 mmap, 블루투스 아키텍처, 블루투스 프로파일 외  
000 00818camcc2200253 c 4500
001 000045645268
005 20110430114830
007 ta
008 110428s2011 ggka 001c kor
020 ▼a 9788965400097 ▼g 13560
035 ▼a (KERIS)BIB000012353761
040 ▼a 241026 ▼c 241026 ▼d 244002 ▼d 211009
082 0 4 ▼a 005.268 ▼2 22
085 ▼a 005.268 ▼2 DDCK
090 ▼a 005.268 ▼b 2011z8
100 1 ▼a 박헌재
245 1 0 ▼a 안드로이드를 지배하는 통신 프로그래밍 : ▼b 안드로이드를 해부하고 진보한 통신 기술을 훔쳐라 / ▼d 박헌재 지음
260 ▼a 부천 : ▼b 프리렉, ▼c 2011
300 ▼a xxxii, 896 p. : ▼b 삽화 ; ▼c 24 cm
500 ▼a 안드로이드 SDK 3.0 테스트 완료
500 ▼a 색인수록
500 ▼a 부록: 메모리 관리와 mmap, 블루투스 아키텍처, 블루투스 프로파일 외
945 ▼a KLPA

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.268 2011z8 등록번호 121209196 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 2 소장처 세종학술정보원/과학기술실/ 청구기호 005.268 2011z8 등록번호 151299608 도서상태 대출가능 반납예정일 예약 서비스 M
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.268 2011z8 등록번호 121209196 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 세종학술정보원/과학기술실/ 청구기호 005.268 2011z8 등록번호 151299608 도서상태 대출가능 반납예정일 예약 서비스 M

컨텐츠정보

책소개

“안드로이드 시스템에서 통신이란 무엇인가?”, “안드로이드의 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에서 테스트를 마쳤다.

1부 인터넷 응용 프로그램
1부에서는 통신의 기본이 되는 TCP/IP 자바 소켓 통신과 스트림에 대해 언급하고 추가로 소켓 통신의 문제점과 함께 NIO에 대한 개념과 사용법도 배울 것입니다. 통신 프로그램의 반이상은 직간접적으로 웹과 관련된 프로그래밍일 것 같은데, 자바에서 제공하는 URLConnection이나 HttpURLConnection 클래스 이외에 실제 안드로이드에서 가장 많이 사용하는 아파치 HttpClient 컴포넌트를 소개합니다. 더불어 구글에서 제공하는 사이트를 대상으로 사용자 인증 작업과 실제 유투브 사이트에 필요한 파일들을 업로드하는 방법 그리고 필요한 정보를 추출하는 방법을 소개합니다.

1장 안드로이드와 자바 기초지식
이 책을 보시는 대부분의 독자분은 최소 한 권 정도의 안드로이드 입문서를 공부하였거나 아니면 자바 프로그램을 공부하신 분들이라 판단하고 있지만, 입문서의 난이도가 서로 다르고 또한 다루는 주제 역시 다르므로 1장을 통해 이 책에서 언급하는 안드로이드와 자바의 특징과 사용 기술에 대해 리마인드할 수 있는 기회를 제공합니다.

2장 안드로이드 소켓 통신
소켓 통신의 시작에 앞서 TCP와 UDP의 프로토콜과 3-way 핸드쉐이킹 그리고 TCP 흐름관리(Flow Control) 등을 소개합니다. 왜냐하면, 소켓 프로그램은 결과적으로 TCP 프로토콜을 만드는 과정이기 때문입니다. 그리고 소켓과 같이 사용하는 InetAddress나 SocketAddress 클래스를 포함하여 서버소켓과 소켓 그리고 마지막으로 UDP 데이터그램 소켓과 데이터그램 패킷 프로그램을 배울 것입니다. 안드로이드 소켓 프로그램 가운데 뜻밖에 서버소켓으로 프로그램된 애플리케이션이 많습니다. 따라서 이 장을 통해 배울 서버소켓은 안드로이드 이외에 서버 프로그램을 작성하실 때 많은 도움이 될 것입니다.

3장 통신과 스트림
통신에서 가장 많이 사용하는 클래스는 아마 스레드와 스트림일 것 같습니다. 스레드는 '1장 안드로이드와 자바의 기초지식'을 통해 배웠지만, 스트림은 종류와 기능이 많고 또한 객체 직렬화 그리고 문자(유니코드)와 바이트의 개념 정립이 필요한 만큼 아예 별도로 하나의 장으로 분류하였습니다.

4장 소켓 채널 통신
통신에서 가장 많이 사용하는 방식이 소켓이고 소켓만큼 사용하기 쉬운 클래스도 없을 것입니다. 쓰기 쉬운 만큼 단점이 존재하는데, 블록(Block)되는 현상과 스레드와 스트림에 의한 메모리 가비지 컬렉션 작업으로 인한 성능저하 문제일 것입니다. 이러한 문제를 해결하는 방안으로 태동한 기술이 NIO인데, 이 방식은 장점도 있지만 일단 사용이 어렵고 가독성이 떨어진다는 문제들로 인하여 사용이 저조합니다. 그러나 소켓채널과 소켓과의 차이점이 무엇인지 그리고 어떻게 사용하는지에 대해 알려드리고자 합니다.

5장 URL & URLConnection
HTTP 프로토콜을 사용하여 프로그램하는 방법은 5장부터 시작하여 7장까지 이어집니다. 안드로이드에서 제공하는 클래스를 알아보기 전에 이 장에서는 HTTP 프로토콜의 규정(RFC 2616)을 먼저 알아보고 자바에서 제공하는 java.net 패키지를 중심으로 URL과 URLConnection 그리고 HttpURLConnection 클래스를 사용하여 기본적인 웹 서버와 연결하는 방법과 사용자 인증에 대한 사항을 소개하고자 합니다. 아마 기본적인 HTTP를 사용하는 방법은 이 장을 통해 거의 해결될 것입니다.

6장 안드로이드 HttpClient
5장에서 제공하는 URL & URLConnection만으로는 인증이나 복잡한 작업을 수행하는 데 있어 한계가 있습니다. 안드로이드에서 이 문제를 해결하는 대안으로 제시한 것이 org.apache 패키지에서 제공하는 HttpClient입니다. 여기서는 앞서 배웠던 내용보다 다소 복잡한 예제를 들어, 패키지 설치 시 버전의 비교와 다운로드 후 패치 작업 등에 대해 배워보도록 하겠습니다. 그리고 HTTP 소켓 작업, 멀티 스레드, 라우팅 테이블 및 쿠키 사용 그리고 HTTPS 사용자 인증에 대해서도 소개합니다.

7장 안드로이드 계정과 서버동기화
안드로이드는 외부 서버와 연결하는 데 있어 두 종류의 프레임워크를 제공합니다. 하나는 계정관리자(AccountManager)이고 또 다른 하나는 싱크관리자(SyncManager)입니다. 이 장에서는 애플리케이션이 안드로이드 프레임워크인 계정관리자 또는 싱크관리자와 어떻게 연동하는지 알아봅니다. 그리고 서버로부터 사용자 인증을 받기 위해 제작해야 하는 계정인증자와 서버와의 동기화할 때 사용하는 싱크어댑터를 만드는 방법을 알아보고자 합니다.
그 이외에 Account & Sync 내에 애플리케이션을 등록시키는 방법과 서버와의 사용자 인증과 인증토큰을 얻는 방법 그리고 일반 액티비티에서 사용자 계정을 안드로이드에 등록시키는 방법을 알아볼 것입니다. 추가하여 6장에서 설명하지 못하였던 사용자 인증에 대한 구글 프로세스와 유튜브 업로드 시 필요한 프로세스를 소개합니다. 이 장을 통해 HTTP와 관련하여 안드로이드에서 제공하는 거의 모든 클래스와 메서드들을 소개하면서 인터넷 응용 프로그램을 마무리하게 됩니다.

2부 네트워크 시스템 프로그램
2부에서는 기본적인 통신 포트를 제어하는 클래스들을 소개합니다. 그러나 핵심 내용은 안드로이드의 SDK로 제공하지 않는 기능 구현을 위해 안드로이드 프레임워크를 사용하는 방법과 새로운 기술을 사용하여 기능을 구현하는 방법에 초점이 맞추어져 있습니다.

8장 3세대 무선 이동 통신
안드로이드에서 제공하는 2G와 3G 무선이동통신의 차이점과 원리를 알아보고, APN (Access Point Name), SMS/MMS 설정과 무선이동통신에 대한 제어에 대해 배울 것입니다. 또한 제조사에서 테스트를 위해 사용하는 비밀코드를 소개하는 자리가 될 것입니다.

9장 SMS와 MMS
SMS/MMS 관련 안드로이드 SmsManager와 SmsMessage 클래스를 소개하고 메시지 전송과 메시지 전송 확인 작업 및 SMS/MMS 수신 시 휴면(Sleeping) 상태에 있는 안드로이드를 깨우고 처리하는 파워 관리 방법 그리고 마지막으로 SMS/MMS 서비스와 연관된 안드로이드 콘텐트프로바이드의 URI를 소개합니다.

10장 안드로이드 블루투스 통신
"블루투스란 무엇인가?"부터 시작하여 블루투스 활성화와 비활성화 방법 그리고 주변 블루투스 기기를 찾는 검색(Inquiry) 방법 그리고 데이터 통신하는 방법을 배울 것입니다. 10장에서 이야기하는 데이터 통신은 TCP/IP의 데이터 통신이 아닌 블루투스 프레임으로 연결하여 데이터 통신을 수행하는 방법입니다.

11장 전화 수신과 블루투스 헤드셋
전화통신 서비스 가운데 하나인 전화수신과 블루투스의 핸드프리 헤드셋으로 연결하여 사용하는 프로그램을 배워보고자 합니다. 전화수신을 리플렉션(가로채기)하는 방법으로 음성 통화하는 방법과 블루투스 헤드셋에 문제 발생 시 순간적으로 다른 수신장치로 전화 연결시키는 방법을 소개합니다. 그리고 통화 중에 파워 버튼을 누르면 발생하는 현상과 원하지 않는 전화 수신을 거부하는 전화 정책을 설정하는 방법에 대해 알아봅니다. 블루투스 헤드셋 기능은 안드로이드의 BluetoothHeadset이라는 프레임워크 서비스로 제공합니다. 우리가 만든 애플리케이션은 BluetoothHeadset 프레임워크와 동일한 기능을 수행할 것입니다.

12장 안드로이드 와이파이 통신
안드로이드에서 제공하는 와이파이를 어떻게 설정하는지 그리고 무선접속장치(Access Point)를 스캔하고 무선접속장치와 연결하는 방법을 포함하여 8장에서 배웠던 무선 데이터 네트워크와의 인터넷 우선순위는 어떻게 설정하는지 배울 것입니다. 그리고 와이파이록을 사용하여 와이파이에서 중단 없이 인터넷을 사용하는 방법을 배울 것입니다.

13장 위치기반 서비스
이 장은 다른 장보다 다소 통신 기능은 약하지만, 일상생활에 많이 사용하는 위치기반 서비스를 소개합니다. 위치기반 서비스는 안드로이드의 '위치관리자'이라는 프레임워크를 통해 제공하는데, 안드로이드가 제공하는 SDK의 허와 실을 밝히고자 합니다. 그리고 지리좌표체계와 위치관리 그리고 위치정보 사용에 있어 안드로이드의 개발권고안을 비롯하여 구글맵을 소개하고 구글맵과 위치기반 서비스를 연동하는 프로그램을 소개합니다.

14장 네트워크 시스템 관리
이 장은 디바이스 관리나 edify 스크립트 그리고 안드로이드의 프로퍼티 등의 내용을 소개합니다. 개발자들이 시스템을 이해하는 데 도움이 되는 내용입니다. 그리고 안드로이드의 생명주기 작동 시 발생하는 브로드캐스트를 소개합니다. 액티비티가 백그라운드 작업으로 네트워크를 사용하더라도 안전하게 사용하는 방법을 배우게 되므로 안드로이드에서 네트워크 프로그램을 작성할 때 도움이 될 것으로 생각합니다.

15장 테더링과 애드혹 서비스
테더링과 애드혹은 안드로이드에서 제공하는 기능도 아니고 그렇다고 통신사나 제조사에서 넣은 기능도 아닙니다. 이 장은 다른 장과 달리 하나의 애플리케이션을 소개하는 형식으로 되어 있습니다. 더불어 이 장을 넣은 이유는 테더링과 같이 모든 기능을 순수하게 개발자에 의하여 안드로이드와 다른 개념과 관점에서 주어진 한계를 극복하고 어떻게 애플리케이션을 만드는지 여러분에게 소개하고자 마지막 장으로 채택하였습니다.


정보제공 : Aladin

저자소개

박헌재(지은이)

25년간의 유닉스와 리눅스 및 자바 프로그래밍 분야에서 개발을 수행했던 전문가입니다. 그의 경력은 다음과 같습니다. 국내 최초 ERP 컨설턴트 90년 중반 국내 ERP 패키지를 최초로 도입하였을 때, 기술팀장을 맡아 ERP를 UNIX에 포팅하는 작업과 함께 ERP 최적화 작업 그리고 현지화 작업을 수행하였습니다. 커널 개발자 ERP 패키지를 최초 Unix에 포팅하는 작업을 수행한 이래 리눅스 커널 2.4 버전부터 시작하여 버그 리포트를 작성하였고 하드웨어 제조사들과 공동 연구 작업을 비롯하여 네트워크 장비에 탑재되는 임베디드 리눅스 커널을 제조하였습니다. 보안 네트워크 장비 개발 L4 스위치와 네트워크 장비 개발 그리고 방화벽, VPN, IPS와 같이 보안 장비 개발 등에 이르기까지 다양한 애플리케이션, 하드웨어/소프트웨어 Q/A 테스트 작업 그리고 장애처리 업무를 수행하였습니다. 만약 책의 내용을 보고 문의 사항이 있으면, 필자에게 이메일('hurdsen@gmail.com')이나 "http://cafe.naver.com/webdroid" 카페 사이트에 방문하여 글을 올려 주시기 바랍니다. 주요 저서는 다음과 같습니다. 안드로이드 C-C++ 프로그래밍(개정판) 시작하자! C++17 프로그래밍(개정판) 기적을 부르는 안드로이드 통신 프로그래밍(3판) 빛과 소리의 향연! 안드로이드 미디어 프로그래밍

정보제공 : Aladin

목차

목차
PART 1 인터넷 응용 프로그램
 Chapter 01 안드로이드와 자바 기초 지식 = 3
  01 안드로이드 아키텍처 = 5
  02 안드로이드 컴포넌트와 생명주기 = 8
  03 액티비티 = 9
  04 서비스 = 13
   4.1 스타트 서비스 = 13
   4.2 바인드 서비스 = 15
  05 브로드캐스트리시버 = 16
  06 콘텐트프로바이더 = 18
  07 컴포넌트 활성화 = 21
  08 컴포넌트 종료 = 22
  09 인텐트 = 22
   9.1 인텐트 전송 메서드 = 22
   9.2 인텐트 객체의 구성요소 = 23
   9.3 펜딩인텐트 = 28
 10 AsyncTask 클래스 = 30
   10.1 AsyncTask 클래스의 파라미터 지정 = 30
   10.2 AsyncTask 클래스의 진행 단계 = 32
   10.3 기타 AsyncTask 메서드 = 33
  11 스레드 = 34
   11.1 스레드 구현 = 35
   11.2 스레드 메서드 = 36
   11.3 스레드 생명주기 = 38
   11.4 스레드 동기화 = 40
   11.5 wait/notify 메서드 = 41
   11.6 스레드 Join = 43
   11.7 스레드 강제 종료 = 45
  12 핸들러 = 46
  13 Runtime와 Process 클래스 = 51
   13.1 Runtime 클래스의 메서드들 = 51
   13.2 Process 클래스의 메서드들 = 52
   13.3 Runtime/Process 클래스의 사용 예 = 53
   13.4 안드로이드 파일 퍼미션 = 56
  14 안드로이드 기초 지식 마무리 = 59
 Chapter 02 안드로이드 소켓 통신 = 61
  01 소켓 통신 프로토콜 = 64
   1.1 TCP 프로토콜 = 64
   1.2 IP 헤더와 TCP 헤더 = 67
   1.3 TCP 패킷 작동 원리 = 71
   1.4 UDP 프로토콜 = 77
  02 IP 주소 = 77
  03 소켓 프로그램 = 79
   3.1 InetAddress 클래스 = 83
   3.2 InetAddress 클래스의 메서드 = 84
   3.3 InetAddress 클래스의 사용방법 = 86
   3.4 SocketAddress 클래스 = 89
   3.5 NetworkInterface 클래스 = 90
  04 소켓 통신과 스레드 = 91
  05 서버소켓 프로그램 = 92
   5.1 서버 프로그램 절차 = 93
   5.2 ServerSocket 클래스의 메서드 = 95
   5.3 FTP 프로토콜 = 97
   5.4 FTP 서버 안드로이드 구현 = 99
  06 소켓 통신과 스트림 = 107
  07 소켓 프로그램 = 109
   7.1 클라이언트 프로그램 절차 = 109
   7.2 소켓 클래스의 메서드 = 111
   7.3 소켓 타임아웃 설정 = 114
   7.4 클라이언트 소켓 프로그램 사용 예 = 115
  08 데이터그램 소켓과 패킷 = 119
   8.1 UDP 프로그램 절차 = 119
   8.2 DatagramSocket과 DatagramPacket 클래스 = 120
   8.3 DatagramSocket 사용 예제 = 127
   8.4 DatagramPacket 읽고 쓰기 = 133
  09 안드로이드 소켓 통신 마무리 = 134
 Chapter 03 통신과 스트림 = 135
  01 자바 스트림 = 136
   1.1 바이트 스트림와 문자 스트림 = 138
   1.2 노드 스트림과 필터 스트림 = 140
  02 유니코드와 문자 스트림 = 140
   2.1 UTF-8 = 141
   2.2 자바의 MUTF-8 = 143
  03 객체 직렬화 = 144
  04 바이트 스트림 = 146
   4.1 InputStream의 주요 메서드 = 148
   4.2 OutputStream의 주요 메서드 = 149
  05 파일 스트림 클래스 = 150
   5.1 파일 스트림 클래스의 생성자 = 150
   5.2 파일 스트림의 메서드 = 151
   5.3 파일 스트림의 사용 예 = 152
  06 바이트 배열 스트림 클래스 = 153
   6.1 바이트배열 스트림의 주요 메서드 = 154
   6.2 바이트 배열 스트림 사용 예제 = 154
  07 데이터 스트림 클래스 = 156
   7.1 데이터 스트림의 생성자 = 157
   7.2 데이터 스트림의 주요 메서드 = 158
   7.3 데이터 스트림의 사용 예 = 160
  08 객체 스트림 클래스 = 162
   8.1 객체 스트림의 주요 메서드 = 163
   8.2 객체 스트림의 사용 예 = 164
  09 PushbackInputStream 클래스 = 166
   9.1 PushbackInputStream의 주요 메서드 = 167
   9.2 PushbackInputStream의 사용 예 = 168
  10 문자 스트림 = 170
   10.1 Reader 클래스의 메서드 = 171
   10.2 Writer 클래스의 메서드 = 173
  11 InputStreamReader와 OutputStreamWriter 클래스 = 174
  12 파일 문자 스트림 클래스 = 177
   12.1 FileReader와 FileWriter 사용 예 = 178
  13 버퍼 문자 스트림 클래스 = 180
  14 문자배열 스트림 클래스 = 182
  15 문자열 스트림 클래스 = 184
  16 StreamTokenizer 클래스 = 185
  17 LineNumberReader 클래스 = 189
  18 스트림의 압축과 복원 = 191
   18.1 GZIPOutputStream 클래스 = 191
   18.2 GZIPInputStream 클래스 = 192
   18.3 ZIPOutputStream 클래스 = 194
   18.4 ZIPInputStream 클래스 = 195
  19 체크섬 스트림 클래스 = 195
  20 제이슨 클래스 = 199
  21 통신과 스트림 마무리 = 202
 Chapter 04 소켓 채널 통신 = 203
  01 소켓 통신의 문제점 = 204
  02 소켓 채널의 기본원리 = 207
  03 소켓 채널의 작업 순서 = 210
   3.1 서버 소켓 채널의 작업 예 = 212
   3.2 클라이언트 소켓 채널의 작업 예 = 215
  04 NIO 버퍼 관리 = 218
  05 채널 인터페이스 = 225
   5.1 Channel 인터페이스 = 225
   5.2 InterruptibleChannel 인터페이스 = 226
   5.3 ReadableByteChannel 인터페이스 = 226
   5.4 WritableByteChannel 인터페이스 = 227
   5.5 ScatteringByteChannel와 GatheringByteChannel 인터페이스 = 227
   5.6 ByteChannel 인터페이스 = 228
  06 채널 패키지 = 228
   6.1 SelectableChannel 클래스 = 229
   6.2 Selector 클래스 = 232
   6.3 SelectionKey 클래스 = 233
   6.4 ServerSocketChannel과 SocketChannel 클래스 = 237
   6.5 DatagramChannel 클래스 = 239
   6.6 Channels 클래스 = 244
  07 클라이언트 소켓 채널 구현 = 246
  08 Charset 패키지 = 252
  09 ServerSocketChannel 구현 예제-1 = 254
  10 ServerSocketChannel 구현 예제-2 = 258
  11 소켓 채널 통신 마무리 = 269
 Chapter 05 URL&URLConnection = 271
  01 HTTP 프로토콜과 메시지 = 272
   1.1 HTTP 요청 라인 = 275
   1.2 HTTP 상태 라인 = 278
   1.3 메시지 헤더 = 278
   1.4 일반 헤더 = 279
   1.5 요청 헤더 = 284
   1.6 응답 헤더 = 288
   1.7 엔티티 헤더 = 289
   1.8 엔티티 본문 = 291
  02 URI와 URL = 292
   2.1 URL 생성 = 293
   2.2 URL 메서드 = 294
   2.3 URL로 직접 호출 = 298
  03 URLEncoder 클래스 = 299
  04 URLConnection 클래스 = 300
   4.1 URLConnection 스트림 = 301
   4.2 URLConnection 클래스의 메서드 = 305
   4.3 URLConnection 활용 예 = 307
  05 HttpURLConnection 클래스 = 308
  06 HTTP 쿠키 = 314
  07 HTTP 사용자 인증 = 315
   7.1 HTTP 사용자 기본 접근 인증 = 317
   7.2 HTTP 다이제스트 인증 = 323
  08 URL&URLConnection 마무리 = 328
 Chapter 06 아파치 HttpClient 컴포넌트 = 329
  01 HttpClient 컴포넌트의 지원 버전 = 331
  02 HttpClient 컴포넌트의 사용방법 = 332
  03 HTTP 메서드 = 334
   3.1 HTTP GET 메서드의 사용 예 = 337
   3.2 HTTP POST 메서드의 사용 예 = 341
   3.3 HTTP 메서드 에러 = 345
   3.4 HTTP 리소스 해제 = 347
   3.5 안드로이드 애플리케이션 개발 시 주의사항 = 349
  04 HTTP 요청 메시지 = 349
   4.1 HTTP 기본 요청 메시지 수정 = 352
   4.2 기본 소켓 설정 값 변경 = 354
  05 HTTP 응답 메시지 = 356
  06 애플리케이션 자동 패치 예제 = 359
   6.1 웹사이트 제공 버전 읽기 = 360
   6.2 설치 버전과 비교 분석 = 362
   6.3 다운로드 작업 = 364
   6.4 다운로드 파일 설치 작업 = 368
  07 HttpClient 커스텀 작업 = 370
   7.1 HTTP 소켓 생성 = 370
   7.2 프로토콜 스킴 = 373
   7.3 SSLSocketFactory 클래스 = 374
   7.4 HTTP 컨텍스트 = 380
   7.5 HTTP 연결관리자 = 382
   7.6 HTTP 호스트와 라우트 설정 = 387
   7.7 HTTP 멀티 요청 메시지 = 390
   7.8 연결 개수와 라우트 개수 조정 = 394
  08 HTTP 쿠키 = 395
   8.1 쿠키 정책 적용 = 398
   8.2 쿠키 생성과 저장 = 400
  09 HTTP 기본 접근 인증 = 403
   9.1 사용자 자격 = 404
   9.2 자격 공급자 = 405
   9.3 사용자 인증 예제 = 407
  10 HTTPS 사용자 인증 = 410
  11 AndroidHttpClient 클래스 소개 = 413
  12 아파치 HttpClient 마무리 = 414
 Chapter 07 안드로이드 계정관리 및 서버 동기화 = 417
  01 계정관리자 = 419
  02 구글 인증 프로세스 = 421
   2.1 구글 인증 ClientLogin = 425
   2.2 유튜브 사용자 인증과 업로드 = 427
  03 계정인증자 = 432
   3.1 계정인증자 서비스 프로그램 작성 = 434
   3.2 XML 메타데이터 파일 작성 = 436
   3.3 AbstractAccountAuthenticator 클래스 = 438
  04 AbstractAccountAuthenticator 클래스의 메서드 = 441
   4.1 addAccount 메서드 = 441
   4.2 confirmCredentials 메서드 = 447
   4.3 editProperties 메서드 = 449
   4.4 getAuthToken 메서드 = 450
   4.5 getAuthTokenLabel 메서드 = 453
   4.6 hasFeatures 메서드 = 454
   4.7 updateCredentials 메서드 = 455
  05 계정인증자 액티비티 작성 = 456
  06 안드로이드 계정 등록과 읽기 = 464
   6.1 AccountManager 인스턴스 생성 = 465
   6.2 사용자 계정 생성 = 467
   6.3 기존 계정 읽기 = 471
   6.4 인증토큰 요청 = 474
   6.5 AccountManager 클래스의 사용 예-1 = 478
   6.6 AccountManager 클래스의 사용 예-2 = 483
   6.7 유튜브 인증토큰 사용 예 = 484
  07 싱크관리자 = 489
   7.1 안드로이드 동기화 방식 = 491
  08 싱크어댑터 = 493
   8.1 싱크어댑터 서비스 작성 = 494
   8.2 메타데이터 XML 파일 작성 = 495
  09 싱크어댑터 클래스 = 495
   9.1 onPerformSync 메서드 = 496
   9.2 싱크어댑터 실행 = 503
  10 안드로이드 계정과 서버동기화 마무리 = 504
PART 2 통신 시스템 프로그램
 Chapter 08 3세대 무선 이동통신 = 507
  01 Access Point Name = 509
  02 무선이동통신 네트워크 = 514
  03 SMS/MMS 설정 = 515
  04 안드로이드 테스트 설정 = 515
  05 무선 데이터 네트워크 관리 = 519
   5.1 APN 변경 작업 = 521
  06 3세대 무선 이동통신 마무리 = 528
 Chapter 09 SMS와 MMS = 529
  01 SmsManager와 SmsMessage 클래스 = 531
   1.1 SmsManager 클래스 = 532
   1.2 SmsMessage 클래스 = 535
  02 SMS 발신과 결과 확인 작업 = 537
  03 SMS Message 수신 = 547
  04 SMS 메시지 수신과 파워 관리 = 552
   4.1 PowerManager 클래스 = 554
   4.2 SMS 메시지 수신과 파워 관리 예제 = 556
  05 SMS/MMS와 콘텐트프로바이드 URI = 557
  06 SMS와 MMS 마무리 = 562
 Chapter 10 안드로이드 블루투스 통신 = 563
  01 블루투스 아키텍처 = 565
  02 블루투스 네트워크 = 566
   2.1 외부 블루투스 검색 = 567
   2.2 블루투스 모드 = 567
  03 안드로이드 블루투스 = 569
   3.1 블루투스 퍼미션 = 570
  04 블루투스 모듈의 활성화 = 570
   4.1 블루투스 지원 확인 작업 = 571
   4.2 블루투스 활성화 = 572
  05 블루투스 검색 = 577
   5.1 페어링된 블루투스 쿼리 = 579
   5.2 블루투스 기기 검색 = 579
   5.3 검색응답 모드 = 582
  06 블루투스 데이터 네트워크 연결 = 585
   6.1 서버로 동작 = 587
   6.2 클라이언트로 동작 = 592
  07 데이터 송신과 수신 작업 = 595
  08 블루투스 작업 종료 = 599
  09 android.bluetooth 패키지 = 600
   9.1 BluetoothAdapter 클래스 = 601
   9.2 BluetoothDevice 클래스 = 604
   9.3 BluetoothSocket 클래스 = 605
   9.4 BluetoothServerSocket 클래스 = 606
   9.5 BluetoothClass 클래스 = 606
  10 블루투스 데이터 통신 예제 = 607
  11 안드로이드 블루투스 통신 마무리 = 613
 Chapter 11 전화수신과 블루투스 헤드셋 = 615
  01 블루투스의 음성 기술 = 617
   1.1 블루투스 헤드셋 프로그램 개발 = 618
   1.2 IBluetoothHeadset.aidl 인터페이스 구현 = 619
   1.3 BluetoothHeadset 프로그램 작성 = 621
  02 전화 수신과 통화 = 624
   2.1 사용 권한 확보 = 626
   2.2 ITelephony.aidl 인터페이스 구현 = 626
   2.3 브로드캐스트 리시버 프로그램 = 628
   2.4 서비스 프로그램 작성 = 633
   2.5 블루투스 헤드셋 활성화 = 636
   2.6 다른 프로그램으로 수신전화 이전 = 637
   2.7 ITelephony 리플렉션 = 638
   2.8 전화 통화 종료 = 644
  03 전화통화 기능 설정 = 644
  04 ITelephony.aidl 메서드 = 647
  05 전화수신과 블루투스 헤드셋 마무리 = 648
 Chapter 12 안드로이드 와이파이 통신 = 651
  01 무선랜이란 = 653
   1.1 무선 LAN의 구성요소 = 653
   1.2 용어 해설 = 655
   1.3 와이파이 규격 = 656
   1.4 무선 보안 기술 = 657
  02 안드로이드 와이파이 = 661
   2.1 와이파이 퍼미션 = 661
   2.2 와이파이 활성화 = 663
  03 와이파이 스캔 = 663
   3.1 ScanResult 클래스 = 666
  04 와이파이 환경설정 = 667
   4.1 WifiConfiguration 클래스 = 668
   4.2 WifiManager 클래스 = 672
   4.3 와이파이 환경설정 = 677
  05 와이파이 네트워크 연결 = 683
   5.1 네트워크 정보 읽기 = 684
   5.2 기타 네트워크 비활성화 = 685
   5.3 네트워크 연결 우선순위 조정 = 687
  06 와이파이 상태 정보 확인 = 689
   6.1 WifiInfo 클래스 = 690
   6.2 브로드캐스트리시버 = 692
  07 와이파이 록 설정 = 696
   7.1 WifiManager.WifiLock 클래스 = 697
   7.2 WifiManager.WifiLock 클래스 사용 예 = 698
   7.3 WifiManager.MulticastLock 클래스 = 699
  08 인터넷 서비스 우선순위 설정 = 701
  09 와이파이 마무리 = 702
 Chapter 13 위치기반 서비스 = 703
  01 안드로이드 위치정보 서비스 = 704
  02 지리 좌표 체계 = 713
   2.1 투영 좌표 체계 = 715
  03 Location 서비스 = 717
   3.1 사용자 퍼미션 = 717
   3.2 위치 업데이트 = 718
   3.3 위치정보사업자 선정 = 722
   3.4 근접 경보 기능 = 724
  04 android.location 패키지 = 725
   4.1 Criteria 클래스 = 725
   4.2 LocationManager 클래스 메서드 = 727
   4.3 Location 클래스 = 730
  05 위치 정확성 유지 = 732
  06 거리 측정 = 735
  07 구글 맵 = 741
   7.1 구글 맵 사용방법 = 742
  08 'com.google.android.maps' 패키지 = 745
   8.1 MapView 클래스 = 746
   8.2 MapActivity 클래스 = 748
   8.3 MapController 클래스 = 749
   8.4 ItemizedOverlay 클래스 = 751
   8.5 MyLocationOverlay 클래스 = 753
   8.6 OverlayItem 클래스 = 754
  09 줌 기능과 위치 설정 = 754
  10 아이템 오버레이 작업 = 756
  11 구글 맵 사용 예제 = 761
  12 위치기반 서비스 마무리 = 769
 Chapter 14 네트워크 시스템 관리 = 771
  01 네트워크 연결 상태 확인 = 772
   1.1 ConnectivityManager 클래스 = 773
   1.2 네트워크 연결 확인 = 775
   1.3 네트워크 변경 브로드캐스트 = 778
  02 네트워크 세부정보 확인 = 779
   2.1 NetworkInfo 클래스 = 780
   2.2 네트워크 세부정보 확인 = 782
  03 안드로이드 edify = 785
   3.1 edify 언어의 특성 = 785
   3.2 논리 연산자 = 787
   3.3 진행 연산자 = 787
   3.4 edify 매크로 명령어 = 788
  04 안드로이드 프로퍼티 = 790
   4.1 프러퍼티 시스템 작동 원리 = 790
   4.2 프로퍼티 특성 = 793
   4.3 프로그램에서 프로퍼티 읽고 쓰기 = 795
  05 네트워크 시스템 관리 마무리 = 798
 Chapter 15 테더링과 애드혹 서비스 = 799
  01 안드로이드 환경 분석 = 803
   1.1 루트 권한 확보 = 803
   1.2 Netfilter 패키지 설치 확인 = 804
   1.3 데몬 실행 확인 작업 = 808
   1.4 패킷 포워딩 = 813
  02 파일 복사와 실행 모드 변경 = 814
  03 DNS&DHCP 서버 구축 = 818
   3.1 DNS 서비스 = 820
   3.2 DHCP 서비스 = 822
   3.3 DNS&DHCP 서버 실행 = 825
  04 블루투스 애드혹 설정 = 827
  05 와이파이 애드혹 설정 = 830
   5.1 와이파이 드라이버와 인터페이스 = 831
   5.2 wpa_supplicant.conf 설정 작업 = 835
  06 IP 주소 설정 = 842
  07 라우팅 테이블 설정 = 843
  08 Netfilter 패키지 설정 = 845
   8.1 iptables 명령어 = 845
  09 테더링 퍼미션 = 850
  10 테더링 실행 = 851
  11 안드로이드 생명주기 고려 = 852
  12 테더링과 애드혹의 마무리 = 854
APPENDIX(부록) = 857
 01 메모리 관리와 mmap = 857
 02 블루투스 아키텍처 = 858
 03 블루투스 프로파일 = 862
 04 블루투스 보안 = 863
 05 wpa_supplicant 상태 값 = 866
 06 NetworkInfo.DetailedState 상태 값 = 866
 07 HttpURLConnection 응답 상수 = 867
 08 HTTP 상태코드 = 868
 09 엔디언 = 871
 10 안드로이드 퍼미션 = 872
 11 구글맵 사용 API KEY 얻기 = 877
 12 용어 설명 = 879

관련분야 신착자료

Anson, Steve (2022)
한국. 행정안전부 (2022)
한국. 행정안전부 (2022)
황기태 (2021)
Zumstein, Felix (2022)