Dalvik VM vs. ART (Android Runtime): вплив на кінцевих користувачів?


22

Завдяки Nexus 5 (Android 4.4 KitKat) компанія Google поставила два режими виконання для запуску програм.

Оберіть варіант виконання в Android 4.4 KitKat Dalvik та ART Runtimes в Android 4.4 KitKat

Які відмінності між Dalvik & ART для кінцевих користувачів? Як на це можуть вплинути ендусери? Чи є якась конкретна причина, яку я повинен вибрати новий час виконання ART?


3
Те, що вам потрібно ввімкнути та шукати через параметри розробника, щоб знайти це налаштування, має бути натяком на те, що він не призначений для кінцевих користувачів.
Dan Hulme

1
@DanHulme Приємна точка, але все ж ентузіасти, які не розробники, грають із параметрами для розробників, і вони навіть багато разів користуються нею для позитивних цілей.
Android Quesito

Що стосується досвіду користувачів, то ви лише помітите, що енергія акумулятора значно заощаджена, ... проте ви не зможете побачити різницю швидкостей під час переходу з Dalvik на ART.
Рахул Райна

Відповіді:


26

Dalvik VM (віртуальна машина) - це версія Java VM від Google (на якій працюють програми). Відеомагнітофони тримають додатки ізольованими та незалежними від фактичного обладнання та інших програм. Але, щоб це працювало, Далвіку потрібно перетворити так званий байт-код (призначений для віртуальної машини) в нативний машинний код. Для того, щоб мінімізувати покарання за продуктивність, яке вводить байт-код до конверсії нативного коду, виконується компіляція під назвою Just-In-Time (JIT), яка перетворює гарячий, тобто часто використовуваний, байт-код у нативний код. 1

ART (Android Runtime) - це заміна для Dalvik, яка використовує компіляцію заздалегідь (AOT), тобто ваші програми збираються до стану, необхідного для запуску, перш ніж ви навіть запускаєте їх. Зазвичай це робиться під час встановлення програми, що робить процес запуску та використання їх набагато швидшим та плавнішим. А оскільки це означає, що компіляція виконується лише один раз, ви також можете побачити кращий ресурс акумулятора.

Якщо ART краще щодо продуктивності та терміну служби акумулятора, я повинен почати його використовувати?

Ні. Якщо ви це зробите, ви можете зламати додатки сторонніх розробників. Google поставив цей попередній перегляд ART з Android 4.4 для розробників, щоб протестувати свої додатки на ньому.

Побічна примітка: підхід Google до АРТ полягає в тому, щоб перемогти iOS (додатки для iOS є рідними, тому вони працюють краще навіть на технічних характеристиках низького класу), але я не знаю, куди він спрямований ... Ще одна фрагментація? Дивіться, що OEM-виробники можуть безкоштовно створювати пристрої, використовуючи один або обидва . Хоча остаточна версія не повинна впливати на більшість додатків, але це не стовідсоткова платформа.

1 Зауважте, що JIT додано до Dalvik в Android 2.2


3
Можливо, варто відзначити два факти: результат AOT ART у програмах, що використовують на 20..25% більше пам’яті порівняно з DEX. Плюс тести на Nexus-5, які я прочитав, не показали різниць у суб'єктивній швидкості та витривалості акумулятора. І те й інше покращиться, вважаючи, що ART в KitKat є лише попереднім переглядом та сумісністю розробників (що, наприклад, не вдалося WhatsApp). Тож я другий висновок Сахіна: Це ще не добре для кінцевих споживачів.
Izzy

2
Відмінна відповідь. Я взяв свободу, щоб трохи її покращити. Але я не згоден з останнім пунктом: ART не збільшує фрагментацію: Якщо ART вважається виробництвом готовим, це не має значення, чи вашим додатком керує Dalvik або ART, обидва використовують той же формат .dex, що і початковий пункт. Тільки те, що ART AOT компілює .dex у рідний код.
Потік
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.