Не стоит путать трансляцию, интерпретацию и компиляцию. Постановка вопроса неточна в целом.
Java является транслируемым языком, а не интерпретируемым. Трансляция идет в опкод Java LLVM (в обычном случае) или в опкод Dalvik LLVM (в случае сборки для Android). После трансляции, исполняемый DEX (Dalvik Executable) файл содержит предварительный (сырой) байткод. Это уже не текст, который надо интерпретировать, это уже код операционных команд виртуальной машины низкого уровня. В момент запуска на конкретном устройстве, DEX файл дополнительно обрабатывается (всего один раз, при запуске приложения): из него удаляются элементы совместимости, блоки типа "if( value )", где value - это "final bool == false" (и много еще чего); после чего подается на обработку процессору LLVM.
Поэтому можно не беспокоиться о медленности интерпретации Java кода, т.к. интерпретации нет. Возможно меня даже анафеме предадут за то, что я яву назвал транслируемым, а не компилируемым языком. :)
Больше обо всем этом можно узнать в документации по Sun Java Machine и в документации Android Dalvik Machine.
Однако, возвращаясь к вопросу о компилируемых языках. Сам язык, как моя практика показывает, значения тут не имеет. Любой язык может стать как транслируемым, так и компилируемым или интерпретируемым. Для разработки на Android существует уже много инструментов с поддержкой множества самых разных языком. Кое-кто и python использует в качестве языка разработки проектов.
Существует так называемая связка поддержки низкого уровня. В нее входят средства компиляции языков в команды непосредственно процессор(а|ов). Для Android этим целям служат языки C и C++.
И, раз уж в вопросе делается акцент на максимальное быстродействие программы, можно предположить что именно этот момент интересен больше всего.
Native Development Kit - NDK - позволяет создавать низкоуровневые модули для последующего подключения их в основной код проекта (написанный обычно на Java). Во времена ранних версий (1.6-2.0-2.2) андроида, команда разработчиков рекомендовала минимизировать объем низкоуровневого кода и опираться только на средства Java.
Однако, со временем стало понятно что низкоуровневый код пользуется большой популярностью и функциональность NDK стала увеличиваться. С каких-то пор стало и вовсе возможно создавать исключительно C/C++ приложения без кода на яве, только это тот еще геморрой.
Использовать C/C++ для разработки на андроид не сложнее использования оных в разработке для других ОС, но ровно до момента, когда надо пообщаться со стороной на яве. Для налаживания общения между C/C++ и Java кодом в NDK имеется интерфейс JNI. С JNI проще всего познакомиться на сайте Oracle, в разделах документации к Java.