Um olhar sobre as atualizações do Android da perspectiva de um desenvolvedor

Não há código sem erros. Peter Norton disse: "Há um lugar no museu para o código ideal: todos os tipos de antiguidades são valorizadas lá". E para corrigir erros - há atualizações.

Gostaria de compartilhar minha opinião sobre as atualizações do ponto de vista do desenvolvedor de tempo de execução do Android. Parte de nossa grande equipe está localizada na Rússia, estou envolvido no subsistema Java, otimizando a máquina virtual e corrigindo pequenos problemas. Nossa área de responsabilidade é tudo acima do núcleo e abaixo das aplicações. Queremos alcançar a máxima eficiência de aplicação, incluindo eficiência energética. Esta é uma divisão da Samsung que não é visível para o usuário, mas muito importante, porque um erro nessa camada leva ao comportamento incorreto de muitos aplicativos.

Hoje, falaremos sobre como a atualização do sistema Android está funcionando no momento, quais são as opiniões dos fornecedores sobre esse assunto e quais novas tendências serão observadas nos próximos anos. Além de dicas para os usuários: com que frequência atualizar, quais patches instalar e como ajudar os desenvolvedores a encontrar erros mais rapidamente.


Fonte - xkcd

Como atualizar


Há um problema: um grande número de usuários, como se viu, não atualiza o telefone após a compra. Muitos erros não teriam acontecido se os usuários tivessem atualizado seu telefone a tempo. Alguns anos atrás, as atualizações não eram feitas com tanta frequência, era necessário colocar muitas marcas de verificação; clique periodicamente no botão de atualização. Agora, nas versões modernas do Android, tudo é bastante simples, basta marcar a caixa ao comprar um telefone e ele será atualizado.

Se você desativar as atualizações, não receberemos a correção de erros críticos. Sim, aplicativos individuais podem ser atualizados pelo Google Play, mas erros graves, principalmente em segurança, permanecem inalterados, e algumas pessoas que não pressionaram esse botão ou não sabem como fazer isso continuam reclamando de erros de aplicativos.

Além disso, o momento é bastante interessante de como o fornecedor pode afetar o uso apenas das imagens mais recentes do sistema operacional. Por exemplo, os dispositivos Samsung nos últimos anos têm um recurso como Prevenção de Reversão: fusíveis de hardware que codificam a versão menos aceitável do sistema operacional. As versões mais antigas podem conter vulnerabilidades conhecidas, então você não pode baixar os sistemas operacionais antigos no telefone.

Atualizações Corporativas


O mercado B2B tem características próprias. Lá, você pode atualizar apenas as recomendações e sob a orientação estrita dos departamentos de TI e de SI. Corporativo, os usuários precisam ouvir atentamente as recomendações de serviços de TI e serviços de TI para usar soluções para minimizar riscos. Por exemplo, Samsung Knox E-FOTA .


Lá, a funcionalidade é:

  1. Atualizar seletivamente uma lista específica de dispositivos
  2. Controlar a lista de firmware usada pela empresa
  3. Tempo para atualização de acordo com o cronograma de trabalho

Como serão as atualizações no futuro


Agora, há uma tendência para a modularização do Android. A longo prazo, o Google está desenvolvendo um novo sistema operacional Fuchsia, que ainda é bastante grosseiro, mas os princípios estabelecidos lá já estão se movendo lentamente para o Android. Uma das coisas é modularização. Em um sistema operacional monolítico, destacam-se alguns componentes que podem ser atualizados independentemente pelo Google Play, assim como os aplicativos. O Google deu esse passo porque também não está satisfeito com a situação em que as pessoas não colocam atualizações, além de tentar reduzir a fragmentação de seus dispositivos para que o componente fique menos vinculado ao fornecedor e mais ao Google. O usuário médio não sabe o que é o Android Runtime e diz: "Deseja fazer o download da nova versão do Android Runtime?" parece um pouco bobo. Portanto, o Google está introduzindo um sistema de atualização invisível. Em princípio, existe há muito tempo, por exemplo, para o GMS (Google Mobile Services), esse sistema é baseado em plug-ins, e os plug-ins são atualizados de forma invisível. O Google está implementando o mesmo princípio para os componentes básicos do Android. Ou seja, em algum momento obteremos um sistema operacional que raramente atualizará o kernel, mas, na verdade, ele será atualizado frequentemente em seus subsistemas. Você nem precisa reiniciar o telefone. Agora é o período de transição. O sistema monolítico tem seus prós e contras (lembramos da controvérsia entre Torvalds e Tanenbaum há 27 anos), mas agora o Google passou para a arquitetura de microkernel e atualização independente de componentes.

Os desenvolvedores de aplicativos gostariam de ter um sistema estável e menos fragmentação. Mas isso nem sempre é uma vantagem para os fabricantes de telefones, pois reduzir a fragmentação leva a menos diferenciação, pois não podemos mais introduzir novas otimizações nesse componente se a atualização vier do Google Play. Este é o outro lado da moeda. E o usuário em breve estará livre da necessidade de pensar se precisa atualizar esse ou aquele componente. No futuro, o Google tornará o sistema tal que, se você comprar um telefone e conectar o Google Play, assine automaticamente todas as atualizações.

Como ajudar os desenvolvedores


O feedback dos usuários é muito importante, você precisa marcar a caixa para enviá-lo automaticamente. Alguns problemas podem ser resolvidos simplesmente com uma pequena atualização do sistema operacional. Com base no feedback, a Samsung decide o que exatamente precisa ser corrigido e com o que os usuários estão insatisfeitos, por exemplo, acompanha o horário de início do aplicativo - é claro, se a pessoa concordou em enviar esses dados e marcou.

Então, para resumir, o que nós, como desenvolvedores, esperamos do usuário:

  • Certifique-se de instalar as atualizações de segurança e faça-o imediatamente
  • Envie comentários e fique à vontade para informar que algo não está funcionando
  • Se você é um usuário corporativo, siga as regras adotadas pela sua empresa

Publicado por: Ivan Maidansky,
Engenheiro de software especialista
AI Compiler Lab
Centro de Pesquisa Samsung na Rússia

Source: https://habr.com/ru/post/pt472384/


All Articles