Roxy(171)
-
[Android] 생명주기 고급정보!
- Activity 가 stop 된 상태에서는 WindowManager 에서 detach 된 상태.- system 이 메모리가 없어서 process를 죽일 때, onPause() 는 반드시 불리지만, onStop() 이나 onDestory() 는 불린다는 보장이 없다. 따라서 onPause()에서 isFinish() 를 통해 해당 앱이 실제 종료되는건지, 잠시 pause 되는건지, 확인해주는 작업이 필요할 수 있다.- onSaveInstanceState() 는 activity 종료전에 반드시 불리지 않을 수도 있다. 예를 들어 유저가 Back button 을 눌러서 나갈 때에는 상태유지가 필요가 없다. System 이 이 녀석을 부를때는 onStop() 전이나, onPause() 전에 부른다. 어떤 경우..
2014.12.27 -
[Android] ART???
ART, Android Runtime from Kitkat( 4.4 )기존의 안드로이드에서는 DEX file 을 Dalvik machine 위에 올리는 방식이었는데,Kitkat ( 4.4 ) 부터는 ART machine 위에서 OAT file 을 돌리는 것이 가능해졌다.기존의 dex 파일을 dex2oat 라는 converter 를 이용해서 converting 하여 생성하고 run 한다.Dalvik 은 앱 코드를 네이티브 기계어 코드로 변환한다.사용자가 앱을 실행할 때마다 이 변환 절차가 필요한데 이를 JIT( just-in-time ) 컴파일이라고 한다.이 방식은 다양한 하드웨어나 아키텍쳐에서 실행할 수 있는 장점이 있지만,이 과정이 성능과 배터리에 나쁜 영향을 준다.ART 는 Android RunTim..
2014.12.27 -
[Android] Content Provider
ContentProvider 가 뭐하는 거야?ContentProvider 는 Database를 정해진 Interface 로 외부 package 에 노출하는 방법입니다.즉, 한 Application 에서 관리하는 Database 를 다른 Application 에서 사용할 수 있도록 하는 방법이죠.Interface도 제공하기 때문에 외부 Application 에서 쉽게 사용할 수 있습니다. ( 물론 제한적인 부분도 있지요. )URIContentProvider 에 접근하기 위해서는 URI 를 사용합니다.format) content://authority/path/idcontent:// : provider 접근임을 명시하는 것으로 반드시 들어가야 함.authority : 접근하는 provider 를 명시하는 것으..
2014.12.27 -
[Android] 무결성을 위한 앱 설계시 고려할 사항들
다음의 디자인 issue들은 사용자에게 문제를 야기시킬 수 있다. 1. 다른 어플리케이션이나 다이얼로그의 예상치 못한 타이밍의 팝업. 2. 계획되지 않은 상호작용 3. 데이터의 부주의한 손실 4. 의도되지 않은 멈춤 무결성을 위한 디자인 고려사항. 다이얼로그 팝업을 피하라. 일반적인 무결성 문제는 서비스 또는 브로드캐스트 리시버 등이 어떤 이벤트에 응답하여 다이얼로그를 팝업할 때 발생합니다.이것은 실제 디바이스 상에서 다른 어플리케이션이 많이 설치되어 있는 환경에서 자주 발생합니다.다이얼로그를 띄우는 시점에서 focus를 가지지 못하는 상황도 발생하곤 하죠.따라서 무언가를 알리기 위해서는 다이얼로그보다는 최대한 Notification을 사용하는 것이 좋습니다. (focus 방해 최소화하기 위해서) Act..
2014.12.27 -
[Android] ANR 이란?
ANR 이 뭔가요? ANR (Application Not Responding) 은 어플리케이션이 응답하지 않는다는 에러입니다. 어떤 상황에 발생할까요? 1. 응용 프로그램이 5초 이상 사용자의 입력에 반응하지 않을 때 2. 브로드캐스트 리시버(BR)가 10초 내로 리턴하지 않을 때 위 두가지 경우에 대해 OS가 관여하여 ANR 대화상자를 띄우며 이 대화상자를 통해 프로그램 강제종료가 가능합니다. 어떻게 ANR을 피할 수 있나요? Main thread에서 실행되는 임의의 method는 최소한의 일을 해야 합니다.특히 onCreate(), onResume() 과 같은 핵심 생명주기 method에서 가능한 적은 일 수행하는 것이 좋습니다. 네트워크나 데이터베이스 operation 같은 잠재적으로 길게 실행될 ..
2014.12.27 -
[Android] Service 사용법
안드로이드/Android Service 사용법안녕하세요. 오늘 배워볼 내용은 안드로이드 Application을 구성하는 4가지 컴포넌트 중에 하나인 Service에 대해 공부해 보겠습니다. 일단 안드로이드 Application을 구성하는 4가지 컴포넌트 들은 Application을 만들 때 사용하는 핵심 부품 4가지 라고 생각하시면 됩니다.보통 우리가 컴퓨터 본체를 조립하게 되면, 부품들을 크게 메인보드, CPU, RAM, 하드디스크 등으로 분류 할 수 있는데요, 마찬가지로 안드로이드 Application을 컴퓨터 본체라고 생각하시면 그 컴퓨터를 조립 할 때 동작을 할 수 있게 하는 4가지 부품(컴포넌트)이라고 생각하시면 됩니다. 물론 안드로이드 Application은 Activity 하나만으로 구성 할..
2014.12.27