안드로이드 비동기 프로그래밍 [멀티코어 프로세서를 이용한 반응형 앱 개발]
- 원서명Asynchronous Android (ISBN 9781783286874)
- 지은이스티브 라일즈(Steve Liles)
- 옮긴이이문호
- ISBN : 9788960778498
- 18,000원
- 2016년 05월 12일 펴냄 (절판)
- 페이퍼백 | 172쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 모바일 프로그래밍
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
요약
이 책은 반응형 앱 개발을 위한 안드로이드 비동기 프로그래밍의 주요 기법을 다루며, 동시성 이슈 제기부터 시작해 AsyncTask로 반응성 유지, Handler를 이용한 작업 분산, Loader를 이용한 비동기 I/O, IntentService를 이용한 백그라운드 작업 수행, Service를 이용해 오래 걸리는 작업 실행, AlarmManager를 이용한 알람 스케줄링으로 나눠 설명하고 있다 이에 보듯이 멀티스레딩 기술을 향상시키거나 앱 성능을 개선하려는 독자에게 유용한 도움이 될 것이다.
이 책에서 다루는 내용
안드로이드 프로세스 모델의 개요와 애플리케이션에 대한 영향 이해
안드로이드 플랫폼에서 무리 없이 잘 동작하는 안드로이드 애플리케이션 구축을 위한 멀티스레딩 활용법
결과를 빠르게 전달하고 사용자 입력에 대한 애플리케이션의 반응을 유지하기 위한 동시성의 적용 및 제어
더 쉽고 더 효율적인 비동기 프로그래밍을 지원하는 안드로이드에 특화된 생성자의 발견
노련한 개발자조차 잡아낼 수 없는 일반적인 위험의 회피
부드러우면서 반응성 있는 애플리케이션을 구축하기 위한 안드로이드 동시성 생성자의 적용 방법, 적용 이유, 적용 시점 등 학습
이 책의 대상 독자
이 책은 안드로이드의 기본을 숙달하고 나서 앱의 품질을 개선하려는, 즉 공학 품질 측면뿐만 아니라 다음 큰 단계로 차이점을 만들어내 최종 사용자가 실제로 인지할 수 있는 개선을 이끌 준비가 된 개발자를 위한 책이다. 따라서 이 책은 핵심적인 안드로이드 개발에 대한 합리적인 이해가 있다고 가정한다. 안드로이드 앱을 만든 경험이 있고 액티비티 클래스와 액티비티 생명주기, XML 레이아웃 파일, 안드로이드 매니페스트에 익숙하다면 이 책의 내용을 이해하는 데 아무런 문제가 없을 것이다.
자바의 동시성에 대한 기본 개념과 고수준 생성자에 친숙하면 내용을 좀 더 깊이 이해할 수 있지만, 필수 조건은 아니다.
동시성과 비동기 프로그래밍에 대한 사전 경험이 없는 안드로이드 개발자라면 반 응형 앱을 구축하기 위한 안드로이드 생성자를 언제, 어떻게, 왜 적용하는지 배울 것이다.
안드로이드를 새로 접하는 자바 전문가들은 안드로이드 개발 환경에서 자신들의 기존 지식을 적절히 활용하는 능력을 갖추게 될 것이며, 안드로이드의 고수준 동시 성 생성자와 관련된 익숙한 문제에 대해 명쾌한 해결책을 찾을 것이다.
이 책의 구성
1장, '반응형 안드로이드 애플리케이션 구축'에서는 안드로이드 프로세스 모델과 스레드 모델에 대한 개론을 제공하며, 안드로이드에 한정된 이슈를 논의하기 전에 일반적 인 동시성의 몇몇 과제와 장점을 기술한다.
2장, 'AsyncTask로 반응성 유지'에서는 안드로이드의 전형적인 동시성 프로그래밍을 다 룬다. AsyncTask의 기본적인 작업 방법과 올바른 사용법, 노련한 개발자를 곤란하 게 하는 일반적인 위험 요소를 피하는 방법 등을 배운다.
3장, 'Handler와 HandlerThread를 이용한 작업 분산'에서는 Handler, HandlerThread, Looper의 기본 개념과 주제에 관련된 세부사항을 다루며, 메인 스레드에서의 작업 스케줄링과 협업하는 백그라운드 스레드 간의 조정 및 통신에 사용할 수 있는 방법 을 보여준다.
4장, 'Loader를 이용한 비동기 I/0'에서는 로더Loader 프레임워크를 소개하며, 사용자 인 터페이스의 반응성을 유지하고 버벅거림으로부터 벗어나기 위해 비동기적으로 데 이터를 적재하는 작업의 중요성을 따진다.
5장, 'IntentService를 이용한 작업 큐 구현'에서는 단일 액티비티Activity 생명주기 범위에서 백그라운드 작업을 수행하고, 사용자가 애플리케이션을 떠났을지라도 작업이 완료 되는 것을 보장하기 위한 수단을 제공한다.
6장, 'Service를 이용한 오래 걸리는 작업 실행'에서는 IntentService로 찾았던 기능을 확장하며, 오래 걸리는 백그라운드 작업에 적용한 동시성 수준 제어를 제공한다.
7장, 'AlarmManager를 이용한 알람 스케줄링'에서는 반복 스케줄에서 먼 미래에 완료할 작업을 정리할 수 있게 하는 툴킷을 갖춘다. 이 툴킷은 새로운 내용을 사용자에게 알리고 새로 고친 데이터로 즉시 시작하는 애플리케이션을 구축 가능하게 한다.
목차
목차
- 1장. 반응형 안드로이드 애플리케이션 구축
- 달빅 가상 머신 소개
- 메모리 공유와 자이고트
- 안드로이드 스레드 모델의 이
- 메인 스레드
- 반응하지 않는 앱과 ANR 대화상자
- 반응성 유지
- 안드로이드에서 동시성
- 동시성 프로그램에서 정확성 이슈
- 동시성 프로그램에서 활동성 이슈
- 안드로이드 특정 동시성 이슈
- 안드로이드 특정 동시성 생성자
- 요약
- 2장. AsyncTask로 반응성 유지
- AsyncTask 소개
- AsyncTask 타입 선언
- AsyncTask 실행
- 사용자에게 피드백 제공
- 진행 갱신 제공
- AsyncTask 취소
- 예외 처리
- 동시성 수준 제어
- 흔한 AsyncTask 이슈
- 단편화 이슈
- 액티비티 생명주기 이슈
- 이른 취소로 인한 생명주기 처리
- 유지된 헤드리스 프래그먼트를 이용한 생명주기 처리
- AsyncTask 응용
- 요약
- 3장. Handler와 HandlerThread를 이용한 작업 분산
- 루퍼의 이해
- 핸들러를 이용한 반응형 앱 구축
- post를 이용한 작업 스케줄링
- 기다리는 Runnable 취소
- send를 이용한 작업 스케줄링
- 기다리는 메시지 취소
- 조합 대 상속
- 멀티스레드 기반 예제
- 메시지 전송 대 Runnable 게시
- HandlerThread를 이용한 반응형 앱 구축
- post를 이용한 작업 스케줄링
- 핸들러 프로그래밍 이슈
- 암시적 참조 누수
- 명시적 참조 누수
- 핸들러와 HandlerThread 응용
- 요약
- 4장. Loader를 이용한 비동기 I/O
- 로더 도입
- AsyncTaskLoader를 이용한 반응형 앱 구축
- CursorLoader를 이용한 반응형 앱 구축
- 로더 조합
- 로더 응용
- 요약
- 5장. IntentService를 이용한 작업 큐 구현
- 서비스와 IntentService 도입
- IntentService를 이용한 반응형 앱 구축
- 결과 처리
- PendingIntent를 이용해 결과 반환
- 결과를 시스템 통지로 사용
- 결과 처리
- IntentService 응용
- IntentService를 이용한 HTTP 업로드
- 진행 보고
- 요약
- 6장. Service를 이용한 오래 걸리는 작업 실행
- 서비스를 이용한 반응형 앱 구축
- Executor를 이용한 동시성 제어
- 메신저로 결과 반환
- 서비스를 이용한 통신
- 지역 서비스를 이용한 직접 통신
- 인텐트를 이용한 결과 브로드캐스팅
- 처리하지 못한 브로드캐스트 감지
- 서비스 응용
- 요약
- 7장. AlarmManager를 이용한 작업 스케줄링
- AlarmManager를 이용한 알람 스케줄링
- 알람 취소
- 반복 알람 스케줄링
- 알람 처리
- 알람을 액티비티와 함께 처리
- 알람을 BroadcastReceiver와 함께 처리
- BroadcastReceive와 함께 작업하기
- goSync를 이용해 백그라운드 작업 수행
- 알람을 서비스와 함께 처리
- WakeLock을 이용해 계속 깨어있기
- AlarmManager 응용