रिबूट होने से पहले "adb रिबूट" मेरे फोन को सामान्य से ज्यादा तेजी से बंद क्यों करता है? क्या यह महत्वपूर्ण कदमों को छोड़ रहा है?


13

मेरे पास एक सैमसंग गैलेक्सी एस रिले 4 जी है जो एंड्रॉइड 4.1.2 पर चल रहा है। इसके अलावा, मैंने एक पीसी पर एडीबी स्थापित किया है।

जब मैं पावर बटन को लंबे समय तक दबाता हूं तो "रिस्टार्ट" पर टैप करें, मेरा फोन बंद होने में लगभग दस सेकंड लगते हैं। फिर यह खुद को रिबूट करता है।

जब मैं adb rebootइसके बजाय प्रवेश करता हूं , तो फोन बहुत तेजी से बंद हो जाता है: शटडाउन केवल एक या अधिक सेकंड लेता है। तब यह रिबूट होता है।

मेरे सवाल:

  1. adb rebootइतना तेज क्यों है ?

  2. क्या यह केवल मोबाइल नेटवर्क ऑपरेटर के शटडाउन एनीमेशन को छोड़ रहा है, या यह कुछ और महत्वपूर्ण प्रक्रियाओं को भी छोड़ रहा है?

  3. क्या मैं adb rebootहर एक बार फोन को रिबूट करना चाहता हूं, या ऐसा करने के लिए कुछ नुकसान है?

  4. (वैकल्पिक) आप कैसे जानते हैं?


अधिक जानकारी (आप इसे छोड़ सकते हैं)

मैंने इस प्रश्न को पोस्ट करने से पहले कुछ शोध किया। लेकिन मैं अभी भी बेपर्दा हूं। मैं आपको दिखाता हूं कि मैंने क्या खोज की थी।

क्योटो माइक्रो कंप्यूटर कं टेट्सयुकी कोबायाशी इस पीडीएफ स्लाइड शो की स्लाइड 8 में बताते हैं कि अदब के तीन भाग होते हैं: एक क्लाइंट, एक सर्वर और एक डेमॉन। क्लाइंट और सर्वर एक पीसी पर चलते हैं। डेमन एक फोन पर चलता है। स्लाइड 11 में, वह बताते हैं कि सभी तीन भागों को एक स्रोत निर्देशिका से बनाया गया है। (यह इस निर्देशिका है ।)

मैंने सेवाओं के शब्दreboot और पढ़ने के हिस्सों के लिए उस स्रोत निर्देशिका में खोज करने की कोशिश की। सीपी। , लेकिन मैं अभी भी यह पता लगाने में सक्षम नहीं हूं कि वास्तव में क्या करता है, या यह तार पर क्या भेजता है, या जब फोन चलता है तो कौन सा कोड चलता है। उन बाइट्स प्राप्त करता है। मैंने अपने किसी भी सवाल का जवाब नहीं दिया है।adb reboot


संबंधित : "कमांड लाइन (दूर से) के माध्यम से एंड्रॉइड को पुनरारंभ करने का सबसे अच्छा तरीका क्या है?"


लगता है कि क्या setprop sys.powerctl rebootकरना होगा के समान है। बाद में रिबूट करने के निर्देश के बाद एक अशुद्ध शटडाउन
Firelord

जवाबों:


7

platform/system/coreआपके द्वारा ऊपर दिए गए भंडार के आधार पर , मुझे लगता है कि कुंजी अंदर है libcutils/android_reboot.c। और महत्वपूर्ण परिभाषा में हैं include/cutils/android_reboot.h; अर्थात्:

    /* Commands */
    #define ANDROID_RB_RESTART  0xDEAD0001
    #define ANDROID_RB_POWEROFF 0xDEAD0002
    #define ANDROID_RB_RESTART2 0xDEAD0003

आमतौर पर सामान्य रिबूट मोड (डिवाइस बटन, आदि का उपयोग करके) में, प्रक्रिया लंबी है क्योंकि (मुझे लगता है) यह umount विभाजन है, सभी अनुप्रयोगों को मार डालो, सभी फोपेन नोड्स को बंद करें, जैसा कि शटडाउन प्रक्रिया में है। adb rebootलिनक्स रिबूट कमांड के साथ तुलना की जा सकती है (जहां से यह आता है): यह सिर्फ डिस्क को फ्लश करता है और रिबूट में पहले हत्या प्रक्रियाओं या अनमाउंटिंग फाइल सिस्टम के बिना दर्ज करता है। मैं रिबूट से पहले आरओ मोड में डिस्क (हमारे केस डिवाइस के स्टोरेज सिस्टम में) को डालने के लिए जारी एक तेज रीमाउंट कमांड भी देखता हूं।

मेरा यह भी मानना ​​है कि जारी किया गया आदेश kernel_restart()कर्नेल में अंतर्निहित है। उदाहरण के लिए देखें http://www.phonesdevelopers.com/1730094/machine_restartकॉल भी चेक करें ।


1
+1। आपका बहुत बहुत धन्यवाद! क्या यह मेरे लिए adb rebootहर दिन सुरक्षित है भले ही यह पूरी तरह से बंद करने की प्रक्रिया नहीं करेगा?
अविस्मरणीयसुपोर्ट्समोनिका

यह चोट नहीं करता है, लेकिन आपके पास ऐसा करने का एक अच्छा कारण हो सकता है। यदि आप वास्तव में कुछ कैश किए गए डेटा को खाली करना चाहते हैं, तो वैसे भी अन्य समाधान हैं।
user3344236

अन्य समाधान जैसे ...?
जॉनीटेक्स

2

अन्य स्टाॅक एक्सचेंज यूजर्स इस सवाल का जवाब पहले ही पोस्ट में कहीं और दे चुके हैं।

t0mm13b अपने वाहक के शटडाउन एनीमेशन को प्रदर्शित करते हुए लिखते हैं कि:

  • एंड्रॉइड रनटाइम के महत्वपूर्ण हिस्सों को सुरक्षित रूप से बंद कर रहा है।
  • ओएस ऐप और सेवाओं को इनायत से करीबी बताने के लिए भी इंटेंट का प्रसारण कर रहा है। ये, बदले में, सभी डेटा और साझा वरीयताओं के अपने कैश फ्लश करते हैं, जो कि sqlite डेटाबेस, एट वेटेरा को बचाता है।

दूसरे शब्दों में, एप्लिकेशन और सेवाओं को व्यवस्थित रूप से अपनी सफाई करने का मौका दिया जाता है।

[कमांड्स जैसे adb reboot] हार्शर हैं। वे वास्तव में एक सुंदर बंद के लिए सुरक्षा तंत्र को बायपास करते हैं।

कहीं और, एक शानदार शटडाउन के दौरान एंड्रॉइड क्या करता है, यूरी एक और स्पष्टीकरण प्रदान करता है:

  • यह एक्टिविटी मैनजर को बंद कर देता है। मुझे लगता है कि एक्टिविटी मैनजर को बंद करने का मतलब है कि सभी गतिविधियां आवश्यक जीवन चक्र को पार कर जाएंगी और इस प्रकार, गतिविधियों की स्थिति संग्रहीत हो जाएगी। लेकिन मुझे यकीन नहीं। मैंने जांच नहीं की।
  • फिर, एंड्रॉइड सेलुलर रेडियो इंटरफेस को बंद कर देता है।
  • उसके बाद, यह ब्लूटूथ को बंद कर देता है।
  • अंत में, यह माउंटसेवा को बंद करने की कोशिश करता है।

adb reboot तेजी से है क्योंकि यह ऊपर या ऊपर के सभी को छोड़ देता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.