1

En quittant la cible sur API22 et en exécutant l'application sur l'appareil plate-forme Android 6, je vois que DefaultHttpClient fonctionne toujours, même si elle n'est pas supportée par la nouvelle plate-forme.DefaultHttpClient fonctionne-t-il encore sur Android 6?

Comment est-ce possible, fonctionne-t-il en mode de compatibilité?

+0

HttpClient Déconseillé depuis le niveau API 22 .Utilisez HttpURLConnection .http: //android-developers.blogspot.in/2011/09/androids-http-clients.html –

+1

@IntelliJAmiya Toutes les fonctionnalités de HttpClient ne sont pas disponibles dans HttpURLConnection. Il y a de nombreuses raisons de continuer à utiliser DefaultHttpClient. –

+0

Ma question est une autre: comment est-il possible que cela fonctionne encore. – GPack

Répondre

0

Qu'il ne soit pas pris en charge ne signifie pas qu'il a été supprimé. Dans le code, vous verrez souvent des fonctions "obsolètes". Ce sont des fonctions qui ne sont pas supportées, mais qui n'ont pas été volontairement supprimées.

Dans ce cas, vous utilisez la fonctionnalité de la bibliothèque Android API22. Pour préserver la fonctionnalité de compatibilité arrière des API précédentes est presque jamais complètement retiré de l'environnement Android réel.

Lors de la compilation de quelque chose avec le niveau API 22, l'APK contiendra en fait des parties de cette bibliothèque. Dans ce cas, cela signifie que le DefaultHttpClient de l'API22 est réellement inclus dans votre application. Il n'utilise pas la version qui est (pas) sur le téléphone. Quelles parties doivent être inclus dans votre application est décidée dans:

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.0" 

    defaultConfig { 
     minSdkVersion 17 
     targetSdkVersion 23 
    } 
} 

Tout ce qui manque de niveau de l'API, mais 23 est disponible dans le niveau 17 va s'inclus dans votre application.

+0

Je pense qu'il devrait y avoir l'accent sur le *presque jamais. J'ai vu certaines méthodes/classes réellement retirées du SDK (comme android.provider.Browser.BookmarkColumns), et je ne serais pas surpris si cela se produisait dans les dispositifs réels à un moment donné, bien que je sois sûr qu'ils avoir une très bonne raison de le faire. Il est préférable de simplement essayer de suivre les modifications de l'API et de tester correctement les applications lors de l'utilisation de choses obsolètes. – Zharf

+0

@Zharf a ajouté l'emphase;) –

+0

Mais ma targetSdkVersion réelle est définie à 22 pas à 23, et je ne suis pas sûr que DefaultHttpClient manquant est lié dans le fichier APK et utilisé lors de l'exécution à partir de cela. Avez-vous le lien de certains docs sur la compilation APK, s'il vous plaît? – GPack