O módulo Statsd inclui o statsd, um serviço nativo que é executado em segundo plano
coletando métricas, e o serviço Java StatsCompanionService, que é executado no
processo do sistema e faz a ponte entre o statsd e o Java. Esse módulo pode ser atualizado, o que significa que ele pode receber atualizações de funcionalidade (como atualizações das métricas usadas na coleta de dados) fora do ciclo normal de lançamento do Android.
Limite do módulo
O Statsd é o principal ponto de contato entre a plataforma e a coleta de dados de segurança de lançamento. O módulo statsd inclui o seguinte código.
- statsd, localizado em- frameworks/base/cmds/statsd
- StatsCompanionService, localizado em- frameworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java
- Um subconjunto das estruturas protobuf da plataforma, localizado principalmente em - frameworks/base/core/proto
Como um serviço nativo, o statsd pode sobreviver ao framework e detectar falhas no próprio
system_server.
No Android 12, o código do módulo Statsd
é movido de frameworks/base/cmds/StatsD,
frameworks/base/apex/StatsD e system/core/libstats.
Nova estrutura de projeto
- system/core/libstats→- packages/modules/StatsD/lib/libstats- system/core/libstats/socket→- packages/modules/StatsD/lib/libstatssocket
- system/core/libstats/pull→- packages/modules/StatsD/lib/libstatspull
 
- frameworks/base/cmds/StatsD→- packages/modules/StatsD/bin
- frameworks/base/apex/StatsD→- Copiar o nível superior como está
- Mover jniparaframework/jni
- Mover arquivos de nível superior para o diretório /apex- frameworks/base/apex/StatsD/\*→- packages/modules/StatsD/apex/\*
- frameworks/base/apex/StatsD/jni→- packages/modules/StatsD/apex/framework/jni
 
 
- cts/hostsidetests/StatsD→- packages/modules/StatsD/tests
Exemplos de comandos de movimentação de patch
Aplique as mudanças às seguintes ramificações:
- goog/mainline-prod
- goog/main
- goog/\*-plus-aosp
- aosp/main
O histórico dos arquivos no Statsd precisa ser preservado.
Formato do módulo
O módulo statsd (com.android.os.statsd) está no formato APEX e está disponível para dispositivos com Android 11 ou versões mais recentes.
Dependências do módulo
O módulo Statsd apresenta um conjunto de APIs @hide para registrar eventos do
sistema. Para código Java, a maioria das APIs @hide é refatorada para ser criada em um conjunto menor de métodos marcados com @SystemApi, com um pequeno código de junção gerado incorporado. Para código nativo, as funções nativas atuais são refatoradas
para serem APIs C VNDK oficiais, com cola gerada.
Personalização
O módulo Statsd não aceita personalização.
Teste
O Teste de compatibilidade do Android (CTS) verifica a funcionalidade do statsd e os átomos de que o gerenciamento de versões depende.
