1) Java - это язык SDK.Большинство приложений и должны быть написаны на Java.Единственная причина для NDK - для приложений, ранее написанных на C ++, которые должны быть перенесены на Android.Есть недостатки - он поддерживает компиляцию только на 2 разных процессора (один - процессор Nexus, один не может вспомнить, что другой).Поэтому, если вы используете C / C ++ в NDK, вы серьезно ограничиваете количество устройств, на которые вы можете отправить.
2) Если вы хотите использовать двойные аналоговые джойстики, почему бы не отобразить джойстики в углахэкрана и позволяют пользователю размещать свои пальцы на них?Вам не нужна аппаратная поддержка.
3) Android SDK поддерживает несколько разрешений экрана, поэтому вам не нужно беспокоиться об этом немедленно.Я бы хотел начать с WVGA (800x480 - Nexus One / HTC Desire).