Статья опубликована в рамках: Научного журнала «Студенческий» № 30(74)
Рубрика журнала: Информационные технологии
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3
СРАВНИТЕЛЬНЫЙ АНАЛИЗ СРЕД ИСПОЛНЕНИЯ ANDROID-ПРИЛОЖЕНИЙ - DALVIK И ART
В мире информационных технологий мобильные устройства служат не только для связи; они также имеют особенно важное значение в ежедневной работе пользователя, так как смартфоны стали выполнять различный спектр компьютерных задач. Именно поэтому мобильная разработка является быстроразвивающимся сектором отрасли разработки программного обеспечения, а оптимизация мобильных приложений является приоритетной задачей разработчиков операционных систем.
В настоящий момент одной из самых распространенных в сфере мобильной разработки является операционная система Android. Данная ОС является программным стеком на основе ядра Linux, который предназначен для управления памятью, устройствами и процессами. [1] Несмотря на то, что каждый смартфон на Android имеет ядро Linux, сама же Android-система имеет существенные отличия от других Linux-систем. Она содержит в себе ряд специфичных изменений, включающих в себя множество специализированных библиотек и дополнительных расширений ядра.
Все приложения, разработанные для мобильных устройств на платформе Android, исполняла своя персональная виртуальная машина Dalvik VM, созданная компанией Google в 2007 году. Исполнение программ в виртуальной машине имеет несколько преимуществ:
- работа виртуальной машины полностью изолирована от операционной системы мобильного устройства, что гарантирует безопасность ядра ОС, потому как код, способный навредить ему, не взаимодействует напрямую с системными файлами;
- использование виртуальной машины создает условия для кроссплатформенности. Приложения и программы, написанные для ОС Android, компилируются непосредственно перед установкой. Данное решение позволяет обеспечить большую совместимость.
- Virtual Machine была специально разработана для ОС Android. Она относится к регистровым виртуальным машинам, что создает идеальную совместимость для работы на процессорах RISC-архитектуры, к которым принадлежит наиболее используемый в смартфонах процессор ARM. Все программы для данной виртуальной машины пишутся на языке программирования Java, однако, Dalvik использует не стандартный байт-код Java, а персональный. Весь исходный код пишется на языке Java, а после компиляции сгенерированные файлы формата .class конвертируются в исполняемые файлы Dalvik Executable с расширением .dex. с помощью DEX компилятора, присутствующего в составе Android SDK. Файлы формата .dex имеют небольшой размер и оптимизированы для виртуальной машины. Dalvik VM использует способ JIT (just in time) компиляции файлов. [3] Его принцип работы состоит в том, что преобразователь кода активируется во время работы приложения. Большим недостатком данного способа является высокий расход ресурсов процессора при запуске программы, что приводит к некорректной работе используемых файлов. Решить данную проблему позволяет кэширование данных. Когда приложение запускается впервые, часть данных сохраняется в кэш-память, позволяя повышать производительность, однако данный способ не является полноценным решением проблемы. Чтобы исправить все вышесказанные недостатки, инженеры Google разработали новую среду выполнения приложений, называемую Android Runtime (ART)
С выходом новой версии Android 4.4 Kitkat, появился тестовый вариант новой виртуальной машины Android RunTime, а начиная с версии Android 5.0 и выше среда ART полностью заменила Dalvik.
Самое важное отличие Android Runtime и Dalvik VM – момент компиляции байт-кода. Dalvik реазизует подход JIT, преобразуя код в реальном времени в момент исполнения программы, в то время как в ART используется технология Ahead-Of-Time (AOT, «впереди времени»), заключающаяся в компиляции кода программы в момент ее установки на устройство. Данная технология увеличивает время, затрачиваемое на установку приложения и занимаемый объем памяти в хранилище Android устройства, однако приводит к общему увеличению производительности приложения, так как оно уже скомпилировано, а меньшее использование процессора и оперативной памяти по причине отсутствия повторной компиляции приводит к улучшенному энергопотреблению. [2] Также с появлением ART удалось уменьшить время, затрачиваемое системой на сборку мусора, что позволило избежать замираний графического интерфейса и снижения производительности приложений при работе с большими объемами данных. Введение Android Runtime не повлияло на процесс разработки приложений для Android, так как ART полностью совместима с байт-кодом Dalvik VM.
Наглядное сравнение преимуществ и недостатков ART и Dalvik VM представлено в таблице 1.
Таблица 1.
Сравнение Dalvik VM и ART
Dalvik (JIT) |
ART (AOT) |
Требуется меньше флеш-памяти для хранения, однако необходимо больше времени на запуск приложения |
Используется больше флеш-памяти для хранения, но тратится меньше ресурсов процессора и уменьшается время запуска программы |
Кэш приложений создается постепенно, что приводит к ускорению загрузки устройства |
Загрузка устройства происходит медленнее, так как кэш машинного кода создается при первой загрузке устройства |
Лучше подходит для устройств с маленьким объемом флеш-памяти, так как кэш машинного кода занимает меньше места |
Занимает больше флеш-памяти, так как кроме файлов APK хранит скомпилированный машинный код каждой программы |
Сегодня программная оптимизация мобильных устройств является приоритетной задачей производителей смартфонов и планшетных компьютеров, а скорость и плавность работы приложений – важный критерий для выбора устройства покупателем. Одним из методов повышения производительности программ является оптимизация среды исполнения системы.
Виртуальная машина Android Runtime, реализующая высокий уровень программных оптимизаций исполняемой среды Java, обеспечивает более высокую производительность и лучший опыт взаимодействия пользователя с устройством на платформе Android, чем ее предшественник Dalvik VM.
Список литературы:
- Гриффитс Д., Гриффитс Д. Head First. Программирование для Android. 2-е изд. — СПб.: Питер, 2018. — 912 с.
- Meier R., Lake I. Professional Android. 4th Edition. – Indianapolis: John Wiley & Sons, Inc., 2018. – 863 p.
- Материал из Android Open Source Project – Dalvik bytecode, URL: https://source.android.com/devices/tech/dalvik/dalvik-bytecode/ (дата обращения: 11.09.2019).
Оставить комментарий