일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- DiffUtil
- NestedScrollView
- 내부 단편화
- Kotlin
- 리사이클러뷰
- GetX
- AsyncListDiffer
- 물리 메모리
- viewModelScope
- 프로세스
- recyclerview
- 리사이클러뷰풀
- 데코레이터 패턴
- 절대 주소
- 운영체제
- Dispatchers
- 안드로이드
- http 역사
- 디자인 패턴
- appcompatactivity
- apk 빌드 과정
- flutter
- 플로이드워셜
- 뷰홀더
- 자이고트
- AAC
- Android
- 상태관리
- appcompatacitivity
- http발전과정
- Today
- Total
목록Android (23)
hong's android

Handler 메인 스레드는 ui 스레드이고 다른 스레드에서 ui 처리를 하지 못하고 핸들러를 사용해야한다. 핸들러는 Message Queue, looper에 의존적 큐와 루퍼를 통해서 다른 스레드의 메시지를 처리할 수 있다. *동기화 이슈를 차단하기위해 메인 스레드에서만 Ui를 처리한다. 동시에 같은 뷰 처리를 하면 문제가 생기기 때문에 워커 스레드는 메인 스레드에서 만든 핸들러의 sendmessage()를 통해 변경하고자 하는 내용을 담는다. 핸들러는 Message Queue에 해당 메시지를 추가하고 메인 스레드의 looper는 차례대로 Message를 꺼내고 다시 핸들러의 handleMessage()로 전달된다. handleMessage()도 메인 스레드에서 생성된것이기 때문에 메인스레드에서 메시지..
자이고트란? 자이고트는 안드로이드에서 가상 머신을 실행할때 준비된 자이고트 프로세스를 대기시켜놓고 실행시키는 것이다. 실행에 준비된 자이고트 프로세스를 복제해서 앱을 실행시키므로 앱 실행속도가 빨라진다. 자이고트 프로세스는 Init 프로세스에 의해서 deamons 프로세스와 함께 실행이 되는데 실행된 후 준비된 가상머신, preloading 되어있던 클래스들, 리소스들을 앱을 실행할때 불러오고 초기화시키지 않아도 되는 덕분에 앱 실행속도가 빨라진다. 각 안드로이드 애플리케이션은 독립적인 가상 머신 위에서 동작하는데, 자이고트가 없다면 어플을 실행할때마다 안드로이드 가상머신은 필요한 클래스, 리소스들을 생성해야하고 초기화해줘야한다. 앱을 실행할때 자이고트라는 프로세스를 복제하는데 자이고트가 참조하고 있는 ..
서비스 안드로이드 4대 컴포넌트 하나로서 액티비티는 사용자와 직접적으로 상호작용한다면 서비스는 백그라운드에서 동작하는 작업을 말한다. 서비스의 필요성 다른 애플리케이션을 사용하면서 음악을 재생시켜야 할 때 스레드와 서비스의 차이는 뭘까? 서비스는 컴포넌트 종류 중 하나이다. 그래서 액티비티 Ui와 상관없이 별도로 실행할 수 있다. 서비스는 안드로이드 컴포넌트 하나로서 생명주기가 존재하고 서비스가 비정상적으로 종료될 때 다시 재시작을 보장할 수 있다. 그리고 프로세스 간 통신을 할 수 있다. 서비스는 메인스레드, 스레드는 별개의 스레드에서 동작한다. 예를 들어, 액티비티가 종료되어도 계속 실행이 되어야 하는 작업이 있을 때 액티비티가 종료되어도 계속 실행되는 것을 보장할 수 있을까? 없다 스레드가 계속 유..

Strong reference 일반적으로 New로 생성된 객체를 참조하는 것. Gc가 발생해도 강한 참조가 된 객체는 회수되지 않는다. Weak reference Weak reference object에 의해서 참조하는 것 Weak reference 객체 자체는 강한 참조이고 Weak reference 객체 내부에서 참조를 유지한다. Weak reference 객체에 의해 참조되는 객체가 weakly reachable 상태이다. Gc가 발생하면 무조건 Weak reachable 한 객체들을 회수한다. 약한 참조가 사라지는 시점이 GC의 실행 주기와 일치하고, 이를 이용해 짧은 주기에 자주 사용되는 객체를 캐시 할 때 유용하다. 언제 사용할 수 있을까? class BitmapWorkerTask extend..
Serializable(직렬화)란? 서로 다른 메모리 공간을 가지고 있는 시스템은 같은 객체를 참조할 수 없다. 그렇기 때문에 객체 내용을 직렬화된 바이트 코드로 변환해서 객체 값을 주고받을 수 있게 한다. Serializable(직렬화) 하는 이유 객체의 영속성을 위해서, jvm 상에 있는 객체 정보는 프로그램이 종료되면 사라진다. 네트워크로 객체의 값을 보내야 한다. 자바는 Serializable 인터페이스를 구현해야 직렬화가 가능한데, 이 Serializable 인터페이스는 기능들이 들어있지 않은 마크 인터페이스다. Serializable과 Parcelable Serializable은 Java.io 패키지에 속한 인터페이스, parcelable은 안드로이드 sdk에 포함된 인터페이스이다. Seria..