| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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
- Kotlin
- 데코레이터 패턴
- 절대 주소
- 물리 메모리
- AAC
- 뷰홀더
- Dispatchers
- flutter
- viewModelScope
- GetX
- http 역사
- 내부 단편화
- 운영체제
- appcompatacitivity
- 자이고트
- 플로이드워셜
- Android
- NestedScrollView
- 리사이클러뷰풀
- 디자인 패턴
- http발전과정
- AsyncListDiffer
- 리사이클러뷰
- recyclerview
- 안드로이드
- appcompatactivity
- apk 빌드 과정
- 상태관리
- 프로세스
- Today
- Total
목록분류 전체보기 (77)
hong's android
2장에서 다루는 내용- 함수. 변수. 클래스. enum, 프로퍼티를 선언하는 방법 제어 구조- 스마트 캐스트- 예외 던지기와 예외 잡기 조건문조건문은 문이 아니라 식이다. 그렇기 때문에 리턴값이 존재하고 몇몇 경우에 간결하게 코드를 작성할 수 있다.fun eval (e: Expr): Int = if (e is Num) { e.value } else if (e is Sum》 { eval(e.right》 + eval(e.left) } else { throw IllegalArgumentException (" Unknown expression’’ )}(식이 본문인 경우에 타입추론이 있기 때문에 리턴값을 생략 할 수 있다. 하지만 식이 본문이 아닌 경우 반환 타입과..
1장에서 다루는 내용 -코틀린 기본 기능 데모 -코틀린 언어의 주요 특성 -코틀린을 활용한 안드로이드와 서버 개발 -코틀린이 다른 언어보다 더 나은 점 -코틀린으로 코드를 작성하고 실행하는 방법 정적 타입 지정 언어 동적 타입 지정 언어와 달리 메서드와 필드에 대한 검증이 컴파일 타임에 일어난다. 정적 타입 지정 언어는 컴파일 타임에 검증이 일어나 여러 장점들이 존재한다. 1. 런타임에 호출할 메서드 검증을 안 해도 되므로 빠르다. 2. 안정적이다. 컴파일 타임에 오류를 검출해서 런타임에 정지될 확률이 낮아진다. 3. 타입을 명시하기 때문에 코드 이해가 빠르다. 4.ide 도구를 이용해서 리팩토링을 안전하게 할 수 있다. 하지만 타입 명시를 해주어야 하기 때문에 코드가 길어진다. 코틀린은 타입 추론을 사..
Handler 메인 스레드는 ui 스레드이고 다른 스레드에서 ui 처리를 하지 못하고 핸들러를 사용해야한다. 핸들러는 Message Queue, looper에 의존적 큐와 루퍼를 통해서 다른 스레드의 메시지를 처리할 수 있다. *동기화 이슈를 차단하기위해 메인 스레드에서만 Ui를 처리한다. 동시에 같은 뷰 처리를 하면 문제가 생기기 때문에 워커 스레드는 메인 스레드에서 만든 핸들러의 sendmessage()를 통해 변경하고자 하는 내용을 담는다. 핸들러는 Message Queue에 해당 메시지를 추가하고 메인 스레드의 looper는 차례대로 Message를 꺼내고 다시 핸들러의 handleMessage()로 전달된다. handleMessage()도 메인 스레드에서 생성된것이기 때문에 메인스레드에서 메시지..
자이고트란? 자이고트는 안드로이드에서 가상 머신을 실행할때 준비된 자이고트 프로세스를 대기시켜놓고 실행시키는 것이다. 실행에 준비된 자이고트 프로세스를 복제해서 앱을 실행시키므로 앱 실행속도가 빨라진다. 자이고트 프로세스는 Init 프로세스에 의해서 deamons 프로세스와 함께 실행이 되는데 실행된 후 준비된 가상머신, preloading 되어있던 클래스들, 리소스들을 앱을 실행할때 불러오고 초기화시키지 않아도 되는 덕분에 앱 실행속도가 빨라진다. 각 안드로이드 애플리케이션은 독립적인 가상 머신 위에서 동작하는데, 자이고트가 없다면 어플을 실행할때마다 안드로이드 가상머신은 필요한 클래스, 리소스들을 생성해야하고 초기화해줘야한다. 앱을 실행할때 자이고트라는 프로세스를 복제하는데 자이고트가 참조하고 있는 ..
컨텍스트 스위칭이란? 다음 우선순위가 높은 프로세스를 실행할때 해당 프로세스 정보를 PCB에 저장하고 다음 프로세스의 정보를 PCB에서 load 하는 과정이다. 컨텍스트 스위칭이 일어날때 cpu의 동작은 멈춘다. 프로세스 보다 스레드의 컨텍스트 스위칭의 비용이 더 낮다. 그 이유는 스레드들은 데이터를 프로세스 안에서 데이터를 공유하는 부분이 많기 때문에 스택 영역의 데이터만 저장하고 load 해주는 작업만 하면되기 때문이다. 필요한 이유 동시에 여러 작업을 수행하는 멀티 프로세스, 멀티 스레딩을 통해 빠른속도로 응답할 수 있기 때문이다. (빠른 응답 시간을 가진 시분할 시스템에 유용) 프로세스 컨텍스트 스위칭이 일어나는 상황 1. I/O interrupt 2. CPU 사용시간 만료 3. 자식 프로세스 F..
서비스 안드로이드 4대 컴포넌트 하나로서 액티비티는 사용자와 직접적으로 상호작용한다면 서비스는 백그라운드에서 동작하는 작업을 말한다. 서비스의 필요성 다른 애플리케이션을 사용하면서 음악을 재생시켜야 할 때 스레드와 서비스의 차이는 뭘까? 서비스는 컴포넌트 종류 중 하나이다. 그래서 액티비티 Ui와 상관없이 별도로 실행할 수 있다. 서비스는 안드로이드 컴포넌트 하나로서 생명주기가 존재하고 서비스가 비정상적으로 종료될 때 다시 재시작을 보장할 수 있다. 그리고 프로세스 간 통신을 할 수 있다. 서비스는 메인스레드, 스레드는 별개의 스레드에서 동작한다. 예를 들어, 액티비티가 종료되어도 계속 실행이 되어야 하는 작업이 있을 때 액티비티가 종료되어도 계속 실행되는 것을 보장할 수 있을까? 없다 스레드가 계속 유..