안드로이드 스튜디오에서는 Thread는 크게 2가지로 구분된다. Main Thread(UI Thread)와 Worker Thread Main Thread는 액티비티와 컴포넌트들의 사용을 담당하고 연동하는 역할로, UI 컴포넌트들과 밀접한 연관이 있는 Thread이기에 UI Thread라고도 불린다. System Call Back Method와 Android Life Cycle 관련된 Method들은 전부 Main Thread에거 관리되어야 한다. 위에 해당하는 글들에서 계속 다루듯, 복잡한 연산, 지연되는 작업들의 경우 Main Thread에서 이뤄질 경우 ANR(Application Not Responding, UI 관련 작업이 일정기간 이상 반응되지 못하면 발생)이 발생하여 애플리케이션이 강제로 ..
Thread와 Process의 차이모두 프로그램의 실행과 관련된 단어로Thread는 어떠한 프로그램 내, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다.Process는 컴퓨터에서 연속적으로 실행되고 있는 프로그램을 의미한다. 이 둘의 차이로는 Process는 실행의 단위, Thread는 Process 내에서 실행되는 흐름의 단위로 볼 수 있다.Process는 독립적으로 실행되지만 Thread는 Process 내의 Thread 끼리는 Heap, Data 등을 공유한다. 멀티 프로세스와 멀티 스레드의 차이멀티 프로세싱은 하나의 응용 프로그램을 여러 개의 프로세스로 구성하여 각 프로세스가 하나의 작업을 처리하도록 하는 것이다. 여러 개의 자식 프로세스 중 하나에 문제가 발생하면 그 자식 프로세스만 죽고..
안드로이드에서 백그라운드 작업이란?안드로이드에서 백그라운드 작업이란, 애플리케이션이 화면에서 보이지 않는 상태에서도 동작하는 작업들을 말한다. 음악 재생, 파일 다운로드, 위치 정보 수집 등등. https://small-stepping.tistory.com/1034 안드로이드 4대 컴포넌트잡설:면접때 받은 질문인 안드로이드 4대 컴포넌트.아니 정확히는 안드로이드에 액티비티, 서비스, 브로드캐스트 리시버, 콘텐츠 프로바이더에 대해 설명해보라고 들었다.맨 처음에 이 대답을small-stepping.tistory.com https://small-stepping.tistory.com/1005 WorkManager로 백그라운드 작업WorkManager란?WorkManager는 상황별 실행과 보장된 실행을 조합하여..
View와 ViewGroup란?안드로이드 화면을 구성하는 요소로 View와 ViewGroup이 존재한다.애플리케이션을 실행시켰을때 보이는 UI 요소들이 View라고 할 수 있고, 이 View를 담아 적절히 배치하기 위해 필요한 것이 ViewGroup이다. View: 화면에 보이는 구성요소ViewGroup: N개의 View를 포함할 수 있는 컨테이너ViewGroup에는 View, ViewGroup이 포함될 수 있고, ViewGroup은 View를 포함하므로 모든 UI라는 것은 View라고 할 수 있다. View와 ViewGroup의 종류일반적으로 View는 위젯, ViewGroup을 레이아웃이라고 한다. View에서 자주 사용되는 것들엔 당연하게도 TextView, EditText, Button, Ima..
아호 코라식 알고리즘(Aho-Corasick string matching algorithm)은 Alfred V. Aho와 Margaret J. Corasick이 고안한 문자열 매칭 알고리즘이다. 패턴 1개를 탐색하는 매칭 알고리즘은 선형 시간에 구현됨을 KMP 등 여러 알고리즘을 통해 증명되었으나, 패턴 집합에 대해 해당 알고리즘들을 사용해보면 패턴 개수에 비례해 그 속도가 느려진다는 점이 발생했다.시간복잡도는 O(m + zn)이 되는 것이다.m: 모든 패턴들의 길이 합z: 패턴 수n: text 크기이를 보완한 것이 아호 코라식 알고리즘으로 시간복잡도는 O(m + n + k)이다. 패턴 집합에 대하여 패턴 길이와 텍스트의 선형 시간에 탐색을 처리할 수 있게 된다.k: 텍스트 내에 패턴의 발생 수 아호 코..
잡설:면접때 받은 질문인 안드로이드 4대 컴포넌트.아니 정확히는 안드로이드에 액티비티, 서비스, 브로드캐스트 리시버, 콘텐츠 프로바이더에 대해 설명해보라고 들었다.맨 처음에 이 대답을 요구하셨는데 잘못 알아들어 컴포넌트가 아니라 Jetpack 컴포저블에 대해 설명해버렸다.그래서 이후에 재차 질문하신 것이지만, 정확히 대답을 못했다. 나중에 면접이 끝나갈때야 머리속에서 망했다는 생각이 들었던 기억이 난다. 본문: 이 안드로이드 4대 컴포넌트(구성요소)를 알아보자.각각의 구성요소는 시스템이나 앱의 진입점이며, 서로 Intent를 통해 상호작용이 가능하다. 특징으로는 다음과 같다.각 컴포넌트는 독립적이다.각 컴포넌트는 고유의 기능을 수행한다.각 컴포넌트는 Intent를 통해 상호작용이 가능하다. 1. 액..
https://io.google/2024/intl/ko/ Google I/O 2024Don't miss our biggest developer conference, featuring product news and innovations from Google. Tune in to I/O for livestreamed keynotes and technical sessions on demand.io.google 24년 5월 14일 미국 캘리포니아 마운틴뷰, 쇼라인 앰피씨어터에서 구글 I/O 2024 개발자 컨퍼런스가 개최되었다.조금 늦어졌지만 내용들을 확인해보고 내 주 된 관심사를 체크해보기로 했다. https://blog.google/intl/ko-kr/products/google-io-2024-100-ann..
https://small-stepping.tistory.com/1005 WorkManager로 백그라운드 작업WorkManager란?WorkManager는 상황별 실행과 보장된 실행을 조합하여 적용해야 하는 백그라운드 작업을 위한 아키텍처 구성요소로서 Android Jetpack의 일부이다. 상황별 실행을 적용하면 WorkManager가 최대small-stepping.tistory.com 위 공부를 할 때, 따라한 Jetpack Compose Tutorial 프로젝트에서 사용한 이미지를 저장하는 파트에서 Media.insertImage를 사용하는 부분이 존재했는데, 해당 부분이 API 레벨 29에서부터 deprecated 되어 수정이 필요했다. https://stackoverflow.com/questio..
WorkManager란?WorkManager는 상황별 실행과 보장된 실행을 조합하여 적용해야 하는 백그라운드 작업을 위한 아키텍처 구성요소로서 Android Jetpack의 일부이다. 상황별 실행을 적용하면 WorkManager가 최대한 빨리 백그라운드 작업을 실행한다. 보장된 실행을 적용하면 WorkManager가 사용자가 앱을 벗어난 경우를 비롯한 다양한 상황에서 로직을 처리하여 작업을 시작합니다. WorkManager는 매우 유연한 라이브러리로, 다음과 같은 이점이 있다.비동기 일회성 작업과 주기적인 작업 모두 지원네트워크 상태, 저장공간, 충전 상태와 같은 제약 조건 지원동시 작업 실행과 같은 복잡한 작업 요청 체이닝한 작업 요청의 출력이 다음 작업 요청의 입력으로 사용됨API수준 14까지 호환됨..
Jetpack Compose 튜토리얼의 해당 과제를 수행 중에 있다. https://developer.android.com/codelabs/basic-android-kotlin-compose-flight-search?hl=ko&continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fandroid-basics-compose-unit-6-pathway-3%3Fhl%3Dko%23codelab-https%3A%2F%2Fdeveloper.android.com%2Fcodelabs%2Fbasic-android-kotlin-compose-flight-search#0 프로젝트: Flight Search 앱 만들기 | Android Developers사..