2013-08-29 3 views
29

इसलिए मैंने विकास के लिए नेक्सस 10 खरीदा और "adb shell wm" कमांड का उपयोग करके अन्य उपकरणों को अनुकरण करने में सक्षम होने की संभावना से बहुत उत्साहित था, इसके साथ आकार, घनत्व, और overscan subcommands।एंड्रॉइड: अन्य उपकरणों को अनुकरण करने के लिए "adb shell wm" का उपयोग कैसे करें

हालांकि, मुझे यह काम करने में कुछ समस्याएं आई हैं। मैं देखना चाहता हूं कि किसी और ने इनका सामना किया है या नहीं। इस चर्चा के लिए, मान लीजिए कि मैं एक ठेठ फोन अनुकरण करने के लिए कोशिश कर रहा हूँ, तो निम्न चल रहा है:

adb shell wm size 800x480 
adb shell wm density 240 
adb shell wm overscan reset 

सबसे पहले, आकार सेट मेनू पट्टी को खराब करता। पोर्ट्रेट मोड में, केवल कुछ बटन मौजूद होंगे और गलत पैमाने पर, और लैंडस्केप मोड में, मेनू बार पूरी तरह गायब है। असल में, आप सबकुछ रीसेट करने के बाद भी, डिवाइस को पुनरारंभ करने तक यह अभी भी गायब है। इसके लिए कोई कामकाज?

दूसरा, overscan कमांड क्या करता है? मुझे इसके लिए कहीं भी कोई दस्तावेज नहीं मिल रहा है।

तीसरा, क्या डिवाइस को नए आकार के 1 पिक्सेल का उपयोग करके स्क्रीन स्क्रीन को 1 पिक्सेल तक स्क्रीन रेंडर करने का कोई तरीका है? ऐसा कहने के लिए, अगर मैं आकार 800x480 पर सेट करता हूं, तो मैं नई स्क्रीन को बिल्कुल उतनी जगह लेना चाहता हूं। इसके बजाए, ऐसा लगता है कि 800x480 स्क्रीन फैली हुई है ताकि सबसे लंबी तरफ भौतिक प्रदर्शन पर फिट हो। मुझे संदेह है कि overscan जवाब हो सकता है, लेकिन जब मैंने इसे 0,0,800,480 पर सेट करने का प्रयास किया, तो यह स्थायी रूप से मेरे सिस्टम को लटका दिया और मुझे पुनर्प्राप्ति के लिए कारखाने की छवि पर रीसेट करना पड़ा।

आखिरकार, क्या अभिविन्यास परिवर्तन के दौरान मेनू बार के साथ क्या होता है, इस मामले में टैबलेट को अनुकरण करने का कोई तरीका है? टैबलेट पर, मेनू बार स्क्रीन के नए तल पर जाता है, लेकिन एक फोन पर, यह कहां रहता है।

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

+0

ब्रायन क्या आपको यह समस्या है जहां डब्ल्यूएम आकार एक परिदृश्य में चित्र प्रदर्शित करता है, जिससे बहुत अधिक स्क्रीनस्पेस बर्बाद हो जाता है? – pt123

+0

@ pt123 मेरा ऐप एक लैंडस्केप ऐप है, इसलिए मैंने कोशिश नहीं की। –

+0

ने इसे परिदृश्य के लिए अन्य तरीके से स्वैप नहीं किया, मैं अपने प्रश्न को लिंक करना भूल गया, इसमें एक आरेख है http://stackoverflow.com/questions/20086099/adb-set-display-size-is-incorrectly-displaying-portrait- उपयोग-परिदृश्य thansk – pt123

उत्तर

22

ठीक है, मुझे लगता है कि मैंने इसे उपयोगी होने के लिए पर्याप्त रूप से समझ लिया है। मैं अपने मूल पोस्ट में उठाए गए प्रत्येक प्रश्न का उत्तर देने का प्रयास करूंगा। फिर मैं कुछ और चीजें साझा करूंगा जो मैंने सीखा है कि इसका प्रभावी ढंग से उपयोग कैसे करें।

  • क्या होम स्क्रीन पर मेनू बार को गड़बड़ करने से बचने का कोई तरीका है?

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

  • overscan कमांड क्या करता है?

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

  • क्या डिवाइस को नए आकार के 1 पिक्सेल का उपयोग करके स्क्रीन स्क्रीन को 1 पिक्सेल तक स्क्रीन रेंडर करने का कोई तरीका है?

