Google va diminuer le poids des mises à jour pour les applications Android

Google va diminuer le poids des mises à jour pour les applications Android

Mais il y a une contrepartie

Avatar de l'auteur
Vincent Hermann

Publié dans

Société numérique

08/12/2016 3 minutes
54

Google va diminuer le poids des mises à jour pour les applications Android

Google a annoncé hier de nouveaux outils de compression pour réduire encore la taille des mises à jour pour les applications, qui peuvent parfois représenter un problème. Bien que les chiffres montrent l’efficacité de la méthode, elle ne se fera pas sans impact sur l’autonomie. Explications.

Il a toujours existé deux grandes méthodes pour mettre à jour un système ou une application, qu’il s’agisse d’une suite bureautique ou d’un jeu. On peut simplement compresser les fichiers complets pour les décompresser ensuite sur l’appareil et procéder par écrasement des données. Ou on peut au contraire réduire les différences à leur plus simple expression, le processeur devant alors exécuter des calculs plus importants.

Réduire toujours plus la taille des patchs

En juillet dernier, Google avait annoncé l’utilisation de l’algorithme bsdiff pour détecter et compresser les différences entre l’APK installé sur l’appareil mobile et celui présent sur le Play Store. Le gain annoncé était d’environ 50 % par rapport à la technique utilisée auparavant, permettant de générer des mises à jour plus petites à télécharger. Il y avait donc gain de temps et moins de pression sur les forfaits data, à moins bien sûr de le faire sur une connexion Wi-Fi.

Google en remet une couche, avec une nouvelle technique baptisée « File-by-File patching ». Cette fois, le gain est en moyenne de 65 % et peut même atteindre 90 % sur certaines applications. La création du patch passe par la décompression de l’ancienne et de la nouvelle application, toujours via bsdiff.

Les modifications sont cependant appliquées sur les données décompressées, avant qu’elles soient recompressées. Les signatures sont ensuite comparées pour vérifier que le nouvel APK formé sur l’appareil correspond bien au dernier disponible sur le Play store.

Une augmentation parfois significative du temps d'installation

On se rapproche donc beaucoup plus de l’intervention « minutieuse » avec un minimum de données envoyées. Ce qui engendre une charge supplémentaire pour le processeur, ce dont Google prévient d’ailleurs. Ainsi, sur des appareils récents, datant de 2015 au moins, l’étape de compression réclame en moyenne une seconde par mégaoctet. Un temps qui est loin d’être négligeable, et qui sera encore plus important sur des appareils plus anciens.

Globalement, Google indique que si la taille des mises à jour est divisée par deux, le temps d’installation est quant à lui doublé. L’éditeur indique que ces changements sont introduits pour économiser autant de données que possible. Mais l’introduction de ce mécanisme est étrange à une époque où les forfaits data ne cessent de grandir.

Car les utilisateurs, s’ils constatent un impact sur leur autonomie, risquent d’attendre systématiquement d’avoir à disposition un chargeur et un réseau Wi-Fi. Il se pourrait aussi que cette nouveauté s'adresse à des marchés plus spécifiques comme les pays en voie de développement, où les constructeurs de smartphones fondent de nombreux espoirs pour la croissance de leur activité dans les mois et années à venir.

Notez enfin que la technique « File-by-File patching » est open source. Elle fait partie du projet Archive Patcher, que l’on peut trouver sur GitHub.

54

Écrit par Vincent Hermann

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Réduire toujours plus la taille des patchs

Une augmentation parfois significative du temps d'installation

Commentaires (54)


mais va multiplier le nombre de mises à&nbsp; jour par 10 <img data-src=" />


Pas mécontent d’avoir un téléphone avec une bonne autonomie ! <img data-src=" />



