Эта заметка продолжает размышления на тему решений Intel Atom в платформах Android. Начало в статье про Lenovo K900.
Конечно Android построен таким образом, чтобы обычные приложения не зависели от архитектуры. Это достигается использованием виртуальной машины (аналогичной Java) под названием Dalvik. Но официально у Google Android SDK есть так называемый NDK - Native Development Kit. Это набор для разработчиков приложений, позволяющий создавать приложения с поддержкой бинарных библиотек, т.е. тех, которые написаны непосредственно под архитектуру (а сейчас это пока только ARM по сути!) и не использующих Dalvik. Вот такие приложения не будут работать на атоме вообще, пока их разработчик не добавит туда библиотеки NDK для x86. А это произойдет неизвестно когда и только если x86 станет популярным.
Даже между разными GPU зачастую нет совместимости. Разработчикам игр приходится делать разные кеши текстур, учитывать различные популярные SoC. Так и пишут отдельно поддержку для Mali, отдельно для PowerVR и т.д. Я думаю многие сталкивались с тем, что какая-то игра не идет на их устройстве. А разница в GPU еще не так сильно проявляется. В случае с Intel Atom и x86 речь идет уже о разнице архитектуры CPU.
В своё время пытались продвинуть архитектуру MIPS. Это еще одна нетипичная для Android архитектура. Был например такой чип SoC на MIPS: Ingenic JZ4770. Но не сильно они пошли в массы, даже при своей дешевизне. Именно из-за проблем совместимости приложений, связанных с другой архитектурой.
А ведь MIPS хотя бы строится на концепции RISC процессора. Т.е. Reduced Instruction Set. А x86 это уже CISC. Принято полагать, что RISC лучше подходит для встраиваемых, мобильных систем. Точнее со временем оказалось, что RISC работает быстрее. И даже современные x86 хоть и являются подмножеством CISC, при исполнении инструкций они уже при исполнении преобразуют CISC-инструкции x86-процессоров в более простой набор внутренних инструкций RISC (цитата из Википедии).
Нет, ни в коем случае не подумайте, что я что-то имею против Intel и x86. Intel молодцы и они проделали большую работу. Корпорация Intel специально сотрудничала с Google по вопросам портирования и совместимости Android на платформе x86. А Z2580 был специально разработан для работы с Android именно с учетом результатов этого сотрудничества. Так что есть немалые надежды, что со временем x86 на Android станет нормой и избежит большинства из описанных проблем. Я лишь призываю для начала задуматься над (опять же подчеркну) возможными проблемами, вызванными сменой архитектуры.
Просто кругом куча восторгов от хороших результатов синтетических тестов (они и правда очень многообещающие). А вот таким вещам почему-то мало уделяется внимания. Что делать простым потребителям, ждущим Lenovo K900 или другие смарты на Atom'е? Мой совет - не спешите. Дождитесь официального выхода и подробных отзывов и обзоров реальных аппаратов. Если конечно не хотите рисковать.
PS: Вышесказанное - моё личное мнение на основе опять же личного опыта и анализа информации в сети. Желающим подискутировать на тему - милости прошу в комментарии, всегда рад общаться.