본문 바로가기
[android] Low Memory Kill ( LMK ) [android] Low Memory Kill ( LMK ) https://developer.android.com/guide/components/activities/process-lifecycle.htmlhttps://medium.com/google-developers/who-lives-and-who-dies-process-priorities-on-android-cb151f39044f -OS Version 별로 제조사별로 바뀌기 쉬운 정책 때문인지..속 시원하게 설명해주는 글을 찾지 못했다.그래서 항상 헛갈리는 LMK (low memory kill) 에 대한 내용을 한 번 더 정리해보았다. -여러 글을 참조한 결과 importance priority 는 약간의 조정이 있었던 것 같다. 아주 옛날 옛적에 .. 2019. 1. 9.
[android] WakefulBroadcastReceiver 를 알아보자! [android] WakefulBroadcastReceiver 를 알아보자! https://developer.android.com/reference/android/support/v4/content/WakefulBroadcastReceiver -우선 시작하기에 앞서 이 녀석은 26.1.0 에서 deprecated 되었으며 그 이유는..Android O 에서 background restriction 이 생겼기 때문이다.그래서 이 녀석 대신 JobScheduler 를 사용하는 것이 권장된다. -이 녀석은 원래 BroadcastReceiver 의 한 형태로, device wakeup event 를 받아서 그 작업 처리를 Service 에 넘기는 역할을 했던 녀석이다. 또한 그 과정중에 device 가 sleep.. 2018. 12. 1.
[android] Kiosk mode app 을 만들자! [android] Kiosk mode app 을 만들자! http://www.andreas-schrade.de/2015/02/16/android-tutorial-how-to-create-a-kiosk-mode-in-android/ -Kiosk mode 가 무엇을 말하는가?다른 앱은 실행되지 않는 single app 만 실행하는 그런 앱을 이야기한다. -고려해야 할 상황들은 다음과 같다. back button home button recent app button power button volume button -먼저 kiosk 는 부팅과 동시에 해당 앱이 시작되어야 하기 떄문에, boot complete br 을 처리해야 한다. @Manifest @BootReceiverpublic class BootRec.. 2017. 8. 7.
더 안정적인 GCM 구현을 위해 주의할 점. 더 안정적인 GCM 구현을 위해 주의할 점. SERVICE_NOT_AVAILABLE 을 주의하라. register 함수를 부르면 평상시에는 문제가 없지만,신호가 미약한 wild 환경에서는 IOException 과 함께 SERVICE_NOT_AVAILABLE 이라는 메세지가 자주 뜬다. 이럴 때는 exponential backoff 정책을 이용해서 주기적으로 시도하는 것이 좋다.그렇지 않으면 Push 에 제대로 등록되지 않는다. registration ID 가 제대로 준비가 되어도 register 가 계속 실패하는 경우가 있다. register 를 불렀을 때 몇몇 단말에서는 무조건 실패한다.하지만 이 경우 보통 registration ID 는 생성이 되지만 return 이 되지 않을 뿐이다.이럴 경우 다음.. 2014. 3. 31.
[android] LocalBroadcastManager 이야기. 안드로이드, LocalBroadcastManager 이야기. LocalBroadcastManager 의 장점. - Broadcast message 가 앱을 떠나지 않기 때문에 privacy 걱정이 없다. - 다른 앱에서 보내는 LocalBroadcast 역시 우리 앱으로 들어오지 못해 security 이슈가 없다. - System 에 global broadcast 를 보내는 것보다 훨씬 효율적이다. 관련 API 들. - static LocalBroadcastManager getInstance(Context context) - void registerReceiver(BroadcastReceiver receiver, IntentFilter filter) - boolean sendBroadcast(Intent.. 2013. 12. 23.
[android] 안드로이드 개발 10계명 안드로이드 개발 10계명 ( 명심해야 할 10가지 ) 1. 앱 구성요소간 데이터를 주고받을 경우, Extra 로 여러값을 따로따로 전달하기보다는 Parcelable 을 사용하는 것이 유지보수에도 쉽고 성능이슈도 있다. Serialization 도 방법이긴 하지만 안드로이드에서는 Parcelable 이 Serialization 보다 더 효율적이다. 2. UI 와 관련된 코드를 제외한 다른 Heavy 한 모든 일은 다른 thread 를 만들어 수행해야 한다. 3. Object Cache 를 적극 활용하자. ( Object Pool 패턴사용이 추천된다. ) 안드로이드의 GC 는 폰이 버벅대는 효과를 가져오는 1등공신(?) 이다. 4. ListAdapter 내부에서는 오랜 시간이 소요되는 연산을 수행하지 않는다.. 2013. 9. 24.
[android] framework 의 service와 broadcast 안드로이드, framework 의 service 와 broadcast 음악앱은 Service 에서 Notification 과 함께하여 음악을 재생한다. 알람시계앱은 AlarmManager 를 이용하여 PendingIntent 로 Broadcast 를 날리고, 그것을 스스로 수신해서 Activity 를 띄운다. 달력앱은 특정 이벤트 알람내용을 알리기 위해 AlarmManager 를 알람시계앱처럼 이용한다. 백그라운드 파일 다운로드는 다운로드가 있을 경우 작동하는 Service. E-mail 앱은 특정 주기마다 새로운 메일을 확인하기 위해 Alarm 을 통해 Service를 실행한다. 구글 앱들은 네트워크 Push 이벤트 수신과 동기화를 위한 Service 를 돌린다. 구글에서 보내주는 앱 관련 Push 도.. 2013. 8. 9.
[android] framework FAQ 안드로이드, framework FAQs 하나의 어플에 포함되어 있는 모든 Activity 와 Service 들이 하나의 프로세스에서 동작해? 메니페스트에 android:process 를 따로 기술하지 않는 한 네개의 기본 Component 들 ( Activity, Service, BroadcastReceiver, ContentProvider ) 는 모두 한 프로세스에서 동작한다. Component 간 Data 공유는 어떻게 해? Primitive type 들은 Intent.putExtra() 를 통해서 내용전달을 할 수 있다. Preference 에 저장하여 공유할수도 있다.Application 클래스에 저장하여 공유한다.public static 변수로 공유한다. 이 방법은 추천되지 않는다.Object .. 2013. 7. 24.
반응형