गराज मोड

वाहन कितनी देर तक इस्तेमाल में न रहने की जानकारी देने के लिए, गराज मोड सिस्टम को बनाए रखता है ताकि नौकरी मिलने के बाद JobScheduler सीमित है कुछ समय से इस्तेमाल में न होने वाली गड़बड़ी लागू की जा सकती है.

गराज मोड क्या है?

कनेक्ट किए गए डिवाइस, जैसे कि फ़ोन पर, उपयोगकर्ता यह पक्का करने के लिए सिस्टम पर भरोसा करते हैं कि डिवाइस स्थिर, अप-टू-डेट, और ऑप्टिमाइज़ किए गए हों. यह स्थिति हासिल करने के लिए, Android प्लैटफ़ॉर्म यह पक्का करता है कि कुछ समय से इस्तेमाल में नहीं है समय वह विंडो जिसके दौरान ऐप्लिकेशन, टास्क को तब पूरा कर सकते हैं, जब वे काम नहीं कर रहे हों डिवाइस के साथ इंटरैक्ट करें. किसी फ़ोन को इस्तेमाल नहीं किया जा सकने वाला तब माना जाता है, जब उपयोगकर्ता फ़ोन को नहीं छूता है इसे लंबे समय (60 मिनट या उससे ज़्यादा) के लिए हटाता है और स्क्रीन बंद हो जाती है. किसी फ़ोन के उलट, जब किसी कार का इस्तेमाल नहीं किया जा रहा हो, तो उसे बंद कर दिया जाता है. इसका मतलब है कि कार नहीं है इस्तेमाल न होने वाला समय विंडो. गराज मोड, कार के कुछ समय तक इस्तेमाल में न रहने की सुविधा देता है.

जब उपयोगकर्ता कार को बंद कर देता है, तब सिस्टम 'गराज मोड' में चला जाता है. हालांकि, कार गैराज मोड में हो, सिस्टम चालू हो, डिसप्ले बंद हो, और JobScheduler सूची में मौजूद ऐसे जॉब लागू किए जाते हैं जो कुछ समय से इस्तेमाल में नहीं हैं. गराज मोड लागू करने के लिए, यहां देखें डिवाइस लागू करने के दिशा-निर्देश.

डिवाइस लागू करने के दिशा-निर्देश

गराज मोड चालू करने के लिए, गाड़ी को बंद करते समय, गाड़ी का एचएएल (वीएचएएल) इस्तेमाल करना होगा भेजना ज़रूरी है SHUTDOWN_PREPARE स्थिति के साथ AP_POWER_STATE_REQ SHUTDOWN_ONLY या CAN_SLEEP पर सेट पैरामीटर के साथ.

SHUTDOWN_PREPARE स्थिति लागू हो सके, इसके लिए वीएचएएल को दोनों की जानकारी देनी होगी AP_POWER_STATE_REQ कमांड के लिए पैरामीटर (स्टेट और अतिरिक्त पैरामीटर) सबमिट करें. इससे डिवाइस, गैराज मोड में चला जाएगा. जो इसमें शेड्यूल की गई जॉब का पता लगाता है JobScheduler और सिस्टम को आगे बढ़ने से रोकता है और जॉब को तब तक के लिए निलंबित या शट डाउन नहीं करता पूरा हो गया है.

डिवाइस लागू करने की सुविधा, Android फ़्रेमवर्क से कैसे कनेक्ट होती है?

गराज मोड के लिए फ़्रेमवर्क, बंद होने का समय बढ़ाने के लिए वीएचएएल से अनुरोध करता है जब तक कि तय अवधि पूरी नहीं हो जाती या सभी जॉब पूरे नहीं हो जाते, सिस्टम शट डाउन हो जाता है. खास परिस्थितियों में परिभाषित CDD में, डिवाइस लागू करने से सिस्टम जल्दी बंद हो सकता है. विवरण के लिए देखें, तो Android कंपैटबिलिटी डेफ़िनिशन दस्तावेज़ (सीडीडी).