(7-8 Jours sans le recharger : j’ai décidé d’appeler mon téléphone Seb … Quand je vois l’autonomie je dis “Seb c’est bien !!” <img data-src=" />)


Suffit de pas avoir ces conneries sur son telephone… Ah merde en fait un nokia 3310 m’irait tres bien :P


Par contre, pour les mises à jour d’Android, vous pouvez toujours espérer…








jb a écrit :



Par contre, pour les mises à jour d’Android, vous pouvez toujours espérer…







Pour ceux qui se bornent à acheter un téléphone à un constructeur sans vérifier au préalable qu’il propose les MAJ Android dans des délais raisonnables, oui.



Comparer et se renseigner avant de venir pleurer? KOUWAAAAH? Ah non alors, rendez-moi mon monde d’assistés mentaux!









jackjack2 a écrit :



Pour ceux qui se bornent à acheter un téléphone à un constructeur sans vérifier au préalable qu’il propose les MAJ Android dans des délais raisonnables, oui.



Comparer et se renseigner avant de venir pleurer? KOUWAAAAH? Ah non alors, rendez-moi mon monde d’assistés mentaux!







Google ne fait plus d’update de son Nexus 6, 18 mois après son introduction en France. Pas un constructeur pourri, Google.



Faut pas déconner. Windows arrive à mettre à jour des OS pendant 10 ans, mais pas Google?













jb a écrit :



Google ne fait plus d’update de son Nexus 6, 18 mois après son introduction en France. Pas un constructeur pourri, Google.



Faut pas déconner. Windows arrive à mettre à jour des OS pendant 10 ans, mais pas Google?





Ah bon? des mises à jours sont dispos pourtant. T’es resté sur le petit retard du passage à Nougat ?



Quel(s) constructeur(s) fait(font) un réel suivi des maj au-delà de 2-3 ans ?








manu0086 a écrit :



Ah bon? des mises à jours sont dispos pourtant. T’es resté sur le petit retard du passage à Nougat ?





https://support.google.com/nexus/answer/4457705#nexus_devices



Nexus 6: octobre. Donc pas de 7.1.



Android 7.1.1 sera pourtant déployé sur le Nexus 6, c’était dans l’annonce officielle.


Ca ressemble à une initiative pour faire passer Android plus facilement dans les pays émergent ou les forfaits data sont chers et avec un petit débit








jb a écrit :



https://support.google.com/nexus/answer/4457705#nexus_devices



Nexus 6: octobre. Donc pas de 7.1.





Haha, tu parles des garanties minimales ^^

C’est affolant le nombre de personnes n’en comprenant pas le sens&nbsp;<img data-src=" />



N’empêche, ma N10 fonctionne encore très bien mais si j’ai bien compris, même les correctifs de sécurité ne seront bientôt plus déployés.



Alors évidemment, on peut se tourner vers les ROM customs mais on y gagne quelques bugs au passage (bug de caméra sur la N10 avec Nougat et des soucis avec la lecture de fichiers avec DRM Widevine par exemple).



Mais bon, on nous dit tout le temps que ça n’entre pas dans le cadre de l’obsolescence programmée car ça n’empêche pas l’appareil de fonctionner… Oui, il fonctionne, mais au niveau sécurité…








jb a écrit :



Faut pas déconner. Windows arrive à mettre à jour des OS pendant 10 ans, mais pas Google?





Et quand il n’y arrive pas, il supprime l’os….



Bon sinon, c’est dû à la difference d’environnement entre x86 (a peu pres unifié) et arm (le bordel).









neointhematrix a écrit :



N’empêche, ma N10 fonctionne encore très bien mais si j’ai bien compris, même les correctifs de sécurité ne seront bientôt plus déployés.



Alors évidemment, on peut se tourner vers les ROM customs mais on y gagne quelques bugs au passage (bug de caméra sur la N10 avec Nougat et des soucis avec la lecture de fichiers avec DRM Widevine par exemple).



Mais bon, on nous dit tout le temps que ça n’entre pas dans le cadre de l’obsolescence programmée car ça n’empêche pas l’appareil de fonctionner… Oui, il fonctionne, ais au niveau sécurité…





“L’obsolescence programmée”… alala quel grand terme à la mode! Mais qui n’a strictement aucun sens dans la high tech… L’obsolescence fait partie intégrante de la high tech depuis toujours, elle n’est pas programmée&nbsp;et n’a pas besoin de l’être.

C’est du niveau théorie du complot pour qualifier les choix techniques que vous ne comprenez pas… bref ça vole pas haut.



Peut etre un pas de plus vers un processus de maj plus importante des composants systeme.








jb a écrit :



Google ne fait plus d’update de son Nexus 6, 18 mois après son introduction en France. Pas un constructeur pourri, Google.&nbsp;



Faut pas déconner. Windows arrive à mettre à jour des OS pendant 10 ans, mais pas Google?





Comme dit plus haut, le N6 aura bien la 7.1.1

Ensuite, comparer un OS desktop et un OS mobile me paraît bien cavalier







Dude76 a écrit :



Quel(s) constructeur(s) fait(font) un réel suivi des maj au-delà de 2-3 ans ?





Et surtout je dis pas que Google c’est des gentils ou qu’ils font des suivis suffisants, je dis juste que ce sont les consommateurs qui achètent donc c’est à eux de se chercher un constructeur (et sous-entendu l’OS qui va avec) qui correspond à leur attente

Si le support au-delà de 3 ans leur est nécessaire, ils choisissent en conséquence



Par exemple : l’iPhone 5, sorti le&nbsp;21 septembre 2012, a reçu iOS10

(pas de procès en sorcellerie svp, je n’ai jamais eu de produits Apple)









manu0086 a écrit :



“L’obsolescence programmée”… alala quel grand terme à la mode! Mais qui n’a strictement aucun sens dans la high tech… L’obsolescence fait partie intégrante de la high tech depuis toujours, elle n’est pas programmée&nbsp;et n’a pas besoin de l’être.

C’est du niveau théorie du complot pour qualifier les choix techniques que vous ne comprenez pas… bref ça vole pas haut.







Tu lui expliquera a lui le choix technique incompréhensible:



https://youtu.be/LPhadIhQlXA



Pour le reste t’inquiète pas on a bien compris le but de la manoeuvre…









Drepanocytose a écrit :



Peut etre un pas de plus vers un processus de maj plus importante des composants systeme.





Ils ont déjà des projets dans ce domaine, et il est plus que temps.



-JDG Star Wars-

ON S’EN BRANLE

ON S’EN BRANLE

ON S’EN BRANLE



Ce qu’on veut ce sont de nouvelles mises à jour, pas l’amélioration des existantes.








Olbatar a écrit :



Tu lui expliquera a lui le choix technique incompréhensible:



https://youtu.be/LPhadIhQlXA



Pour le reste t’inquiète pas on a bien compris le but de la manoeuvre…





Euh il dit lui même que ce n’est pas de l’obsolescence programmée…

&nbsp;

Pour le prix des accessoires remplaçables élevés, bah c’est du commerce… cela a toujours été ainsi que cela soit dans la high tech ou non. C’est aux consommateurs de faire leurs choix en conséquence.



En ce qui concerne le fait que ca utilise plus de batterie/temps, perso les mises à jour se font quand c’est en charge et sur wifi (donc le soir quand je vais me coucher). Ils peuvent prendre le temps qu’ils veulent <img data-src=" />








Vincent_H a écrit :



Ils ont déjà des projets dans ce domaine, et il est plus que temps.





Je sais.

Je me demandais juste si, techniquement derriere, les sujets n’etaient pas liés d’une certaine facon.



Probablement, ya rien techniquement qui les empêche de reprendre la même technique pour les màj d’Android. Sauf si à l’échelle d’un système l’étape de recompression est considérée comme beaucoup trop longue.








manu0086 a écrit :



Euh il dit lui même que ce n’est pas de l’obsolescence programmée…

&nbsp;

Pour le prix des accessoires remplaçables élevés, bah c’est du commerce… cela a toujours été ainsi que cela soit dans la high tech ou non. C’est aux consommateurs de faire leurs choix en conséquence.







Euh il dit lui même que c’est pour pousser a la consommation, soit la définition même de l’obsolescence programmée, d’ailleurs j’avais eu l’occasion de lui demander lors de sa FAQ s’il pensait que l’obsolescence programmée était un mythe ou une réalité….je te laisse regarder sa réponse <img data-src=" />



Trés bien pour moi au contraire ! Windows va faire pareil

&nbsp;

Franchement, il ne manque plus que Steam qui me bouffe une bande passante de dingue.








Olbatar a écrit :



Euh il dit lui même que c’est pour pousser a la consommation, soit la définition même de l’obsolescence programmée, d’ailleurs j’avais eu l’occasion de lui demander lors de sa FAQ s’il pensait que l’obsolescence programmée était un mythe ou une réalité….je te laisse regarder sa réponse <img data-src=" />





C’est TA définition. Je n’invite rien, il le dit lui-même donc tu n’as pas la même définition que lui pour commencer… c’est bête hein de le prendre comme référence pour sortir des conclusions différentes ? tu ne trouves pas ?



Bon ça confirme que tu as bien une vision complotiste ^^ que tout même son contraire te ramènera à ta petite vision… Bonne journée.



Pour les jeux, ce n’est pas la mise à jour de l’appli qui prend du temps, mais lors du lancement, la connexion aux serveur, la vérification des fichiers et le téléchargement des màj/dlc.








manu0086 a écrit :



C’est TA définition. Je n’invite rien, il le dit lui-même donc tu n’as pas la même définition que lui pour commencer… c’est bête hein de le prendre comme référence pour sortir des conclusions différentes ? tu ne trouves pas ?



Bon ça confirme que tu as bien une vision complotiste ^^ que tout même son contraire te ramènera à ta petite vision… Bonne journée.







Lol non non c’est bien LA définition de l’obsolescence programmée pour le reste je t’invite a voir ce qu’il en pense dans sa FAQ pour clore le débat, nulle doute qu’il fera de toute façon des vidéo a ce sujet ne serais ce que expliquer a ceux qui en doute (encore?) que l’obsolescence programmée est bien une réalité j’attends avec impatience que tu aille lui expliquer qu’il n’y connaît rien <img data-src=" /> parce que vu les compétences du bonhomme t’as intérêt a sortir un sacré cv pour avoir un minimum de crédibilité en face :))









Olbatar a écrit :



Lol non non c’est bien LA définition de l’obsolescence programmée pour le reste je t’invite a voir ce qu’il en pense dans sa FAQ pour clore le débat, nulle doute qu’il fera de toute façon des vidéo a ce sujet ne serais ce que expliquer a ceux qui en doute (encore?) que l’obsolescence programmée est bien une réalité j’attends avec impatience que tu aille lui expliquer qu’il n’y connaît rien <img data-src=" /> parce que vu les compétences du bonhomme t’as intérêt a sortir un sacré cv pour avoir un minimum de crédibilité en face :))





Ben ses connaissances t’en as rien à secouer visiblement car même quand il dit que ce n’est pas de l’obsolescence programmée, tu affirmes le contraire…



Et je n’ai jamais dis qu’elle n’existait pas, je dis simplement quand nous ressort cette bouse pour tout et n’importe quoi, t’en es la preuve flagrante, merci :)





