Seamless Updates do Android Nougat, explicado
Em todas as gerações de dispositivos Android, até as atualizações do sistema operacional Marshmallow, inclusive, funcionaram basicamente da mesma maneira: a atualização é baixada, o telefone é reinicializado e a atualização é aplicada. Durante esse tempo, o telefone é inutilizado, pelo menos até que a atualização tenha sido totalmente instalada. Com as novas “Atualizações sem costuras” do Nougat, esse modelo é uma coisa do passado.
Como as atualizações foram alteradas no Android 7.0 Nougat
O Google retirou uma página de seu próprio Chrome OS para o novo método de atualização. Os Chromebooks sempre funcionaram da seguinte maneira: a atualização é baixada em segundo plano e, em seguida, avisa ao usuário que é necessário reinicializar para concluir o processo de instalação. Uma rápida reinicialização mais tarde, e a atualização está completa - sem esperar que a atualização seja instalada, sem "otimizar" ou qualquer outra coisa que pareça levar idades. É rápido, fácil e, acima de tudo, não tem uma quantidade excessiva de tempo de inatividade.
A partir do Android 7.0, esta é a direção que as atualizações do Android estão seguindo. Vale a pena mencionar aqui que esta não vou aplicam-se a dispositivos atualizados para o Nougat, apenas aqueles que acompanham o software. A razão para isso é perfeitamente lógica: este novo método de atualização exigirá duas partições de sistema para funcionar, e praticamente todos os telefones Android atuais têm apenas um. Re-particionando o dispositivo em tempo real pode ser potencialmente catastrófico (e provavelmente seria em muitos cenários), então a decisão do Google de deixá-lo sozinho nos telefones da geração atual é respeitável, embora seja uma chatice.
Funciona um pouco assim: há uma partição de sistema ativa e uma partição inativa, que são imagens espelhadas uma da outra. Quando uma atualização OTA se torna disponível, a partição ativa faz o download e, em seguida, atualiza a partição dormente. Uma reinicialização posterior, a partição inativa torna-se ativa e a partição anteriormente ativa fica inativa, aplicando o software atualizado.
Isso não só torna o processo de atualização inteiro incomensuravelmente mais rápido, mas também serve como um tipo de sistema de backup. Caso algo dê errado com a atualização, o sistema pode detectar que há um erro durante a inicialização e simplesmente voltar para a partição do sistema não afetada. Na reinicialização, ele poderá executar ping nos servidores de download novamente, reaplicar a atualização e reinicializar novamente para concluir o processo. Comparado com o modo como as falhas de atualização catastróficas são tratadas no sistema atual - o que requer muita interação do usuário, ferramentas de desenvolvimento do Android e familiaridade com a linha de comando - o método de partição dupla é simplesmente melhor.
Nós ainda não vimos isso em ação, então ainda há muitas perguntas
Naturalmente, ele vem com seu próprio conjunto de perguntas e preocupações. Embora entendamos como esse sistema funciona na teoria, ainda precisamos ver como ele realmente funciona na prática, uma vez que o Nougat ainda não teve uma atualização e nenhum dispositivo foi lançado com o 7.0. Qualquer coisa é especulação, mas imagino que, quando uma atualização está sendo aplicada, por exemplo, provavelmente haverá um impacto muito grande no desempenho do sistema.
Além disso, se você for como eu, leu a seção acima e pensou: “quanto espaço terá duas partições do sistema?” Pode-se supor automaticamente que será necessário o dobro da quantidade de espaço, o que não é completamente incorreto, mas você também tem que lembrar que estes são sistema partições, o que não significa que vai exigir duas cópias de cada aplicativo instalado. Ainda assim, isso significa que os sistemas atuais que consomem um gigabyte - um tamanho não incomum para um sistema operacional Android - podem essencialmente exigir dois gigabytes (ou mais).
Dito isso, o Google mudou para um novo sistema de arquivos chamado SquashFS, que é um sistema de arquivos altamente compactado, somente leitura, originalmente projetado para sistemas embarcados em situações de pouca memória. Isso definitivamente deve ajudar a compensar alguns dos problemas de espaço que inevitavelmente irão acompanhar a configuração de duas partições do sistema. Ainda assim, podemos começar a ver dispositivos enviados com mínimo de 32GB avançando. O tempo vai dizer.
Também não está claro o que acontece com a nova partição inativa após a atualização. Existe a possibilidade de que ele possa ser atualizado em segundo plano e então esperar que outro novo OTA chegue, mas não há documentação técnica para apoiar essa teoria - apenas eu pensando em voz alta. Ainda assim, parece fazer sentido para mim, porque senão esse novo sistema aparentemente pareceria um tipo de cenário de atualização, o que é exatamente a direção oposta que o Google está tentando fazer aqui..
Infelizmente, como ainda não há um dispositivo que suporte o novo sistema de atualização contínua, algumas dessas perguntas terão que ficar sem resposta. Quando as novas gerações de telefones começarem a ser lançadas, teremos uma compreensão muito melhor de como tudo isso funcionará no mundo real. Mas por enquanto: parece uma coisa muito boa.