'Seamless Updates' van Android Nougat, Explained
In alle generaties Android-apparaten - tot en met Marshmallow - hebben besturingssysteemupdates in essentie hetzelfde gewerkt: de update is gedownload, de telefoon is opnieuw opgestart en de update is toegepast. Gedurende deze tijd wordt de telefoon onbruikbaar gemaakt, ten minste totdat de update volledig is geïnstalleerd. Met de nieuwe 'Seamless Updates' van Nougat behoort dit model tot het verleden.
Hoe updates zijn gewijzigd in Android 7.0 Nougat
Google heeft een pagina uit hun eigen Chrome OS gebruikt voor de nieuwe updatemethode. Chromebooks hebben altijd altijd zo gewerkt: de update wordt gedownload op de achtergrond en geeft de gebruiker vervolgens de melding dat opnieuw moet worden opgestart om het installatieproces te voltooien. Een snelle heropstart later en de update is voltooid - niet wachten tot de update is geïnstalleerd, geen "optimalisatie" of een van die andere dingen die lijkt te duren leeftijden. Het is snel, gemakkelijk en heeft vooral geen onredelijke hoeveelheid downtime.
Vanaf Android 7.0 is dit de richting waarin Android-updates gaan. Het is de moeite waard hier te vermelden dat dit zal niet van toepassing op apparaten die zijn bijgewerkt naar Nougat, alleen de apparaten die worden geleverd met de software. De reden hiervoor is volkomen logisch: deze nieuwe updatemethode vereist twee systeempartities om te werken, en vrijwel alle huidige Android-telefoons hebben er maar één. Het opnieuw partitioneren van het apparaat tijdens de vlucht kan potentieel catastrofaal zijn (en waarschijnlijk in veel scenario's), dus het besluit van Google om het alleen te laten op de huidige generatie telefoons is respectabel, zij het een bummer.
Het werkt een beetje als volgt: er is een actieve systeempartitie en een slapende partitie, die spiegelbeelden van elkaar zijn. Wanneer een OTA-update beschikbaar wordt, downloadt de actieve partitie deze en wordt de slapende partitie bijgewerkt. Eén reboot later, de slapende partitie wordt actief en de eerder actieve partitie wordt slapend, dit past de bijgewerkte software toe.
Dit maakt niet alleen het hele updateproces aanzienlijk sneller, maar het dient ook als een soort back-upsysteem. Mocht er iets misgaan met de update, dan kan het systeem detecteren dat er een fout optreedt tijdens het booten en keert eenvoudig terug naar de niet-aangeduide systeempartitie. Bij opnieuw opstarten kan het de downloadservers opnieuw pingen, de update opnieuw toepassen en opnieuw opstarten om het proces te voltooien. Vergeleken met hoe catastrofale updatefouten worden afgehandeld in het huidige systeem - waarvoor veel gebruikersinteractie, Android-ontwikkeltools en bekendheid met de opdrachtregel nodig zijn - is de methode met twee partities gewoon beter.
We hebben dit nog niet gezien, maar er zijn nog steeds veel vragen
Natuurlijk komt het met zijn eigen reeks vragen en zorgen. Hoewel we begrijpen hoe dit systeem in theorie werkt, moeten we nog zien hoe het in de praktijk werkt, aangezien Nougat nog geen update heeft en geen apparaten zijn geleverd met 7.0. Alles is speculatie, maar ik kan me voorstellen dat wanneer een update wordt toegepast, er bijvoorbeeld een behoorlijk zware klap zal zijn voor de systeemprestaties.
Bovendien, als je op mij lijkt, lees je de bovenstaande sectie en dacht je: "hoeveel ruimte zal het hebben van twee systeempartities hebben?" Men kan automatisch aannemen dat het twee keer zoveel ruimte in beslag neemt, wat niet helemaal is onjuist, maar je moet ook onthouden dat dit zo is systeem partities, wat niet betekent dat er voor elke geïnstalleerde app twee exemplaren nodig zijn. Toch betekent dit dat huidige systemen die één gigabyte nodig hebben - een niet ongebruikelijke grootte voor een Android OS - nu in feite twee gigabytes (of meer) nodig hebben.
Dat gezegd hebbende, is Google verhuisd naar een nieuw bestandssysteem genaamd SquashFS, een sterk gecomprimeerd, alleen-lezen bestandssysteem dat oorspronkelijk werd ontworpen voor embedded systemen in situaties met weinig geheugen. Dit zou zeker een deel van de ruimtevraagstukken moeten helpen compenseren die onvermijdelijk samengaan met het hebben van een opstelling met twee systeempartities. Toch kunnen we beginnen met het zien van apparaten met een minimum van 32 GB vooruit. De tijd zal het leren.
Het is ook onduidelijk wat er gebeurt met de nieuwe slapende partitie na de update. Het is mogelijk dat het dan op de achtergrond wordt bijgewerkt en wacht tot er weer een nieuwe OTA arriveert, maar er is geen technische documentatie om deze theorie te ondersteunen, alleen ik denk hardop. Toch lijkt het me logisch, want anders lijkt dit nieuwe systeem kennelijk een soort up-to-date updatescenario, wat precies de tegenovergestelde richting is die Google hier probeert te bereiken.
Helaas, aangezien er nog geen apparaat is dat het nieuwe Seamless Update-systeem ondersteunt, zullen sommige van deze vragen gewoon onbeantwoord moeten blijven. Zodra de nieuwe generatie telefoons begint uit te rollen, zullen we een veel beter begrip hebben van hoe dit allemaal in de echte wereld zal werken. Maar voor nu: het klinkt als een heel goede zaak.