Mais l’introduction de ce mécanisme est étrange à une époque où les forfaits data ne cessent de grandir.



Pourtant Google annonce sur le blog que cela leur permettra d’économiser jusqu’à 6 Po de données par jour ! Ce n’est pas négligeable.



The savings, compared to our previous approach, add up to 6 petabytes of user data saved per day!








Vincent_H a écrit :



Android 7.1.1 sera pourtant déployé sur le Nexus 6, c’était dans l’annonce officielle.







Mais n’a pas eu la preview (alors que c’était aussi annoncé), et c’est que parce que les gens ont gueulé, que ça a été remis.












manu0086 a écrit :



Ben ses connaissances t’en as rien à secouer visiblement car même quand il dit que ce n’est pas de l’obsolescence programmée, tu affirmes le contraire…



Et je n’ai jamais dis qu’elle n’existait pas, je dis simplement quand nous ressort cette bouse pour tout et n’importe quoi, t’en es la preuve flagrante, merci :)







Ah d’accord je croyais que quand tu disait sûre l’obsolescence programmée n’avait aucun sens dans le high tech tu voulais dire que ça n’avais pas cour dans le high tech et pour info le principe de l’obsolescence programmée c’est de pousser a la consommation <img data-src=" />









Drepanocytose a écrit :



