ART замест Dalvik: чаму Android 4.4 «есць» менш рэсурсаў

З выхадам новых версій Android гэтая АС патрабавала ўсё больш і больш аператыўнай памяці (АЗП) З выхадам новых версій Android гэтая АС патрабавала ўсё больш і больш аператыўнай памяці (АЗП). Першыя апараты з ёй мелі 256 МБ АЗП, але сёння аднаго гігабайта ужо можа апынуцца недастаткова. Аднак у Google ўзяліся за аптымізацыю і выпусцілі Android 4.4 KitKat. Гэтая версія аперацыйнай сістэмы працуе хутчэй, але пры гэтым патрабуе менш рэсурсаў. Падобнае стала магчымым дзякуючы пераходу з сістэмы Dalvik на ART. Пра тое, што гэта такое і чаму смартфоны з Android 4.4 і будуць працаваць хутчэй на слабых працэсарах, чытайце ніжэй.

Адной з прычын папулярнасці мабільнай АС Google стала параўнальная лёгкасць распрацоўкі прыкладанняў для яе. Дзякуючы гэтаму магазін праграм Google Play хутка напоўніўся ўтылітамі. Падобнае стала магчыма з дапамогай віртуальнай машыны Dalvik, які пераўтвараецца код прыкладанняў у зразумелы працэсару мабільніка або планшэта. Праграмісты пішуць так, як ім зручна, і ім не трэба клапаціцца аб тым, які чыпсэт стаіць у гаджэце карыстальніка: ад Qualcomm, Intel, Mediatek, nVidia, Samsung або іншага вендара.

З-за таго што код прыкладанняў на ляту трансфармуецца ў зразумелы «залозу» гаджэта, распрацоўнікам вельмі зручна ствараць свае праграмы. Але з-за гэтага пасярэдніка ў выглядзе віртуальнай машыны Dalvik працэсару прылады даводзіцца выконваць у некалькі разоў больш дзеянняў: лічыць код, трансфармаваць яго ў зразумелы апаратнай часткі, выканаць яго і вывесці вынік на экран. Следства такой архітэктуры мог назіраць практычна кожны ўладальнік Android-девайса ў выглядзе падтармажваць інтэрфейсу. Калі смартфон не нагружаны гульнямі і вылічэннямі, аператыўная памяць вольная, але простае перагортванне экрана ўсё роўна выклікае секундную затрымку.

Google ужо даўно пачала змагацца з гэтай праблемай: першым сур'ёзным крокам стаў праект Project Butter, анансаваны разам з Android 4.1 Jelly Bean. Дзякуючы яму аперацыйная сістэма стала некалькі хутчэй рэагаваць на дзеянні карыстальніка, але ў цэлым праблема засталася. Таму ў Google стварылі рыхтуюць ART - замену віртуальнай машыне Dalvik.

Навошта Android патрэбна віртуальная машына

Любая праграма выкарыстоўвае мноства стандартных дзеянняў: выснова малюнка на экран, запіс файлаў у памяць, перадачу файлаў па Bluetooth або Wi-Fi. Каб палегчыць праграмістам жыццё, аперацыйная сістэма мае убудаваныя функцыі для выканання гэтых заданняў. Распрацоўніку дастаткова толькі ў сваім дадатку пазначыць "скапіяваць файл ХХХ на карту памяці ў тэчку УУУ». Ён не клапоціцца аб тым, як гэта выконваецца і колькі для гэтага патрабуецца сістэмных рэсурсаў.

Праграмісты таксама часта пішуць «бракаваныя» праграмы, якія маюць памылкі ў кодзе, «губляюць» памяць і да таго падобнае Праграмісты таксама часта пішуць «бракаваныя» праграмы, якія маюць памылкі ў кодзе, «губляюць» памяць і да таго падобнае. Віртуальная машына дазваляе ізаляваць ўтыліты адзін ад аднаго і ад ядра аперацыйнай сістэмы. Дзякуючы гэтаму крах прыкладання не аказвае ўплыву на АС і іншыя запушчаныя праграмы. Без гэтага памылка ў утыліце вядзе да завісання ўсёй сістэмы. Карыстальнікі старэй могуць памятаць, як памылкі ў прыкладным ПА прыводзілі да «сіняга экрану смерці» ў настольных АС Windows 95 і 98, якія не мелі падобных механізмаў віртуалізацыі.

Файлы ў фармаце APK, якія запампоўвае карыстальнік з Google Play Store або любога іншага сервера, - гэта нескомпилированный код. Ні адзін кампутар не зможа яго выканаць, бо проста «не зразумее». Калі б ўтыліты пастаўляліся ва ўжо скампіляваныя і зразумелай «залозу» выглядзе, тады частка з іх працавала б, напрыклад, на прыладах з чыпсэтам Snapdragon, але выдавала б памылку пры запуску на гаджэтах з чыпамі Tegra.

Кожны вытворца адаптуе Dalvik пад свой працэсар і апаратнае забеспячэнне. Дзякуючы гэтаму адна і тая ж праграма можа працаваць на гаджэтах практычна любога вытворцы без праўкі яе зыходнага кода. І менавіта па гэтай прычыне нельга проста ўзяць і ўсталяваць новую версію Android у прылада накшталт пераўсталёўкі Windows.