ऐसा नहीं है कि मैंने पाया है। लेकिन शायद यह कोई फर्क नहीं पड़ता। मुझे लगता है कि adb shell wm कमांड का उपयोग करने का मुख्य बिंदु पिक्सेल-परिपूर्ण ग्राफिक्स को न देखने के लिए लेआउट का परीक्षण करना है। (और मुझे विश्वास है, क्या आप प्राप्त पिक्सेल सही से दूर बात संभव है।)

  • वहाँ एक ओरिएंटेशन बदलने के दौरान क्या मेनू पट्टी करने के लिए होता के मामले में एक फोन अनुकरण करने के लिए गोली पैदा करने के लिए कोई तरीका है ?

शायद मैं इसे गलत कर रहा हूं, लेकिन मेरे लिए, मेनू बार विचित्र और अप्रत्याशित तरीकों से व्यवहार करता है। कभी-कभी यह भारी होता है, कभी-कभी यह अभी गायब है। इसका उपयोग करने में सक्षम होने पर भरोसा न करें। हाँ, यह बेकार है। अगर कोई इसका समाधान करता है तो कृपया किसी को झुकाएं।

  • तो मैं प्रभावी रूप से "adb shell wm" का उपयोग कैसे करूं?

मुझे यकीन नहीं है कि क्यों, लेकिन मुझे यह समझने में थोड़ी देर लग गई। ऐसा शायद इसलिए है क्योंकि जब मैंने पहली बार यह शुरू किया था, तो मेरा दिमाग चीजों के बारे में सोचने के एंड्रॉइड तरीके से आदी नहीं था। लेकिन यह वास्तव में बहुत आसान है।

सबसे पहले, इच्छित आकार को पिक्सेल में सेट करें। इस चर्चा के लिए, मान लीजिए कि हम 1024x600 का उपयोग करने जा रहे हैं।

अगला, डीपीआई सेट करें। लेकिन आपको इसे क्या सेट करना चाहिए?

यह मुश्किल हिस्सा है (ठीक है, वह हिस्सा जो मुझे पहले नहीं मिला था)। जब आप डीपीआई सेट करते हैं, तो आप समीकरण के दूसरे भाग को सेट कर रहे हैं जो वर्चुअल एप्लिकेशन स्पेस के डीपी में आयाम निर्धारित करेगा, जिसे ऐप स्वयं प्रस्तुत करने के लिए उपयोग करेगा। (दुह, मुझे पता है, लेकिन मैंने पहले सोचा था कि निर्दिष्ट डीपीआई मुख्य रूप से संसाधनों का चयन करने के लिए उपयोग किया जाएगा, जो वास्तव में यह भी करता है।)

चलिए 1024x600 के स्क्रीन आकार के साथ विभिन्न घनत्वों का उपयोग करने के परिणामों पर नज़र डालें ।

सबसे पहले, कि

dp = px * (160/dpi) 

अगर हम 160 पर हमारे डीपीआई निर्दिष्ट इसका मतलब है, एप्लिकेशन विश्वास करेंगे कि उपलब्ध स्थान 1024dp एक्स 600dp है को ध्यान में रखना। यदि इसके बजाय हम 240 का उपयोग करते हैं, जो कम 683 डीपी एक्स 400 डीपी में बदल जाता है, और इसके विपरीत, अगर हम 120 का उपयोग करते हैं, तो हमें एक प्रभावशाली 1365 डीपी एक्स 800 डीपी मिलता है। इसे 80 पर सेट करें, और अब आप 2048 डीपी एक्स 1200 डीपी रॉक कर रहे हैं।

काउंटर-अंतर्ज्ञानी भाग यह महसूस कर रहा है कि एक कम घनत्व परिणाम निर्दिष्ट करता है जो एक अल्ट्रा-हाय-रेज मॉनीटर में दिखाई देने वाली छवि जैसा दिखता है - सबकुछ छोटा है। लेकिन ऐसा इसलिए है क्योंकि ऐप अब एक ही भौतिक स्थान का इलाज कर रहा है जैसे कि यह डीपी में बहुत बड़ा आकार था।

