2012-05-18 8 views
66

मैंने पहले हीराराचवियर का उपयोग किया है, लेकिन एंड्रॉइड एमुलेटर पर। जब मैं एमुलेटर पर इसका उपयोग करता हूं तो यह बिल्कुल ठीक काम करता है। हालांकि यह एंड्रॉइड 2.3.4 के साथ सैमसंग गैलेक्सी टैब 7.0 के साथ काम नहीं करता है।पदानुक्रमकर्ता सैमसंग गैलेक्सी टैब 7.0 के लिए क्यों काम नहीं कर रहा है?

यह लॉग है, कि मैं

11:04:22 E/hierarchyviewer: Unable to get view server version from device 303599 
64881B00EC 
11:04:22 E/hierarchyviewer: Unable to get view server protocol version from devi 
ce 30359964881B00EC 
11:04:24 E/hierarchyviewer: Unable to debug device 30359964881B00EC 
11:05:05 E/hierarchyviewer: Unable to get view server version from device 303599 
64881B00EC 
11:05:05 E/hierarchyviewer: Unable to get view server protocol version from devi 
ce 30359964881B00EC 
11:05:07 E/hierarchyviewer: Unable to debug device 30359964881B00EC 
11:09:38 E/hierarchyviewer: Unable to get view server version from device 303599 
64881B00EC 
11:09:38 E/hierarchyviewer: Unable to get view server protocol version from devi 
ce 30359964881B00EC 
11:09:40 E/hierarchyviewer: Unable to debug device 30359964881B00EC 

मिल मैं भी डिबग मोड में hierarchyviewer का उपयोग नहीं कर रहा हूँ, बस आवेदन चल रहा है। धन्यवाद।

+0

ऐसा लगता है कि सैमसंग ने अपने एंड्रॉइड कर्नेल को थोड़ा अधिक अनुकूलित किया है! मुझे गैलेक्सी टैब में भी जीएसएम कार्यों के साथ समस्याएं आईं। – VSB

+0

संभावित डुप्लिकेट [पदानुक्रम मेरे डिवाइस के लिए काम नहीं कर रहा है] (http://stackoverflow.com/questions/7801427/hierarchy-is-not-working-for-my-device) – ForceMagic

उत्तर

61

मैं एक समाधान मिला: https://github.com/romainguy/ViewServer

ViewServer एक साधारण वर्ग आप HierarchyViewer निरीक्षण उपकरण का उपयोग करने अपने Android आवेदन में उपयोग कर सकते हैं ...

आप इस लाइब्रेरी की जरूरत है तो इन निर्देशों का पालन करते हैं:

  • ViewServer पुस्तकालय शामिल करें (आसान दिशाओं here पाया जाता है)
  • आपका आवेदन इंटरनेट अनुमति
  • इस API का उपयोग करने के लिए सिफारिश की तरह से की आवश्यकता होती है चाहिए गतिविधियों रजिस्टर जब वे बनाई गई हैं, और जब उन्हें अपंजीकृत करने के लिए है वे नष्ट हो:

    public class MyActivity extends Activity { 
        public void onCreate(Bundle savedInstanceState) { 
         super.onCreate(savedInstanceState); 
         // Set content view, etc. 
         ViewServer.get(this).addWindow(this); 
        } 
    
        public void onDestroy() { 
         super.onDestroy(); 
         ViewServer.get(this).removeWindow(this); 
        } 
    
        public void onResume() { 
         super.onResume(); 
         ViewServer.get(this).setFocusedWindow(this); 
        } 
    } 
    

अधिक जानकारी के लिए ViewServer.java में दस्तावेज़ देखें ...

+4

.... यदि आप ऐसे डिवाइस पर विकास कर रहे हैं जो डेवलपर फोन नहीं है (यानी ... आपने इसे किसी स्टोर या वाहक नेटवर्क से खरीदा है) तो यह तरीका है। बहुत बढ़िया। – dell116

+0

धन्यवाद। आपको केवल अपने प्रोजेक्ट स्रोत पर ViewServer.java की आवश्यकता है और ViewServer को सक्षम करने के लिए अपने कोड को कुछ तरीके जोड़ें। अपने मैनिफेस्ट में इंटरनेट अनुमति भी जोड़ें। – VSB

+0

यदि आपके पास अपनी सभी गतिविधियों के लिए बेस गतिविधि कक्षा है तो इसे कार्यान्वित करना बहुत आसान होगा। – neworld

35

आप केवल एमुलेटर और Google से खरीदे गए विशेष डेवलपर फोन पर हीराराची व्यूअर का उपयोग कर सकते हैं। ऊपर दी गई लिंक से

http://groups.google.com/group/android-developers/browse_thread/thread/b0b0af7a316ca768

उद्धरण

HierarchyViewer उपयोगकर्ता पर काम नहीं करता बनाता है (उपकरणों दुकानों में उपलब्ध साथ अर्थात।) यह सुरक्षा कारणों के लिए है। यदि HiearchyViewer उपयोगकर्ता पर काम करने में सक्षम था बनाता है, अपने डेस्कटॉप (या भी कुछ मामलों में फोन पर) पर किसी भी आवेदन संभावित निजी जानकारी तक पहुँच प्राप्त कर सकते हैं (लॉगिन और पासवर्ड की तरह।)

+0

धन्यवाद उपयोगकर्ता 1378730 !! शायद, मुझे एक खरीदने की जरूरत है। :) – FireAndIce

