Що ще робить процес зиготи в Android L?


13

Я намагаюся з’ясувати конкретні відмінності в режимі виконання Dalvik та ART. Я усвідомлюю, що ART більше не використовує Dalvik VM, однак, однією з перших речей, яку я помітив після встановлення попереднього перегляду Android L, було те, що процес зиготи все ще працює. Якби вони справді позбулися Далвік В.М., чи не зробить це процес зиготи марним? Крім того, після огляду вихідного коду, оприлюдненого через AOSP, значна частина Dalvik залишається.


1
Важко знати, це реліз для розробників і FAR від завершення. На даний момент у нього прошито багато Kitkat / Jellybean лише для того, щоб він працював і завантажувався.
RossC

Будучи ще " попереднім попереднім переглядом ", міркувати справді може не так вже й багато сенсу (хоча я дотримуюся пояснення Дана). Це може бути так, як описав Ден, або це може бути "ліворуч", який ще не "остаточно застарів". Коли він все ще працює на L-Release, це вже інша річ.
Іззі

Відповіді:


14

Зигота насправді не пов’язана з Далвіком, це просто ініціативний процес. Zygote - це метод, який Android використовує для запуску програм. Замість того, щоб запускати кожен новий процес з нуля, завантажуючи всю систему та рамки Android заново кожен раз, коли ви хочете запустити додаток, він робить цей процес один раз, а потім зупиняється на цьому етапі, перш ніж Zygote зробить щось, що стосується додатків . Потім, коли ви хочете запустити додаток, процес Zygote розгортається, і дочірній процес продовжується там, де він припинився, завантажуючи сам додаток у VM.

Хоча цей метод спочатку був розроблений для Dalvik, немає ніяких причин ART не повинен вести себе так само. Додаток для компіляції у JIT не має, коли вони запущені, але він все ще має багато додатків, незалежних від Java, для завантаження (тобто, всієї Android-системи), тому є сенс використовувати один і той же форк, коли- завантажений метод для запуску нових процесів.

Це природно для такого великого проекту, що в Далвіку залишилися б інші ліві, які все ще корисні в постдалвіцькому світі, тому не варто дивуватися, що існує інший код, який спочатку був написаний як частина або співпрацювати з Далвіком, який ще є для використання АРТ.


Відповідає моєму розумінню Зиготе (будучи неробочим). З "погляду користувача", мабуть, полегшується уявлення про Zygote як "сервер додатків", який виступає як "рівень абстракції" між додатками та ОС (якось так, як HAL робить абстрактне обладнання): це не має значення що "внизу" (Dalvik чи ART), інтерфейс стосується "речі"?
Izzy

1
Це може полегшити уявлення про Zygote як сервер додатків, але це не дуже точний опис. Це лише частина ОС, яка запускає програми, і це дуже багато на стороні ОС на межі програми-ОС.
Дан Хулм

Дякую, так що принаймні моє "базове розуміння" було правильним (я знаю, "сервер додатків" не точний, але простіший для розуміння "звичайний користувач" - так давайте зробимо його " службою прикладних програм ", щоб донести це далі сторона ОС;)
Izzy

Те, що існує у вихідному коді, не є «лівими», і ми не в епоху після Дальвіка! Біт-код Dalvik все ще використовується ІЧ. Навіть з найвищими налаштуваннями, не все компілюється AOT, і все ж є деякі речі, які потрібно інтерпретувати. Отже, для них існує DalvikVM . Також пристрої з низьким обсягом пам’яті будуть використовувати менше AOT більше інтерпретації. Нарешті, зигота закладає купу часто використовуваних класів, що дозволяє заощадити місце, оскільки їх можна розділити між кількома програмами.
Пашаліс

@Paschalis ви плутаєте компіляцію JIT з DalvikVM. Тільки тому, що новіші версії ART компілюють JIT (щойно), це не означає, що Далвік все ще існує. Oracle Java також робить компіляцію JIT, не означає, що вона використовує Далвік
Мартін Конечний
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.