HOME > 상세정보

상세정보

안드로이드 앱 성능 최적화 (4회 대출)

자료유형
단행본
개인저자
Guihot, Herve
단체저자명
장독대, 역
서명 / 저자사항
안드로이드 앱 성능 최적화 / Herve Guihot 지음 ; 장독대 옮김
발행사항
부천 :   프리렉,   2012  
형태사항
xviii, 430 p. : 삽화 ; 24 cm
총서사항
Mobile dev series
원표제
Pro Android apps performance optimization
ISBN
9788965400196
일반주기
색인수록  
일반주제명
Application software -- Development Android (Electronic resource) Java (Computer program language)
000 00953camcc2200313 c 4500
001 000045726002
005 20121031220102
007 ta
008 121030s2012 ggka 001c kor
020 ▼a 9788965400196 ▼g 13560
035 ▼a (KERIS)BIB000012761265
040 ▼a 222003 ▼c 222003 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 4 ▼a 005.268 ▼2 23
085 ▼a 005.268 ▼2 DDCK
090 ▼a 005.268 ▼b 2012z16
100 1 ▼a Guihot, Herve
245 1 0 ▼a 안드로이드 앱 성능 최적화 / ▼d Herve Guihot 지음 ; ▼e 장독대 옮김
246 1 9 ▼a Pro Android apps performance optimization
260 ▼a 부천 : ▼b 프리렉, ▼c 2012
300 ▼a xviii, 430 p. : ▼b 삽화 ; ▼c 24 cm
440 0 0 ▼a Mobile dev series
500 ▼a 색인수록
650 0 ▼a Application software ▼x Development
650 0 ▼a Android (Electronic resource)
650 0 ▼a Java (Computer program language)
710 ▼a 장독대, ▼e
945 ▼a KLPA

소장정보

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 중앙도서관/제2자료실(3층)/ 청구기호 005.268 2012z16 등록번호 111678783 도서상태 대출가능 반납예정일 예약 서비스 B M

컨텐츠정보

책소개

안드로이드 앱 성능 최적화는 안드로이드 앱을 최적화할 수 있는 유일한 안드로이드 최적화 서적. 기존 안드로이드 서적과 교육 과정에서 설명하지 못하는 안드로이드 최적화 노하우가 녹아 있다. 이 책은 안드로이드 애플리케이션 개발 경험이 있는 독자를 대상으로 하며, 독자들이 개발하는 애플리케이션을 어떻게 하면 더 빠르고 안정적으로 동작하게 할 수 있을까 하는 부분에 대해 중점을 뒀다.

안드로이드 앱 성능 최적화는 안드로이드 앱을 최적화할 수 있는 유일한 안드로이드 최적화 서적이다.
현재 안드로이드 개발자들은 자신이 개발한 안드로이드 앱을 재정비하고 성능을 최적화하는 데 몰두하고 있다. 개발하는 안드로이드 앱이 복잡해질수록 성능 최적화는 중요한 이슈이다. 이 책은 기존 안드로이드 서적과 교육 과정에서 설명하지 못하는 안드로이드 최적화 노하우가 녹아 있다. 이 책에서 다루는 내용은 다음과 같다.

- 자바 기반 애플리케이션을 최적화하는 방법

- NDK를 사용하여 애플리케이션을 최적화하는 방법

- 메모리를 효율적으로 사용하는 방법

- 배터리 최대한 오래 사용하기 위한 저전력 방법

- 멀티스레딩을 언제 해야 하는지와 멀티스레딩을 효과적으로 사용하는 방법

- 개발한 코드를 벤치마크하고 프로파일링하는 방법

- OpenGL 코드를 최적화하는 방법과 렌더스크립트 사용 방법

이 책은 안드로이드 애플리케이션 개발 경험이 있는 독자를 대상으로 하며, 독자들이 개발하는 애플리케이션을 어떻게 하면 더 빠르고 안정적으로 동작하게 할 수 있을까 하는 부분에 대해 중점을 뒀다.

1장 자바 코드 최적화
자바 코드 최적화에 대해서 다룬다. 첫 번째 애플리케이션은 자바에 대해 초점을 맞춰서 구현하는 방법보다는 알고리즘 자체에 대해서 다룬다. 또한, 여러분이 개발한 애플리케이션을 최적화하기 위해 캐시를 사용하거나 메모리 할당을 최소화하는 등의 간단한 기법을 통해 어떻게 전체 애플리케이션의 성능을 향상시키는지도 알아본다. 더불어, 여러분이 개발한 애플리케이션의 성능이 어느 정도 되는지 알려주는 일종의 정량화된 가이드인 사용자 반응성을 유지하는 방법과 데이터베이스를 효율적으로 활용하는 방법에 대해서도 소개한다.

