LINUX.ORG.RU

Android переходит на ART

 


3

2

В ветке репозитория AOSP приняты изменения активирующие для выполнения приложений новую среду выполнения ART и отключающие использование виртуальной машины Dalvik.

ART позволяет в нативном виде, без использования виртуальной машины, запускать приложения, скомпилированные в момент установки. Это позволяет заметно повысить производительность программ.

В ART используется более продвинутый «сборщик мусора», который использует многопоточность и минимизирует действия, которые приводят к остановке выполнения. При использовании ART применяются намного более жесткие методы контроля программ в процессе установки


Поддержка ART была добавлена в выпуске Android 4.4, но требовала изменения настроек для активации. Переход на ART в AOSP говорит о том, что в следующем мажорном выпуске Android эта технология будет применяться по умолчанию.

>>> Подробности

★★★★★

Проверено: fallout4all ()
Последнее исправление: cetjs2 (всего исправлений: 2)

запускать приложения, скомпилированные в момент установки.

Это как? То есть программы распространяться в виде исходных кодов будут? И устанавливаться по 3-4 часа?

Landgraf ★★★★★
()

ART позволяет в нативном виде, без использования виртуальной машины, запускать приложения, скомпилированные в момент установки.

То есть, для Android теперь можно и не на Java писать?

bluesman
()
Ответ на: комментарий от bluesman

ART же представляет из себя AOT-компилятор (Ahead-Of-Time), который преобразует Java-код в «нативный» в процессе установки приложения. То есть пользователь запускает программу уже скомпилированной, что существенно ускоряет ее открытие и выполнение. Вдвойне интересно, что ART уже встроен в Android 4.4 KitKat и активировать его можно в меню разработчика. После переключения на libart.so (библиотека компилятора) устройство перезагружается и компилирует все уже установленные приложения. Ребята из Android Police, внимательно изучившие ART, утверждают, что на кастомных прошивках из AOSP этого делать пока не стоит — могут возникнуть проблемы с пакетом программ от Google.

int13h ★★★★★
() автор топика
Ответ на: комментарий от bluesman

То есть, для Android теперь можно и не на Java писать?

Скачай из маркета Qt5 demo, она в нативе, и даже под android 2.3 запускалась.
Другое дело, что ПО, рисующее штатный интерфейс, дергающей интенты и т.д., надо на жабе писать.
Так что правильный вопрос будет звучать так:

То есть, для Android теперь НЕ надо писать нативные костыли на сях с биндингами в узких местах приложения?

shahid ★★★★★
()
Последнее исправление: shahid (всего исправлений: 1)
Ответ на: комментарий от int13h

ART уже встроен в Android 4.4 KitKat и активировать его можно в меню разработчика

Включил. Пока всё в порядке =)

Alsvartr ★★★★★
()
Ответ на: комментарий от int13h

Только увидел что у меня (cyanogenmod 11) можно переключить, только ссыкотно как то, тем более я на ночных сборках сижу. А так хочется. (

unixnik ★★★★★
()
Последнее исправление: unixnik (всего исправлений: 1)
Ответ на: комментарий от unixnik

у меня (cyanogenmod 11) можно переключить, только ссыкотно как то

Делай бэкап и переключайся, нормально он на cm11 работает (на нексусе 7 точно), хоть и предупреждают, что не поддерживается командой cm

xorik ★★★★★
()
Ответ на: комментарий от unixnik

На стоковом 4.4.3 всё норм. Только разницы особой, боюсь, не заметишь =)

Alsvartr ★★★★★
()
Ответ на: комментарий от anonymous

Скорость поднялась на целых 10%! Это прорыв.

нужно же смотреть сколько Ватт-час оно сэкономит.

mashina ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Отлично! Давно пора. Будет меньше причин юзать NDK.

Оверхеды на GС и неоптимальное использование памяти всё равно никуда не уходят.

mashina ★★★★★
()

применяются намного более жесткие методы контроля программ в процессе установки

Окно «Вы точно-точно хотите разрешить этому приложению доступ к следующим вещам:»?

buddhist ★★★★★
()
Ответ на: комментарий от bluesman

Хоть что-то хорошее вышло из победы оракла в суде, хе хе хе.

anonymous
()
Ответ на: комментарий от Landgraf

нет
В android они работают путем JIT-компиляции
А теперь AOT - во время установки все скомпиляется

ubuntuawp ★★
()
Ответ на: комментарий от mashina

Оверхеды на GС

неоптимальное использование памяти

И где на андроиде приложения, которые стоило бы писать без с gc и автоматического управления памятью, приобретя кучу утечек и других веселых проблем?

buddhist ★★★★★
()
Ответ на: комментарий от unixnik

На xda-developers есть мануал, как из рекавери настройку поменять обратно. Так что запасить свободным временем на тестирование и переключай.

Я вот сегодня так и сделал. Сначала всё дико лагало, потом я перезагрузил и лагало чуть меньше, потом я почистил память (оно кучу бинарей откомпиленных насоздавало, огромных, и заняло всю память) и стало работать как и с далвиком. Разница в скорости и энергопотреблении нулевая. Хотя по-моему батарейку жрёт чуть больше, но я мало тестил.

