24 votes

Pourquoi les applications cessent-elles de prendre en charge les anciennes versions d'Android après un certain temps ?

Ma mère avait une application de shopping sur son vieux smartphone qui fonctionne sous Android v6. Récemment, j'ai remarqué que l'application sur son téléphone n'était plus prise en charge. J'ai déjà vu de telles choses se produire sur de vieux téléphones, généralement avec de nombreuses applications. Je voulais juste savoir pourquoi les entreprises abandonnent le support des anciennes versions du système d'exploitation après quelques années ? Cela leur coûte-t-il beaucoup de continuer à assurer le support des anciennes versions du système d'exploitation ? Faut-il embaucher une équipe entière pour continuer à gérer le support des anciens systèmes d'exploitation ? Je suis simplement curieux de savoir ce qu'il en est. Merci.

0 votes

Vous pouvez installer l'ancienne version de l'application depuis le miroir apk

12 votes

"Cela leur coûte-t-il beaucoup de continuer à prendre en charge les anciennes versions du système d'exploitation ?" - Oui, cela coûte de l'argent. Le développeur a décidé que sa base d'utilisateurs Android v6 est si petite que l'abandon du support n'affecterait pas ses statistiques d'utilisation de manière notable.

1 votes

Pourriez-vous envisager la situation dans l'autre sens, et réfléchir à l'effort à fournir pour que les nouvelles versions d'Android prennent en charge les anciennes applications ?

31voto

pr0nin Points 353

Il existe deux façons de prendre en charge les anciennes versions d'Android :

  1. Créez une application qui utilise les correctifs de compatibilité pour prendre en charge les anciennes versions d'Android (jusqu'à une version spécifique) mais aussi toutes les versions modernes d'Android.

  2. Créez deux ou plusieurs applications, chacune pour un ensemble de versions d'Android.

La deuxième option est bien sûr très coûteuse, car vous devez développer et maintenir chaque version de l'application indépendamment (ou du moins de grandes parties de l'application). Cette méthode n'est souvent pas utilisée ou seulement si l'application a été entièrement réécrite pour les nouveaux appareils et que, pour les anciens appareils, l'ancienne version est conservée avec un support minimal, voire inexistant.

Par conséquent, la solution la plus courante est l'option 1 - une application qui inclut tous les correctifs de compatibilité. Le problème principal est que les nouvelles versions d'Android incluent de nouvelles fonctionnalités intéressantes qui ne sont pas (entièrement) disponibles en utilisant le système de compatibilité fourni par Google. Par conséquent, si vous souhaitez les utiliser et que la fonctionnalité n'est pas optionnelle dans votre application, les développeurs d'applications peuvent décider d'abandonner le support des anciennes versions d'Android en faveur de l'utilisation des nouvelles fonctionnalités des nouvelles versions d'Android. La réduction du nombre de versions d'Android prises en charge simplifie l'application, car les anciennes solutions de contournement peuvent être supprimées et ne doivent plus être maintenues. Et bien sûr, cela supprime la nécessité de tester l'application sur ces anciens appareils, ce qui peut être un problème si vous voulez tester votre application sur des appareils physiques (et non des émulateurs), car les anciens appareils se cassent et sont de plus en plus difficiles à obtenir.

16 votes

En outre, Soutien de toute chose a un coût. Si j'ai créé une nouvelle application et qu'une nouvelle version d'Android apparaît, je dois maintenant effectuer des tests pour m'assurer que l'application (et toutes les modifications que j'apporte) fonctionne sur deux versions. Lorsqu'une troisième version sort, je dois effectuer des tests sur trois versions - et ainsi de suite. Si je dis que je supporte une ancienne version, mais que je ne supporte pas activement cette ancienne version et que les utilisateurs de l'ancienne version remarquent un bogue, je serai critiqué. Il est tout simplement plus coûteux de prendre en charge plusieurs versions.

3 votes

De plus, si vous ne pouvez pas prendre en charge les nouvelles fonctionnalités sur les anciennes plateformes, vous recevrez des commentaires de personnes qui ne pourront pas profiter de ces nouvelles fonctionnalités. Ils peuvent même se plaindre dans les commentaires de leur absence.