2장 NDK 시작하기
2장에서는 한 단계 더 나아가서(조금 로우 레벨이기는 하지만 여러분이 어떤 개발을 하느냐에 따라 로우 레벨이 아닐 수도 있다) 안드로이드 NDK에 대해 소개한다. 안드로이드 2.2부터 자바 코드가 네이티브 코드로 컴파일되긴 하지만, 어떤 부분은 C 코드를 사용하여 개발하는 것이 훨씬 나은 성능을 가져올 때가 있다. NDK는 기존 코드를 자바로 전부 다시 작성할 필요 없이 안드로이드에서 동작할 수 있도록 해준다.

3장 NDK 고급
어셈블리 언어에 대해 조금 깊이 다루고 있다. 일반적인 애플리케이션이 개발자라면 사용할 일은 거의 없겠지만, 어셈블리 언어는 플랫폼에 대해 특정 명령어들을 사용할 수 있으며 이러한 방법은 애플리케이션 최적화를 위해서는 최적의 방법이다. 하지만, 상대적으로 어셈블리 언어를 사용해서 소스 코드를 개발하기가 어렵고 소스 코드의 유지 보수 측면에서도 비용이 많이 든다. 어셈블리 코드가 애플리케이션 개발의 특정 부분에 대해서 국한되어 사용되기는 하지만, 어셈블리를 사용한 결과 자체는 상당히 놀라울 정도이며 주의해서 사용하기만 하면 최적화 측면에서는 충분히 고려해볼 만한 방법이다.

4장 효율적인 메모리 사용
어떻게 하면 메모리 사용량을 줄이면서 성능을 향상시키는지를 다룬다. 또한, 소스 코드에서 메모리를 되도록 덜 사용하는 간단한 방법을 소개하고, CPU가 어떻게 설계되어 있는가에 따라 메모리 할당과 메모리 액세스가 성능에 직접적인 영향을 어떻게 미치고 있는지 알아본다.

5장 멀티스레딩과 동기화
애플리케이션의 반응 속도와 성능을 향상시키기 위해서 안드로이드 디바이스에서 동시에 여러 개의 스레드를 동작시킬 수 있는 범위 내에서 최대한 멀티스레드를 사용하는 방법에 대해 알려준다.

6장 벤치마크와 프로파일링
애플리케이션의 성능을 측정하는 기본적인 방법에 대해 알려준다. API를 사용하여 어떻게 시간을 측정하고, 안드로이드에서 제공하는 툴을 사용하여 애플리케이션이 소비한 시간을 좀 더 보기 좋게 보여주도록 하기 위한 방법을 살펴본다.
7장 배터리 최대한 사용하기
애플리케이션이 정상적으로 전력을 소비하고 있는지 체크하는 방법에 대해 알려준다. 많은 안드로이드 디바이스들이 배터리를 사용하고 있으며, 배터리를 상대적으로 빨리 소모하는 애플리케이션일수록 사용자가 쉽게 삭제한다는 점에서는 전력을 되도록 덜 소모하도록 하는 것은 상당히 중요한 문제이다. 이 장에서는 어떻게 하면 애플리케이션의 중요 기능을 유지하면서 전력 소모를 최소화할 수 있는가에 대한 노하우를 소개한다.

8장 그래픽
애플리케이션의 레이아웃과 OpenGL 렌더링을 최적화하는 기본적인 방법을 소개한다.

9장 렌더스크립트
렌더스크립트은 허니컴에서 소개된 최신 기술이다. 렌더스크립트 자체가 성능을 최적화시키는 기술이며 등장한 지 얼마 되지 않았음에도 상당히 빠르게 발전하고 있다. 이 장에서는 애플리케이션에서 렌더스크립트를 사용하는 방법을 소개하며 렌더스크랩트에서 정의하는 여러 가지 API들을 알아본다.


정보제공 : Aladin

저자소개

Herve' Guihot(지은이)

20년 전에 암스트레드사의 CPC464로 컴퓨터를 배우기 시작했으며 현재 무선 통신과 디지털 멀티미미어 솔루션을 위한 팹리스 반도체 회사인 MediaTek에서 소프트웨어 엔지니어 매니저로 일하고 있다.

장독대(옮긴이)

IT 번역 전문 그룹

정보제공 : Aladin

목차

목차
Chapter 01 자바 코드 최적화 = 1
 안드로이드 코드 실행 = 2
 피보나치 최적화 = 6
  재귀 호출 방법을 순환 호출 방법으로 변경 = 7
  BigInteger = 10
 캐시 결과 = 18
  android.util.LruCache = 21
 API 레벨 = 23
  단편화 = 27
 데이터 구조 = 28
 응답성 = 32
  지연 초기화 = 36
  StrictMode = 37
 SQLite = 40
  SQLite 명령문 = 41
  트랜잭션 = 47
  쿼리 = 49
 요약 = 51
