O módulo Statsd inclui statsd, um serviço nativo executado em segundo plano
que coleta métricas, e o serviço Java StatsCompanionService
, que é executado no
processo do sistema e faz a ponte entre statsd e Java. Esse módulo é atualizável,
ou seja, ele pode receber atualizações de funcionalidade, como atualizações nas métricas
usadas na coleta de dados, fora do ciclo normal de versão do Android.
Limite do módulo
O Statsd é o ponto de contato principal entre a plataforma e a coleta de dados de segurança de lançamento. O módulo statsd inclui o seguinte código.
statsd
, localizada neste local:frameworks/base/cmds/statsd
StatsCompanionService
, localizado emframeworks/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
system_server
.
No Android 12, o código do módulo Statsd
foi movido de frameworks/base/cmds/StatsD
,
frameworks/base/apex/StatsD
e system/core/libstats
.
Nova estrutura do 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
jni
paraframework/jni
- Mova os 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
Comandos de amostra 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 o Android 11 ou mais recente.
Dependências do módulo
O módulo do Statsd apresenta um conjunto de APIs @hide
para registrar eventos do sistema. No caso de código Java, a maioria das APIs @hide
é refatorada para ser criada em um
conjunto menor de métodos marcados @SystemApi
, com um pequeno código de cola
gerado integrado. Para o código nativo, as funções nativas atuais são reestruturadas
para serem APIs C do VNDK oficiais, com cola gerada.
Personalização
O módulo Statsd não tem suporte à personalização.
Teste
O conjunto de teste de compatibilidade do Android (CTS) verifica a funcionalidade do statsd e os átomos em que o gerenciamento de lançamentos depende.