Modul Statsd mencakup statsd, layanan native yang berjalan di latar belakang dan mengumpulkan metrik, serta layanan Java StatsCompanionService, yang berjalan dalam proses sistem dan menjembatani statsd dan Java. Modul ini dapat diupdate, yang berarti dapat menerima update fungsi (seperti update metrik yang digunakan dalam pengumpulan data) di luar siklus rilis Android normal.
Batas modul
Statsd adalah titik kontak utama antara platform dan pengumpulan data keamanan peluncuran. Modul statsd mencakup kode berikut.
statsd, yang terletak diframeworks/base/cmds/statsdStatsCompanionService, yang terletak diframeworks/base/services/core/java/com/android/server/stats/StatsCompanionService.javaSubkumpulan struktur protobuf platform, yang terutama terletak di
frameworks/base/core/proto
Sebagai layanan native, statsd dapat bertahan lebih lama dari framework dan mendeteksi error di system_server itu sendiri.
Di Android 12, kode modul Statsd dipindahkan dari frameworks/base/cmds/StatsD, frameworks/base/apex/StatsD, dan system/core/libstats.
Struktur project baru
system/core/libstats→packages/modules/StatsD/lib/libstatssystem/core/libstats/socket→packages/modules/StatsD/lib/libstatssocketsystem/core/libstats/pull→packages/modules/StatsD/lib/libstatspull
frameworks/base/cmds/StatsD→packages/modules/StatsD/binframeworks/base/apex/StatsD→- Salin tingkat atas apa adanya
- Pindahkan
jnikeframework/jni - Pindahkan file tingkat atas ke direktori
/apexframeworks/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
Contoh perintah pemindahan patch
Terapkan perubahan pada cabang berikut:
goog/mainline-prodgoog/maingoog/\*-plus-aospaosp/main
Histori untuk file dalam Statsd harus dipertahankan.
Format modul
Modul statsd (com.android.os.statsd) dalam
format APEX dan tersedia untuk perangkat
yang menjalankan Android 11 atau yang lebih tinggi.
Dependensi modul
Modul Statsd menyajikan serangkaian API @hide untuk mencatat peristiwa dari sistem. Untuk kode Java, sebagian besar API @hide di-refactor untuk dibangun pada kumpulan metode yang lebih kecil yang diberi tag @SystemApi, dengan beberapa kode lem kecil yang dibuat di dalamnya. Untuk kode native, fungsi native yang ada di-refactor menjadi API C VNDK resmi, dengan lem yang dibuat.
Penyesuaian
Modul Statsd tidak mendukung penyesuaian.
Pengujian
Android Compatibility Test Suite (CTS) memverifikasi fungsi statsd dan atom yang menjadi dependensi pengelolaan rilis.