본문 바로가기
[android] SQLiteDatabase 와 SQLiteOpenHelper Test [android] SQLiteDatabase 와 SQLiteOpenHelper Test -DB File delete 를 수행한 다음 getWritableDatabase 나 getReadableDatabase 를 호출하면 SQLiteOpenHelper 의 onCreate 가 재수행된다. (DB file 의 실 존재 유무를 확인한다는 얘기렸다?) -이미 Close 된 DB 에 뭔가를 수행하려 한다면 아래와 같은 IllegalStateException 이 발생한다java.lang.IllegalStateException: attempt to re-open an already-closed object: SQLiteDatabase: /data/user/0/com.ck.prodtest/databases/myDB -b.. 2019. 1. 10.
[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 #5 기본 스레드의 생명주기 관리 Efficient Android Threading #5 기본 스레드의 생명주기 관리 이 글은 Efficient Android Threading 의 일부 내용만 발췌한 내용입니다.자세한 내용은 책을 구입해서 보세용.7.1. 기본 사항 ** 7.1.1. 생명주기 -스레드는 다음의 생명 주기를 갖는다. 생성 : 스레드를 생성한 스레드와 동일한 우선순위로 할당된다.실행 : start() 가 호출될 때 실행 환경이 설정되고 실행될 준비가 된다. 이후 스케줄러가 이 스레드를 선택하면 run 메서드가 호출된다.차단/대기 : sleep(), yield() 등이 수행되었을 때이다.종료 : run 메서드가 종료된 상태이다. 최종상태에며 Thread 인스턴스나 실행 환경은 재사용 할 수 없다. ** 7.1.2. 인터럽트 -.. 2018. 3. 21.
[Kotlin] 장점, 단점, 그리고 아쉬운 점 이야기 [Kotlin] 장점, 단점, 그리고 아쉬운 점 이야기 https://medium.com/keepsafe-engineering/lessons-from-converting-an-app-to-100-kotlin-68984a05dcb6https://medium.com/keepsafe-engineering/kotlin-the-good-the-bad-and-the-ugly-bf5f09b87e6f -위 링크의 글을 쓴 필자는 마켓에 출시된 Java 로 되어 있는 앱을 Kotlin 으로 전환했다.많은 사람들이 Kotlin lib 때문에 dex method limit 이 걸릴 것을 걱정하지만,실제 converting 후 proguard 적용시 method count 는 10% 줄어들고, code line 은 30% 줄.. 2018. 1. 15.
[android] click 위치로부터 화면(Activity) 전개하는 animation 넣기 [android] click 위치로부터 화면(Activity) 전개하는 animation 넣기 http://frogermcs.github.io/Instagram-with-Material-Design-concept-part-2-Comments-transition/ -y 값을 새로 open 되는 Activity 에 전달한다. -Activity 의 theme 에 background transparent 를 넣고, root view 를 scaleY 로 0.1f 정도 놓는다. -onCreate() 단계에서 scaleY 를 1.f, pivotY 를 전달받은 값, duration 을 200 정도로 설정한 animation 을 root view 에 주면 된다. activity, Android, animation, ba.. 2017. 7. 10.
[android] Fragment 와 함께라면 Configuration Change 가 무섭지 않아. [android] Fragment 와 함께라면 Configuration Change 가 무섭지 않아. -애석하게도 대부분의 개발자들이 manifest 에 configChanges 속성을 통해 orientation 값만 설정해주면 모든게 해결되는 줄 안다. 하지만 그렇지 않다. Configuration Change 는 여러 경우에 발생된다. 기본적으로 configChanges 에 들어가는 값들의 상황이 그렇고, 언어가 변경되거나, dock 에 연결되거나, font 크기가 바뀌거나 등의 조건으로 destroy-recreate 되곤 한다. 또한 리소스, 메모리 관리 측면에서 Activity 가 destroy 되고 create 되도록 하는 것이 좋다. - 예전부터 개발을 해온 사람이라면 Activity 에 on.. 2016. 10. 12.
[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] onSaveInstanceState 는 언제 불리는 걸까? android, onSaveInstanceState 는 언제 불리는 걸까? 안드로이드 개발자 리퍼런스 사이트 onSaveInstanceState는 activity 가 죽기전에 불려서 상태를 저장하고, onCreate 나 onRestoreInstanceState 를 통해 해당 상태를 복구하는 데 사용된다. 이 함수는 다음과 같은 경우에 불린다.예를 들어 Activity A 위에 Activity B 가 실행중에 있는데리소스 재활용의 문제로 Activity A 가 죽어야 하는 상황이 발생했다.이 경우에 onSaveInstanceState 가 불려서 A 의 상태를 저장하게 된다. 착각하지 말아야 할 것이 onPause 와 같이 onSaveInstanceState 가 activity life cycle 의 일부라.. 2014. 2. 16.
반응형