Короткая версия: работать с C ++ на Android можно и проще с каждой версией Android SDK / NDK, но это сложнее, чем с Java.
Длинная версия:
Для каждой версии Google добавляет дополнительные функциональные возможности в Android Native Development Kit и делает его все более независимым от кода Java.
Прочитайте http://developer.android.com/sdk/ndk/overview.html для получения более подробной информации:
Напишите собственное действие, которое позволяет вам реализовать обратные вызовы жизненного цикла в собственном коде. Android SDK предоставляет класс NativeActivity, который является вспомогательным классом, который уведомляет ваш собственный код о любых обратных вызовах жизненного цикла активности (onCreate (), onPause (), onResume () и т. Д.). Вы можете реализовать обратные вызовы в своем собственном коде для обработки этих событий, когда они происходят. Приложения, использующие собственные действия, должны быть запущены на Android 2.3 (API Level 9) или более поздней версии. Вы не можете получить доступ к таким функциям, как Сервисы и Поставщики контента, поэтому, если вы хотите использовать их или любой другой API-интерфейс платформы, вы все равно можете написать код JNI для этого.
Проблема только в том, что если вы используете самую последнюю версию NDK, вы не сможете развернуть и многие не последние версии Android.
В любом случае, даже с предыдущими версиями NDK вы можете иметь минимальный Java-код (для взаимодействия с ОС) и полный код приложения на C ++ или что-то родное.
Также прилагаются усилия, чтобы помочь родным разработчикам в полной мере работать на C или C ++ с помощью плагинов IDE, таких как Vs-Android, который является плагином для Visual Studio 201x, скрывающим от вас весь процесс компиляции и генерации: http://code.google.com / р / VS-андроид /
Кроме того, если вы планируете переносить ваше приложение на другую ОС, хорошей идеей будет использование C ++ для ядра вашего приложения (возможно, с языком сценариев сверху). Это просто дороже с точки зрения времени разработки, чем другие альтернативы - по причинам, специфичным для C ++ и доступных реализаций инструментов разработки, например, слишком большое время компиляции может снизить вашу эффективную производительность.
При этом, это не самый простой способ работать с мобильными приложениями.