본문

최근방문

[기타] 구글, 안드로이드 4.4 킷캣에 새로운 런타임 'ART' 도입해 [15]





[광고]

안드로이드는 초반 몇년간 혼란스러운 시기를 보냈다고 할 수 있습니다. 이 운영 체제가 전례 없는 속도로 성장함에 따라 개발의 속도도 빨라졌죠. 앞을 알 수 없는 미래는 이미 존재하는 하드웨어와 아키텍쳐, 현존하는 개발 툴에 안주하게 하며, 긴박한 마감시일에 코드를 짜내도록 만들었습니다. 이제 안드로이드는 성장했고, 안드로이드 팀도 오래되지 않은 몇몇 요소에 상당한 관심을 가지기 시작했습니다. 안드로이드 퍼즐에 가장 오래된 조각 중 하나는 달빅 런타임, 대부분의 앱을 실행하는데 중요한 소프트웨어 입니다. 이게 바로 구글의 개발자들이 지난 2년간 'ART' 개발에 몰두한 이유입니다. 'ART'는 달빅의 대체 방안으로 더 빠르고 효율적인 동작, 배터리 수명 향상, 그리고 더욱 더 유연한 경험을 보장합니다.


art

'ART'란 무엇인가?


안드로이드 런타임의 약자인, 'ART'는 달빅과 근본적으로 앱을 실행하는 방식이 다릅니다. 현재 런타임은 오리지날 애플리케이션 코드의 일반적인 버전인, 바이트코드를 해석하기 위해 Just-In-Time (JIT) 컴파일러에 의존하고 있습니다. 말하자면, 앱들은 개발자들에 의해서 부분적으로만 컴파일되고, 그 다음 완성된 코드는 앱이 실행되는 동안 유저의 디바이스에 있는 해석기를 통과해야 합니다. 이 과정은 엄청난 낭비를 가져오고 효율적인 방법은 아닙니다만, 앱이 다양한 하드웨어와 아키텍쳐에서 작동하기 쉽게 해줍니다. 'ART'는 이 과정을 앱이 처음 설치될 때 바이트코드를 기계 언어에 포함시켜, 진정한 네이티브 앱으로 작동하게 변경하도록 만들어졌습니다. 이러한 과정은 Ahead-Of-Time (AOT) 컴파일이라고 불립니다. 새로운 가상 머신이나 해석 코드를 작동시킬 필요를 제거함으로써, 켜지는 시간은 상당히 줄어들 수 있으며 실행 중인 동작을 더욱 빠르게도 또한 만들 수 있습니다.


Screenshot_2013-11-04-06-15-37Screenshot_2013-11-04-06-16-05Screenshot_2013-11-04-06-16-31


현재, 구글을 'ART'를 개발자들과 하드웨어 파트너들이 시험해 볼 수 있도록 실험적인 프리뷰로 다루고 있습니다. 구글의 'ART' 소개 페이지에는 기본 런타임을 변경하는 것이 앱을 손상시킬 수 있다거나 시스템을 불안정하게 할 수도 있다는 것을 명확하게 경고하고 있습니다. 'ART'는 본격적으로 사용하기에는 아직 완전히 준비되지 않았을 수도 있습니다, 하지만 안드로이드 팀은 이걸 언젠가 세상에 내놓을 것이라 생각하고 있음이 분명합니다. 'ART'를 시험해보는데 관심이 있다면, 설정 -> 개발자 옵션 -> 런타임 선택 으로 가십시오. 'ART'를 활성화하는 것은 libdvm.so에서 libart.so로 바꾸기 위한 재시작이 요구됩니다, 그러므로 설치된 앱들이 새로운 런타임에 적용되기까지는 대략 10분 정도가 소요됩니다. 경고: 파라노이드 안드로이드 (또는 다른 AOSP) 빌드에서는 지금 실행시키지 마십시오. 현재 gapps 패키지와 호환되지 않아 충돌, 인터페이스를 사용 불가능하게 만듭니다.


얼마나 더 나은건가?