Што такое Dalvik і чаму ён патрабуе замены

Віртуальная машына Dalvik (названая ў гонар ісландскага рыбалоўнага порта Дальвик) прысутнічае ў Android ад самага старту гэтай аперацыйнай сістэмы ў 2007 годзе. З тых часоў яна зведала толькі адно буйное змена: у Android 2.2 Froyo код з APK трансфармаваўся ў машынны код на лета адразу пасля запуску ўтыліты карыстальнікам. Раней ён апрацоўваўся радок за радком падчас выканання праграмы на мабільным прыладзе. Новы падыход дазволіў спрасціць запуск утыліт і іх працу, але гэта адбілася на патрабаванні да апаратных рэсурсаў. І сёння ўжо аднаго гігабайта аператыўнай памяці можа не хапаць для хуткай працы мабільніка.

Што такое ART і як яна дапаможа Android

Віртуальная машына ART (расшыфроўваецца як Android RunTime - серада выканання праграм Android) пакуль яшчэ знаходзіцца ў эксперыментальнай стадыі, але яе ўжо можна паспрабаваць у Android 4.4 KitKat. Карыстальнікі прылад з гэтай версіяй АС могуць пераключыцца з устаноўленага па змаўчанні Dalvik на ART.

Асноўнае адрозненне паміж гэтымі віртуальнымі машынамі - гэта падыход да кампіляцыі Асноўнае адрозненне паміж гэтымі віртуальнымі машынамі - гэта падыход да кампіляцыі. Калі Dalvik пераўтворыць код у рэальным часе адразу пасля запуску утыліт, то ART робіць гэта загадзя пры ўсталёўцы. Гэта азначае павелічэнне часу ўстаноўкі утыліт і большы займаны аб'ём у флэш-памяці прылады. Але гэта ж азначае і паскарэнне запуску і памяншэнне патрабаванняў да апаратных рэсурсаў, асабліва аб'ёме АЗП. Вось чаму Android 4.4 KitKat, па словах Google, зможа хутка і стабільна працаваць на гаджэтах з аб'ёмам аператыўнай памяці ў 512 МБ. Новы падыход да пераўтварэння кода дазволіць таксама зменшыць спажыванне зарада батарэі.

Параўнайце аб'ём адных і тых жа праграм пры выкарыстанні Dalvik (злева) і ART (справа)

Dalvik супраць ART - параўнанне

У цэлым віртуальная машына ART абяцае шмат паляпшэнняў у параўнанні з існуючай Dalvik. Перавагі і недахопы кожнай можна ўбачыць у табліцы ніжэй:

Dalvik

ART

Пераўтворыць файлы APK ў зразумелы працэсару код на ляту, што патрабуе менш флэш-памяці для захоўвання, але з-за гэтага прыкладання даўжэй запускаюцца

Пераўтворыць файлы APK ў зразумелы працэсару код загадзя пры іх усталёўцы. Гэта патрабуе менш рэсурсаў працэсара пры запуску і памяншае час старту праграмы

З часам машынны праграмны код кэшуецца, што вядзе да паскарэння загрузкі мабільніка

Кэш машыннага кода ствараецца пры першай загрузцы мабільніка, з-за чаго ён ўключаецца значна даўжэй

Лепш падыходзіць для прылад з малоемким флэш-назапашвальнікам, так як кэш машыннага кода займае менш месцы

Спажывае значна больш флэш-памяці (на 10-20%), так як акрамя файлаў APK захоўвае скампіляваны машынны код кожнай праграмы

Стабільная і правераная часам

Новая і эксперыментальная, могуць выявіцца непрадбачаныя памылкі і недахопы

Паспрабаваць эксперыментальны ART

Новы кампілятар знаходзіцца ў стадыі распрацоўкі і даследаванняў, але карыстальнікі яго ўжо могуць паспрабаваць. Ён даступны ўладальнікам прылад пад кіраваннем Android 4.4 KitKat і на базе чыпсэта Snapdragon. Тым, хто адважыўся паспрабаваць навінку, варта памятаць, што новая віртуальная машына можа зрабіць некаторыя ўтыліты непрацаздольнай. Акрамя таго, пасля перазагрузкі смартфон можа запатрабаваць да паўгадзіны для старту - гэта час спатрэбіцца ART на фарміраванне кэша прыкладанняў.

Каб уключыць ART замест Dalvik, трэба ўвайсці ў меню распрацоўніка. Для актывацыі апошняга патрабуецца адкрыць налады смартфона і перайсці ў раздзел «Аб тэлефоне». Там трэба мноства разоў націскаць на кнопцы «Нумар версіі», пакуль АС не паведаміць аб даступнасці новага меню. Пасля гэтага патрабуецца выбраць выкарыстоўваную віртуальную машыну і перазагрузіць прылада.

У цэлым тэсты карыстальнікаў, якія перайшлі на ART, сведчаць аб агульнай паскарэнне працы прыкладна на 50% і павелічэнні часу працы ад батарэі да 30% У цэлым тэсты карыстальнікаў, якія перайшлі на ART, сведчаць аб агульнай паскарэнне працы прыкладна на 50% і павелічэнні часу працы ад батарэі да 30%.

Па матэрыялах: Addictivetips