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

개발자가 작성한 프로그램들은 어떻게 메모리에 적재되고, 실행될까? 운영체제 도서를 읽으며 관련 내용들을 정리해보았다. 실제 책 목차와 다른 부분들이 있을수 있다. 메모리의 용량을 늘리면 작업 속도가 빨라지지만 어느 수준 이상이 되면 그 차이가 적어진다. CPU의 작업 공간이 메모리이기 때문에 메모리 관리는 성능에 막대한 영향을 미친다. 1. 메모리 관리의 복잡성운영체제도 프로그램이므로 메모리에 올라와야 실행할 수 있다. 따라서 메모리에는 사용자 프로세스뿐 아니라 운영체제 프로세스도 공존한다. 컴퓨터 부팅이 이루어지는 과정에서, 하드디스크에 저장된 운영체제가 메모리에 올라간다. 부팅이 끝나면 여러 응용 프로그램이 메모리에서 작업을 할 수 있다. 2. 소스코드의 번역과 실행2.1 컴파일러와 인터프리터의 ..

프로세스 간 통신 (IPC)프로세스가 다른 프로세스와 데이터를 주고받는 프로세스 간 통신에는 같은 컴퓨터 내에 있는 프로세스뿐만 아니라 네트워크로 연결된 다른 컴퓨터에 있는 프로세스와의 통신도 포함된다. 프로세스는 각각의 가상 메모리를 독립적으로 할당받고, 다른 프로세스의 가상 메모리에 접근할 수 없다. 프로세스 외부에서 메모리를 마음대로 변경할 수 없게 해야 하기 때문이다. 그래서 다른 프로세스와 통신을 하기 위한 방법은 아래의 방법들이 있다. 1) 프로세스 내부 데이터 통신 하나의 프로세스 내에 2개 이상의 스레드가 존재하는 경우 2) 프로세스 간 데이터 통신같은 컴퓨터에 있는 여러 프로세스끼리 통신하는 경우 책에는 나와있지 않았지만, 프로세스 간 통신을 위해 메모리에 접근하는 방식은 Shared..
상태 관리 플러터 공식 문서에 따르면 Flutter 앱에서 상태란, 앱이 UI를 표시하거나 시스템 리소스를 관리하기 위해 사용하는 모든 object를 의미한다. 즉, 상태 관리란 이러한 상태에 가장 효율적으로 접근하고, 이를 서로 다른 위젯들 간에 공유할 수 있도록 앱을 구성하는 방법을 말한다. 그러니까 Flutter에서 State(상태)는 시간에 따라 변경될 수 있고, UI의 모양 또는 동작에 영향을 미치는 정보를 의미한다. Flutter 앱에서 상태의 예로는 다음과 같은 것들이 포함될 수 있다.사용자 입력로그인 정보네트워크 데이터기기의 화면 방향기타 변화 가능한 정보들앱의 상태가 변경되면(예: 사용자가 설정 화면에서 스위치를 켤 때) 상태를 변경하고, 그러면 사용자 인터페이스가 다시 그려진다. F..

“쉽게 배우는 운영체제”책을 읽고 정리한 글입니다. 부족한 내용들은 유튜브 또는 다른 책들을 참고하였습니다. 프로세스운영체제에서 프로세스는 하나의 작업 단위이다. 사용자가 마우스를 더블클릭하여 프로그램을 실행하면 그 프로그램은 프로세스가 된다. 프로그램이 프로세스로 전환될 때 운영체제는 프로그램을 메모리의 적당한 위치로 가져온다. 그와 동시에 프로세스 제어 블록을 만든다. 프로제스 제어 블록(pcb)프로세스 제어 블록은 프로세스와 관련된 정보를 저장한다. 프로세스들은 차례대로 돌아가며 한정된 시간만큼만 cpu를 이용한다. 자신의 차례가 되면 정해진 시간만큼 cpu를 이용하고, 인터럽트 또는 시스템콜이 발생하면 다음 차례가 올 때까지 기다린다. 운영체제는 빠르게 번갈아 수행되는 프로세스의 실행 순서를 관리..
viewModelScope는 viewmodel이 파괴되는 시점에 내부에서 실행했던 코루틴들을 모두 종료합니다.매번 viewmodelscope를 통해 코루틴을 실행하는 만큼 viewModelScope 내부 구조를 공부하며 동작에 대한 이해를 확실히 하려고합니다.먼저 viewModelScope의 내부입니다. public val ViewModel.viewModelScope: CoroutineScope get() = synchronized(VIEW_MODEL_SCOPE_LOCK) { getCloseable(VIEW_MODEL_SCOPE_KEY) ?: createViewModelScope().also { scope -> addCloseable(VIEW_MODEL_SCOPE_K..
Appcompatactivity특정 버전 이하 기기에서 뷰 하위 호환성을 유지합니다. 즉, 특정 버전 이하에서 지원하지 않는 뷰들을 지원하기 위함입니다. 🧐 어떻게 Appcompatactivity는 뷰 호환성을 유지할까?AppCompatActivity의 내부를 확인해보았습니다.먼저, AppCompatDelegate의 installViewFactory() 함수를 호출합니다.이를 통해 ViewFactory를 생성합니다. ViewFactory는 onCreateView()를 통해 appcompatview로 반환해주는 역할을 합니다.ViewFactory를 set할 때, 매개변수로 this(AppCompatDelegateImpl.kt)를 넘겨주는데 그 이유는 AppCompatDelegateImpl 클래스 자체가 ..