현재로선, 'ART'가 킷캣에서 새로이 등장하였으므로, 효율성에 이득이 있는지는 알기 어렵습니다, 그렇기 때문에 널리 최적화 되었을 때 어떤 모습이 될지는 알 수 없습니다. 그렇긴 해도, 추정치와 몇몇 벤치마크는 새로운 런타임이 이미 대부분의 애플리케이션에서의 실행 기간을 반으로 줄여준다는 것을 보이고 있습니다. 이는 오랜 시간 작동한다거나, 프로세서의 성능에 의존하는 작업이 더 빠르게 끝낼 수 있다는 것을 의미합니다. 일반적인 애플리케이션은 또한 부드러운 애니메이션 효과와 즉각적인 터치 반응/다른 센서 데이터 속도로 이득을 볼 수 있을 것입니다. 더욱이, 이제 보편적인 디바이스가 쿼드-코어 (또는 그 이상) 프로세서를 탑재하고 있기 때문에, 적은 코어를 사용하는 상황이 많아지고, ARM big.LITTLE 아키텍쳐의 A7 코어의 활용도가 높아질 수도 있습니다. 'ART'가 배터리 수명과 퍼포먼스를 얼마나 향상시키는가는 사용 환경과 하드웨어에 따라 달라질 수 있으나, 상당한 향상을 얻을 수 있을 것입니다.


타협해야할 점들은?


AOP 컴파일을 사용하는 것에는 여러 단점이 존재합니다, 하지만 장점에 비한다면 무시해도 좋은 수준입니다. 시작하기에 앞서, 완전히 컴파일된 머신 코드는 보통 바이트코드가 사용하는 것보다 더 많은 저장 공간을 소비합니다. 바이트코드내 각각의 심볼이 머신 코드의 여러 명령을 대체하기 때문이죠. 당연히, 사이즈의 증가는 보통 10%-20% 정도 밖에 커지지 않기 때문에 특별히 중요한 것은 아닙니다. 그러나 APK 파일의 크기는 상당히 커지기 쉽기 때문에 APK를 놓고 본다면 크게 느껴질 수도 있습니다. 예를 들어, 새로운 동영상 편집 기능이 들어간 최신 구글+ APK 파일의 크기는 28.3 MB 이지만, 코드가 차지하는 용량은 6.9 MB 밖에 되지 않습니다. 또 다른 눈에 띄는 단점은 앱을 설치하는데 걸리는 시간이 길다는 것입니다 - AOT 컴파일의 부작용입니다. 얼마나 길어질까요? 글쎄요, 앱에 따라 달라집니다; 간단한 유틸리티는 거의 차이를 느낄 수 없지만, 페이스북과 구글+와 같이 더욱 복잡한 앱은 설치하는데 시간이 오래걸릴 것입니다. 앱이 적게 설치되어 있다면 별로 신경쓰지 않아도 되지만, 'ART'로 변경할 때 100개가 넘는 앱을 컨버팅하는 것은 엄청난 인내심을 요구할 것입니다. JIT 컴파일러보다 잠재력이 많기 때문에 완전히 나쁜 것만은 아닙니다. 이러한 희생의 대가가 보다 유연한 경험과 배터리 수명의 향상을 가져다 준다면 완전히 기쁠 것입니다.




댓글 | 15
1


