Что происходит, когда пользователь запускает приложение для Андроид?

05.08.2019 18:29 Суровцев Максим Клуб: Android

Итак, после создания сайта и разработки под android вашего приложения, сегодня рассмотрим интересную тему о том, что возникает, когда запускается установленное приложение для Андроид. 

Вначале краткое разъяснение данной операции. Есть специальный контейнер, в котором собирается вся информация о программе. Она всегда работает в отдельном процессе и может определять только заданные команды.

Каждое такое хранилище получает свой уникальный идентификатор, помеченный как PID. Управление действиями связано с операционной системой, а точнее с ее ядром. Здесь гарантируется правильное выполнение задач, и доступ к нужному объему памяти.

Каждый процесс обладает отдельным электронным ящиком, в который записывается вся необходимая информация. Processus также может включать потоки. Разница в том, что они разделяют память, выделенную для определенной функции. Большинство известных приложений имеют один процесс и несколько потоков, работающих как часть этого действия.

Типы изменения утилит

Система Android различает 4 типа явлений, на основе которых определяются приоритеты их выполнения от высокого до низкого уровня. 

Видимые действия, чем-то похожи на предыдущие явления. Разница заключается в том, что приложение Android их уже определило, но в настоящее время оно не нужно. Это может быть, например, «прога», работающая в режиме разделенного экрана или аппаратное обеспечение, выполняющее что-либо в фоне.

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

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

Тем не менее, электронные функции в вышеуказанном списке являются первыми кандидатами на ликвидацию, когда не хватает памяти. Перечень отсортирован по порядку и в случае нехватки хранилища система сначала удалит процессы, которые длительный период не использовало приложение Андроид.

Как выглядит запуск программы?

Код, написанный на языках Java или Kotlin, преобразуется в байтовый шифр (предназначен для виртуальных эмуляторов), сохраненный в файлах с расширением dex. Однако эти электронные знаки все еще не очень читабельны для процессора, потому что данный блок добавляет только двоичные числа. Можно перевести код непосредственно в машинный, минуя bytecode, но нужно точно знать, на каком типе устройства будет создано Mobile App.

Почему почти каждое приложение Android занимает все больше места? Там есть папка с библиотеками. Ее код готов к запуску непосредственно на чипсете, а это значит, что обязано быть несколько версий утилит, в зависимости от архитектуры, на которой работает устройство. То же происходит со стандартными условными обозначениями Java, если скомпилировать их непосредственно в машинные символы.

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

К счастью, есть такое решение, и оно называется виртуальной машиной. Именно она обрабатывает файлы dex в понятные для человека инструкции. Благодаря автоматическому комплексу утилита работает в соответствии с намерениями его создателя.

Далвик – побег из Оракула

Google может использовать аппаратную систему Java для своей платформы, но в случае мобильных устройств необходимо приобрести специальную лицензию. Чтобы обойти это требование, американский поисковик решил создать собственную virtual machine. Ее источники полностью открыты, поэтому заинтересованные лица смогут посмотреть на них.

 

Dalvik использует JIT – сборку для преобразования кодов. Это означает, что каждый раз, когда запускалось приложение для Андроид, комплексу Далвик приходилось компилировать часть своего байтового кода. Если достигалась потребность в следующих элементах программы, другие части символов преобразовывались в машинный код. Легко заметить, что для этого задействовались малые ресурсы.

К счастью, в настоящее время проблема исчезла. Вернемся к вопросу о спорах между Google и Oracle. Изначально разработчики Android хотели сотрудничать с Sun Microsystems (создатель Java), использовать стандартные библиотеки и их виртуальную машину. Производитель предложил купить лицензию (сумма от 30 до 50 миллионов долларов).

Цена была подъемной для корпорации из Калифорнии, но Sun дополнительно потребовала большего влияния на разработку мобильной ОС, что было неприемлемо для ее создателей. Поэтому поисковик и сделал свою машину, способную интерпретировать этот код. Однако оспаривающая сторона считает, что Гугл украл их детище.

Приемник ART

Android Runtime представили как виртуальную среду по умолчанию на Андроид No 5.0 Lollipop. Здесь немного изменился подход к преобразованию кодов. Вся процедура выполняется, когда уже устанавливается приложение Андроид (AOT). Такое нововведение немного снизило скорость процесса, но в то же время сократило период, необходимый для запуска утилиты, а также уменьшилось энергопотребление аккумуляторов смартфонов.

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

Теперь можно регулярно проверять нагрузку на ресурсы, освобождать память и многое другое. Интересно, что седьмая мобильная версия ОС использует компиляции JIT и AOT для лучшей производительности.

Заключение

Давайте подведем итоги того, что на самом деле происходит в момент нажатия на значок программы. Прежде всего, система создает новый процесс, предназначенный для этой синтаксической единицы, вместе с соответствующим объемом памяти и доступом к чипсету. 

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

Похожие новости
Написать комментарий