2016-06-07 2 views
0

Кажется, google представляет довольно много интересных функций в платформе Android Nroid, например частичную поддержку Java 8. Я хочу использовать его для своего первого приложения для Android. Однако у меня есть вопрос - если мое приложение будет реализовано с использованием инструментов Android N с использованием функций Java 8, но с настройками минимальное sdk = 4.1 будет ли мое приложение работать на Android 4, 5, 6?Могу ли я использовать приложения, разработанные с платформой Android для Android в предыдущих версиях Android OS

+1

«Я хочу использовать его для своего первого приложения для Android» - это не очень хорошая идея, ИМХО. Подождите, пока Android N не выйдет в финальной форме (предположительно «Android 7.0») через несколько месяцев. – CommonsWare

+0

Я новичок в android, и это в основном для обучения. Но мой личный телефон работает под управлением Android 5, поэтому мне нужно знать - будет ли мое приложение работать на нем или нет. –

+1

Не сейчас. Приложения, составленные против N Developer Preview, будут запускаться только на устройствах N Developer Preview, если вы не предпримете довольно неприятные и сложные шаги, чтобы попытаться обойти это ограничение. Это одна из причин, почему я предлагаю вам ждать использования Android N, пока она не отправится в окончательной форме. – CommonsWare

ответ

3

Да, ваше приложение будет работать на предыдущих версиях Android, если вы используете библиотеки поддержки. Они обновлены новыми версиями Android для обеспечения обратной совместимости с новыми функциями. Это обычная практика.

https://developer.android.com/topic/libraries/support-library/index.html

Для Java 8, это звучит, как вам нужно будет быть избирательным в том, что вы используете.

Из документации: https://developer.android.com/preview/j8-jack.html

Поддерживаемые Java 8 Особенности языка и API-интерфейсы Android в настоящее время не поддерживает все возможности языка Java 8. Однако следующие функции теперь доступны при разработке приложений с таргетингом на Android N Preview:

по умолчанию и статические методы интерфейса

лямбда-выражения (также доступны на уровне API 23 и ниже)

повторяемые аннотаций

Ссылки на методы (также доступны на уровне API 23 и ниже)

Примечание: Чтобы проверить лямбда-выражения и ссылки на методы в более ранних версиях Android, перейдите к своей сборке .gradle и установите для compileSdkVersion и targetSdkVersion значение 23 или ниже. Вам все равно нужно включить инструментальную цепочку Jack для использования этих функций Java 8.

+3

Приложение OP не будет работать в предыдущих версиях Android до тех пор, пока Android N не отправится в окончательную форму, если только OP не предпримет значительных шагов. После того, как вы укажете, что вы компилируете и настраиваете таргетинг на '' N'', 'minSdkVersion' вашего приложения добавляется в' 'N'', и ваше приложение будет работать только на устройствах N Developer Preview. Помимо этого, я лично немного туман, относительно того, какие части поддержки Java 8 будут обратно совместимы или нет, и мало того, что это обязательно будет покрыто библиотеками поддержки Android. – CommonsWare

+0

в этой статье упоминает, что библиотеки поддержки в основном используются для устранения отсутствия API. Но в моем случае это будет следующая языковая версия. Вы уверены, что это подходит для этого случая? –

+1

звучит так, будто это будет смешанная сумка для Java 8. Если вы хотите, чтобы ваше приложение было обратно совместимо, вы должны быть выборочным в том, что вы используете. Похоже, Lambdas и ссылки на методы уже можно использовать в предыдущих версиях, но других функций нет. Вот лучшая ссылка на то, что вы ищете: https://developer.android.com/preview/j8-jack.html –

Смежные вопросы