Chapter 02 NDK 시작하기 = 53
 NDK의 구성요소 = 54
 자바와 C/C++ 코드 혼용 = 59
  네이티브 메서드 선언 = 60
  JNI 레이어 글루 구현 = 61
  Makefile 생성 = 64
  네이티브 함수 구현 = 67
  네이티브 라이브러리 컴파일 = 69
  네이티브 라이브러리 로드 = 70
 Application.mk = 72
  모든 디바이스를 위한 최적화 = 74
  모든 디바이스 지원 = 77
 Android.mk = 81
 C/C++를 사용한 성능 향상 = 85
  JNI에 대해서 = 92
 네이티브 액티비티 = 99
  설정하지 않은 라이브러리 빌드 = 102
  또 다른 방법 = 112
 요약 = 113
Chapter 03 NDK 고급 = 115
 어셈블리 = 116
  최대 공약수 = 118
  컬러 변환 = 125
  병렬 연산을 이용한 평균값의 계산 = 131
  ARM 명령어 = 139
  ARM NEON = 147
  CPU 기능 = 148
 C 익스텐션 = 151
  빌트인 함수 = 152
  벡터 명령어 = 153
 팁 = 160
  인라인 함수 = 160
  언롤링 루프 = 160
  메모리 프리로딩 = 161
  LDR/STD 대신 LDM/STM의 사용 = 163
 요약 = 165
Chapter 04 효율적인 메모리 사용 = 167
 메모리에 대한 사전적 정의 = 167
 데이터 타입 = 170
  값의 비교 = 174
  다른 알고리즘 = 177
  배열의 정렬 = 179
  개발자가 직접 정의한 클래스 = 181
 메모리 액세스 = 183
  캐시의 라인 크기 = 185
 데이터 배치 = 187
 가비지 컬렉션 = 195
  메모리 누수 = 195
  참조 = 198
 API = 204
 로우 메모리 = 205
 요약 = 206
Chapter 05 멀티스레딩과 동기화 = 207
 스레드 = 208
 AsyncTask = 214
 핸들러와 루퍼 = 219
  핸들러 = 220
  루퍼 = 222
 데이터 타입 = 223
  동기화, 휘발성, 메모리 모델 = 224
 동시성 = 230
 멀티코어 = 232
  멀티코어용 알고리즘의 수정 = 234
  동시성 캐시 사용 = 239
 액티비티 라이프사이클 = 242
  정보 전달 = 245
  상태 기억하기 = 248
 요약 = 253
Chapter 06 벤치마크와 프로파일링 = 255
 시간 측정 = 256
  System.nanoTime() = 258
  Debug.threadCpuTimeNanos() = 259
 트레이싱 = 261
  Debug.startMethodTracing() = 261
  Traceview 사용 = 263
  DDMS에서 Traceview의 사용 = 266
  네이티브 트레이싱 = 268
 로그 = 271
 요약 = 274
Chapter 07 배터리 최대한 사용하기 = 275
 배터리 = 276
  배터리 사용량 측정 = 278
 브로드캐스트 리시버 비활성화 = 284
  브로드캐스트 리시버의 활성화/비활성화 = 288
 네트워킹 = 290
  백그라운드 데이터 = 292
  데이터 전송 = 293
 위치 = 297
  리스너 등록 해제 = 299
  업데이트 주기 = 300
  다중 프로바이더 = 301
  프로바이더 필터링 = 305
  마지막으로 알려진 위치 = 308
 센서 = 309
 그래픽 = 312
 알람 = 313
  알람 스케줄링 = 316
 wakelock = 318
  문제 예방 = 320
 요약 = 321
Chapter 08 그래픽 = 323
 레이아웃 최적화 = 323
  상대 레이아웃 = 327
  레이아웃 병합 = 333
  레이아웃 재사용 = 335
  뷰스텁 = 338
 레이아웃 툴 = 341
  Hierarchy Viewer = 342
  layoutopt = 342
 OpenGL ES = 343
  익스텐션 = 344
  텍스처 압축 = 348
  밉맵 = 355
  다중 APK = 357
  셰이더 = 359
  장면 복잡도 = 359
  컬링 = 359
  렌더링 모드 = 360
  전력 소모 = 360
 요약 = 361
Chapter 09 렌더스크립트 = 363
 개요 = 364
  Hello World = 367
 Hello Rendering = 372
  렌더링 스크립트의 생성 = 372
  RenderScriptGL 컨텍스트의 생성 = 374
  RSSurfaceView의 확장 = 375
  컨텐트 뷰의 설정 = 376
 스크립트에 변수 추가 = 378
 HelloCompute = 382
  할당 = 384
  rsForEach = 386
  성능 = 392
 네이티브 렌더스크립트 API = 393
  rs_types.rsh = 395
  rs_core.rsh = 400
  rs_cl.rsh = 402
  rs_math.rsh = 408
  rs_graphics.rsh = 410
  rs_time.rsh = 412
  rs_atomic.rsh = 414
 렌더스크립트와 NDK = 415
 요약 = 416

관련분야 신착자료

Zumstein, Felix (2022)