일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- activity
- Python
- TEST
- Rxjava
- 코드포스
- 백준
- Codeforces
- Compose
- android
- textfield
- Coroutine
- Kotlin
- relay
- AWS
- ProGuard
- Hilt
- 코루틴
- MyVoca
- 암호학
- Gradle
- pandas
- Coroutines
- architecture
- GitHub
- livedata
- MiTweet
- androidStudio
- 쿠링
- boj
- 프로그래머스
- Today
- Total
목록Primary (163)
이동식 저장소
이전 글에서 Android Macrobenchmark를 활용하여 프레임 성능을 개선하는 과정을 설명한 적이 있다. Macrobenchmark로 프레임 성능 측정하기문제 상황온보딩 화면에서 기능 소개 탭을 스크롤할 때 프레임 드랍이 발생하는 문제가 있다.이 글에서는 Macrobenchmark를 활용하여 프레임 성능을 측정하고, 성능 문제를 해결하는 연습을 해 보겠thinking-face.tistory.com회사 세미나에서 이 경험을 공유했는데, 팀 선배 분들께서 공부 의욕이 뿜뿜하는 질문을 주셨다. 한번 공부해 보자.frameOverrunMs와 frameDurationCpuMs의 차이가 일정하지 않은 이유?개선하기 전의 성능 측정 결과를 보자. 두 수치의 P50은 13.4ms 정도 차이나지만, P99의 차..
``Parcealble``과 ``Bundle``을 사용하면 프로세스 내/외부에 데이터를 전달할 수 있다. 이 글에서는 ``Parceable``과 ``Bundle``을 사용하는 best practices를 알아보자.Activity 간 데이터 전송Activity는 ``Intent``를 통해 시작할 수 있다. 이때 ``Intent.putExtra()``를 활용하면 activity에 데이터를 보낼 수 있다.Intent(context, MainActivity::class.java).apply { putExtra("some key", "some data",)} 넣을 수 있는 데이터는 Java primitive 타입과 String, 이 타입들의 array, 그리고 ``Bundle``이다.``Intent``에 추..
모든 안드로이드 앱은 개별 리눅스 프로세스에서 실행된다. 앱이 실행되는 프로세스는 시스템에 의해 회수되기 전까지 계속 실행된다. 즉 프로세스의 생명주기를 앱이 아닌 시스템이 제어한다는 것. 프로세스 생명주기는 앱의 실행 여부, 사용자에게의 중요도, 메모리 상황 등 시스템의 많은 부분을 종합적으로 고려하여 결정된다. 따라서 우리 개발자들은 ``Activity``, ``Service``, ``BroadcastReceiver`` 등의 컴포넌트가 프로세스 생명주기에 어떻게 영향을 미치는 지 알아야 한다. 컴포넌트를 정확히 이해하지 못하면 중요한 로직이 실행되지 않을 수도 있고, 로직이 실행되는 도중에 프로세스가 종료될 수도 있다. 예를 들어 ``BroadcastReceiver``에서 ``Intent``를 받은..
Back navigation은 사용자가 이전에 봤던 화면으로 돌아가는 방법을 말한다. 안드로이드는 사용자가 지금까지 봤던 화면들을 back stack으로 관리한다. Back stack에 저장된 각 항목은 destination이라고 부른다. 스택의 LIFO 특성을 활용하면 가장 최근에 봤던 화면부터 하나씩 다시 볼 수 있다. 일반적인 경우에는 스택에서 pop하는 기본 로직만으로 충분하지만, 가끔 커스텀 로직이 필요할 때가 있다. 예를 들어 ``WebView``를 보여줄 때에는 뒤로 가기를 눌렀을 때 이전 웹 페이지로 돌아가는 커스텀 로직이 필요하다. Android 13 이상에서는 predictive back 제스쳐가 존재한다. Predictive back 내용은 나중에 따로 알아보자.커스텀 back ..
Task는 사용자가 뭔가를 하기 위해 상호작용하는 activity의 모음이다. 새로 생성되는 activity는 back stack이라고 불리는 스택에 삽입된다. 예를 들어, 이메일 앱을 켜면 메일 리스트 activity가 보일 수 있다. 사용자가 어떤 메일을 선택하면, 메일의 자세한 정보를 보여주는 activity가 만들어지고, back stack에 추가된다. 사용자가 뒤로 가기 버튼을 터치하면 메일 상세 정보 activity가 종료되고, back stack에서 pop된다.Task의 생명주기와 back stack대부분의 task는 기기의 홈 화면에서 시작된다. 사용자가 앱 아이콘을 터치하면 그 앱의 task가 포그라운드에 배치된다. 앱의 task가 없었다면, 새 task가 만들어지고 앱의 main ac..