O Google Pixel 2 oferece suporte ao compartilhamento acelerado por hardware para melhorar a vida útil da bateria durante o compartilhamento

Há muito sobre o novo Google Pixel 2 / Pixel 2 XL que ainda não foi descoberto. O Google adotou rapidamente o mundo da tecnologia quando, de repente, revelaram que os novos smartphones tinham um processador de imagem personalizado chamado Pixel Visual Core, embora isso ainda não esteja ativado. Há outra coisa interessante que encontramos no Pixel 2, embora não tenhamos 100% de certeza do que implicam todas as implicações desse novo recurso. O recurso, chamado tethering acelerado por hardware, provavelmente melhorará a vida da bateria durante o tethering de dados móveis, descarregando toda a lógica relacionada ao encaminhamento de pacotes e outras tarefas relacionadas a tethering no hardware.

Proprietários existentes do Google Pixel 2 ou Pixel 2 XL podem encontrar o recurso em Opções do desenvolvedor na categoria Rede. Ele é ativado por padrão, portanto, presumivelmente, já está funcionando nesses dispositivos. No Android Open Source Project (AOSP), podemos ver vários commits relacionados ao recurso na tag "tether-offload". Podemos ver que há lógica para passar o limite de dados do smartphone para o código de descarregamento, para que seu limite não seja excedido.

Mais importante, podemos ver uma implementação para o “HAL de descarregamento de cabo de conexão”. HAL (Hardware Abstraction Layers) é o que permite que o sistema Android faça interface com o chip WiFi no SoC que manipulará o cabo de conexão acelerado por hardware. Esse HAL é usado pelo Android para descarregar toda a carga do encaminhamento de pacotes do Android para o hardware dedicado a ele.

O resultado final é que os recursos do sistema dedicados ao compartilhamento de dados móveis serão liberados para outros fins. Quanto menos a CPU do dispositivo for responsável pelas operações relacionadas ao compartilhamento, mais energia será economizada. Isso pode ser especialmente útil quando o dispositivo entra em suspensão, porque atualmente o compartilhamento baseado em software no Android precisa que a CPU seja mantida acordada com um wakelock. Ao descarregar a responsabilidade de amarrar no hardware, talvez a CPU possa realmente entrar no estado de suspensão - melhorando a vida útil da bateria por mais tempo .

Então, quais dispositivos suportam compartilhamento acelerado por hardware? Bem, só encontramos a alternância no Google Pixel 2 / Pixel 2 XL até o momento, e assumimos que apenas esses dispositivos são compatíveis. De acordo com os compromissos de transferência de compartilhamento da HAL, parece que o Google estava testando o suporte no Google Nexus 5X (bullhead). Além disso, de acordo com alguns comentários dos Googlers, parece que o HAL de descarregamento de compartilhamento é bastante neutro em relação ao fornecedor:

Embora este HAL tenha algumas peculiaridades para a configuração da Qualcomm, a grande maioria disso é neutra em relação ao fornecedor. Qualquer fornecedor com um SoC adequadamente capaz poderia suportar descarregar o hardware de conexão com isso, em teoria (eles podem pular a passagem extra de fd na instalação, quem sabe).

Em outro comentário, um Googler menciona como os dispositivos podem misturar e combinar chipsets WiFi e descarregar HALs, mas que a API que eles criaram ainda foi projetada para funcionar para reduzir a melhor vida útil da bateria do dispositivo durante o compartilhamento.

No topo, definimos que essa API retornará uma configuração estática. Dependendo da implementação do fornecedor / hardware, esses recursos podem mudar. Por exemplo, um dispositivo pode ter wifi do fornecedor A e descarregar HAL do fornecedor B. enquanto outro dispositivo pode ter chipset Wifi do fornecedor B e descarregar HAL do fornecedor B. Nesse caso, os recursos de descarregamento podem ser diferentes. Mesmo com recursos limitados, a estrutura / cliente pode querer tirar vantagem da transferência de hardware para um conjunto limitado. Portanto, a API foi projetada para tirar o máximo proveito do hardware, pois pode haver variações da implementação de soc para soc.

Se você possui um Google Pixel 2 / Pixel 2 XL e deseja ver o status do compartilhamento acelerado por hardware, pode inserir o seguinte comando do shell do ADB e procurar cadeias relacionadas a "descarregamento de hardware:"

 adb shell dumpsys connectivity tethering 

Teremos que fazer testes para realmente ver o quão eficaz é o compartilhamento acelerado por hardware para melhorar a vida útil da bateria durante o compartilhamento. O tethering também causava um grande impacto no desempenho, mas as grandes melhorias na velocidade da CPU e otimizações no Android corrigiram esse problema em grande parte. Portanto, não esperamos que a lógica de descarregamento de tethering via HAL de descarregamento para o chipset WiFi leve a uma melhoria notável no desempenho.