+7

CyanogenMod फर्मवेयर बॉक्स – max4ever

6

लगभग कोई सामान्य-उत्पादन फोन HierarchyViewer को उन तक पहुंचने की अनुमति देंगे। आम तौर पर उन सुविधाओं के साथ डेवलपर फोन और अनुकरणक ही होते हैं।

+0

बॉक्स से बाहर काम करता प्रतीत होता है धन्यवाद Srdjan !! आपका जवाब सहायक था। :) – FireAndIce

49

इसके बजाय मॉनिटर-टूल का उपयोग करें (android-sdk/tools/monitor)।

अपने डिवाइस से कनेक्ट करें। यदि आप कनेक्ट नहीं कर सकते हैं तो पहले ग्रहण बंद करें।

डिवाइस-टैब में "यूआई ऑटोमेटर के लिए डंप व्यू पदानुक्रम" बटन दबाएं। स्क्रीन-कैप्चर बटन के बगल में यह एक है।

API स्तर 16 (एंड्रॉइड 4.1) के बाद से काम करता है।

+13

एक्लिप्स में डीडीएमएस परिप्रेक्ष्य से भी उपलब्ध है। – AndiDog

+6

यह वही टूल नहीं है। – Teovald

+0

वाह, यह टूल एंड्रॉइड के लिए सभी शुरू करने वाले दस्तावेज़ों पर होना चाहिए। – ibgib

3

इसी तरह की समस्या 4.1 4.1 एंड्रॉइड फोन पर थी। अपने कोड में ViewServer का उपयोग करें।

पदानुक्रम दर्शक में जांच करने से पहले, बस एक बार करके adb सर्वर को पुनरारंभ करें।

+1

यह वास्तव में प्रश्न का उत्तर नहीं देता है। यदि आपके पास कोई अलग प्रश्न है, तो आप [प्रश्न पूछें] (http://stackoverflow.com/questions/ask) पर क्लिक करके पूछ सकते हैं। एक बार आपके पास पर्याप्त [प्रतिष्ठा] (http://stackoverflow.com/help/) हो जाने पर आप इस प्रश्न पर अधिक ध्यान आकर्षित करने के लिए [एक बक्षीस] (http://stackoverflow.com/help/privileges/set-bounties) भी जोड़ सकते हैं। क्या-प्रतिष्ठा)। –

+0

आपकी जानकारी के लिए धन्यवाद .... !!! –

18

मैं अधिकतम ओएस में सवाल हल कर रहा हूँ

इस ANDROID_HVPROTO समाधान यहाँ प्रलेखित है:

http://developer.android.com/tools/performance/hierarchy-viewer/setup.html

तो

रन एडीबी मार-सर्वर, एशियाई विकास बैंक शुरू एंड्रॉयड स्टूडियो बंद करने की कोशिश -सेवर

और लॉन्च मॉनीटर काम मेरे लिए!

जवाब है:

https://github.com/romainguy/ViewServer/issues/14#issuecomment-75354479

@ ozodrukh के जवाब उपयोगी है।

+1

हाय छोटे चांदी, अगर आपको लगता है कि समाधान है तो कृपया उद्धरण के साथ ओज़ोडर्क का जवाब जोड़ें। यह आपके वैध रखेगा भले ही वह यूआरएल किसी दिन अमान्य हो जाए – NSNoob

+0

मैं जवाब को दोबारा संपादित करूँगा, धन्यवाद! – smallsilver

+0

अरे यह कैसे करें? "अपनी विकास मशीन पर पर्यावरण परिवर्तनीय ANDROID_HVPROTO = ddm सेट करें।" – murt

1

आधिकारिक दस्तावेज: Optimizing Your UI ऐसा कहा:

सुरक्षा को बनाए रखने के लिए, पदानुक्रम दर्शक केवल Android प्रणाली का एक डेवलपर वर्शन चला रहे डिवाइस से कनेक्ट कर सकते हैं।

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