0 votes

Option 3 : Fournir des implémentations parallèles à l'intérieur de l'application pour les fonctionnalités qui nécessitent des API qui ne sont pas disponibles dans la version la plus ancienne d'Android ou qui ont été dépréciées dans les nouvelles versions d'Android. Par ailleurs, pour prendre activement en charge les versions anciennes d'Android, vous devez disposer d'une collection de téléphones anciens. Si vous ne les avez pas déjà ou s'ils sont cassés, il sera difficile de les acheter.

6voto

computercarguy Points 161

Le SDK (kit de développement logiciel) d'Android fixe une version minimale d'Android qu'il prend en charge, comme l'explique une autre question-réponse :

https://stackoverflow.com/q/24441178/1836461

https://stackoverflow.com/a/61087797/1836461

Les développeurs/entreprises (appelés "développeurs" à partir de maintenant) peuvent choisir de prendre en charge les anciennes versions, mais il devient difficile de maintenir ce code. En tant que développeur, il peut être difficile de se souvenir de la signification des paramètres ou des commandes pour les différentes versions d'un système d'exploitation. Certaines de ces différences sont même dépréciées (désapprouvées) ou complètement supprimées des SDK les plus récents, ce qui rend difficile ou impossible le maintien de la rétrocompatibilité. Et parfois, elles sont supprimées pour de bonnes raisons, ce qui signifie généralement qu'elles présentent des problèmes de sécurité importants.

Et ce n'est pas parce que l'application est abandonnée qu'il n'y a pas de version plus récente disponible. Certaines entreprises peuvent réécrire complètement leur logiciel (pour diverses raisons, notamment pour se débarrasser d'une grande quantité de code hérité inutile), puis le publier en tant qu'application distincte, en laissant la version précédente disponible, ce qui constitue leur idée de la rétrocompatibilité.

En fait, la plupart des développements de logiciels non mobiles se font de cette manière. L'ancienne version est toujours disponible quelque part lorsqu'une nouvelle version est publiée. Les boutiques mobiles comme Google et Apple n'ont pas de moyen facile pour un utilisateur d'obtenir des versions plus anciennes, même si le développeur peut toujours voir ces anciennes versions.

Autres raisons

Une entreprise peut également décider que sa méthode de communication (protocoles) doit être mise à jour en fonction de spécifications plus récentes qui ne sont pas disponibles dans les anciennes versions du SDK. Si vous avez une application écrite dans un ancien SDK qui fonctionne avec d'anciens téléphones, mais que vous devez/décidez de mettre à niveau ces protocoles vers une version de sécurité que l'ancienne version ne supporte pas, vous devrez peut-être supprimer une partie de la rétrocompatibilité pour avoir accès aux nouvelles normes dans un SDK plus récent. Et si vous devez réécrire complètement une application, il est plus logique de le faire dans le dernier SDK, plutôt que dans un SDK qui sera à nouveau complètement dépassé dans un ou deux ans.

Même s'il s'agit simplement de réécrire une application pour la nettoyer, supprimer les fonctionnalités inutiles, refaire l'interface utilisateur/expérience utilisateur (UI/UX), ou pour 100 autres raisons, l'utilisation du SDK le plus récent est également la plus judicieuse.

La réponse dont j'ai donné le lien ci-dessus parle de 25% des utilisateurs de Twitter qui sont ignorés à cause des changements de plateforme dus à une mise à jour de l'application. Eh bien, ces 25 % sont les anciens téléphones qui seront probablement le groupe de téléphones qui diminuera le plus rapidement. Ils finiront par être cassés, tomberont, la batterie sera détruite sans qu'aucun remplacement ne soit disponible, ou pour un millier d'autres raisons, y compris les autres applications qui cesseront de les prendre en charge. Je ne dis pas que c'est une bonne idée d'empêcher autant d'utilisateurs d'utiliser votre application d'un seul coup, mais de toute évidence, ils pensaient pouvoir y survivre.

Exemple parallèle

Sur le marché des navigateurs pour ordinateurs de bureau, Chrome est le grand leader en termes d'utilisation.

https://netmarketshare.com/browser-market-share.aspx

https://en.wikipedia.org/wiki/Usage_share_of_web_browsers

À mesure qu'Internet Explorer (IE), Edge, Gecko, Firefox, Safari et d'autres sont tombés en désuétude, les développeurs cessent de faire autant de compatibilité entre navigateurs. Pour quelqu'un qui l'a fait aussi, c'est un véritable casse-tête, surtout lorsque la compatibilité parfaite des pixels est exigée, ce qui est pratiquement impossible. J'ai 5 navigateurs installés pour cette raison, mais je n'en utilise qu'un seul pour naviguer.

Certaines entreprises insisteront pour prendre en charge IE et Edge, car "ils sont installés par défaut sur les ordinateurs et la plupart de nos utilisateurs ne savent pas qu'il faut installer autre chose". Le fait que peu de personnes utilisent réellement IE ou Edge n'a pas d'importance, car "les statistiques proviennent de sites où la plupart des utilisateurs sont des développeurs ou des utilisateurs d'ordinateurs de haut niveau". Mais la réalité est que la majorité des navigateurs ne valent pas la peine d'être supportés. Les gens ne supportent plus Netscape Navigator, même si quelqu'un utilise encore Win 3.11 for Workgroups, Win 98SE ou Mac OS 8.5.

Conclusion

Ce que je veux dire, c'est qu'à un moment donné, il faut fixer une limite à ce que l'on va supporter, car les anciennes versions cessent d'être utiles ou utilisables à la fois par l'utilisateur et le développeur.

Consacrer du temps, de l'argent et des efforts à d'anciennes versions qui ne sont pas très utilisées n'est généralement pas une bonne utilisation des ressources.

Parfois, il s'agit strictement d'un idéal de "faire plus d'argent", en ce sens que le développeur veut vous forcer à acheter la nouvelle version, mais ce n'est pas toujours le cas. Il est plus logique pour les développeurs de consacrer plus de temps aux nouvelles fonctionnalités et aux bogues pertinents dans une nouvelle version qu'aux nouvelles fonctionnalités et aux bogues dans l'ancienne version.

1 votes

Je pense que votre exemple de navigateur est un peu trop extrême. Netscape n'est pas supporté parce que son EOL était en 2008. Edge/FF/Safari/etc sont toujours activement développés. Selon votre premier lien, Edge a une part de marché de 11,4% (et une tendance constante à la hausse). Firefox en détient 6,5 %. C'est encore assez significatif. Chrome a 68%, donc si vous ne prenez en charge que Chrome, vous excluez 32% des utilisateurs. Votre deuxième lien présente des pourcentages très différents (Safari atteint une part significative de 19 %), mais montre le même problème (le fait de ne prendre en charge que Chrome exclut 37 % des utilisateurs).

0 votes

Pour en revenir à Android, ne prendre en charge que Chrome reviendrait à ne prendre en charge que les versions supérieures à Oreo. Oreo n'est toujours pas EOL et sa part de marché est supérieure à 15 %. Décider de ne pas le prendre en charge serait une décision étrange qui, à mon avis, justifie de se demander pourquoi. Marshmallow (l'exemple de l'OP) a également encore une utilisation significative (environ 6%), mais il a été EOL en 2017. Ne pas avoir de mises à jour de sécurité pendant plus de 3 ans serait, selon moi, un bon exemple de raison valable pour abandonner le support.

2voto

Alex Cannon Points 121

Il est plus rentable de forcer les utilisateurs à passer à une version plus récente d'Android, ce qui nécessite l'achat d'un nouveau matériel pour faire fonctionner la nouvelle version d'Android.

Pour ce faire, les développeurs d'Android modifient les API de programmation au fur et à mesure de la sortie des nouvelles versions. De nouvelles façons de faire les choses sont ajoutées, et les anciennes façons de faire les choses sont supprimées au fil du temps. Les bogues dans les API dont dépendaient les anciens logiciels sont corrigés, et aucun effort n'est fait pour maintenir l'ancien comportement afin de préserver la compatibilité.

Cela oblige les fabricants d'applications à maintenir constamment leurs logiciels et à publier des versions plus récentes comportant des modifications mineures. Il est plus coûteux de modifier le logiciel pour qu'il fonctionne à la fois sur les anciennes versions d'Android et sur la dernière version. Pour maintenir la compatibilité entre les principales versions d'Android, il peut être nécessaire de maintenir et de distribuer séparément plusieurs versions de l'application. Cela deviendrait assez coûteux, et comme la plupart des gens ont un appareil plus récent, le marché ne justifie pas cette dépense supplémentaire.

L'approche traditionnelle de Microsoft a été de faire de gros efforts pour maintenir la compatibilité avec les anciens logiciels. Un grand nombre d'applications ont été testées sur leur prochaine version de Windows avant leur sortie, et de nombreuses modifications ont été apportées pour assurer la compatibilité. De ce fait, les développeurs de logiciels peuvent simplement créer une version du logiciel qui fonctionne sur une ancienne version de Windows et qui fonctionnera également sur les versions plus récentes. Avec la sortie de Windows Vista, Microsoft a commencé à s'éloigner de cette stratégie commerciale et développe maintenant Windows 10 d'une manière qui ressemble plus à Android, mais la compatibilité de Windows avec les anciens logiciels est toujours meilleure que celle des systèmes d'exploitation mobiles et même de Mac OS X.

1 votes

À en juger par la documentation d'Android, ce dernier se donne également beaucoup de mal pour maintenir la compatibilité. Bien que, à certains égards, cela semble changer maintenant, dans l'intérêt de la "vie privée".

0 votes

Microsoft a maintenu la rétrocompatibilité parce que son marché de base à l'époque était le gouvernement et les entreprises qui sont notoirement sensibles au prix de la mise à jour des logiciels. Le marché principal d'Android est celui des utilisateurs privés qui préfèrent avoir de nouvelles fonctionnalités et oublier les anciennes.

2voto

gronostaj Points 280

La réponse TL;DR :

En effet, la programmation de chaque version d'Android est légèrement différente et le support de chacune d'entre elles coûte donc plus cher. Lorsqu'une version particulière génère moins de bénéfices que nécessaire pour justifier son maintien, le support est abandonné.

0 votes

Ce calcul est cependant trop simpliste. Il se pourrait très bien que le fait qu'une application soit disponible pour une plateforme qui n'est pas financièrement viable en soi soit la seule raison pour laquelle les autres plateformes sont viables, surtout s'ils interagissent. - En supprimant le soutien à une plateforme financièrement non viable, d'autres utilisateurs pourraient cesser d'utiliser l'application, ce qui rendrait d'autres plateformes non rentables, et ainsi de suite...

0 votes

@I'mwithMonica Eh bien, c'est une réponse TL;DR ;) Mon intention était de poster une réponse brève qui donne au lecteur une idée générale de la situation, sans plonger dans les détails.

2voto

Brian Drake Points 121

Les autres réponses sont excellentes, et elles répondent directement à la question ; essayons une approche légèrement différente.

Pourquoi les gens ont-ils encore des téléphones fonctionnant avec de si anciennes versions d'Android ? En général, c'est parce que leurs fabricants ne supportent plus ces modèles . Pourquoi pas ? Une partie de la raison est sûrement que les développeurs d'Android ne prennent plus en charge les anciennes versions d'Android .

Il n'est donc pas seulement coûteux de développer des applications pour les anciennes versions d'Android, les développeurs devraient s'accommoder d'une plate-forme pleine de bogues connus qui ne seront certainement pas corrigés. . Qui veut faire ça ?

Peut-être que les développeurs s'en accommoderont pendant un certain temps, si leurs utilisateurs le demandent. Mais quand il n'y a plus beaucoup d'utilisateurs qui utilisent une ancienne version d'Android, il est probable qu'elle soit abandonnée.

Les questions abordées ici et dans les autres réponses expliquent également pourquoi certains sites Web ne prennent en charge que les "dernières versions" des principaux navigateurs Web.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X