일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Replaygain
- convert Intent to string
- print callstack
- enum performance
- MediaDataSource
- mitmproxy
- 오픈소스라이선스
- 네트워크 디버깅
- gitignore
- so파일 동적로딩
- ArrayMap
- convert string to intent
- android network
- Service 팁
- Intent String 변환
- lufs
- Dagger2란
- RxJava 스터디
- gitignore작성법
- android enum
- BlockingQueue Capacity
- RxJava Programming
- APK로딩
- 음량표준화
- Service관리
- corePoolSize
- APK 동적로딩
- java callstack
- callstack 출력
- HashMap vs ArrayMap
- Today
- Total
일상&개발 로그
[PerformancePatterns] Service 올바르게 사용하기 본문
1. 서비스는 UIThread에서 동작하기 때문에 서비스 작업때문에 프레임 누락이 발생할 수 있다.
2. 서비스를 되도록이면 쓰지마라. GCM이나 BroadcastReceiver를 이용해서 업데이트하던가 아니면 IntentService,
HandlerThread, AsyncTaskLoader를 사용해라
3. Service에는 StartedService와 BoundService가 있다.
# StartedService는 startService-stopService(or stopSelf)로 이루어졌으며 종료시키기 전까지
계속 살아남아 리소스를 잡아먹는다.
# BoundService는 unbind되거나 종료시키기 전까지 리소스를 잡아먹는다.
# 두 가지 서비스를 섞어쓰면, unbindService()를 호출해도 stopService()를 기다리며 살아남는다.
4. Systrace라는 시각적인 툴로 앱&서비스의 동작을 분석할 수 있다.
# IntentService - 서비스를 실행시킨 뒤 MessageQueue에 작업을 쌓아놓고 하나씩 처리한다.
모든 작업이 끝나면 서비스를 종료한다.
# HandlerThread - Looper를 가지고있는 Thread.
# AsyncTaskLoader - AsyncTask와 유사하나 UI와 백그라운드 처리를 분리시켜놓음.
백그라운드 작업은 AsyncTaskLoader를 상속한 클래스에서 하고 UI작업은 LoaderCallback을
구현한 Activity에서 처리한다.
동영상 링크:
https://www.youtube.com/watch?v=NJsq0TU0qeg&list=PLOU2XLYxmsIKEOXh5TwZEv89aofHzNCiu&index=6'개발 > 안드로이드 개발' 카테고리의 다른 글
[PerformancePattern] Enum (0) | 2017.05.23 |
---|---|
[PerformancePattern] ArrayMap vs HashMap (0) | 2017.05.22 |
Gradle 라이브러리 충돌 시 대처방법 (0) | 2017.05.12 |
Dynamic APK Loading Research (0) | 2017.05.10 |
AsyncTask 특징 (0) | 2017.04.24 |