У світі технологій, нових термінологій таабревіатури не є новим, і часом, з кожним новим випуском навіть існуючого програмного забезпечення, ви можете побачити новий термін, що придумує всі, які, здається, використовують і розуміють. Проблема для початківців і навіть багатьох випадкових користувачів полягає в тому, що вони не повністю розуміють, що означає нова конотація, і не можуть легко дізнатися про неї самостійно з офіційних джерел, в першу чергу через те, що розробники не ' t надто захоплюється поясненням багатьох таких термінологій та їх технічних деталей. У кращому випадку ви будете вказувати на офіційне посилання, яке дає пояснення, але в таких технічних умовах, що це майже марно для нетехнологів.
Ми в AddictiveTips завжди пишалися цимскидання технічних концепцій та надання відповідей у термінах, приємних для випадкового користувача та початківця технологій. Отже, коли Google вирішив представити ART з Android 4.4 KitKat, ми побачили це як можливість ознайомити своїх читачів з новим середовищем виконання та допомогти всім зрозуміти, про що це йдеться, і чим він відрізняється від віртуальної машини Dalvik, що АРТ будується на заміну.

Що таке середовище виконання?
Перш ніж ми перейдемо до відповіді на власне питання,нам потрібно зрозуміти, що насправді є середовищем виконання. Простіше кажучи, час виконання включає в себе інструкції з програмного забезпечення, які виконуються під час роботи вашої програми, навіть якщо вони, по суті, не є частиною коду цього програмного забезпечення, зокрема. Ці інструкції в основному переводять власний код програмного забезпечення в той код, який комп'ютер може працювати. Тому всі комп'ютерні мови потребують певного середовища виконання, яке може правильно виконувати код, написаний цією мовою.
Android використовує віртуальну машину як своюсередовище виконання для запуску файлів APK, які становлять додаток для Android. Перевага використання віртуальної машини двояка - по-перше, код програми ізольований від основної операційної системи, гарантуючи, що якщо щось піде не так, він міститься в ізольованому середовищі і не впливає на основну ОС. По-друге, це дозволяє перехресно сумісність, тобто навіть якщо додаток скомпільовано на іншій платформі (наприклад, на ПК, як це зазвичай відбувається у розробці мобільних додатків), вони все одно можуть бути виконані на мобільній платформі за допомогою віртуальної машини .
Для Android - віртуальна машина на основі виконанняНавколишнє середовище, що використовується досі, відоме як віртуальна машина Dalvik. Я впевнений, що хтось, хто коли-небудь заглиблювався в деталі ОС, більш ніж знайомий.
Навіщо взагалі використовувати віртуальну машину?
Це насправді справа, яку ми торкнулися трохи вище. Віртуальні машини повільні, цього не заперечують, але вони насправді мають кілька переваг, які роблять їх перевагою.
- Віртуальні машини постачають ізольоване середовищедля виконання коду. Отже, навіть якщо програма містить зловмисний фрагмент коду, який може пошкодити основну ОС, це не вплине безпосередньо на системні файли, і, отже, основна ОС не буде пошкоджуватися. Перевага великого масштабу - це більш стабільність та надійність для операційної системи.
- APK-програми, які постачаються через Play Store(або будь-яке інше джерело, з цього приводу) - це некомпільовані інструкції, які розробники покладаються на віртуальну машину для складання перед виконанням та запуск на пристрої. Це забезпечує більшу сумісність; якщо розробник мав би надати вже складений код, і він був складений для процесора на основі Snapdragon, наприклад, він може працювати неправильно на мікросхемі Tegra. Отже, ця компіляція на пристрої вирішує цю проблему.
Отже, що Далвік, і що з ним не так?
Це питання, чи не так? Далвік був там з моменту запуску Android ще в 2007 році, і з тих пір він не сильно змінився, окрім підходу до компіляції Just-In-Time (JIT), введеного в Android 2.2 Froyo, який в основному компілює програми прямо тоді, коли вони запускається або коли користувач надає необхідні інструкції. Це корисно, а також вдосконалення в порівнянні з попереднім підходом звичайного інтерпретатора, який складав і керував кодом рядки за рядком під час його запуску, але зворотний бік - це великі накладні витрати, коли програма запущена вперше.
Це тому, що системі потрібно об’єднатисьвсі необхідні файли, складіть додаток і завантажте його в оперативну пам’ять. Поки складений додаток залишається в оперативній пам’яті, він продовжуватиме відповідати швидко, але коли ви завантажуєте більше додатків і оперативна пам’ять закінчується, перша завантажується і, отже, при наступному запуску весь процес починається заново. Цей підхід має сенс на папері, і він фактично працював досі для платформи. Однак, найчастіше страждають старі пристрої з обмеженою оперативною пам’яттю, оскільки цикл завантаження / розвантаження триває частіше, а значить, система відчуває себе повільно в плані загальної чуйності. Ось тут і з'являється нова віртуальна машина - ART.
Що таке мистецтво та як це покращує речі?
ART або Android RunTime (досить кульга назва, так,ми знаємо) - це нова експериментальна віртуальна машина, яку компанія Google представила разом із Android 4.4 KitKat як варіант розробника (поки що Dalvik досі є тим, що встановлено за замовчуванням). Основна відмінність ART і Dalvik полягає в компіляційному підході, який використовує обидва ці технології - ART використовує нову концепцію Ath-Of-Time (AOT) всупереч JIT компанії Dalvik, яка в основному збирає додатки ще до їх запуску. Це означає, що інсталяція займе більше часу, а додатки займуть більше місця на внутрішньому сховищі, але в той же час, оскільки додаток буде повністю скомпільовано, як тільки він буде встановлений, час запуску буде набагато швидшим. Так само, оскільки частина компіляції береться лише один раз під час встановлення, оподаткування процесора є нижчим, що призводить до кращого ресурсу акумулятора та загальної продуктивності.
Далвік проти АРТ - порівняння
Давайте просто порівняємо обидві віртуальні машини перед тим, як рухатися вперед.
Дальвік | АРТ |
Використовує підхід "Своєчасний час" (JIT), що призводить до зниження споживання місця, але більше часу завантаження програми | Використовує підхід (AOT), який збирає додатки після їх встановлення, що призводить до більш швидкого завантаження та зменшення використання процесора |
Кеш накопичується з часом, тому час завантаження швидше | Кеш побудований під час першого завантаження, тому перезавантаження пристрою займає значно більше часу |
Краще працює для нижчих внутрішніх накопичувальних пристроїв, оскільки займає менше місця | Займає набагато більше внутрішнього простору пам’яті, оскільки він зберігає зібрані додатки на додаток до APK |
Стабільний і перевірений часом - VM на вибір для розробників додатків | Надзвичайно експериментальний та новий - ще не так багато підтримки з боку розробників додатків |
Ви кажете, що ART є експериментальним ...
Так, і зараз він доступний лише впристрої з чіпсетами Snapdragon та під керуванням Android 4.4 KitKat. Якщо у вас є бажання, ви можете перейти з Dalvik на ART з прихованих параметрів розробника, але врахуйте, що деякі ваші програми можуть працювати неправильно. Крім того, якщо в Далвіку вже створений кеш програм, перша перезавантаження після перемикання може зайняти до півгодини.
Google в основному зробив доступними для ARTKitKat для розробників, з якими можна пограти, та встановити підстави для постійної комутації в майбутньому. І це аж ніяк не означає, що ART сьогодні готовий до використання. Це буде в майбутньому, але поки що це експериментально і не підходить для щоденного використання кінцевим користувачем.
Щодо переваг АРТ, то тут неоднозначнозвіти. Для більшості рецензентів тестові пристрої містять чотирьохядерні процесори з більш ніж 2 гігами оперативної пам’яті, що є більш ніж адекватною настройкою для дійсного спостереження за швидкістю ART. Тим не менш, випадкові користувачі повідомляють про збільшення на 50% швидкості та більше 30% від часу автономної роботи. Інші ж стверджують, що це не що інше, як ефект плацебо.
Чесно кажучи, перед цим нічого не можна сказатистає доступним для маси і втрачає експериментальну мітку. Отже, ми збережемо цю дискусію на потім. Напевно, можна сказати, що АРТ - це майбутнє. Google збирається достроково скласти компіляцію для того, щоб по-справжньому відповідати iOS, це найбільший аналог, і ART прокладе шлях. Незалежно від того, наскільки дурне це ім'я не виглядатиме або наскільки воно зараз неповне, ми продовжуватимемо бачити ART все більше і більше.
Коментарі