BEST
ㄴㄱㄴ
13.11.07 11:17
BEST
사람들 웃기네-,.- 안드로이드 킷캣얘기인데 왠 니그니 ㅋ...
13.11.07 11:40
BEST
저도 ㄴㄱㄴ입니다. 넥서스5 질렀거든요.
13.11.07 11:46
BEST
니그니는 지른다 지른다 말만하고 지르지는 않음
13.11.07 15:22
킷캣 만져봤는데 터치감이 진짜 쫀득쫀득..손에 달라 붙는 느낌 진짜 소프트웨어는 금방 따라잡네 소프트웨어야 고급 개발자 기획자 영입하면 떙이니 인력 싸움
13.11.07 11:04
BEST
ㄴㄱㄴ | 13.11.07 11:17 | | |
BEST
사람들 웃기네-,.- 안드로이드 킷캣얘기인데 왠 니그니 ㅋ... | 13.11.07 11:40 | | |
BEST
저도 ㄴㄱㄴ입니다. 넥서스5 질렀거든요. | 13.11.07 11:46 | | |
딱히 ㄴㄱㄴ인지는 모르겠음 | 13.11.07 11:55 | | |
BEST
니그니는 지른다 지른다 말만하고 지르지는 않음 | 13.11.07 15:22 | | |
근데 64비트는 어떻게 된거죠?
13.11.07 11:13
아마 다음번 OS 에서 될 것 같네요. | 13.11.07 11:23 | | |
오 ... 개발자옵션에 못보던 기능이있어서 그냥 만지진않았는데 이런거엿군요 지금 안드로이드를 다시 컨버팅중인데 게시글대로 꽤나 오래걸리는군요(164개정도) 좋은글이네요 카페로 퍼갈게요
13.11.07 11:58
변환하는데 엄청 오래걸리네요 | 13.11.07 12:05 | | |
용량이 좀 늘어나는군요. 그래도.. 솔직히 성능향상과 배터리 효율성을 생각하면 당연히 넘어가야한다고 봅니다. 기대되네요. 어느정도 완성 되었으니 킷캣에 ART를 심어놨겠죠?
13.11.07 12:02
퍼즐 드래곤 하는 사람은 바꾸지 마세요. 퍼즐 드래곤 실행 안됩니다.
13.11.07 12:21
새벽2시에 씨름하다가 아트때문이구나 하고 달빅으로 바꾸다가 켜둔채로 잠들었는데 갤넥이었다면 뜨거워서 만지지도 못할 상황이었을건데 넥5는 문제 없더군요.
13.11.07 12:23
놋3에 킷캣 먹히면 변환해보면 되는건가
13.11.07 16:32
뭔가 했었는데 이런거였군요
13.11.07 21:27


1


댓글은 로그인 후 이용 가능합니다.




ID 구분 제목 글쓴이 추천 조회 날짜
398689 전체공지 넷기어 홍보대사를 모집합니다. 8[RULIWEB] 2019.06.01
86 전체공지 루리웹 '브라우저 알람' 설정 방법 8[RULIWEB] 2019.06.01
2161330 하드웨어 크로스경사 9 12236 2019.07.23
2161324 하드웨어 디폴트. 🎗 2 3344 2019.07.23
2161307 하드웨어 쭈꾸리미 13 6625 2019.07.23
2161305 하드웨어 Landsknecht™ 2 8025 2019.07.23
2161297 하드웨어 하렌쿠우 2 8468 2019.07.23
2161296 하드웨어 Exclusive 1 2153 2019.07.23
2161294 기타 이한누리가 1509 2019.07.23
2161287 하드웨어 FE3 3432 2019.07.23
2161282 하드웨어 스텔D 12 18264 2019.07.23
2161267 하드웨어 Landsknecht™ 3 2979 2019.07.22
2161265 하드웨어 Landsknecht™ 1 2448 2019.07.22
2161248 하드웨어 크로스경사 5 3228 2019.07.22
2161228 하드웨어 루리웹모바일정보 3 12957 2019.07.22
2161227 하드웨어 루리웹모바일정보 8 11712 2019.07.22
2161225 하드웨어 크로스경사 7 8121 2019.07.21
2161224 하드웨어 FE3 1 6325 2019.07.21
2161222 하드웨어 Landsknecht™ 9 11074 2019.07.21
2161221 하드웨어 Landsknecht™ 4 4192 2019.07.21
2161217 하드웨어 @Crash@ 3 1145 2019.07.21
2161216 하드웨어 사쿠라모리 카오리P 2 7054 2019.07.21
2161214 하드웨어 루리웹 503 13 12898 2019.07.21
2161213 하드웨어 스텔D 3 5090 2019.07.21
2161210 하드웨어 불타는의그대 8 11749 2019.07.21
2161209 하드웨어 Landsknecht™ 4 6877 2019.07.21
2161208 하드웨어 스텔D 2 5503 2019.07.20
2161207 하드웨어 @Crash@ 6 4397 2019.07.20
2161197 하드웨어 스텔D 9 5699 2019.07.20
2161195 하드웨어 불타는의그대 10912 2019.07.20

글쓰기 53659개의 글이 있습니다.


1 2 3 4 5 6 7 8 9 10


게시판 지기



X