Study(28)
-
Garbage Collection과 Heap
JVM의 Runtime Area의 영역들은 Thread가 시작할 때 생성되는 경우가 있고,JVM이 시작할 때 생성이되는 경우가 있습니다. JVM이 시작할 때 생기는 영역이 바로 Heap입니다. Heap은 new (객체 생성시) 인스턴스 및 배열이 저장되는 곳이며, 모든 Thread가 공유합니다.객체의 생성이 빈번한 JAVA는 메모리 이슈가 이곳에서 발생하게됩니다. 그렇기 때문에 Garbage Collection은 Heap영역에서 발생합니다. Heap은 Young 그리고 Old 영역으로 나뉩니다. Young 영역은 하나의 Eden 영역과 두개의 Survivor 영역으로 구성되어있기때문에JVM의 Heap은 4개의 영역으로 나뉜다고 볼 수있습니다. ( Young, Old, Eden, Survivor) 먼저, ..
2019.01.29 -
안드로이드 아키텍처란 무엇일까?
안드로이드 아키텍처 앱 개발자 관점에서 안드로이드 플랫폼 아키텍처를 자세히 이해하거나 응용할 필요는 없겠지만, 플랫폼이 어떻게 설계되었는지 앱이 어떤 환경에서 수행되는지 알아야한다고 생각합니다. 출처 https://developer.android.com 안드로이드 플랫폼은 리눅스 커널 기반입니다. HAL(Hardware Abstraction Layer)은 자바 API 프레임워크에 하드웨어 기능을 이용하는 표준 인터페이스를 제공합니다. 자바 API 프레임워크에서 하드웨어 기기(카메라,블루트스)를 이용하기 위한 코드가 실행되면 내부적으로 HAL의 라이브러리 모듈이 로딩되어 처리합니다. 안드로이드 런타임(Android Runtime)은 ART 가상머신을 이용하며 그 위에 일반 어플리케이션 개발 시 이용할 수 ..
2019.01.22 -
안드로이드의 특징
안드로이드의 특징 안드로이드는 다른 소프트웨어 개발 분야와 비교했을 때 많은 부분이 오픈되어 있는 특징이 있습니다. IOS와 비교해본다면 더욱 차이가 크게 느껴지는 부분입니다. - 안드로이드는 공개 운영체제인 리눅스 기반이다. - 안드로이드 앱 개발은 Java, Kotlin을 이용해 개발한다. - 운영체제, 라이브러리, 스마트폰에 기본으로 탑재된 구글에서 만든 앱 코드들은 대부분 오픈되어 있다. - 안드로이드 폴랫폼 기반의 스마트폰을 여러 제조업체에서 만들 수 있다. - 개발자가 만든 앱은 구글 Play스토어뿐만 아니라 다양한 방법으로 사용자에게 배포할 수 있다. - 안드로이드 기반의 모든 애플리케이션은 스마트폰에 기본 탑재된 앱과 개발자들이 만드는 앱이 같은 환경에서 같은 API를 이용한다. 많은 부분..
2019.01.22