2017-01-08 13 views
5

एंड्रॉइड चीजों के लिए एडीबी के माध्यम से आप स्क्रीनशॉट कैसे लेते हैं? मैंने कोशिश की है:एंड्रॉइड चीजें: एक स्क्रीनशॉट लें

adb shell screencap -p /sdcard/screen.png 
adb pull /sdcard/screen.png 
adb shell rm /sdcard/screen.png 

और

adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > screen.png 
+0

क्या आपने एंड्रॉइड स्टूडियो के भीतर से कोशिश की है? – riggaroo

+0

विचार के लिए धन्यवाद- दुर्भाग्यवश यह एक त्रुटि फेंकता है: "डिवाइस से स्क्रीनशॉट प्राप्त करते समय अनपेक्षित त्रुटि: EOF" –

+0

क्या यह आपके अन्य प्रश्न से संबंधित है? यानी यह आपकी गैर-काम करने वाली स्क्रीन के साथ प्लग इन है या नहीं? क्या आपके पास एचडीएमआई स्क्रीन जुड़ी है? – Blundell

उत्तर

2

मैं एंड्रॉयड हालात डेवलपर पूर्वावलोकन में screepcap काम नहीं कर सके। आदेश 0-आकार फ़ाइल में परिणाम देता है।

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

  • होस्ट मशीन को फ्रेमबफर खींच लें। ध्यान दें कि आप एक अनुमति जाँच में सफल करने के लिए रूट के रूप में adbd शुरू करने की आवश्यकता:

    adb root 
    adb pull /dev/graphics/fb0 screenshot 
    
  • आप पसंद करते हैं उपकरण के द्वारा छवि में कनवर्ट कच्चे द्विआधारी। मैं का उपयोग कर रहा हूँ। अलग-अलग स्क्रीन रिज़ॉल्यूशन या पिक्सेल प्रारूप के कारण नीचे दिया गया आदेश आपके लिए काम नहीं कर सकता है। यदि ऐसा है, तो उचित परिवर्तन करें।

    ffmpeg -f rawvideo -pix_fmt rgb565 -s 800x480 -i screenshot screenshot.png 
    
+0

का उपयोग करके एक संभावित समाधान है 'adb shell dumpsys विंडो का उपयोग करें। स्क्रीन रेज़ोल्यूशन को खोजने के लिए grep mUnres'। – Onik

+0

@Andriy Omelchenko पहली जगह में क्या गलत था? गलत स्क्रीन संकल्प? 'Pix_fmt' का क्या मूल्य आपके लिए काम करता है? – Onik

+1

हां, - गलत स्क्रीन रिज़ॉल्यूशन और '-pix_fmt rgb565' बिना परिवर्तन किए मेरे लिए भी काम करता है। और तुम शांत हो) Thanx! –

1

लगता है, एंड्रॉयड हालात में पुराने सीमित ओपन संस्करण, Tatsuhiko Araihere द्वारा वर्णित की वजह से वहाँ एडीबी के माध्यम से स्क्रीनशॉट पाने के लिए कोई संभावना नहीं है, लेकिन आप Android स्टूडियो से वीडियो (जैसे रिकॉर्ड कर सकते हैं, या ADB commands के माध्यम से) और इसे से हड़पने फ्रेम, उदाहरण के लिए ffmpeg के माध्यम से की तुलना में:

ffmpeg -i device-2017-01-23-193539.mp4 -r 1 screen-%04d.png 

जहां device-2017-01-23-193539.mp4 - दर्ज की गई (एंड्रॉयड स्टूडियो के माध्यम से) फ़ाइल का नाम।

+0

मैंने देखा कि उन्होंने ओपनजीएल को एंड्रॉइड चीजों में नहीं रखा - काफी निराशाजनक –

+0

@ क्विंटिन बाल्सडन _ "मैंने देखा कि उन्होंने एंड्रॉइड चीजों में ओपनजीएल नहीं डाला" _ उन्होंने किया। अर्थात्, यह 'ओपनजीएल ईएस-सीएम 1.0' है जिसे' एडीबी शैल डंपिसिस 'के साथ देखा जा सकता है grep GLES'। – Onik

+1

मुझे यह भी संदेह है कि यह _ "पुराना सीमित ओपनजीएल संस्करण" _ है। मेरे पास 'एंड्रॉइड 4.2' फोन पर 'ओपनजीएल ईएस-सीएम 1.1' है और 'स्क्रीनकैप' अपेक्षित काम करता है। – Onik

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