2017-05-14 4 views
-1

J'ai quelques erreurs avec l'exécution d'une application développée sur un appareil avec android 6.0.1 qui fonctionne parfaitement sur un appareil avec Android 2.3.6. J'utilise la même application construite (compilée pour une API Android 10) pour les deux appareils. Les erreurs concernent la fermeture de l'application lorsqu'une nouvelle activité démarre et quand un contact est sélectionné, je sais comment je pourrais résoudre ces problèmes pour cet appareil, mais le problème est que d'après ce que j'avais lu, je pensais qu'Android avait pas de problèmes de compatibilité fonctionnelle (peut-être qu'il pourrait y avoir quelques problèmes graphiques mais rien qui ferait planter l'application, comme cela m'arrive). Je voudrais savoir si c'est juste un événement exceptionnel qui m'est arrivé, et la chose la plus probable est que, une fois que je vérifie ces erreurs dans d'autres versions android et de fixer le code de l'application à courir sur eux, quelque chose comme ces erreurs ne va pas se reproduire, ou si des événements comme celui-ci sont relativement communs. Si tel est le cas, il semble assez pénible d'avoir à vérifier et peut-être développer en conséquence pour beaucoup de versions, donc je voudrais savoir s'il y a un raccourci qui, même s'il n'offre pas 100% de sécurité pour avoir l'application correctement fonctionnellement développé, il donne un bon pourcentage de sécurité.Compatibilité rétrograde fonctionnelle avec Android

+0

étant donné que l'application cible une version antérieure à marshmallow, elle ne vérifie pas les autorisations en cours d'exécution. Peut-être que votre application nécessite des autorisations que l'utilisateur doit autoriser explicitement dans les paramètres – nandsito

+0

@nandsito Merci pour votre commentaire, le problème n'était pas là. Quoi qu'il en soit l'objectif de la question est de savoir si ces types d'erreurs sont communs ou non lors de l'exécution de l'application dans différentes versions d'Android, et si elles le sont, comment les traiter correctement, je parle des erreurs sur mon application juste pour clarifier le type d'erreurs auxquelles je fais référence. – user2638180

+1

rétrocompatibilité est une propriété de logiciel théoriquement souhaitable en général, et, bien sûr, également dans Android. Mais l'histoire d'Android montre que cela n'a pas été si facile, surtout quand vous voyez comment les API ont changé depuis les versions anciennes comme Gingerbread ou Ice Cream Sandwich jusqu'à Nougat/O. Certaines API étant plus stables que d'autres, la probabilité d'avoir des problèmes de version de l'API dépend des API que vous utilisez. Mais dans un sens général, les API Android changent considérablement et à un rythme considérable. Je ne m'attendrais pas à ce qu'une application se comporte correctement pendant deux ou trois ans sans mises à jour – nandsito

Répondre

1

Je pense qu'en général une application est compatible avant, mais seulement si vous vous assurez que vous n'utilisez pas privé ou non documenté api. Par exemple, lorsque j'ai commencé à jouer avec android, il y avait un tas d'informations sur le web pour savoir comment envoyer et recevoir des messages texte qui n'étaient pas mentionnés du tout dans la documentation de google. L'utilisation de cette information (api non documentée) aurait causé la rupture de mon application lorsque KitKat serait apparu et aurait officiellement documenté l'api dans ce but particulier, car en même temps, ils avaient supprimé la fonctionnalité qui était disponible dans l'api non documentée. Voir ici pour details. de l'exemple ci-dessus.

Voici un lien vers quelques informations sur la compatibilité: https://developer.android.com/guide/topics/manifest/uses-sdk-element.html

Et snip-il de la section pertinente

application postcompatibilité applications Android sont généralement avant compatible avec les nouvelles versions de la plate-forme Android.

Parce que presque toutes les modifications apportées à l'API cadre sont additifs, une application Android développé en utilisant une version donnée de l'API (comme spécifié par son API de niveau) est en avant-compatible avec les versions ultérieures de la plate-forme Android et plus Niveaux d'API L'application doit être capable de fonctionner sur toutes les versions ultérieures de la plate-forme Android, à l'exception de dans les cas isolés où l'application utilise une partie de l'API ultérieurement supprimée pour une raison quelconque.

La compatibilité vers l'avant est importante, car de nombreux appareils sous Android reçoivent des mises à jour du système OTA (Over The Air). L'utilisateur peut installer votre application et l'utiliser avec succès, puis recevoir par la suite une mise à jour OTA vers une nouvelle version de la plateforme Android. Une fois la mise à jour installée, votre application s'exécutera dans une nouvelle version de l'environnement , mais avec les capacités API et système dont dépend votre application.Dans certains cas, les modifications inférieures à l'API, telles que celles du système sous-jacent, peuvent affecter votre application lorsqu'elle est exécutée dans le nouvel environnement . Pour cette raison, il est important pour vous, en tant que développeur d'applications , de comprendre comment l'application va se comporter et se comporter dans chaque environnement système. Pour vous aider à tester votre application sur différentes versions de la plateforme Android, le SDK Android comprend plusieurs plates-formes que vous pouvez télécharger. Chaque plate-forme comprend une image système compatible que vous pouvez exécuter dans un AVD, pour tester votre application .