Health@1.0 का बहिष्कार करें

यह फ़्रेमवर्क, तब तक health@1.0 के साथ काम करता रहेगा, जब तक इसे HAL के बंद होने के शेड्यूल के मुताबिक पूरी तरह से बंद नहीं कर दिया जाता. जब health@1.0 का इस्तेमाल बंद कर दिया जाता है (फ़्रेमवर्क के साथ काम करने की जानकारी देने वाली मैट्रिक्स से एंट्री हटा दी जाती है), तो healthd और libbatterymonitor को भी सिस्टम से हटा दिया जाना चाहिए, ताकि healthd के गलत काम करने से बचा जा सके. health@1.0 एक वैकल्पिक एचएएल है और health@1.0 की सभी healthd डिपेंडेंसी, NULL जांच की मदद से सुरक्षित हैं. इसलिए, इसे बंद करने पर कोई समस्या नहीं होनी चाहिए.

जब Android, लेगसी कोड पाथ (healthd,health@1.0) को हटा देता है, तो Health@1.0 HAL को काम रोकने वाले शेड्यूल के हिसाब से बंद कर दिया जाता है. इसके अलावा, Android ये चीज़ें भी हटा देता है:

  1. फ़्रेमवर्क में healthd डिपेंडेंसी
  2. healthd
  3. सिस्टम से health@1.0 HAL डेफ़िनिशन लाइब्रेरी
  4. फ़्रेमवर्क कंपैटबिलिटी मैट्रिक्स में Health@1.0 की एंट्री

healthd को हटाना

हमारा सुझाव है कि Android 9 के साथ लॉन्च होने वाले डिवाइसों और नई वेंडर इमेज में Health 2.0 HAL उपलब्ध कराने वाले डिवाइसों के लिए, डिस्क का स्टोरेज बचाने और बूट होने में लगने वाले समय को कम करने के लिए, सिस्टम इमेज से healthd को हटाएं.

ऐसा करने के लिए:

  1. Soong में, डिवाइस के हिसाब से लागू करने के लिए, यहां दी गई लाइन जोड़कर, सिस्टम इमेज से healthd और healthd.rc हटाएं:

    cc_binary {
        name: "android.hardware.health@2.0-service.device_name"
        overrides: ["healthd"],
        // ...
    }
    

    अगर मॉड्यूल Make में है, तो:

    LOCAL_MODULE_NAME := \
        android.hardware.health@2.0-service.device_name
    LOCAL_OVERRIDES_MODULES := healthd
    

    अगर डिफ़ॉल्ट तौर पर लागू होने वाला android.hardware.health@2.0-service इंस्टॉल है, तो डिवाइस के हिसाब से android.hardware.health@2.0-service.device_name लागू करें. ज़्यादा जानकारी के लिए, स्वास्थ्य से जुड़ा डेटा लागू करना लेख देखें.