본문 바로가기
반응형

전체 글68

[Android] 앱 프로세스와 안드로이드 프레임워크와의 관계 Thin Client – Server 일반적으로 앱 개발자가 만들게 되는 앱은 client라고 보면 되겠다. 그리고 이 client는 Android 프레임워크와 통신하며 동작하게 되며, 이때 서버 역할을 하는 것이 바로 system_server이다. 앱 프로세스는 클라이언트이므로 액티비티 스택 관리나 ANR 처리 등과 같은 작업을 직접하지 않고, 서버인 system_server에 위임하여 처리토록 한다. system_server는 당연히 다른 프로세스이므로 Binder IPC를 통해 통신한다. 이때 앱 프로세스를 그냥 client라고 하지 않고 thin client라고 하는 것 같다. reference 안드로이드 프로그래밍 Next Step 2020. 11. 8.
[Android] Context에 의한 Memory Leak Android 앱 개발을 하게 되면 Context는 뭐라고 설명하긴 어렵지만 굉장히 자주 필요로 하게 되는 객체입니다. 이를 테면 getString() 을 통해 다국어 정보를 가져오거나, getResources() 등을 통해 리소스 정보를 얻어오기 위해도 사용합니다. adapter나 여러 이유로 만들게 되는 singleton 객체 혹은 기타 다른 여러 객체에 context를 전달하여 쓰는 케이스가 종종 있습니다. context는 자주 쓰이지만, 그만큼 사용 시 주의해야 하는 부분도 있습니다. 잘못 사용하게 되면 Activity를 종료하더라도 해당 context를 갖고 여전히 살아있는 다른 객체 때문에 GC에 의해 정리되지 않고 여전히 메모리 속에 떠돌고 있을 수 있습니다. 이에 대한 간단한 팁으로 ada.. 2020. 11. 8.
[알고리즘][Codility] OddOccurrencesInArray 문제는 아래 링크에서 확인 가능합니다. https://app.codility.com/programmers/lessons/2-arrays/odd_occurrences_in_array 문제를 간단히 요약하면 N개(홀수 개)의 배열에 Int 정수들이 있는데, 각각이 쌍이 있습니다. 그런데 그 중 하나의 숫자가 홀로 들어 있는 것이 있는데 그 숫자를 찾아내라는 것이 문제입니다. 예를 들어 배열에 [9, 3, 9, 3, 9, 7, 9] 와 같이 있으면, 7만 유일하게 쌍이 없이 홀로 있습니다. 따라서 7을 return 해주면 됩니다. 제가 최초 작성한 코드는 다음과 같습니다. (참고로 코드는 Kotlin으로 풀었습니다. Codility에서는 최근 Kotlin도 지원합니다!) fun solution(arr: Int.. 2020. 11. 8.
[Android] 이미지 파일 사이즈 얼마나 알고 계신가요? 최근 개발하고 있는 앱의 특정 화면에서 버벅 거리는 현상이 리포팅되었습니다. 해당 화면을 살펴보니 CardView 4개가 LinearLayout에 나란히 올라가 있고, 2개의 CardView에는 각각 ImageView가 한개씩, 나머지 2개에는 약간의 텍스트와 아이콘이 전부였습니다. 의아했습니다. 네트워크/DB/파일 읽고 쓰기와 같은 로직이 있는 것도 아니었는데 대체 왜 버벅이는 거지? 일단 제가 사용하던 갤럭시 S10e에서는 아무런 문제가 없었습니다. 리포팅된 기기는 갤럭시 노트4… 제 갤럭시 S6를 꺼내들어 확인해보니 S6에서도 버벅이는 것이 확인되었습니다. 문제 분석 우선 바로 Profiler를 실행하고 뭐가 문젠지 확인해봤습니다. CPU, Memory를 중점적으로 봤고, 그 중 CPU가 다른 화면.. 2020. 11. 8.
반응형