Bon sinon, c’est dû à la difference d’environnement entre x86 (a peu pres unifié) et arm (le bordel).





Windows est aussi sous ARM.







jackjack2 a écrit :



Ensuite, comparer un OS desktop et un OS mobile me paraît bien cavalier







Et en quoi c’est différent?

C’est un kernel avec des drivers, des syscalls, un middleware, une UI et des applications. Le kernel Linux est aussi bien mobile que desktop. Windows et Darwin aussi.



Faut arrêter à un moment de défendre Google à tout prix: ils refusent de faire des mises à jour sérieuses.



Aujourd’hui, une MàJ Android, c’est un gros blob, qui modifie tout, du kernel aux appli. Il n’y a aucune raison pour que la partie basse (kernel+driver) soit corrélée de la partie middleware (SurfaceFlinger, AudioTrack, MediaServer…) ou de la partie haute.



Les constructeurs ne devraient toucher que kernel+driver, et le reste devrait être mis à jour automatiquement. Surtout que s’il est difficile de mettre à jour un driver, il est relativement simple de modifier les couches du middleware.



Le résultat, c’est que comme Google ne fait pas les mises à jour de ces parties centrales, les constructeurs y mettent les doigts et font n’importe quoi pour fixer à la va-vite (le nombre de bugs device spécifiques sur ces couches est hallucinant quand tu développes une appli). Et aussi on se retrouve avec des téléphones sans mises à jour, y compris au niveau sécurité.



