ANR 이란 무엇인가?

Application Not Responding의 약자로 , 어플리케이션이 응답하지 않는 경우 안드로이드 시스템에서 보여주는 에러이다. 메인 스레드(일명, UI 스레드)가 일정시간 동안 잡혀 있으면 발생한다.

언제 ANR이 발생하는가?

터치를 통한 사용자 입력이 5초 내에 처리되지 않았을 때
브로드캐스트가 10초 내에 처리되지 않았을 때
서비스가 20초 내로 처리되지 않았을 때

왜 ANR이 발생하는가?

앱이 무한 루프에 빠지거나 OOM이 나야 ANR이 발생하는게 아니다. 시간이 좀 걸리는 처리를 해도 충분이 ANR이 발생할 수 있다.

ANR이 발생하지 않도록 하려면..?

시간이 오래 걸리는 작업은 스레드를 통해 처리한다.
사용자에게 프로그레스바 등을 이용해 진행 과정을 안내해 기다리도록한다.



'웹 개발 > 안드로이드' 카테고리의 다른 글

Parcelable  (0) 2017.04.08
Intent  (0) 2017.03.18
SurfaceView 와 SurfaceHolder  (0) 2017.03.14
Inflate  (0) 2017.03.13
could not install *smartsocket* listener:cannot bind to ..  (0) 2017.03.09

Inflate 는 사전적 의미로 '부풀리다' 라는 뜻입니다. 안드로이드에서 inflate를 사용하면  xml에 정의되어 있는 view를 실제 view객체로 만드는 역할을 한다. 

사용법

inflate를 사용하기 위해서는 우선 inflater를 얻어와야 함.

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

다음은 설계도 역할인 XML 이 필요합니다. 이때 XML의 root view의 layout 타입이 뭔지 알아야 한다.

LinerarLayout linearLayout = (LinearLayout) inflater.inflate(R.layout.inflate_example , null);

이제 가져온 view를 화면에 그린다.

setContextView(linearLayout);


'웹 개발 > 안드로이드' 카테고리의 다른 글

Parcelable  (0) 2017.04.08
Intent  (0) 2017.03.18
SurfaceView 와 SurfaceHolder  (0) 2017.03.14
ANR(Application Not Responding)  (0) 2017.03.14
could not install *smartsocket* listener:cannot bind to ..  (0) 2017.03.09

하이브리드 앱을 개발하게 되어서 안드로이드 스튜디오로 개발 및 테스트 하는 도중 adb respond 하며 디바이스 연결 인식이 되지 않는 오류가 발생되었다.


ADB란?

Android Debug Bridge 는 명령줄 도구로 , 앱 개발자가 데스크톱 컴퓨터를 사용해 연결된 안드로이드 디바이스와 통신하거나 디바이스 에뮬레이터를 실행할 수록 도와주는 도구.


오류해결 방법.

ADB 서버를 재시작하여 해결.  명령프롬프트 실행 후 adb가 설치되어 있는 곳으로 이동 또는 환경설정으로 path를 잡아줌.

> adb kill-server 
> adb start-server

adb start-server를 할 때 글 제목과 같은 오류메세지가 발생한다면 이미 실행중인  adb서버가 있을 때 발생하는 오류. 다음 명령어 입력하여 확인

> tasklist | findstr /i adb 
를 입력하면 아마 실행중인 adb.exe 리스트가 보일건데 , 다음 명령어로 다 죽이면 됨.

>taskkill /f /im adb.exe
프로세스를 죽인 후 다시
>adb start-server 를 입력하면 정상적으로 디바이스 인식이 가능.


'웹 개발 > 안드로이드' 카테고리의 다른 글

Parcelable  (0) 2017.04.08
Intent  (0) 2017.03.18
SurfaceView 와 SurfaceHolder  (0) 2017.03.14
ANR(Application Not Responding)  (0) 2017.03.14
Inflate  (0) 2017.03.13

+ Recent posts