O Incremental FS do Google permite que você jogue grandes jogos antes de fazer o download completo

O Google está trabalhando em um sistema de arquivos incremental, um novo FS que pode tornar possível começar a jogar grandes jogos Android antes de serem totalmente baixados.

Os jogos para celular são um mercado enorme, com sua receita total representando quase metade do mercado global de jogos em 2019, de acordo com uma empresa de pesquisa de mercado Novo zoológico. A Play Store está repleta de novos jogos para experimentar a cada semana, o que pode ser difícil de acompanhar se você tiver tempo limitado para jogar. O Google está trabalhando em um novo sistema de arquivos para uma versão futura do Android, possivelmente Andróide 12 em 2021, o que poderia tornar muito mais fácil experimentar novos jogos. O sistema de arquivos é chamado de Sistema de Arquivos Incremental e foi projetado para permitir que aplicativos sejam executados enquanto seus arquivos binários e de recursos ainda estão sendo baixados.

No início de maio de 2019, o Google patches enviados para mesclar o suporte para o sistema de arquivos incremental no kernel Linux.

De acordo com a documentação que o Google enviou, o Incremental FS é um "sistema de arquivos virtual Linux para fins especiais que permite a execução de um programa enquanto seus arquivos binários e de recursos ainda estão sendo baixado lentamente pela rede, USB etc." O objetivo deste recurso é "permitir a execução de grandes aplicativos Android antes que seus binários e recursos sejam totalmente baixados para um Dispositivo Android." No momento, se você quiser jogar um jogo Android com 5 GB de tamanho, terá que esperar o download completo terminar antes de iniciar o jogo. O Google diz que o Incremental FS pode “esperar sem atrito por dados ausentes [temporariamente]”, o que significa que você poderá iniciar o jogo à medida que ele continua baixando cada vez mais o jogo completo. No caso do nosso hipotético jogo Android de 5 GB, digamos que a introdução do jogo tem 200 MB de tamanho localizado com um deslocamento de 1 GB. Com o Incremental File System o primeiro MB de dados do jogo pode ser baixado e enquanto ele está sendo executado o processo pode solicitar que o primeiro MB de dados no deslocamento de 1 GB seja baixado em seguida, permitindo que a introdução começar. Em seguida, o restante dos 200 MB de dados de introdução pode ser baixado, o que esperamos que aconteça mais rápido do que a reprodução da introdução, e então o menu principal do jogo pode ser carregado. Pode haver um pequeno congelamento na execução quando o próximo conjunto de dados precisar ser carregado, ou seja. o menu localizado no deslocamento de 150 MB, mas isso permitiria ao usuário entrar no jogo mais rápido do que esperar o download completo terminar.

Depois de enviar os patches para o kernel Linux, o Google iniciou discussões com vários mantenedores do kernel Linux sobre a implementação e a finalidade do FS. Alguns criticaram o Google por criar um sistema de arquivos de kernel personalizado em vez de estender o FUSE existente, ou sistema de arquivos no espaço do usuário. O Google afirmou que Sistemas de arquivos baseados em FUSE adicionam sobrecarga significativa de desempenho para seus cenários-alvo, aumentando o uso de energia a ponto de os telefones gastarem energia mais rápido do que carregando por um cabo. Isso foi problemático porque um Googler disse que "o objetivo do projeto era permitir a implantação instantânea (-ish) de aplicativos do ambiente de desenvolvimento para Android [telefones]." Com base neste comentário, presumimos que o Google pretendia que esse recurso apenas ajudasse os desenvolvedores a testar compilações incrementais de seus jogos para celular. No entanto, esse ainda pode ser o caso, vários meses após o último comentário sobre os patches iniciais do kernel Linux, o Google começou a se fundir commits relacionados ao sistema de arquivos incremental para o Android Open Source Project (AOSP). Os commits introduzem grandes mudanças em muitas partes do Android e do kernel Linux do Android, então acreditamos que é é possível que o Google esteja planejando usar o sistema de arquivos incremental para melhorar a experiência geral do usuário. Talvez o Google queira permitir que os usuários comecem a jogar grandes jogos Android sem precisar baixá-los totalmente – servindo essencialmente como um jogo nativo. Aplicativos instantâneos substituição que não requer nenhum trabalho extra dos desenvolvedores, já que a implementação é no kernel.

Atualmente, o Google está testando o recurso em um Pixel 4 XL (coral), e eles também construiu um módulo de kernel para uso com uma imagem genérica do kernel (GKI). Em vários comentários, os Googlers explicam que os dispositivos Android com esse recurso terão um novo diretório /data/incremental que contém subdiretórios para cada aplicativo no dispositivo. Os subdiretórios conterão APKs, bibliotecas nativas e arquivos OBB. Nestes subdiretórios, o sistema de arquivos incremental será montado e cada um será montado por ligação para apontar para os diretórios de instalação originais, ou seja. /data/app/. A Google Play Store será capaz de verificar a assinatura do arquivo de aplicativos instalados no FS Incremental, o que provavelmente impedirá a execução de aplicativos incrementais com assinaturas diferentes das aplicações atualmente instaladas.

Dado que o trabalho neste recurso ainda está em andamento e o prazo interno para grandes alterações nos recursos do Android 11 é provavelmente rápido se aproximando, se ainda não foi aprovado, suspeitamos que os dispositivos não começarão a ser fornecidos com suporte para o sistema de arquivos incremental até o Android 12 em 2021. Continuaremos acompanhando o desenvolvimento desse recurso e iremos atualizá-lo se soubermos mais sobre como ele funciona, é claro.


Agradecimentos aos desenvolvedores reconhecidos pelo XDA phhusson e luca020400 por suas contribuições!