Я насолоджуюся вільним польотом. Моя пристрасть - міксери, тістоміси, грилі і інші елементи ресторанного обладнання. Можу продати, якщо потрібно. Якщо не потрібно, теж можу.
Всередині останньої ітерації операційної системи Android знайшлося місце для багатьох змін і удосконалень. Більшість з них відразу ж впадає в очі навіть пересічному користувачеві даної системи. Це, звичайно ж, установка в якості стандартного меседжер додатки Hangouts, перероблене меню набору номерів і додавання клавіатури Emoji. Бувалі ж прихильники Android напевно відчують приплив продуктивності в порівнянні з більш старими її релізами. Однак не обійшлося і без прихованих сторін, які, згідно з логікою, повинні представляти інтерес лише для розробників. Втім, значимість одного з подібних нововведень особливо велика. Крім того, незабаром воно торкнеться кожного з нас, а тому промовчати про його подробиці було б просто злочином.
Напевно, багато хто з вас хоча б краєм вуха чули про те, що в Android KitKat з'явився особливий режим. Суть його полягає в більш швидкому запуску додатків і в більш стабільному і плавному їх виконанні. Можливо, спроби розібратися в даному питанні самостійно не були увінчані успіхом. Воно й не дивно: слова «віртуальна машина» і «компіляція» здатні налякати кого-завгодно, особливо, якщо інформація споживається з англомовного джерела. Для вирішення даної проблеми ми вирішили розібратися в суті питання самостійно, виклавши його в максимально доступному вигляді.
Трохи базових понять
Перш ніж ознайомитися з суттю нововведення, необхідно отримати уявлення про деякі деталі. Перша з них - Виконавча додатків. Говорячи простою мовою, горезвісне поняття є збіркою інструкцій, які виконуються під час роботи того чи іншого додатка. Інструкції, в свою чергу, здійснюють переклад програмного коду в код, який в змозі запустити система. Відповідно, абсолютно все комп'ютерні мови потребують певному середовищі виконання заради запуску додатків, написаних на них.
Чому саме віртуальні машини?
Даний тип середовища виконання має два беззаперечних плюса, які полегшують життя не тільки розробникам, але і нам, користувачам. Перше гідність - захист системи. Віртуальна машина не випадково називається віртуальною: її робота абсолютно ізольована від операційної системи. Відповідно, помилка або банальне зависання ніяк не позначиться на працездатності вашого пристрою.
Другий плюс - кросплатформенних. Віртуальна машина зможе запустити додаток, навіть якщо вона створена на PC.
Переваги та недоліки Dalvik
Dalvik, як і всі в цьому світі, неідеальна. Причиною періодичних посмикувань інтерфейсу є тип перетворення коду програми в апаратний. Дана машина проробляє це в прямому ефірі, а називається такий тип компіляції Just-In-Time. Відповідно, передбачити появу багів практично неможливо, оскільки подібне може статися в будь-який момент. Особливо велика ймовірність подібного під час першого запуску, коли частина перетвореного коду навіть не збережена в кеші.
Проблема повільності першого запуску, до речі, зовсім не випадкова. Подібне відбувається через те, що системі необхідно зібрати воєдино всі необхідні для запуску додатка файли і завантажити ними оперативну пам'ять. У конкретному випадку найбільше страждають пристрої з малою кількістю оперативної пам'яті, для яких процес завантаження загрожує якщо не вильотом додатки, то хоча б помітними затримками його виконання.
Компіляція «на ходу» значно навантажує процесор, проте одночасно з цим дозволяє розробникам не займатися оптимізацією коду для кожного окремого процесора і інших складових пристрою.
Виправити вищесказане покликана нова віртуальна машина, яка встигла відзначитися далеко не самим хитромудрою назвою - Android Runtime. Або ж скорочено - ART.
Переваги та недоліки ART
Нова віртуальна машина втілилася разом з Android 4.4 KitKat, однак на презентації їй не приділили належної уваги. Причиною цього є те, що ART все ще знаходиться на експериментальній стадії. Втім, хоча і Dalvik використовується в якості машини за замовчуванням, переключитися на Android Runtime можна вже зараз.
Однак не поспішайте це робити. Спочатку необхідно ознайомитися з особливостями нової версії.
Найбільш помітною перевагою ART є новий тип компіляції, який отримав назву Ahead-Of-Time. Читачі, які знають англійську мову, напевно відразу ж здогадалися, в чому справа. А справа в тому, що процес перетворення коду в новій версії здійснюється до запуску додатка - ще під час установки. Відповідно, відразу ж вимальовуються кілька мінусів, про які, справедливості заради, варто згадати. Це, по-перше, більш тривалий процес установки, а по-друге, більший обсяг кінцевого розміру програми. Ще один недолік є наслідком незрілості ART: віртуальна машина на даний момент працює далеко не з усіма додатками.
Втім, список заслуг куди більш значимий. Це, наприклад, більш плавна робота інтерфейсу і більш швидке завантаження додатків. Крім того, оскільки процес компіляції здійснюється лише один раз, він не буде в подальшому навантажувати процесор, що стане причиною поліпшеною автономності пристрою.
Переключитися на віртуальну машину ART в меню розробника можуть власники пристроїв під управлінням Android 4.4 з процесором Snapdragon.
Розвиток даної технології має величезний потенціал. На карті стоїть розвінчання міфу про повільність і нестабільності Android, що не тільки порадує власників пристроїв під її управлінням, а й ліквідує найбільш серйозний аргумент в суперечках з боку прихильників iOS.
На даний момент представники компанії Google не повідомляють про терміни остаточного впровадження і заміни Dalvik на ART. Хочеться вірити, що це станеться вже дуже скоро.
ART і Dalvik: Як воно працює Григорій Пасічник