Statsd মডিউলটিতে রয়েছে statsd, একটি নেটিভ সার্ভিস যা ব্যাকগ্রাউন্ডে চলে এবং মেট্রিক সংগ্রহ করে, এবং StatsCompanionService একটি জাভা সার্ভিস, যা সিস্টেম প্রসেসে চলে এবং statsd ও জাভার মধ্যে সংযোগ স্থাপন করে। এই মডিউলটি আপডেটেবল, অর্থাৎ এটি সাধারণ অ্যান্ড্রয়েড রিলিজ চক্রের বাইরেও এর কার্যকারিতার আপডেট (যেমন ডেটা সংগ্রহে ব্যবহৃত মেট্রিকের আপডেট) গ্রহণ করতে পারে।
মডিউল সীমানা
Statsd হলো প্ল্যাটফর্ম এবং উৎক্ষেপণ-নিরাপত্তা ডেটা সংগ্রহের মধ্যে প্রধান সংযোগস্থল। statsd মডিউলটিতে নিম্নলিখিত কোড অন্তর্ভুক্ত রয়েছে।
statsd, যাframeworks/base/cmds/statsdএ অবস্থিতStatsCompanionService, যাframeworks/base/services/core/java/com/android/server/stats/StatsCompanionService.javaতে অবস্থিত।প্ল্যাটফর্ম প্রোটোবাফ স্ট্রাকচারগুলির একটি উপসেট, যা প্রধানত
frameworks/base/core/protoতে অবস্থিত।
একটি নেটিভ সার্ভিস হিসেবে, statsd ফ্রেমওয়ার্কের চেয়েও বেশিদিন টিকে থাকতে পারে এবং system_server মধ্যেই ক্র্যাশ শনাক্ত করতে পারে।
অ্যান্ড্রয়েড ১২-এ, 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→- শীর্ষ স্তরটি যেমন আছে তেমনই অনুলিপি করুন
-
jniframework/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 বা তার পরবর্তী সংস্করণে চালিত ডিভাইসগুলোতে পাওয়া যায়।
মডিউল নির্ভরতা
Statsd মডিউলটি সিস্টেম থেকে ইভেন্ট লগ করার জন্য একগুচ্ছ @hide API প্রদান করে। জাভা কোডের জন্য, বেশিরভাগ @hide API-কে রিফ্যাক্টর করে @SystemApi ট্যাগযুক্ত মেথডের একটি ছোট সেটের উপর ভিত্তি করে তৈরি করা হয়েছে, এবং এর সাথে কিছু ছোট জেনারেটেড গ্লু কোডও যুক্ত করা হয়েছে। নেটিভ কোডের জন্য, বিদ্যমান নেটিভ ফাংশনগুলোকে রিফ্যাক্টর করে অফিসিয়াল VNDK C API-তে পরিণত করা হয়েছে এবং এতে জেনারেটেড গ্লু কোড অন্তর্ভুক্ত করা হয়েছে।
কাস্টমাইজেশন
Statsd মডিউলটি কাস্টমাইজেশন সমর্থন করে না।
পরীক্ষা
অ্যান্ড্রয়েড কম্প্যাটিবিলিটি টেস্ট স্যুট (CTS) statsd-এর কার্যকারিতা এবং রিলিজ ম্যানেজমেন্ট যে অ্যাটমগুলোর ওপর নির্ভর করে, সেগুলোকে যাচাই করে।