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
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 código a seguir.
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 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 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
- 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
Comandos de amostra de movimentação de patches
Aplique as alterações nas seguintes ramificações:
-
goog/mainline-prod
-
goog/master
-
goog/\*-plus-aosp
-
aosp/master
O histórico dos arquivos dentro do Statsd deve ser preservado.
Formato do módulo
O módulo statsd ( com.google.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 embutido. 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 o gerenciamento de versões depende.