안드로이드 프로그래밍 Next Step (제대로 된 앱을 만드는 컴포넌트 활용 노하우)

안드로이드 프로그래밍 Next Step (제대로 된 앱을 만드는 컴포넌트 활용 노하우)

$25.00
Description
모든 문제는 컴포넌트를 제대로 다루지 못하는 데서 생긴다!
이 책을 보려는 사람들이라면 안드로이드를 공부하기 위해 두꺼운 입문서를 따라하면서 오랜 시간을 보냈을 것이다. 근사한 앱을 상상했지만 고생해서 만든 앱에서는 늘상 문제가 발생한다. 입문서에 나오지 않는 문제들을 해결하기 위해 개발자 가이드를 읽고, 구글을 검색해 보지만 군더더기가 많아지고 꼼수만 늘어간다.
제대로 된 앱을 만들기 위해서는 결국 안드로이드의 기본 원리를 정확히 알고 제대로 활용해야 한다. 그러기 위해서는 안드로이드 내부 구조를 정확히 이해하고 있어야 한다. 그래야 컴포넌트를 적재적소에서 정확히 활용할 수 있고, 유지보수가 쉬우면서도 진화할 수 있는 제대로 된 앱을 만들 수 있다.

이 책은 안드로이드의 기본 원리를 이해하고 이를 올바르게 적용하는 것에 중점을 둔다. 그러면서도 실무적인 내용을 담았는데, 다른 책에서는 가볍게 다뤄지는 내용이라도 현장에서 중요하게 쓰이는 것에 많은 분량을 할애하였다. 안드로이드 내부 구조를 설명하는 책이나 강의가 있기는 하지만 수준이 높거나 실무에서 활용하는 법은 잘 다루지 않곤 한다. 이 책이 입문서를 보고 난 후 방황하는 독자에게 도움이 될 것이다.
저자

노재춘

저자노재춘은서울대수학과를졸업한후작은IT회사에서직장생활을시작했고,그회사를다니면서저녁과주말을이용해독학으로프로그래밍에입문하였다.현재네이버에재직중이고차량용인포테인먼트앱을만들고있다.네이버에서안드로이드사내강의를수차례진행했고각종스터디에도꾸준히참여하고있다.앱을개발하면서크래시를많이발생시키기도했는데,그경험을바탕으로문제의원인을찾아근본적으로해결하는것에관심이많아졌다.웹개발서적인『모델2로다시배우는JSP』(공저,2003년,한빛미디어)를저술했다.두아이와많이놀고싶어하고,승마얘기만나오면말이많아지는평범한개발자다.

목차

1장안드로이드프레임워크
1.1안드로이드아키텍처개요
1.1.1애플리케이션
1.1.2애플리케이션프레임워크
1.1.3안드로이드런타임
1.1.4라이브러리
1.1.5리눅스커널
1.2프레임워크소스
1.3안드로이드버전
1.3.1호환성모드
1.3.2호환성모드동작예시
1.3.3단말버전체크

2장메인스레드와Handler
2.1UI처리를위한메인스레드
2.2Looper클래스
2.3Message와MessageQueue
2.4Handler클래스
2.4.1Handler생성자
2.4.2Handler동작
2.4.3Handler용도
2.4.4Handler의타이밍이슈
2.5UI변경메커니즘
2.6ANR
2.6.1ANR타임아웃
2.6.2프레임워크에서ANR판단

3장백그라운드스레드
3.1HandlerThread클래스
3.2스레드풀사용
3.2.1ThreadPoolExecutor클래스
3.2.2ScheduledThreadPoolExecutor클래스
3.2.3Executors클래스
3.3AsyncTask클래스
3.3.1백그라운드스레드와UI스레드구분
3.3.2액티비티종료시점과불일치
3.3.3AsyncTask취소
3.3.4예외처리메서드없음
3.3.5병렬실행시doInBackground()실행순서가보장되지않음

4장Context

5장액티비티
5.1생명주기
5.1.1액티비티생명주기다이어그램
5.1.2생명주기메서드호출시점
5.1.3액티비티시작메서드
5.1.4액티비티전환시생명주기메서드호출
5.1.5생명주기메서드사용시주의사항
5.2구성변경
5.2.1리소스반영
5.2.2구성변경으로인한액티비티재시작
5.2.3프레임워크소스확인
5.2.4구성한정자
5.2.5데이터복구
5.2.6android:configChanges속성
5.2.7Configuration클래스의변수확인
5.3태스크
5.3.1태스크상태
5.3.2dumpsys명령어로태스크확인
5.3.3taskAffinity속성
5.3.4태스크속성부여
5.4선언

6장서비스
6.1스타티드서비스
6.1.1서비스재시작방식
6.1.2멀티스레드이슈
6.1.3외부프로세스에서암시적인텐트로서비스시작
6.1.4IntentService클래스
6.1.5서비스중복실행방지
6.2바운드서비스
6.2.1리모트바인딩
6.2.2로컬바인딩
6.2.3바인딩의특성
6.2.4Messenger클래스

7장콘텐트프로바이더
7.1SQLite
7.1.1sqliteshell
7.1.2DB락문제
7.1.3SQLiteOpenHelper클래스
7.2콘텐트프로바이더
7.2.1로컬프로세스에서콘텐트프로바이더적용기준
7.2.2콘텐트프로바이더예제
7.2.3배치실행
7.3SQLite/ContentProvider관련팁
7.3.1쿼리실행확인
7.3.2콘텐트프로바이더예외확인

8장브로드캐스트리시버
8.1브로드캐스트리시버구현
8.2브로드캐스트리시버등록
8.2.1브로드캐스트리시버정적등록
8.2.2브로드캐스트리시버동적등록
8.3오더드브로드캐스트
8.4스티키브로드캐스트
8.5LocalBroadcastManager클래스
8.6앱위젯
8.6.1앱위젯의특성
8.6.2AppWidgetProvider클래스
8.6.3RemoteViews클래스
8.6.4앱위젯업데이트
8.6.5유의할점

9장Application
9.1앱초기화
9.2Application콜백
9.2.1ComponentCallbacks2인터페이스
9.2.2Application에등록하는콜백
9.3프로세스분리
9.3.1프로세스분리가필요한때
9.3.2분리된프로세스에서Application은새로시작
9.3.3프로세스분리시주의할점

10장시스템서비스
10.1시스템서비스기본
10.2dumpsys명령어
10.3시스템서비스이슈
10.3.1빈번한리모트호출을줄여야함
10.3.2전원관리와딥슬립
10.3.3알람등록과제거

11장구현패턴
11.1싱글톤패턴
11.1.1싱글톤에Context를전달하는방법
11.1.2메모리누수검증
11.2마커인터페이스
11.3Fragment정적생성

출판사 서평

대상독자

-앱을개발하면서자신이정말제대로만들고있는지,문제를올바르게해결하고있는지의문을갖는분
-안드로이드컴포넌트를어떤식으로활용할지잘모르겠는분
-실제예를단순히따라하기보다는개념이어떻게적용되는지를알고싶은분
-실제업무에서알아야할다양한크리티컬이슈를알고싶은분
-군더더기없는정확한소스를작성하고싶은분
-안드로이드버전,단말의종류등환경변화에능동적으로대처할수있는앱을만들고싶은분
-안드로이드앱개발을설명하는책도보고,안드로이드프레임워크를설명하는책도봤지만프레임워크를앱개발에잘적용하려면어떻게해야하는지도무지모르겠는분