अगर वीएचएएल को 'गराज मोड' पूरा होने से पहले सिस्टम शट डाउन करना होगा, तो वीएचएएल यह समस्या जारी कर सकता है SHUTDOWN_PREPARE पर पैरामीटर सेट किया गया SHUTDOWN_IMMEDIATELY या SLEEP_IMMEDIATELY. डिवाइस लागू करने की सुविधा का इस्तेमाल सिर्फ़ कुछ खास परिस्थितियों में ही किया जा सकता है. आम तौर पर, जब सिस्टम को चलाने के लिए ज़रूरी संसाधन उपलब्ध न हों. इसके लिए उदाहरण के लिए, बैटरी की क्षमता कम होने पर.

गराज मोड

पहला डायग्राम. गराज मोड फ़्लो

ऐप्लिकेशन डेवलपर, गैराज मोड के साथ कैसे काम करते हैं?

ऐप्लिकेशन और सेवाएं, गराज मोड के साथ सीधे तौर पर इंटरैक्ट नहीं करती हैं. इसके बजाय, ऐप्लिकेशन इसमें जॉब शेड्यूल करते हैं JobScheduler. वे नौकरियां सीमित कुछ समय से इस्तेमाल में न होने वाली गतिविधि को 'गराज मोड' के दौरान लागू किया जाता है.

'गराज मोड' के दौरान, किसी जॉब को चलाने के लिए शेड्यूल करने का तरीका नीचे दिया गया है:

public class MyGarageModeJob extends JobService { ... }

Context context = ...;
int jobId = ...;

ComponentName myGarageModeJobName = new componentName(context,
                                                      MyGarageModeJob.class);

JobInfo.Builder infoBuilder = new JobInfo.Builder(jobId, myGarageModeJobName)
                    .setRequiresDeviceIdle(true);

// Example of an optional constraint:
infoBuilder.setRequiredNetworkType(NetworkType.NETWORK_TYPE_UNMETERED);

JobScheduler jobScheduler = (JobScheduler) context
                    .getSystemService(Context.JOB_SCHEDULER_SERVICE);

jobScheduler.schedule(infoBuilder.build());

गराज मोड डीबग करें

गराज मोड को डीबग करने के लिए:
  1. गराज मोड के हिसाब से काम की लॉगिंग कैटगरी चालू करने के लिए:
    adb shell stop
    adb shell setprop log.tag.GarageMode VERBOSE
    adb shell setprop log.tag.Finsky VERBOSE
    adb shell setprop log.tag.CAR.POWER VERBOSE
    adb shell setprop log.tag.JobScheduler.Connectivity VERBOSE
    adb shell start
    
  2. गराज मोड चालू होने की जानकारी देने के लिए, लॉगकैट आउटपुट की समीक्षा करने के लिए:
    GarageMode: [Controller]: CPM state changed to SHUTDOWN_PREPARE
    GarageMode: [GarageMode]: Entering GarageMode
    GarageMode: [Controller]: Sending broadcast with action: com.android.server.jobscheduler.GARAGE_MODE_ON
    
  3. लॉगकैट आउटपुट को यह तय करने के लिए कि गराज मोड पूरा हो गया है (रद्द किया गया या पूरा हुआ):
    [GarageMode]: GarageMode was canceled
    
    या
    [GarageMode]: GarageMode completed normally
    

    गराज मोड, वाहन की पावर की स्थिति के हिसाब से तय होता है, जैसा कि बताया गया है ऊपर दिया गया है.

  4. पावर की सही स्थितियां दिखाने के लिए, Logcat आउटपुट की समीक्षा करें:
    CAR.POWER: starting shutdown prepare without Garage Mode
    GarageMode: [Controller]: CPM state changed to SHUTDOWN_PREPARE
    GarageMode: [GarageMode]: Entering GarageMode
    CAR.POWER: send shutdown prepare
    CAR.POWER: setPowerState=SHUTDOWN_PREPARE(7) param=0