Чего будет стоить Google реализация поддержки 64-битных процессоров в Android?

Android

С релизом нового iPhone компания Apple открыла дорогу 64-битным процессорам в мобильную индустрию и сегодня практически каждый уважающий себя чипмейкер располагает обширными планами по выпуску собственных 64-битных решений.

Без сомнения, специалисты Apple заслуживают похвалы, ведь им удалось в максимально короткие сроки адаптировать iOS под новые процессоры, существенно опередив другие программные платформы для мобильных устройств.

Очевидно, что уже сейчас перед Google стоит достаточно сложная задача оптимизации платформы Android для работы с 64-битными чипами, посмотрим, какого прогресса в этом направлении уже удалось добиться компании из Маунтин-Вью, а также попробуем оценить масштаб работ, которые еще предстоят.

Стоит сразу обратить внимание на тот факт, что переход к использованию 64-битных процессоров вовсе не ориентирован на преодоление ограничения по объему оперативной памяти размером 4 Гбайт, ведь в данном случае речь идет об адаптации новой процессорной микроархитектуры ARMv8 с обновленным набором инструкций, которые и будут ответственны за реальное увеличение производительности. При этом понятие 64-битных процессоров, а не процессоров с архитектурой ARMv8, упоминается чаще просто потому, что его легче воспринять среднестатистическому пользователю.

Если говорить о работе, уже проделанной инженерами Google, то стоит отметить, что ядро платформы Android включает в себя поддержку 64-битных чипов, которую оно унаследовало еще от Linux.

Также известно, что немалую поддержку Google оказывают и производители Android-устройств, уже сейчас работающие над новыми флагманскими девайсами с 64-битными чипами собственной разработки. Не отстает в этом отношении и Qualcomm, уже успевшая презентовать бюджетный вариант 64-битного чипа Snapdragon 410, с планами по скорому релизу более производительных решений Snapdragon 610 и 810.

Других особых достижений у Google в отношении адаптации Android для работы с 64-битными процессорами пока нет, поэтому задача перед разработчиками стоит достаточно сложная. Для начала изменений требует документация для разработчиков приложений, где сейчас платформа Android позиционируется, как полностью 32-битная система.

На сегодняшний день, все runtime библиотеки (медиа, графика, файловая система и т.д.), а также драйвера для бесчисленного количества девайсов полностью выполнены в 32-битном исполнении и требуют адаптации под 64-битную архитектуру, что, в принципе, для Google не является нерешаемой задачей.

Также нельзя забывать, что в Dalvik Virtual Machine используются 32-биитные регистры. Приложения в APK-формате запускаются под Android посредством компилятора JIT (just-in-time) либо представленной в Android 4.4 среды ART (Android Runtime). Поэтому в будущем придется перейти к использованию новой среды AOT (ahead-of-time), где код приложения будет «побайтово» разбираться в процессе установки и в работу будут браться только те части кода, которые необходимы в данный конкретный момент времени. Так или иначе, 32-битные регистры, по сути, являются абстрактным понятием и не имеют ничего общего с аппаратным обеспечением, поэтому ощутимых проблем при переходе к 64-битной архитектуре доставить не должны.

Также проблемы могут возникнуть в случае с совместимостью приложений, использующих Android NDK для кодирования посредством C/C++. Такие приложения должны быть полностью переписаны или же в Android придется использовать две различных среды для поддержки подобных программ.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *