Теги представляют собой одну из метрик, по которой будут отслеживаться счетчики использования данных. По умолчанию и неявно тег основан только на UID. UID используется в качестве основы для политики, и его нельзя игнорировать. Таким образом, тег всегда будет как минимум представлять UID (uid_tag). Тег может быть явно дополнен «тегом учета», который связан с UID. Пользовательское пространство может использовать TrafficStats.setThreadStatsTag()
для установки части тега acct_tag, которая затем используется с сокетами: все данные, принадлежащие этому сокету, будут учитываться в теге. В этом случае политика основывается на части тега uid_tag, а статистика собирается для части acct_tag отдельно.
Без явного тегирования модуль qtaguid примет 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…
представляют явные теги, связанные с конкретными сокетами.
default_tag (acct_tag=0)
— это тег учета по умолчанию, который содержит общий трафик для этого uid, включая весь нетегированный трафик, и обычно используется для обеспечения соблюдения правил политики/квот.
Эти теги можно использовать для разделения сетевого трафика приложения на отдельные логические категории (на уровне сетевых сокетов). Такие теги можно удалять, повторно применять или изменять во время выполнения.
Модуль qtaguid реализован в ветке ядра/общей версии android-3.0.