Существует ли Android на других платформах, кроме ARM?
Я хочу портировать приложение, написанное на C++, на Android. Преобразование приложения из C++ в Java потребует большой работы, которую я предпочел бы использовать для улучшения приложения для этой платформы вместо исправления ошибок преобразования и решения проблем рефакторинга.
NDK кажется хорошим маршрутом, но на самом деле я не хочу пропустить платформу (если она составляет значительную долю рынка) только потому, что NDK не поддерживает или не поддерживает ее.
Android утверждает, что поддерживает MIPS, ARM, X86 и другие... но на самом деле все реализации, которые я видел, только на ARM (или совместимы с arm). Я проверил это на этом сайте: http://www.pdadb.net/
Было бы плохим решением использовать NDK?
Есть ли устройства без ARM, которые работают или будут работать под управлением Android?
Где я могу найти больше информации об этом?
Заранее спасибо!
4 ответа
На данный момент проблема не в том, что вы не потеряете свою долю на рынке из-за архитектуры ЦП, так как на данный момент очень мало устройств, не поддерживающих ARM Android, проблема в том, что вы можете потерять свою долю на рынке из-за необходимости запуска Android 2.3. или позже, который вы должны будете использовать для создания полностью собственного приложения с доступом к окну, датчику и подсистемам ввода.
Избегать переписывания кода - хорошая цель, но вам, вероятно, придется все равно переписывать части кода из-за разнородных окон Android и API жизненного цикла. Теперь вам придется переписать некоторые важные части кода на C++, а не на Java.
Вы можете попробовать гибридный подход, при котором вы пишете большую часть пользовательского интерфейса на Java, а затем делаете вызовы к существующему коду C++.
Вы делаете игру? Тогда вы, вероятно, захотите разобраться с этими проблемами и продолжить работу с NDK. Если нет, попробуйте реализовать как можно большую часть программы на Java и использовать NDK для сложных, проверенных частей вашего кода, которые должны быть быстрыми.
Документация дает следующее:
The latest release of the NDK supports these ARM instruction sets:
ARMv5TE (including Thumb-1 instructions)
ARMv7-A (including Thumb-2 and VFPv3-D16 instructions, with optional support for NEON/VFPv3-D32 instructions)
Future releases of the NDK will also support:
x86 instructions (see CPU-ARCH-ABIS.HTML for more information)
Было бы плохим решением использовать NDK?
Для алгоритмов NDK хорошо. Для игр NDK хорошо. Для реализации обычного приложения NDK не будет очень полезным.
Есть ли устройства без ARM, которые работают или будут работать под управлением Android?
Google TV работает на x86 (Atom).
Используйте этот улучшенный NDK: http://developer.mips.com/android/download-android-ndk/