Android(25)
-
[ 안드로이드 - 코틀린 ] DiffUtil 사용기 (ListAdapter)
기본적으로 RecyclerView를 사용할 때는 RecyclerView.Adapter를 이용하고 notifyDataSetChanged()를 이용해 화면 UI를 갱신하는 형태로 진행했었다. 이유라면 구현이 쉽기도 하고 그냥 잘 몰라서였다. notifyDataSetChanged() 비효율적인 이유는 해당 메서드를 이용하면 데이터를 변경할 때마다 모든 아이템들을 다시 그리기 때문에 비효율적인 갱신 방법이다. 하지만 사용하기 쉽게 때문에 많이 이용했다. 지금까지는.... 이번에 새로 사용해본 DiffUtil을 이용한다면 보다 효율적으로 아이템들을 갱신할 수 있다. DiffUtil은 최소한의 데이터를 이용해 데이터들을 업데이트하기 때문에 효율적인 방법인 데이터 갱신 방법이다. + 하지만 이러한 작업이 오래걸리는 ..
2023.03.21 -
안드로이드 프로세스와 스레드
스마트폰을 예시로 작성할 것이다. 우리가 사용하는 스마트폰에는 수 많은 애플리케이션들이 설치되어 있다. 그리고 각각의 애플리케이션 별로 별도의 프로세스가 존재한다. 이러한 프로세스들은 스레드들을 가지고 있고 이러한 스레드들을 이용해 병렬적 처리도 가능해진다. 안드로이드에서 프로세스들의 통신 방법으로 IPC (inter-Process Communication)을 이용해 통신을 하는데 이것은 다른 애플리케이션 간 데이터 공유와 기능을 사용할 수 있게 만들어준다. 안드로이드 개발을 해봤다면 기본적으로 알고있을 Intent와 Binder 있다. Intent는 데이터를 전달하는데 사용한다. Binder는 서로 다른 프로세스 간 호출을 위해 사용한다. ( 네트워크 통신 같은 ) 이전에 말한 프로세스들 중 브로드캐스..
2023.02.22 -
프로세스와 스레드의 차이는 무엇일까?
갑자기 코딩하다 생각나서 찾아봤다. 개발을 하다 보면 스레드 관리를 하게 된다. 안드로이드의 경우 ui스레드를 제대로 관리를 해줘야 된다. 안 그러면 앱이 터져버리기에 ㅋㅋ.. 매일 보며 사용하는 단어인데 정확한 의미에 대해 모르는 것 같아서 알아보자!! 프로세스란 프로세스는 운영체제로부터 메모리, 파일 핸들같은 여러 가지 자원들을 할당받은 독립적인 실행 단위이다. 각각의 프로세스들은 독립적으로 존재하며 각각의 메모리 공간을 소유하며 실행됩니다. 서로 다른 프로세스들은 서로의 공간을 공유하지는 않습니다. 하지만 프로세스끼리 데이터를 전달하는 상황이 발생하는데 이를 위해 존재하는 2가지 방법이 있는데 하나는 프로세스간 공유 메모리 공간을 할당하는 방법 두 번째로는 메시지를 전달하는 경우입니다. - 프로세스..
2023.02.21 -
[안드로이드] - Fragment Lifecycle
안드로이드 Fragment의 라이프사이클은 다음과 같은 순서로 진행됩니다. onAttach() Fragment가 Activity에 연결될 때 호출됩니다. Fragment가 소속된 Activity에 대한 참조를 얻을 수 있습니다. onCreate() Fragment가 생성될 때 호출됩니다. View와 Layout을 초기화하고 데이터를 로드하는 등의 초기화 작업을 수행합니다. onCreateView() Fragment의 View를 생성할 때 호출됩니다. Fragment의 레이아웃을 inflate하여 View를 생성합니다. onViewCreated() Fragment의 View가 생성된 후 호출됩니다. View를 초기화하는 등의 작업을 수행합니다. onStart() Fragment가 사용자에게 보여지기 시작할..
2023.02.19 -
[안드로이드] - Activity LifeCycle
안드로이드 Activity의 라이프사이클은 다음과 같은 순서로 진행됩니다. onCreate() Activity가 생성될 때 호출됩니다. -> 최초의 한번만 수행된다. View와 Layout을 초기화하고 데이터를 로드하는 등의 초기화 작업을 수행합니다. onStart() Activity가 사용자에게 보여지기 시작할 때 호출됩니다. Activity가 포그라운드에 올라오고, 사용자가 상호작용하기 전에 준비 작업을 수행할 수 있습니다. onResume() Activity가 포그라운드에 완전히 올라왔을 때 호출됩니다. 사용자가 Activity와 상호작용할 수 있는 상태가 됩니다. onPause() Activity가 일부분이나 전체가 다른 Activity에 가려졌을 때 호출됩니다. Activity가 더 이상 화면에..
2023.02.19 -
[안드로이드] - 4대 컴포넌트
갑자기 4대 컴포넌트에 대해 정리하고 싶어졌다. 이력서나 면접에 대해 고민하게되고 그렇다보니 기본적인 cs 지식에 대해 부족한 점과 기본적인 이론에 대해 정리해야겠다 생각이 들어 적게됬다... 컴포넌트란 무엇일까? 프로그래밍적인 의미로는 여러개의 독립적인 모듈들을 말한다. 그럼 안드로이드에 있는 4대 컴포넌트는 무엇일까? - Activity (액티비티) 사용자의 인터페이스 화면을 말하며 특정 작업들을 수행한다. Activity가 존재하지 않으면 사용자와의 상호작용을 할 수 없기에 하나 이상의 Activity는 필수적으로 존재해야한다. Activity는 무조건적으로 Manifest에 등록이 되어있어야되고 하나 이상의 View 또는 ViewGroup이 존재해야 한다. - Service (서비스) 백그라운드에..
2023.02.19