[컴][안드로이드] 롤리팝에서 채택된 ART 와 기존의 Dalvik 과의 차이점

 달빅 / 아트의 차이점 / 안드로이드 jvm 롤리팝




ART 와 Dalvik


안드로이드 롤리팝(lollypop) 부터 ART(Anroid Runtime) 를 사용하고 있다. 예전에는 Dalvik 이라 하는 JVM 을 썼지만, 이 JVM 으로 인한 여러가지 문제의 해결을 위해서, 이녀석을 아예 걷어 냈다.

그런데 여기서 궁금한 점은 여전히 우리는 java 로 code 를 짜고 배포를 한다. 근데 jvm 이 없다면 어떻게 내가 만든 app 이 실행되는 것일까? 이 부분을 ART 가 해준다. 무슨 이야기인가 하면, ART 가 Bytecode 로 된 녀석을 다시 기계어(Machine Language) 로 변환 해 준다. 그러니까 ART 가 AOT compiler 이다.

그럼 이 녀석이 언제 .dex 를 기계어로 된 실행파일로 바꿔줄까? 
그것은 app 이 설치될 때 이뤄지게 된다. 롤리팝 이전에는 dalvik 에서 잘 돌아가게 하기 위해서 .dex 를 좀 더 최적화한 .odex 로 만들어서 사용했다. 그런데 이렇게 .odex 를 만들어 사용하던 방법을 버리고, .odex 를 만드는 대신에 실행파일(elf format) 으로 만드는 것이다.

자세한 이야기는 아래 글에 되어 있으니 참고하기 바란다.

댓글 없음:

댓글 쓰기