안드로이드의 기본 이해

.·2022년 4월 14일
0

모바일 해킹

목록 보기
7/10

1 안드로이드 구동 순서 및 방식

>1 라이브러리함수(lib.so) 먼저 적재

>2 apk에 선언된 자바코드 적재

>3 클래스 적재

>4 이제 동작시작!



2 JVM & DVM & ART

JVM

JVM은 자바 어플리케이션을 클래스 로더를 통해 읽어 들여 자바 API와 함께 실행하는 주체.

JVM은 플랫폼에 맞춰 한번의 빌드로 여러플랫폼에서 실행이 가능.
즉, 하나의 test.java 파일을 test.class로 컴파일 했을 시, 윈도우, 맥, 리눅스 어느 OS에 관계없이 JVM이 실행될 수 있다면 새로 컴파일 할 필요없이 실행이 가능하다.

DVM(Dalvik Virtual Machine)

안드로이드 앱을 실행할 수 있는 가상머신.
모바일 기기 환경에 최적화 된 가상머신.

자바>클래스 파일로 컴파일 된 친구들을 dex 파일로 변경하여 DVM에서 실행가능하게 만들어서 사용하곤 한다.

즉 흐름도는 다음과 같다

.java > .class > bin/classes( 클래스 모음집 ) > .dex > APK 내 실행

최종적으로 dex랑 기타 라이브러리를 압축해서 APK를 생성함.

ART

이제는 DVM도 안쓰고 ART를 사용함. 어쩌다가 달빅을 보내게 됐니?
요약하자면, ART 컴파일러를 채택하면 앱실행시간 & 배터리 수명이 향상되기 때문이다. 앱이 설치되는 시점에 앱의 전체 바이트 코드를 기계어로 번역해두어 앱이 실행되는 시간에 바이트코드를 해석하는 시간을 제거하여 전체적인 퍼포먼스를 향상시켰다고한다,,

참고 : JVM, DVM, ART 이해하기

0개의 댓글