Ответ 1
Первоначально инструменты разработки Android поддерживали только функции jdk 6. Но это было изменено, сначала Android Studio 0.3.2 в октябре 2013 года: http://tools.android.com/recent/androidstudio032released
Поддержка языковых функций, таких как оператор бриллианта, многопользовательский режим, try-with-resources, строки в переключателях и т.д. При создании нового проекта вы можете указать уровень исходного языка:
Обратите внимание, что вы можете использовать все эти языковые функции не только с Android KitKat, но и со старыми версиями Android! Есть одно исключение: try-with-resources, для чего потребуется minSdkVersion 19. Следовательно, Studio будет указывать любое использование в вашем коде try-with-resources, если ваша minSdkVersion меньше 19:
а затем плагин ADT 22.6 в марте 2014 года: http://developer.android.com/tools/sdk/eclipse-adt.html
Добавлена поддержка языковых функций Java 7, таких как многопользовательские, try-with-resources и алмазный оператор. Для этих функций требуется версия 19 или более новая версия Build Tools. Попытка ресурсов требует minSdkVersion 19; остальные функции нового языка требуют minSdkVersion 8 или выше. Чтобы использовать новые языковые функции после установки ADT 22.6.0, убедитесь, что вы запускаете Eclipse на JDK 7 и изменяете настройки проекта приложения, чтобы использовать JDK 7.
Android не должен быть на 100% совместим с любой версией Java SE API, а не с 6, ни 8, ни с какой-либо другой. это стало причиной судебного дела Oracle, направленного против Google, обвиняя Google в фрагментации Java. Некоторые API-интерфейсы невозможно реализовать на android как Swing; Представьте себе окно с закрытой кнопкой на андроиде! Другие были отложены, но реализованы: например, класс Charset находится в Java SE 1.4, но реализован в API android API 9, AutoClosable в Java 7, реализованном в API 19 API, для реализации возможности языковой функции try-with-resources. Некоторые API-интерфейсы существуют, но для разных целей в качестве консоли.