Par exemple, énormément de device étaient bloqués en 4.2 (ou 4.3), parce que y avait pas de drivers MTK, alors que les grosses évolutions de 4.3 (ou 4.4) n’étaient pas du tout lié au kernel…



Je suis dev Android, et j’aime bcp Android, mais le refus d’update de Google est criminel.



Sur chrome, google avait abandonné bsdiff pour une solution maison, pourquoi ne pas utiliser cette technologie ? On parle du même google, non ?








myst6re a écrit :



Sur chrome, google avait abandonné bsdiff pour une solution maison, pourquoi ne pas utiliser cette technologie ? On parle du même google, non ?





Courgette. Mais c’était du patching ASM.



Mauvaise foi à ce que je vois


le lumia 920 c’est l’inverse, il a eut la preview de Win10 mais n’a jamais vu windows 10 final et n’en aura jamais les mises à jour.



Pas un constructeur de merde, Microsoft <img data-src=" />





Microsoft est très loin d’avoir un smartphone qui a eut 10 ans de mise à jour <img data-src=" />


1 seconde de plus par Mo ?!



😮


Sauf que Google s’est foiré en ce sens que la partue user d’Android est corrélée à une version de noyau

(pas les applications, hein, mais la base Android: libs et exe)








levhieu a écrit :



Sauf que Google s’est foiré en ce sens que la partue user d’Android est corrélée à une version de noyau

(pas les applications, hein, mais la base Android: libs et exe)







Mais quand tu regardes les sources d’AOSP et que tu fais des diffs, ce n’est pas le cas. Il y a rarement de nouvelle version d´Android qui ont besoin de facto de nouveau kernel ou de lib.



C’est juste un souci de process (un seul dump de code à chaque release ANdroid et surtout forcer les constructeurs à ne pas toucher au middleware) et donc de volonté, pas de limitation technique.



Effectivement, et je connais des gens qui ont joué à faire passer des versions AOSP un autre kernel (ou me plusieurs). Mais cette dépendance est cependant présente, et ça doit gêner les constructeurs.



Mais, à la réflexion, nettement moins que les modules livrés en binaire par les fournisseurs de SoC et de chips divers: Là encore, le module porte sa version de kernel, et si le fournisseur ne suit pas, le constructeur de téléphone est coincé (à titre personnel, j’ai déjà patché un binaire de module pour changer la version, mais ça marche tant que les API intra-kernel n’ont pas bougé, et puis, un constructeur peut-il se permettre ça ?)








