Оставив цель на API22 и запустив приложение на устройстве с платформой Android 6, я вижу, что DefaultHttpClient все еще работает, хотя и не поддерживается новой платформой.
Как это возможно, работает ли он в режиме совместимости?
Оставив цель на API22 и запустив приложение на устройстве с платформой Android 6, я вижу, что DefaultHttpClient все еще работает, хотя и не поддерживается новой платформой.
Как это возможно, работает ли он в режиме совместимости?
То, что он не поддерживается, не означает, что он был удален. В коде вы часто будете видеть «устаревшие» функции. Это функции, которые не поддерживаются, но намеренно не удаляются.
В этом случае вы используете функционал из библиотеки Android API22. Чтобы сохранить обратную совместимость, функции предыдущих API почти никогда полностью не удаляются из фактической среды Android.
При компиляции чего-либо с API уровня 22 APK фактически будет содержать части этой библиотеки. В данном случае это означает, что DefaultHttpClient из API22 фактически включен в ваше приложение. Он не использует версию, которой (нет) на телефоне. Какие части должны быть включены в ваше приложение, решается в:
android {
compileSdkVersion 23
buildToolsVersion "23.0.0"
defaultConfig {
minSdkVersion 17
targetSdkVersion 23
}
}
Все, что отсутствует на уровне API 23, но доступно на уровне 17, будет включено в ваше приложение.