โมดูล Statsd มี statsd ซึ่งเป็นบริการเนทีฟที่ทำงานในเบื้องหลัง
เพื่อรวบรวมเมตริก และบริการ Java StatsCompanionService ซึ่งทำงานใน
กระบวนการของระบบและเชื่อมต่อ statsd กับ Java โมดูลนี้อัปเดตได้
ซึ่งหมายความว่าโมดูลจะได้รับการอัปเดตฟังก์ชันการทำงาน (เช่น การอัปเดตเมตริก
ที่ใช้ในการเก็บรวบรวมข้อมูล) นอกวงจรการเปิดตัว Android ปกติ
ขอบเขตของโมดูล
Statsd เป็นทัชพอยต์หลักระหว่างแพลตฟอร์มและการรวบรวมข้อมูลความปลอดภัยในการเปิดตัว โมดูล statsd มีโค้ดต่อไปนี้
- statsdซึ่งอยู่ใน- frameworks/base/cmds/statsd
- StatsCompanionServiceซึ่งตั้งอยู่ใน- frameworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java
- โครงสร้าง Protobuf ของแพลตฟอร์มบางส่วนซึ่งส่วนใหญ่อยู่ใน - frameworks/base/core/proto
ในฐานะบริการดั้งเดิม statsd สามารถอยู่ได้นานกว่าเฟรมเวิร์กและตรวจหาข้อขัดข้องใน system_server เอง
ใน Android 12 ระบบได้ย้ายโค้ดโมดูล Statsd
จาก frameworks/base/cmds/StatsD,
frameworks/base/apex/StatsD และ system/core/libstats
โครงสร้างโปรเจ็กต์ใหม่
- 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→- คัดลอกระดับบนสุดตามที่เป็น
- ย้าย jniไปยังframework/jni
- ย้ายไฟล์ระดับบนสุดไปยังไดเรกทอรี /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
ตัวอย่างคำสั่งย้ายแพตช์
ใช้การเปลี่ยนแปลงกับสาขาต่อไปนี้
- goog/mainline-prod
- goog/main
- goog/\*-plus-aosp
- aosp/main
ควรเก็บประวัติของไฟล์ภายใน Statsd ไว้
รูปแบบโมดูล
โมดูล statsd (com.android.os.statsd) อยู่ในรูปแบบ APEX และพร้อมใช้งานสำหรับอุปกรณ์ที่ใช้ Android 11 ขึ้นไป
ทรัพยากร Dependency ของโมดูล
โมดูล Statsd มีชุด @hide API สำหรับบันทึกเหตุการณ์จากระบบ
 สำหรับโค้ด Java เราได้ปรับโครงสร้าง API ส่วนใหญ่@hideให้สร้างขึ้นจากชุด@SystemApiเมธอดที่ติดแท็กขนาดเล็กกว่า โดยมีโค้ดกาวที่สร้างขึ้นเล็กน้อยในตัว สำหรับโค้ดที่มาพร้อมเครื่อง ฟังก์ชันที่มาพร้อมเครื่องที่มีอยู่จะได้รับการปรับโครงสร้าง
ให้เป็น C API ของ VNDK อย่างเป็นทางการพร้อมกับกาวที่สร้างขึ้น
การปรับแต่ง
โมดูล Statsd ไม่รองรับการปรับแต่ง
การทดสอบ
ชุดทดสอบความเข้ากันได้ (CTS) ของ Android จะตรวจสอบฟังก์ชันการทำงานของ statsd และ Atom ที่การจัดการการเผยแพร่ขึ้นอยู่กับ
