반응형 전체글975 Android 16KB 페이지 크기 지원 하기 컴퓨터의 OS가 메모리(RAM)를 관리할 때, 데이터를 아주 작은 단위로 쪼개서 관리하는데 이 단위를 '페이지(Page)'라고 부른다.그동안 안드로이드는 이 단위를 4KB로 고정해서 사용해왔다. 마치 도서관의 책꽂이 칸이 모두 4KB 크기로 짜여 있었던 것과 같다. Android 15(API 레벨 35) 이상의 모든 앱은 16KB 페이지 크기를 지원해야 한다.기존 안드로이드는 메모리를 4KB 단위(페이지)로 쪼개어 관리했지만, 최신 CPU와 대용량 RAM 기기에서는 이 단위를 16KB로 키울 때다음과 같은 이점이 있다. 시스템에 메모리 문제가 있는 동안 앱 실행 시간 단축: 평균 3.16% 감소, 테스트한 일부 앱의 경우 더 큰 개선 (최대 30%)앱 실행 중 전원 소모 감소: 평균 4.56% 감소카메.. 2025. 12. 23. 컴포즈 상태 단위는 어떻게 묶으시나요? 상태를 어떤 단위로 묶어서 사용하시나요? 1.하나의 화면별로 uiState를 관리하고 계신가요? 2.아니면 기능별로 state를 관리하고 계신가요? 전자로 우선적으로 구현해도 상관없지만,불필요한 리컴포지션이나 사이드이펙트를 방지하기 위해서는 상태를 적절히 구분하는 것이 필요하겠습니다. 이번 글에서는 이에 대한 상황을 예시로 살펴보겠습니다. 필요에 따라어디서는 화면별로, 어디서는 기능별로 분리하는 상황들을 마주할 수 있습니다. 화면별로 분리하면 코드 유지보수가 쉽고기능별로 분리하면 사이드이펙이나 리컴포지션을 줄일 수 있습니다. 이번에 제가 가져온 예시로는, 불필요한 리컴포지션을 발견하고화면별 -> 기능별로 마이그레이션하는 경험을 공유해드리고자 합니다. 만약에 화면별로 분리하여 하나의 uiState로.. 2025. 9. 4. 리컴포지션에 대한 오해들, 그리고 "도넛-홀-스키핑" 최근 Compose 코드를 다루다가, 인자의 변화가 없는데 스마트 리컴포지션이 되지 않는 상황을 마주했습니다.컴포즈의 "도넛 홀 스키핑" 이라는 개념을 처음 들으신다면, 그리고 리컴포지션 범위에 대해 헷갈리신다면 이 글을 읽으시길 추천드립니다. 리컴포지션과 스마트 리컴포지션 조건은 생각보다 다양하고 복잡해서 하나의 포스팅에 담기에 매우 어려운 것 같습니다.글의 내용이 복잡하더라도, 최대한 정리하고자 하니 잘 봐주시면 감사드리겠습니다. 우선 "리컴포지션" 에 대해 정의하겠습니다. Recomposition 범위의 기본은변화를 감지한 캡쳐값을 사용하는 가장 작은 스코프를 후보군으로 살펴본다는 점입니다. Smart Recomposition은리컴포지션 후보군 대상이 되었을 때, 건너뛸 수 있다면(인자의 변화.. 2025. 8. 24. 코루틴 취소에 대한 오해 며칠 전, 지인으로부터 코루틴 취소에 대한 질문을 받았습니다. "cancel()을 호출했는데, 왜 취소가 안되지?" 직감적으로, 코루틴 취소 동작에 대한 이해의 오해가 있음을 알 수 있었고제가 공부했던 분야였던 덕분에 도움을 줄 수 있었습니다. 코루틴 취소코루틴 취소(cancel, cancelAndJoin 등)는 사실 요청과 동시에 동작하지 않고, 중단 가능한 함수(suspend)를 만났을 때 동작합니다.다른 말로, 중단 가능한 지점을 만나지 않는다면 코루틴 취소 요청이 들어와도 인식하지 못하고 작업을 쭉 진행합니다.아래 예시가 대표적인 예시입니다.fun main() = runBlocking { val heavyJob = this.launch { // 대충 엄청 무거운 동작이라는 뜻 .. 2025. 8. 11. 이전 1 2 3 4 ··· 244 다음 반응형