As tags representam uma das métricas com as quais os contadores de uso de dados serão rastreados. Por padrão, e implicitamente, uma tag é baseada apenas no UID. O UID é usado como base para policiamento e não pode ser ignorado. Portanto, uma tag sempre representará pelo menos um UID (uid_tag). Uma tag pode ser aumentada explicitamente com uma "tag de contabilidade" que está associada a um UID. O espaço do usuário pode usar TrafficStats.setThreadStatsTag()
para definir a parte acct_tag da tag que é então usada com soquetes: todos os dados pertencentes a esse soquete serão contados na tag. O policiamento é então baseado na parte uid_tag da tag, e as estatísticas são coletadas para a parte acct_tag separadamente.
Sem marcação explícita, o módulo qtaguid assumirá a default_tag: {acct_tag=0, uid_tag=10003}
a: {acct_tag=1, uid_tag=10003} b: {acct_tag=2, uid_tag=10003} c: {acct_tag=3, uid_tag=10003}
a, b, c…
representam tags explícitas associadas a soquetes específicos.
default_tag (acct_tag=0)
é a tag de contabilidade padrão que contém o tráfego total para esse uid, incluindo todo o tráfego não marcado, e normalmente é usada para impor regras de policiamento/cota.
Essas tags podem ser usadas para perfilar o tráfego de rede de um aplicativo em categorias lógicas separadas (no nível de soquete de rede). Essas tags podem ser removidas, reaplicadas ou modificadas durante o tempo de execução.
O módulo qtaguid foi implementado no kernel/ramo comum do android-3.0