Android
-
Android LMK,OOMAndroid 2023. 3. 5. 13:17
안녕하세요 유초코입니다 :) 안드로이드 LMK (low-memory killer)에 대해 알아보다가 OOM과 LMK가 어떤 관계인지 이야기를 해보려 이 주제를 가지고 왔어요 :) 먼저 안드로이드 플랫폼에서 프로세스간에 메모리를 어떻게 할당하는지 알아보며 LMK와 OOM에 대해 알아보도록 하겠습니다! 메모리 유형 먼저 안드로이드 기기에는 RAM, zRAM, Storage 세가지의 메모리 유형이 있고, CPU와 GPU는 모두 동일한 RAM에 접근합니다. 여기서 RAM(랜덤 액세스 메모리)는 시스템의 단기 데이터 스토리지로, 정보에 빠르게 액세스할 수 있도록 컴퓨터가 실시간으로 사용하는 정보를 저장하는 공간이고, 시스템에서 많은 프로그램을 실행할수록 더 많은 메모리가 필요로 합니다. RAM: 가장 빠른 메모리..
-
android 중복 클릭 방지 - ex) 좋아요 기능Android 2023. 3. 5. 13:07
좋아요 기능이란? 이 글에서 말하고자 하는 좋아요 기능은 일반적으로 하트 모양의 버튼을 클릭을 하면 좋아요 혹은 좋아요 취소 요청을 서버로 보내 UI를 업데이트하는 방식일 것입니다! 그런데 문제는 클릭 액션은 발생하기 굉장히 쉽다는 것입니다. 좋아요를 눌렀다가 다시 좋아요 취소 요청을 보내는 이러한 상황은 한 번이 아니라 여러 번 발생할 수 있습니다. 좋아요 기능은 클릭할 때마다 상태가 변경되고 그에 따른 서버 요청들의 결과들을 UI에 표시해 주어야 하는데 단순 클릭 리스너를 사용하면 정확하게 동기화시키는 것은 쉽지 않습니다. 이 문제를 어떻게 해결해야 할까요? 하나씩 알아봅시다 Class로 정의하기 class SingleClick ( private val intervalTime: Long, privat..
-
코루틴(Coroutine)의 일시 중단 함수 사용하기Kotlin 2023. 3. 4. 02:13
Composing Suspending Functions 이번 포스팅에서는 코루틴의 일시 중단 함수를 조합하여 활용하는 방법을 알아본다. ※ IntelliJ나 Android Studio가 설치되어 있지 않다면 Kotlin 공식 사이트에서 지원하는 온라인 IDE(Kotlin Playground)를 사용하여 아래 코드를 실행할 수 있다. Sequential by default 아래 코드는 어떤 유용한 기능(?) 두 가지를 순차적으로 실행 및 조합하여 결과를 내도록 구현되어 있다. fun main() = runBlocking { val time = measureTimeMillis { val one = doSomethingUsefulOne() val two = doSomethingUsefulTwo() printl..
-
Lifecycle QuizAndroid 2023. 3. 4. 01:42
헷갈리는 Lifecycle 안녕하세요. Mash-Up 안드로이드 10기 양민욱입니다 :) 2021년 1월의 끝이 벌써 다가오고 있어요. 그리고 곧 채용 시즌인가봐요. 🤗 채용 공고 정보를 올려 주는 톡방에 들어가 있으면 요즘 여러 좋은 기업에서 채용 공고들이 올라오고 있는 것을 볼 수 있어요. 저는 그럴때마다 얼른 기술 면접 준비는 해야지 해야지하고 다짐하고 있습니다. 그런 의미에서 이번 포스팅 주제로 Android 기술 면접에서 기초적인 개념일 수도 있지만 헷갈리는 여러 Lifecycle 질문에 대해서 답을 확인해보려고 해요. 이 포스팅을 준비하기 전, “Lifecycle에 대해서 어느정도 다룰 예정이신가요? 범위 엄청 넓어요!” 라는 질문을 받았어요. 사실 주제를 처음 생각할 때는 간단한 개념처럼 느..
-
MVVM && Hilt (etc) Study RecordAndroid 2023. 3. 4. 01:32
MVVM && Hilt (etc) Study Record 안녕하세요. 10기 박서희입니다. 세 번째 주제는 제가 지금 현재 학습하고 있는 MVVM과 Hilt를 가지고 왔습니다. 저는 아직 Kotlin, Rxjava 등 새로 배우는 것도 많고 경험해보지 못한 것이 많아서 제가 새로 배우는 내용을 같이 다루는 프로젝트를 해커톤 전까지 실습해 보고 익숙해지자는 작은 목표를 설정했어요. 그래서 이번 블로그 글로는 상황 공유와 함께 해당 내용을 학습하며 알게 된 내용을 기록하고 실습할 수 있는 프로젝트들을 리스트업 해보았습니다. 아래 내용들은 #ref에 기재한 링크에서 clone 하거나 해석해 본 것들입니다. 해당 링크에서 학습하는 내용을 더 자세히 확인할 수 있습니다. 틀린 내용이 있으면 알려주시면 감사하겠..
-
코루틴(Coroutine) 취소와 타임아웃Kotlin 2023. 2. 26. 15:09
Cancellation and Timeouts 이번 게시글에서는 코루틴의 취소와 timeout 처리에 대해 알아보자. ※ IntelliJ나 Android Studio가 설치되어 있지 않다면 Kotlin 공식 사이트에서 지원하는 온라인 IDE(Kotlin Playground)를 사용하여 아래 코드를 실행할 수 있다. Cancelling coroutine execution launch에서 반환되는 job 객체는 코루틴을 취소할 수 있는 기능을 제공해 준다. fun main() = runBlocking { val job = launch { repeat(1000) { i -> println("job: I'm sleeping $i ...") delay(500L) } } delay(1300L) // delay a ..
-
Corotuine Composing Suspending FunctionsKotlin 2023. 2. 25. 15:49
안녕하세요 안드로이드 10기 강다현입니다. 이번에 알아볼 내용은 Corotuine의 세 번째 스터디 내용 Composing Suspending Functions입니다! 코틀린 스터디는 한 주에 두 개씩 공식 문서를 같이 보면서 진행되는데요, 저는 그중 스터디 두 번째 주에서 Composing Suspending Functions 파트의 발표를 맡았었습니다. 본 글에서는 이전 주에서 헷갈렸던 내용 3가지를 보고, 그 이후 세 번째 파트 스터디 내용인 Composing Suspending Functions에 대해 알아보겠습니다! 공식 문서 헷갈렸던 것들 저는 공식문서 1,2 파트에서 3가지가 헷갈렸는데요, 하나하나 살펴보도록 하겠습니다. 1. 코루틴 생성 시 자동 생성되는 스레드 코루틴을 생성하다 보면 스레..
-
BubblesAndroid 2023. 2. 24. 14:20
안녕하세요. 아직 안드로이드에 대해 얕고 좁게 지식을 가진 신입 박서희입니다. 저번에 올린 블로그 글들을 모두 너무 에쁘게 적으셨더라구요. 저는 구글 번역기처럼 로봇같이 적었는데요. 그래서 이번에는 이렇게 시작해봤습니다. 사실 아직도 안드로이드 신기술을 보면 머리에 물음표가 가득 떠다니지만, 그나마 제가 흥미롭게 봤던 주제를 공유해보고자 가져왔습니다.혹시 내용에 틀린 점이 있거나 부족한 점이 있으면 한 번 놀리셔도 됩니다… 대신 답이 뭔지 알려주..세요. ^ㅁㅠ 개요 혹시 버블을 아시나요? 저는 위클리 번역을 읽다가 이름이 귀여워서 관련 글을 처음 읽고 주제로 가져오게 되었습니다. 처음봤 Bubbles은 사용자가 손쉽게 대화를 보고 참여할 수 있도록 도와주는 기술입니다. Bubbles 은 다른 앱 콘텐츠..