| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- Kotlin
- recyclerview
- 절대 주소
- 디자인 패턴
- http 역사
- http발전과정
- appcompatactivity
- DiffUtil
- Android
- 프로세스
- 리사이클러뷰풀
- AAC
- GetX
- NestedScrollView
- Dispatchers
- apk 빌드 과정
- 안드로이드
- 상태관리
- 물리 메모리
- 플로이드워셜
- appcompatacitivity
- 리사이클러뷰
- 뷰홀더
- 운영체제
- 데코레이터 패턴
- flutter
- 내부 단편화
- 자이고트
- viewModelScope
- AsyncListDiffer
- Today
- Total
목록분류 전체보기 (77)
hong's android
상속과 위임 언제 사용해야 할까? 상속은 “is-a” 와 같이 포함 관계가 있는 다른 클래스로 대체가 되는 경우 위임은 포함관계는 아니지만 다른 클래스 객체를 사용해야하는 경우, 구성의 관계 “has-a” 상속에서의 문제점 class Animal { /* public void run() { System.out.println("달려달려~"); } */ // 메서드 이름을 run에서 dash로 바꿨다. public void dash() { System.out.println("달려달려~"); } } class Dog extends Animal { } public class Main { public static void main(String[] args) { Dog dog = new Dog(); dog.run(..
Lru Cache(Least Recently Used Cache) 란? 가장 오랫동안 참조되지 않은 값(노드)을 삭제하고 비교적 최근에 참조된 값(노드)들을 저장하는 캐시 방식 Double Linked List를 기본적으로 사용한다. Head에 가까운 노드일수록 최근에 참조된 노드, tail에 가까울수록 참조가 오랫동안 되지 않은 노드이다. 만약 정해진 cache size가 초과된 상황에서 노드(값)를 추가할 때 tail에 가장 가까운 노드가 삭제되고, 새로운 참조 노드가 head에 가깝게 추가된다. 안드로이드에선 Lru Cache방식을 사용하기 위한 관련 클래스를 제공한다. 캐시 크기 설정시 주의점 모든 애플리케이션에 적합한 특정 크기나 수식은 없으며 사용량을 분석하여 적합한 해결책을 찾아야 합니다. ..
리스트뷰와 리사이클러뷰 차이점 둘 다 뷰 재활용을 할 수 있지만 리스트 뷰는 뷰 홀더 패턴을 따로 적용해야 합니다. - 리사이클러뷰는 뷰홀더 패턴으로 재활용을 강제합니다. 리스트뷰는 애니메이션 지원이 되지 않는다. 리사이클러뷰는 를이용해서 수직 스크롤 이외에도 수평 스크롤 지원, 다양한 형태의 리스트들 지원한다. 리사이클러뷰의 뷰홀더 생성과 재사용 1. 스크롤을 내리면 RecyclerView는 스크롤 알림을 Layout Manager에게 보냅니다. 2. Layout Manager는 몇 번째 위치에 새로운 itemview가 배치되어야 하는지를 계산하고 해당 위치를 다시 RecyclerView에게 보냅니다. 3. RecyclerView는 캐시에서 해당위치를 가진 아이템 뷰를 가져오는데 만약 캐시에 해당 아이..
Support Library, Android x두 라이브러리의 공통점은 하위 api 버전에 대해서도 호환성을 유지시켜준다.Support Library는 v4, v7,v13 은 api 버전이 해당 숫자 이상이 되어야 한다는 의미이며, 대부분 min 19를 사용하면서 해당 버전을 명시하는 것은 의미가 없어졌다. 버전이 혼잡해질수록 호환성 문제가 발생했고 또한 Support library는 단일 라이브러리이므로 불 필요한 라이브러리도 포함되어 dex파일의 크기가 증가한다. 다양한 버전을 통합하고 자체적으로 관리하는 새로운 네임스페이스 Api 레벨 28부터 androidx를 구성. Appacompatactivity 란?특정 버전 이하 기기에서 뷰 호환성을 유지한다. 어떻게 Appcompatactivity는..
Apk 빌드 과정 1. 안드로이드의 리소스 파일들을 코드레벨에서 구분하기 위해서 aapt는 R.java를 만든다. 2. R.java와 작성한 코드들 그리고 aidl에 의해서 만들어진 자바 인터페이스들은 자바 또는 코틀린 컴파일러에 의해서 클래스파일로 컴파일된다. 3. 클래스 파일들과 3rd party 라이브러리들은 그 후 art 가상머신에서 실행하기 위해서 dex파일로 만들어진다. 4. dex파일은 컴파일된 리소소들, 다른 리소스들이 합쳐져서 apk가 만들어지는데 해당 apk를 키스토어로 서명한다. 5. 또 이 apk를 적은 메모리를 사용할 수 있게 하는 zipalign을 통해 최종 apk를 만들어낸다. *zipalign: 보관 파일 중 압축되지 않은 모든 파일이 파일 시작 부분을 기준으로 정렬되도록 하..
java.lang.Object란 java.lang 패키지에는 프로그래밍을 위한 다양한 클래스들이 모여있고 이를 활용 할 수 있다. (다른 패키지와 다르게 import 구문 없이 사용 가능하다.) 그중에서 object는 클래스들의 가장 상위 클래스이고 프로그래밍을 위한 다양한 메소드들을 제공한다. 1. equals() 동일한 객체인지 판단한다. 기본적으로 == 연산자를 통해 객체의 동등함을 판단하는데 이때 객체의 주소값을 갖고 판단한다. 그렇기에 두 객체의 내용이 같다는것을 판단하기위해선 따로 equasl() 메소드를 오버라이드해서 사용해야한다. (Collection 프레임워크 몇몇 클래스는 객체의 동등성을 판단하기위해서 객체의 hashcode() -> equals() 메소드를 통해 확인하기 때문에 위 프..