71

以前にhierarachyviewerを使用しましたが、Androidエミュレーターで使用しました。エミュレータで使用すると、まったく問題なく動作します。ただし、Samsung Galaxy TAB 7.0 と Android 2.3.4 では動作しません。

これは私が得るログです

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 を使用しておらず、アプリケーションを実行しているだけです。ありがとう。

4

8 に答える 8

62

回避策を見つけました: https://github.com/romainguy/ViewServer

ViewServer は、Android アプリケーションで HierarchyViewer 検査ツールを使用するために使用できる単純なクラスです...

このライブラリが必要な場合は、次の指示に従ってください。

  • ViewServer ライブラリをインクルードします (簡単な説明はここにあります) 。
  • アプリケーションには INTERNET 権限が必要です
  • この 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 のドキュメントを参照してください...

于 2012-10-11T10:08:04.357 に答える
50

代わりに monitor-tool を使用してください ( android-sdk/tools/monitor)。

デバイスに接続します。接続できない場合は、最初に Eclipse を閉じます。

デバイスタブの「UI automator のビュー階層をダンプ」ボタンを押します。スクリーン キャプチャ ボタンの横にあるボタンです。

API レベル 16 (Android 4.1) 以降で動作します。

于 2013-05-07T15:39:14.150 に答える
35

HierarachyViewer は、Google から購入したエミュレーターと特別な開発者の携帯電話でのみ使用できます。

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

上記リンクより引用

HierarchyViewer はユーザー ビルド (つまり、店舗で入手可能なデバイス) では機能しません。これはセキュリティ上の理由によるものです。HiearchyViewer がユーザー ビルドで動作できた場合、デスクトップ上の (場合によっては電話上の) アプリケーションが個人情報 (ログインやパスワードなど) にアクセスできる可能性があります。

于 2012-05-18T05:52:52.973 に答える
21

私はmax osで質問を解決しました

この ANDROID_HVPROTO ソリューションは、次の場所に文書化されています。

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

次に、Android Studio を閉じてみます

adb kill-server、adb start-server を実行します

そして私にモニターの仕事を立ち上げてください!

答えは次のとおりです。

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

@ozodrukhの答えは役に立ちます。

于 2015-12-23T11:44:27.097 に答える
6

HierarchyViewer がそれらにアクセスできる一般的な生産電話はほとんどありません。通常、これらの機能を備えているのは開発者の携帯電話とエミュレーターだけです。

于 2012-05-18T05:54:40.820 に答える
4

4.1 Android phone.Use ViewServerで発生していた同様の問題コードで。

Hierarchy Viewer でチェックインする前に、adb サーバーを一度再起動するだけです。

于 2015-08-04T05:44:44.693 に答える
1

Hierarchy Viewer を使用してレイアウトをプロファイリングします

環境変数を設定する

ANDROID_HVPROTO=ddm

したがって、[andrid-sdk]/toolsフォルダーからコマンドラインでこれを実行します。

set ANDROID_HVPROTO=ddm
hierarchyviewer

または を入れset ANDROID_HVPROTO=ddmますhierarchyviewer.bat

于 2018-10-13T09:56:15.517 に答える