तो 80 की घनत्व के उदाहरण पर वापस जाकर, हमारे पास 2048 डीपी एक्स 1200 डीपी का आभासी क्षेत्र है, लेकिन यह वास्तव में आप जिस भी आकार की भौतिक स्क्रीन का उपयोग कर रहे हैं उस पर स्क्रैच किया जा रहा है। चूंकि 160 डीपी लगभग 1 इंच होने वाला है, यह 12.8 इंच की चौड़ाई वाला लगभग एक अन्य विश्व टैबलेट होगा। लेकिन वह सारी चीज आपके टैबलेट के वास्तविक आकार तक कम हो गई है, जिससे आपका उदारतापूर्वक आकार 30 डीपी टेक्स्ट बहुत खराब दिखाई देता है।

शायद मैं कमरे में सबसे धीमा बच्चा हूं, लेकिन मुझे वास्तव में यह समझने में थोड़ी देर लग गई। मुझे आशा है कि यह किसी और की मदद करेगा।

+0

जब मैं 'adb shell wm घनत्व 240' चलाता हूं तो मुझे त्रुटि मिलती है: '/ system/bin/sh: wm: नहीं मिला'। क्यूं कर? मेरा डिवाइस रूट है! – breceivemail

+2

@breceivemail: wm केवल जेलीबीन 4.3 और उसके बाद में उपलब्ध है। आप प्रदर्शन-आकार का उपयोग कर सकते हैं और इसके बजाय डिस्प्ले-घनत्व कर सकते हैं, प्री-4.3 डिवाइस – aravindsagar

+1

में मेरे नेक्सस 4 का निचला 20% काम नहीं करता है। मैं उपयोग करता हूं: एंड्रॉइड डब्लूएमएम उस क्षेत्र में कुछ भी नहीं खींचने के लिए 'wm overscan 0,0,0,210' ताकि मैं सभी तैयार क्षेत्रों को पूरी तरह से संचालित कर सकूं .. – SuperSaiyan

1

मुझे लगता है कि overscan स्क्रीन की जगह ("मार्जिन") सेट कर रहा है जिसका उपयोग नहीं किया जाता है। एडीबी खोल wm overscan 200,200,200,200 जैसे किसी ऐप को शुरू करें और आप अंतर देखेंगे। घर में अंतर इतना स्पष्ट नहीं है।

यदि यह आकार और घनत्व के संयोजन में वास्तव में उपयोगी है तो मुझे नहीं पता। मैंने कुछ परीक्षण किए लेकिन कोई उपयोगी परिणाम नहीं मिला। यह देखने के लिए कि क्या मूल्यों का उपयोग करना है, यह थोड़ा जटिल (?) है ...

+0

में मेरा प्रश्न देखें, उत्तर के लिए धन्यवाद। यह पुष्टि करता है कि मैं क्या देख रहा था। मुझे लगता है कि यह स्क्रीन का हिस्सा अनुपयोगी है, जो सीआरटी और अन्य मॉनीटर के लिए उपयोगी हो सकता है जहां सभी स्क्रीन दिखाई देने की गारंटी नहीं है। जो मुझे समझ में नहीं आता है वह वास्तव में निर्दिष्ट ऐप आकार से बाहर निकलता प्रतीत होता है। इसलिए यदि आप ऐप आकार 800x600 पर सेट करते हैं लेकिन 200,0,0,0 का ओवरस्कैन सेट करते हैं, तो आपका वास्तविक इंटरफ़ेस केवल 600x600 है। मुझे लगता है कि अगर आप वास्तव में overscan का उपयोग करना चाहते हैं, तो आपको केवल मूल आकार आयामों पर ओवरस्कैन राशि जोड़नी होगी। –

+0

मैं विभिन्न स्क्रीन आकारों पर परीक्षण करने के लिए नेक्सस 10 का भी उपयोग करता हूं। मुझे लगता है कि adb shell wm उपयोगी है। "भौतिक स्क्रीन आकार" सही नहीं है (यह छिद्रित है) और नेविगेशन बार भ्रष्ट (और होम स्क्रीन) जैसा आपने कहा था। लेकिन घटकों का सापेक्ष आकार सही प्रतीत होता है और आप देख सकते हैं कि चीजें स्क्रीन पर फिट होती हैं या नहीं। एवीडी पुराने पीसी पर बेहद धीमी सिमुलेटिंग टैबलेट है ... –

+0

मैंने देखा कि overscan टुकड़ों को एक उन्माद में फेंकता है। क्या कारण हो सकता है? Overscan सेटिंग और जीमेल जैसे खुले एप्स सेट करने का प्रयास करें, और ओवरस्कैन क्षेत्र की तुलना में अधिक जगह सफेद रहती है। – aravindsagar

संबंधित मुद्दे