vurdalak ★★★★★
()
Ответ на: комментарий от Landgraf

вместо JIT(компиляция во время запуска) применяется компиляция во время установки.. а распространяется оно в промежуточном JAVA-байткоде как и раньше, просто рантайм другой..

Thero ★★★★★
()
Ответ на: комментарий от bluesman

и раньше можно было... но про то что вы спрашиваете нет. пока нет.. а там глядишь и на Go всё переведут..

Thero ★★★★★
()

велосипед для увеличения производительности довольно прожорлив. Ну да, действительно, зачем менять систему defective by design, если можно сделать «ненужно» и гордиться им. Вот вам и 10%.

P.S. Пользуюсь Motorola C115

reprimand ★★★★★
()
Ответ на: комментарий от bluesman

То есть, для Android теперь можно и не на Java писать?

уже давно. qt наше всё

anonymous
()
Ответ на: комментарий от xorik

ага тока с программами юзающими рут надо быть аккуратнее.. чейнфайр предупреждает шо можно словить бутлуп на ровном(ну почти) месте..

Thero ★★★★★
()

и на сколько удалось повысить производильность?? К чему банкет?

ii8_ ★★★★
()
Ответ на: комментарий от buddhist

И где на андроиде приложения, которые стоило бы..

Если хотел спросить какие приложения стоило бы писать нормально, то ответ прост - все стандартные приложения.

... писать без с gc и автоматического управления памятью, приобретя кучу утечек и других веселых проблем?

тут написан какой-то бред, даже не знаю что на это ответить.

mashina ★★★★★
()
Ответ на: комментарий от mashina

Ты хочешь сказать, что GC не избавляет от потенциальных багов с ручным управлением памятью и не снижает резко требуемый уровень навыка системного программирования у разработчика?

buddhist ★★★★★
()

Интересно, на Sailfish портируют?

Myau ★★★★
()

Всего лишь новая виртуальная машина с AoT компиляцией. Ну да, стартовать приложения будут чуток быстрее. От чего столько радости? Причем тут Qt вообще?

d9d9 ★★★★
()
Ответ на: комментарий от buddhist

Ты хочешь сказать, что GC не избавляет от потенциальных багов с ручным управлением памятью...

Смотря какой GC. Если это GC из какой-нибудь явы, то он только одни проблемы заменяет другими. Скилл диагностики и тюнинга такого GC не проще скилла пользования умными указателями из с++11, скорее даже выше.

...и не снижает резко требуемый уровень навыка системного программирования у разработчика?

GC это вообще не про системное программирование и скилл общий не снижает, может только уменьшать время начальной разработки. Если обезьяна не в состоянии осилить паттерн вышеупомянутых умных указателей, то её вообще опасно допускать до кодинга, плоды дедятельности таких кадров просто не нужны.

mashina ★★★★★
()
Ответ на: комментарий от unixnik

только ссыкотно как то

Ты не униксоид, ты просто ссыкло. Хоть и ник юниксовый.

anonymous
()
Ответ на: комментарий от buddhist

И где на андроиде приложения, которые стоило бы писать без с gc и автоматического управления памятью, приобретя кучу утечек и других веселых проблем?

Автоматического подсчета ссылок современным программистам уже не хватит? Слабые ссылки расставлять не умеют?

note173 ★★★★★
()
Ответ на: комментарий от unixnik

включал art еще в прошлом году, когда он только вышел. почти все работало кроме некоторых прилаг написанных на C# (как ни странно).

pftBest ★★★★
()
Ответ на: комментарий от pftBest

Да что вы все с ним няньчитесь? У него наверняка ещё виндовс мобиле прозапас есть, на всякий пожарный, как бы чего не вышло.

anonymous
()
Ответ на: комментарий от vurdalak

Разница в скорости и энергопотреблении нулевая.

Пробовал как только cm11 поставил - аналогично.
Только одни недостатки повылазили:
- софт стал «жирнее» из-за того что теперь в скомпилированном виде лежит.
- апдейт прошивки длится с этим ART значительно дольше (потому что оно начинает всё понаустановленное перекомпилировать «optimizing apps»)

invy ★★★★★
()
Ответ на: комментарий от shahid

То есть, для Android теперь НЕ надо писать нативные костыли на сях с биндингами в узких местах приложения?

Читал, что 2/3 популярных приложений из маркета используют биндинги на сях. Не верю что арт как-то изменит ситуацию. Из-за этих биндингов андройд прибит гвоздями к ARM также как виндовс к интелю

makoven ★★★★★
()
Ответ на: комментарий от mashina

«В какой нибудь там яве» все GC на пальцах пересчитать. А разобраться в них, дело четырёх часов. Среднестатистическому джава прогрммисту на этим замарачиваться и не нужно.

ii8_ ★★★★
()

Ничего, после внедрения этой технологии разработчики с радостью компенсируют возросшую производительность программ своим кривым неоптимизированным кодом.

anonymous
()

И что, андроид всё таки перестанет сжирать 60% RAM сколько бы ее там ни было?

SjZ ★★★★★
()
Ответ на: комментарий от int13h

libart.so

Следущий этап — libastr.so
Увеличение производительности в 20 раз.

greenman ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.