levhieu a écrit :



Effectivement, et je connais des gens qui ont joué à faire passer des versions AOSP un autre kernel (ou me plusieurs). Mais cette dépendance est cependant présente, et ça doit gêner les constructeurs.



Mais, à la réflexion, nettement moins que les modules livrés en binaire par les fournisseurs de SoC et de chips divers: Là encore, le module porte sa version de kernel, et si le fournisseur ne suit pas, le constructeur de téléphone est coincé (à titre personnel, j’ai déjà patché un binaire de module pour changer la version, mais ça marche tant que les API intra-kernel n’ont pas bougé, et puis, un constructeur peut-il se permettre ça ?)







Bah, les constructeurs, ils veulent se faire chier le moins possible, car ça coûte de l’argent… Et notamment si ils doivent faire une image complète. Si Google gérait les updates de tout ce qui est au-dessus du kernel (et donc device specific), ça éviterait une fragmentation, et ça éviterait de nombreuses failles de sécu.









Vincent_H a écrit :



Mais l’introduction de ce mécanisme est étrange à une époque où les forfaits data ne cessent de grandir.





C’est juste le marketing Google qui veux faire passer cette amélioration comme étant pensée pour aider l’utilisateur à économiser son forfait alors que le but véritable est d’économiser quelques millions de $ en bande passante et peering coté Google.

Même quelques Ko sauvé par application est c’est probablement plusieurs To (Po ?) économisés chaque jour chez eux :)



s’ils pouvaient diminuer le nombre de maj tout simplement …








indyiv a écrit :



s’ils pouvaient diminuer le nombre de maj tout simplement …





Ben il y a bien des solutions pour ça :




  • installer des applications qui ne sont pas/plus maintenues =&gt; 0 màj <img data-src=" />

  • ne pas installer d’applications =&gt; pas de màj <img data-src=" />

  • désactiver/désinstaller le PlayStore =&gt; màj plus proposées <img data-src=" />



    … je ne vois pas comment on peut reprocher aux développeurs d’applications de corriger et d’améliorer en continu leurs applications ?!?

    Ça va à l’encontre des méthodes de développement “récentes” (cf. méthode RERO : Release Early, Release Often).









jb a écrit :



Bah, les constructeurs, ils veulent se faire chier le moins possible, car ça coûte de l’argent… Et notamment si ils doivent faire une image complète. Si Google gérait les updates de tout ce qui est au-dessus du kernel (et donc device specific), ça éviterait une fragmentation, et ça éviterait de nombreuses failles de sécu.





Justement non, les constructeurs sont tres intéressés a pouvoir bidouiller leurs surcouches, c’est un facteur de differenciation pour eux…









Drepanocytose a écrit :



Justement non, les constructeurs sont tres intéressés a pouvoir bidouiller leurs surcouches, c’est un facteur de differenciation pour eux…







+1.



Et les utilisateurs (les vrais, pas ceux qui fréquentent NXI) n’ont absolument pas conscience qu’un smartphone c’est un terminal composite hardware+software, dont le software est composé d’un OS, des drivers, des libs, des couches, des sur-couches etc.



Au mieux les utilisateurs différencient la “marque” (apple / samsung / tout le reste) et “l’interface” (la même / la nouvelle). Pour eux, le logiciel dans le smartphone ce sont les applications.



Huawei :)


Sérieux ?

Et ils sont comment leurs terminaux ?

J’ai un - un peu vieillissant - GS3 LTE dont je commence à ressentir l’envie (le besoin ? ) de le remplacer.

J’ai vu quelques modèles sympas (bon, ok, le S7, mais que chez samsung), mais qui me paraissent bien trop cher, surtout si c’est pour ne plus avoir de maj aussi rapidement.


Le honor4X est sorti en 2014 et a reçu android 6.0

J’ai un honor 5X, je suis aussi sous 6.0

(honor étant une sous marque de huawei d’excellente facture)



Je ne peux que te recommander le Honor 8, qui va surement être mon prochain portable ou le Mate 9(mais quand même un peu beaucoup plus cher) <img data-src=" /><img data-src=" />