Net Speed é um aplicativo para Android desenvolvido em Kotlin que fornece monitoramento em tempo real da velocidade de internet e do consumo de dados diretamente na barra de notificações do dispositivo.
O aplicativo opera através de um serviço em primeiro plano (Foreground Service) que utiliza a API TrafficStats do Android. Esta API fornece contadores acumulativos de bytes transmitidos e recebidos desde o boot do sistema.
A velocidade é calculada através da diferença de bytes trafegados em um intervalo de um segundo. O aplicativo diferencia pacotes de download (recebidos) e upload (enviados) para fornecer leituras precisas de ambas as direções.
O ícone exibido na barra de status é gerado dinamicamente via código. Ele desenha um bitmap contendo o valor numérico da velocidade predominante e uma seta indicativa (cima para upload, baixo para download), permitindo a visualização da velocidade mesmo com o painel de notificações fechado.
O aplicativo registra o consumo total de Dados Móveis e Wi-Fi separadamente. Ele armazena uma base de referência no início do dia e calcula o consumo atual subtraindo essa base dos valores totais do sistema. O contador é resetado automaticamente à meia-noite.
Para garantir o gasto mínimo de bateria, o aplicativo implementa as seguintes estratégias:
- Suspensão de Processamento: O cálculo de velocidade e a atualização da interface são interrompidos completamente quando a tela do dispositivo está desligada.
- Detecção de Mudança: A notificação só é atualizada pelo sistema quando há uma mudança significativa nos valores de velocidade ou consumo, evitando wakeups desnecessários da CPU.
- Limite de Exibição (Threshold): O usuário pode definir um valor mínimo de velocidade. Se o tráfego for inferior a este limite, o indicador dinâmico é ocultado para economizar processamento gráfico.
A privacidade do usuário é um pilar fundamental do Net Speed. O aplicativo funciona sob as seguintes premissas de segurança:
- Sem Coleta de Dados: O aplicativo não coleta, não armazena e não transmite nenhum dado pessoal ou de navegação do usuário.
- Acesso Local: Todos os cálculos de rede são feitos localmente no dispositivo usando APIs padrão do Android que não requerem acesso ao conteúdo do tráfego.
- Sem Conexões Externas: O aplicativo não possui servidores próprios e não realiza conexões de rede externas para envio de estatísticas ou telemetria.
- Permissões Mínimas: O aplicativo solicita apenas as permissões estritamente necessárias para o monitoramento de rede e exibição de notificações.
- Android 7.0 (API 24) ou superior.
- Permissão de Notificações (Android 13+).
- Permissão de Serviço em Primeiro Plano.