profile
어려울수록 기본에 미치고 열광하라
태그 목록
전체보기 (114)android(26)kotlin(22)swift(21)스위프트(21)iOS(21)RxJava(17)반응형 프로그래밍(16)rxkotlin(16)비동기 데이터 스트림(15)RX(15)CS(13)observable(12)Reactive X(11)코틀린(10)Java(6)reactivex(6)안드로이드(6)coroutine(6)코루틴(5)동시성(5)비동기(5)디자인 패턴(4)Thread(4)JVM(3)Design Pattern(3)RecyclerView(3)Apollo client(3)graphql(3)Android Component(3)TCP/IP(3)View(3)MVVM(2)상속(2)Broadcast Receiver(2)자바(2)정렬 알고리즘(2)Generics(2)멀티 쓰레딩(2)Map(2)RxAndroid(2)추상화(2)취준(2)SOLID(2)OOP(2)context(2)네트워크(2)dependency injection(2)di(2)jetpack(2)제너릭 함수(2)알고리즘(2)lifecycle(2)Observer(2)List(2)garbage collection(2)GC(2)자료구조(2)객체지향 프로그래밍(2)제너릭 클래스(2)카카오페이(2)다형성(2)제너릭(2)service(2)scope function(2)클린 아키텍처(2)회고(2)Adapter(2)의존성 주입(2)Flowable(2)스코프 함수(2)동기화(1)날먹(1)stack(1)소마 면접(1)garbage collector(1)CustomType(1)레포지(1)process(1)data class(1)heap(1)Activity(1)inline function(1)카카오(1)Inflating(1)junit(1)Cache(1)Local Data(1)Handler(1)velog(1)구조화된 동시성(1)Mutext(1)onDraw(1)quicksort(1)delegate pattern(1)callback(1)Hash Collision(1)캡슐화(1)Thread Pool(1)Frameworks(1)연말(1)RecyclerView.Adapter(1)with(1)임계 영역(1)andoird(1)clean architecture(1)input(1)requestLayout()(1)캐시 메모리(1)debounce(1)LRU(1)high order function(1)by(1)BST(1)tistory(1)hasFixedSize(1)Use Cases(1)RxBinding(1)티스토리 단점(1)브로드캐스트 리시버(1)Content Provider(1)composition(1)신입 개발자(1)콘텐트 프로바이더(1)Datastore(1)network(1)scheduler(1)XML(1)고차함수(1)entity(1)ip(1)tcp(1)퀵 소트(1)Looper(1)layout(1)데드락(1)LRU Cache(1)Hashing(1)Open Addressing(1)객체지향 패러다임(1)double linked list(1)test code(1)PendingIntent(1)명령형 프로그래밍(1)CustomTypeAdapter(1)2021년(1)hash function(1)notifyDataSetChanged()(1)Apollo-graphql(1)Application Context(1)꿀팁(1)ANR(1)싱글톤 패턴(1)커스텀 타입(1)DiffUtil(1)Deadlock(1)application(1)onLayout(1)interface(1)Runtime Data Areas(1)when(1)Collection(1)슬라이딩 윈도우(1)Day(1)jetbrains(1)뮤텍스(1)취업준비(1)dagger(1)GitHub 소스코드(1)flow(1)Adapter Pattern(1)HashTable(1)인라인 함수(1)Broadcast(1)가비지 컬렉션(1)Enum(1)VS Code(1)세마포어(1)Process Control Block(1)Chaining(1)inflate(1)소마 지원 팁(1)AAC(1)절차적 프로그래밍(1)Spring boot(1)HashMap(1)inline(1)main thread(1)LayoutInflater(1)이진 트리(1)이진 탐색 트리(1)SharedPreferences(1)수습기간(1)listview(1)환승(1)notification(1)array(1)안드로이드 개발(1)TCP 통신(1)어댑터 패턴(1)Application Not Responding(1)Intent(1)Method Area(1)교착상태(1)github(1)toString(1)Executor(1)ViewHolder(1)병합 정렬(1)EditText(1)다크모드(1)ExecutorService(1)Class Loader(1)mutation(1)view lifecycle(1)SW 마에스트로(1)Android view(1)Kotlin 유용한 함수(1)객체지향 프로그래밍 설계원칙(1)합병 정렬(1)sealed(1)UI Test(1)Field Injection(1)Drivers(1)AlarmManager(1)delegate(1)Critical Section(1)깃허브(1)시간 복잡도(1)Activity Context(1)Android Studio(1)흐름제어(1)운영체제(1)LRU 알고리즘(1)Singleton(1)RxKoltin(1)소프트웨어 마에스트로(1)set(1)run(1)Listener(1)CustomView(1)OS(1)배압현상(1)브로드캐스트(1)스프링 부트(1)ScalarType(1)Native Method Stack(1)비동기 처리(1)function(1)UI thread(1)페이지 교체(1)프로세스(1)유닛 테스트(1)key-value(1)Interface Adapters(1)infix(1)3 Way-Handshake(1)unit test(1)file upload(1)MergeSort(1)VSC(1)서비스(1)Pair(1)Kotlin Function(1)Night(1)다크모드 비활성화(1)Semaphore(1)소마(1)쓰레드(1)패킷 교환(1)소마 코테(1)PublishSubject(1)Wrapper Pattern(1)Subject(1)4-way Handshake(1)apollo(1)옵저버 패턴(1)안드로이드 스타일(1)Backpressure(1)네트워킹(1)PCB(1)Context Switching(1)
post-thumbnail

[Android] ANR 의 개념과 발생조건

ANR (Application Not Responding) 말 그대로! 어플리케이션이 응답하지 않는다는 오류이다. 우리는 은근히 아래와 같은 에러 메세지를 많이 봤다. 응답하지 않는다는 말에서 유추해보자. 어플이 응답하지 않는 다는 말이 무슨 뜻일까? 상기해보기 안드로이드 앱은 사용자에게 보여지는 UI 작업을 처리하기 위한 쓰레드를 UI 쓰레드라고 하고, 이를 메인 쓰레드라고 한다. 앱이 원활하게 동작되기 위해서는 UI 쓰레드가 블로킹되어서는 안된다. UI 쓰레드가 오랫동안 블로킹되면, 사용자의 키 입력이나 터치 입력을 처리하지 못하게 된다. 이를 '응답하지 않는다'고 표현하는 것이다. 때문에, ANR 이 발생했다고

2021년 10월 16일
·
0개의 댓글
·