본문 바로가기
[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] 언어 변경(language change)했을 때 동작 실험 [android] 언어 변경(language change)했을 때 동작 실험 -실험환경 : NOS, Samsung J5 실험환경을 써 놓은 이유는 안드로이드는 OS Version 별, 제조사별, 단말별 동작이 다를 수 있기 때문.이 실험은 대략적인 감을 잡기 위함 -언어 변경 시 Process 가 죽는가?죽지 않는다. -그럼 Application 객체는 죽는가?Application 도 죽지 않는다. -그럼 Activity 는 죽는가?Activity 는 재접근시 onDestroy -> onCreate 된다. 즉 재생성된다. -그럼 Activity 에서 띄운 Background Thread 는 계속 작동하는가?계속 작동한다. 그리고 thread 내부에서 local cache 해놓은 string resourc.. 2019. 1. 8.
Efficient Android Threading #4 메모리 관리 Efficient Android Threading #4 메모리 관리 이 글은 Efficient Android Threading 의 일부 내용만 발췌한 내용입니다.자세한 내용은 책을 구입해서 보세용.6.1. 가비지 컬렉션 -각 프로세스(결과적으로 각 앱)는 자신만의 VM 과 가비지 컬렉터를 가진다. -진저브레드까지 안드로이드의 가비지 컬렉션은 메모리가 회수되는 동안 앱 실행이 중지되는 순차적 실행이었다.이는 UI rendering 의 일시적 멈춤으로 이어질 수 있었다.허니컴부터 GC 는 앱 스레드를 중지하지 않고 자체 스레드에서 동시적으로 실행된다. -달빅 GC 는 mark & swap 이라는 일반적인 두 단계 메커니즘을 사용한다.마크 단계는 객체 트리를 탐색하고 다른 객체에 의해 참조되지 않는 모든 미사.. 2018. 3. 20.
[android] Binder 와 Death Recipients 에 대한 이해 [android] Binder 와 Death Recipients 에 대한 이해 안드로이드는 기본적으로 multi-task 를 위해 만들어진 앱이다. 그래서 초창기에는 user 가 명시적으로 process 를 죽이지 못하도록 만들고, main activity 를 종료했을 때는 아주 낮은 priority 로 계속 process 를 살려둔다. 왜 그렇게 하냐? app switching 이 일어날 때 process 를 처음부터 만들려고 하면 너무 많은 시간이 들기 때문이다. 그럼 process 들을 유지함으로서 메모리가 부족하면 어떻게 하냐? 해당 process 를 최소한의 정보를 보존한 후 죽인다. 그리고 해당 process 가 다시 launch 되면 최소한의 정보를 통해 어느 정도 선까지는 상태복구를 해준다.. 2015. 12. 29.
[android] Activity Configuration Change Simulation. [android] Activity Configuration Change Simulation. https://developer.android.com/reference/android/app/Activity.html#recreate%28%29 Activity 의 recreate() 함수를 호출하면 된다. public void recreate ()Added in API level 11Cause this Activity to be recreated with a new instance. This results in essentially the same flow as when the Activity is created due to a configuration change -- the current instance w.. 2015. 12. 14.
[android] login button facebook doesn't work after coming back from the login page. [android] login button facebook doesn't work after coming back from the login page. keypoint is onActivityResult. public class MainFragment extends Fragment{ private static final String TAG = "MainFragment"; private UiLifecycleHelper uiHelper; @Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);uiHelper = new UiLifecycleHelper(getActivity(), callback);uiH.. 2014. 5. 14.
[android] Fragment State 제대로 관리하기. [android] Fragment State 제대로 관리하기. life cycle 중에 onPause 만 확실히 불리기 때문에 onPause 가 state 저장할 포인트이다.( onSaveInstanceState() 같은 녀석들이 확실히 불리지 않는다는 이야기다. ) 고로 onPause() 에서 FragmentManager.saveFragmentInstanceState( Context ) 를 호출하여 return 되는 Fragment.SavedState 라는 녀석을 어딘가에 저장을 하자.onSaveInstanceState 도 간헐적으로 불리므로 이 녀석 안에도 뭔가를 저장하는 코드를 넣어주자. onPause() 에서 savedstate 를 저장했다면 onDestroy() 에서는 이 녀석을 제거해주자. 저.. 2014. 4. 24.
[android] 왜 MediaStore.ACTION_VIDEO_CAPTURE 를 실행하면 activity 의 oncreate 가 다시 불리는가? [android] 왜 MediaStore.ACTION_VIDEO_CAPTURE 를 실행하면 activity 의 oncreate 가 다시 불리는가? Activity 의 onCreate 가 다시 불린다는 것은, activity 가 destroy 되고 recreate 된다는 이야기하는 것인데,보통 activity가 recreate 되는 경우는 config change 의 경우로 볼 수 있다. 기본적으로 동영상 촬영의 경우 orientation 이 가로모드 ( landscape mode ) 가 되기 때문에,portrait mode 로 activity 를 유지하던 경우에는 orientation 이 돌아가 recreate 의 경로를 타게 된다.따라서 이를 방지하기 위해서라면 manifest 의 MediaStore... 2014. 2. 23.
[android] setRetainInstance( boolean ) 뭐하는 녀석이냐? 안드로이드, setRetainInstance( boolean ) Fragment.setRetainInstance ( boolean ) fragment instance 가 configuration change 등의 요인으로 인해 recreation 된다고 해도 생명주기를 따르지 않아, destory 되지 않도록 하는 것. Fragment 생명주기의 onDestory() 는 불리지 않고, onDetach() 는 불린다. 마찬가지로 activity 에 다시 붙을 때 onCreate() 는 불리지 않도 onAttach() 와 onActivityCreated 는 불린다. Android, configuration change, fragment, fragment lifecycle, fragment 생명주기, frag.. 2013. 7. 29.
반응형