2012-05-18 10 views
66

Użyłem wcześniej hierarachyviewer, ale na emulatorze androida. Działa całkiem dobrze, gdy używam go na emulatorze. Jednak nie działa z Samsung Galaxy TAB 7.0, z systemem Android 2.3.4.Dlaczego przeglądarka hierarchii nie działa w przypadku Samsung Galaxy TAB 7.0?

Jest to dziennik, że dostanę

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 

Ja też nie używając hierarchyviewer w trybie debugowania, po prostu uruchamiając aplikację. Dzięki.

+0

Wygląda na to, że Samsung zbytnio dostosował swoje jądro Androida do zbyt dużej ilości! Mam również problemy z funkcjami GSM w Galaxy Tab. – VSB

+0

możliwy duplikat [hierarchii nie działa dla mojego urządzenia] (http://stackoverflow.com/questions/7801427/hierarchy-is-not-working-for-my-device) – ForceMagic

Odpowiedz

61

znalazłem rozwiązania: https://github.com/romainguy/ViewServer

ViewServer jest prosta klasy można użyć w swoim Android aplikacji do korzystania z narzędzia kontroli HierarchyViewer ...

Jeśli potrzebują tej biblioteki, a następnie wykonaj następujące czynności:

  • Dołącz bibliotekę ViewServer (Easy kierunki znaleźć here)
  • Twoja aplikacja musi wymagać pozwoleniem Internet
  • zalecany sposób użycia tej API jest zarejestrowanie działalności, gdy są one tworzone, a ich wyrejestrować kiedy oni dostać zniszczone:

    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); 
        } 
    } 
    

Proszę zapoznać się z dokumentacją w ViewServer.java aby uzyskać więcej informacji ...

+4

.... jeśli pracujesz na urządzeniu, które NIE jest telefonem programisty (tj. ... kupiłeś je ze sklepu lub sieci operatora), to jest droga. Niesamowite. – dell116

+0

Dzięki. Wystarczy tylko ViewServer.java do źródła projektu i dodać kilka metod kodu, aby włączyć ViewServer. Dodaj do swojego manifestu także uprawnienie internetowe. – VSB

+0

Jeśli masz klasę Base Activity dla wszystkich swoich działań, będzie to bardzo łatwe do wdrożenia. – neworld

35

Możesz używać HierarachyViewer tylko na emulatorze i specjalnych telefonach od deweloperów kupionych z google.

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

Cytat powyższy odnośnik

HierarchyViewer nie działa na użytkownika buduje (tj z urządzeniami dostępnych w sklepach). Jest to ze względów bezpieczeństwa. Jeśli HiearchyViewer był w stanie pracować nad użytkownik buduje dowolnej aplikacji na pulpicie (lub nawet na telefon w niektórych przypadkach) może potencjalnie uzyskać dostęp do prywatnych informacji (jak loginów i haseł.)

+0

Dzięki user1378730 !! Może, muszę kupić. :) – FireAndIce

+7

Firmware CyanogenMod wydaje się działać po wyjęciu z pudełka – max4ever

6

Prawie nie telefony z ogólną produkcją pozwolą HierarchyViewer uzyskać do nich dostęp. Zwykle telefony z programami i emulatory są jedynymi z tymi funkcjami.

+0

Dzięki Srdjan !! Twoja odpowiedź była pomocna. :) – FireAndIce

49

Zamiast tego należy użyć narzędzia do monitorowania (android-sdk/tools/monitor).

Połącz się z urządzeniem. Najpierw zamknij Eclipse, jeśli nie możesz się połączyć.

Naciśnij przycisk "Zrzut hierarchii widoku dla automatyzatora interfejsu użytkownika" w zakładce urządzenia. Jest to obok przycisku przechwytywania ekranu.

Działa od poziomu API 16 (Android 4.1).

+13

Dostępne również z perspektywy DDMS w Eclipse. – AndiDog

+6

To nie jest to samo narzędzie. – Teovald

+0

Wow, to narzędzie powinno znajdować się na wszystkich przygotowywanych dokumentach dla systemu Android. – ibgib

3

Podobny problem miałem na 4.1 Android telefonu.Użyj ViewServer w kodzie.

Przed sprawdzeniem w przeglądarce Hierarchy, wystarczy ponownie uruchomić serwer adb raz wykonując.

+1

To tak naprawdę nie odpowiada na pytanie. Jeśli masz inne pytanie, możesz je zadać, klikając [Zadaj pytanie] (http://stackoverflow.com/questions/ask). Możesz także [dodać nagrodę] (http://stackoverflow.com/help/privileges/set-bounties), aby zwrócić więcej uwagi na to pytanie, gdy już masz wystarczającą [reputację] (http://stackoverflow.com/help/ whats-reputation). –

+0

Dziękujemy za informacje ... !!! –

18

mam rozwiązany pytanie w max os

to rozwiązanie ANDROID_HVPROTO jest udokumentowane tutaj:

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

następnie spróbuj zamknąć Android Studio

run adb kill-server, adb początek -serwer

i uruchom monitor pracy dla mnie!

odpowiedź brzmi:

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

@ odpowiedź ozodrukh jest przydatna.

+1

Witam małe srebro, proszę dodać odpowiedź ozodurkh za pomocą oferty, jeśli uważasz, że to rozwiązanie. To pozwoli zachować ważność, nawet jeśli ten URL straci ważność pewnego dnia – NSNoob

+0

Ponownie edytuję odpowiedź, dzięki! – smallsilver

+0

Hej, jak to zrobić? "Ustaw zmienną środowiskową ANDROID_HVPROTO = ddm na maszynie programistycznej." – murt

1

oficjalnej dokumentacji: Optimizing Your UI powiedział tak:

Aby zachować bezpieczeństwo, Hierarchia Viewer można podłączyć tylko do urządzeń z systemem w wersji dla programistów systemu Android.

Powiązane problemy