Java 그리고 Android ...

2017-06-18

Vector

http://jdm.kr/blog/172​

add, remove 와 같이 삽입, 삭제하는 자료구조인 것은 동일 하나 메소드에 동기화 키워드들이 붙어있습니다. 

따라서 성능 저하가 있을 수 있으며 요즘은 많이 쓰이지 않습니다. 

 

서비스에서 뷰를 띄울 수 있는가?

https://stackoverflow.com/questions/7521307/starting-a-view-from-a-service

http://itmir.tistory.com/548

가능하다. WindowManager 를 통해서 Inflate 된 Layout 을 WindowManager에 붙이는 방법을 이용하면 된다. 

 

Intent Service 란?

http://cafe.daum.net/_c21_/bbs_search_read?grpid=1MWA2&fldid=aAfL&datanum=157

 

Doze 모드란?

https://blog.yatopark.net/doze-모드-이해하기/

1. 배터리가 충전되고 있지 않음

2. 휴대폰이 물리적으로 움직이지 않음

3. 스크린 Off 상태로 방치됨

위 세가지 조건을 모두 만족할 때 Doze 모드에 진입하게 된다. 

진입하게 되면 아래와 같이 동작한다. 

1. 앱의 네트워크와 CPU 의 사용을 제한

2. Doze 모드 중이더라도 시스템이 주기적으로 Doze 에서 빠져나와서 미룬 작업을 하고 다시 Doze 로 진입한다. 

3. WakeLock 이 무시된다. 

4. Wi-Fi 스캔을 하지 않는다. 

 

허프만 코드 알고리즘

http://slenderankle.tistory.com/409

http://wooyaggo.tistory.com/95

자주 쓰이는 문자에는 작은 bit 를 할당하고 덜 쓰이는 문자에는 큰 bit 를 할당해서 문자열을 전체적으로 압축하는 개념이다.

AABBAC 가 있다면 가장 많이 사용하는 순으로 A에는 0, B에는 01, C에는 11을 부여하여 000101011 으로 압축한다. 따라서 48bit 를 9bit로 압축할 수 있는 기법이 되는 것이다. 

 

ListView vs RecyclerView 

https://stackoverflow.com/questions/26728651/recyclerview-vs-listview

1. RecyclerView 는 위/아래로 스크롤하는 동안 리스트를 재사용하게 합니다. 

2. 컨테이너에서 리스트를 분리하여 LayoutManager 를 설정하여 런타임에 다른 컨테이너를 쉽게 넣을 수 있게 도와줍니다.

3. 애니메이션이 분리되어 ItemAnimator 에 위임됩니다. 

 

Annotation 이란? 

http://www.nextree.co.kr/p5864/

어노테이션은 설명 그 이상의 활동을 합니다. 어노테이션이 붙은 코드는 어노테이션의 구현된 정보에 따라 연결되는 방향이 결정됩니다. 따라서 전체 소스코드에서 비지니스 로직에는 영향을 주지 않지만 해당 타겟의 연결 방법이나 소스 코드의 구조를 변경할 수 있습니다. 어노테이션은 소스 코드에 메타데이터를 삽입하는 것이기 때문에 잘 이용하면 구독성 뿐 아니라 체계적인 소스 코드를 구성하는데 도움이 됩니다. 

 

Multi Dex 란?

http://hashcode.co.kr/questions/1982/android-multidexapplication%EC%9D%B4-%EC%96%B4%EB%96%A4%EA%B1%B4%EC%A7%80-%EA%B6%81%EA%B8%88%ED%95%A9%EB%8B%88%EB%8B%A4

DEX (Dalvik Executable) 파일은 안드로이드 달빅 가상 머신 (DVM) 에서 실행되는 파일 포맷인데 해당 파일의 제약으로 함수 개수는 65K (65,536)개를 초과할 수 없습니다. 이를 해결하기 위해서 Multidex 개념이 나온 것이며 APK 당 하나의 dex 를 생성하는 것이 아닌 여러 개의 dex 를 만들어서 이런 문제를 해결하는 것 입니다

 

NULL OBJECT 패턴 

http://godblessyk.tistory.com/entry/NULL-%EA%B0%9D%EC%B2%B4-%ED%8C%A8%ED%84%B4-%EC%A0%95%EB%A6%AC

1. 구현은 Null 대신 사용될 클래스를 정의하고 해당 클래스는 아무 기능도 수행하지 않는다.

2. 장점은 Null 코드 검사가 최소화 되므로 코드가 간단해지며 Null 검사 코드 누락에 따른 문제가 없어진다. 

3. 단점은 협업하는 사람 등이 Null Object 의 존재를 모르고 있다면 동일한 Null 검사를 여러번 수행할 수 있고 Super 클래스에서 Public 메소드를 추가할 때 마다 오버라이드 해야하는 문제가 있을 수 있다. 

 

Binary Search Tree

https://gist.github.com/thmain/449545d18617a670c68f#file-binarysearchtree-java

 

 

 

 

 

댓글

댓글 본문
버전 관리
BearCola
현재 버전
선택 버전
graphittie 자세히 보기