O módulo Statsd inclui 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 statsd e Java. Este módulo é atualizável, o que significa que pode receber atualizações de funcionalidade (como atualizações nas métricas usadas na coleta de dados) fora do ciclo normal de lançamento do Android.
Limite do módulo
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 emframeworks/base/cmds/statsd
StatsCompanionService
, localizado emframeworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java
Um subconjunto das estruturas protobuf da plataforma, localizadas principalmente em
frameworks/base/core/proto
Como um serviço nativo, o statsd pode sobreviver à estrutura e detectar falhas no próprio 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
→- Copie 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 alterações às seguintes ramificações:
-
goog/mainline-prod
-
goog/main
-
goog/\*-plus-aosp
-
aosp/main
O histórico dos arquivos no Statsd deve 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 superior.
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
são refatoradas para serem construídas em um conjunto menor de métodos marcados @SystemApi
, com algum pequeno código de cola gerado incorporado. Para código nativo, as funções nativas existentes são refatoradas para serem APIs VNDK C oficiais, com código gerado cola.
Costumização
O módulo Statsd não oferece suporte à personalização.
Teste
O Android Compatibility Test Suite (CTS) verifica a funcionalidade do statsd e os átomos dos quais depende o gerenciamento de versões.