studio programacion para herramientas desarrollo con avanzado aplicaciones android

android - programacion - la jerarquía no funciona para mi dispositivo



manual android studio avanzado (6)

El proyecto ViewServer de Romain (ver respuesta n. ° 1) funciona muy bien para esto. Descargué el código, convertí el proyecto en un proyecto de biblioteca, agregué una dependencia en mi aplicación al nuevo proyecto de biblioteca y cambié la clase de actividad base de mi aplicación a la subclase de esta clase simple:

public class SimpleViewServerActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ViewServer.get(this).addWindow(this); } @Override protected void onDestroy() { super.onDestroy(); ViewServer.get(this).removeWindow(this); } @Override protected void onResume() { super.onResume(); ViewServer.get(this).setFocusedWindow(this); } }

Ahora puedo conectarme desde la vista de jerarquía de Android Debug Monitor y depurar mi diseño.

cuando ejecuto la jerarquía en la terminal. puede mostrar su interfaz, pero no se puede conectar a mi dispositivo. Y se puede conectar al emulador virtual. Me recuerda en terminal así,

  1. Adb rechazó el comando de reenvío para el dispositivo 172.18 ...... servicio de host desconocido
  2. falta de puerto hacia adelante para 172.18 .....
  3. no se puede obtener la versión protocal del servidor de vista desde el dispositivo 172.18 ....

¿Cómo puede mostrar mi estructura de vista de mi dispositivo en el visor de jerarquía? ¿Alguien puede ayudarme? O alguien que sepa dónde encontrar el conocimiento de la jerarquía. gracias por adelantado.


El visor de jerarquía funcionó para mí una vez que seleccioné Herramientas -> Android -> Habilitar la integración de ADB dentro de Android Studio.


Estoy usando Android Studio 2.3.3. La conclusión es al final de esta publicación.

Notación: Monitor = Android Device Monitor Studio = Android Studio

En la preferencia de Android Studio -> (compilación, ejecución, implementación) -> ejecución instantánea -> desmarque la ejecución instantánea. De lo contrario, se mostrará el mensaje de error "Falló la instalación de la aplicación", y lo intenté de varias maneras sin desmarcar la ejecución instantánea, pero ninguna de ellas funciona. Entonces, desmarca la ejecución instantánea por ahora.

(i) Si es producción compilada (Ejecutar ''aplicación''):

(1) Si pongo una marca de verificación en la opción "Habilitar integración de ADB" en el menú desplegable de "Herramientas":

(a) Abrir Monitor directamente desde Studio funcionaría y la jerarquía de vistas se mostraría en el Monitor, pero mostrará un mensaje "Deshabilitar la integración de ADB. Se cerrarán las siguientes sesiones de depuración: aplicación" (dice "sesión de depuración", aunque yo soy usando producción compilada). Aviso Después de cerrar el monitor, la opción "Habilitar integración de ADB" será revisada automáticamente por Studio.

(b) Al abrir Monitor desde Bash aparecerá un mensaje de error que dice "ddms, no se pudo abrir el puerto de depuración de VM seleccionado (870)", pero simplemente desmarcar manualmente la opción "Habilitar integración de ADB" solucionará el problema y se mostrará la jerarquía de vistas.

(2) Si no puse una marca de verificación en la opción "Habilitar integración de ADB": Abrir el Monitor directamente desde Studio y desde Bash ambos funcionan, no se necesitan operaciones adicionales.

(ii) Si es creación de depuración: tengo que habilitar la integración de ADB para iniciar la depuración, por lo que la opción "Habilitar integración de ADB" se marcará. Después de que Studio instaló la aplicación en mi teléfono: Entonces el comportamiento es exactamente el mismo en la sección (i) - (1). En otras palabras, para el propósito de Vista jerárquica, iniciar la creación de depuración es lo mismo que iniciar la compilación de producción con la opción "Habilitar integración de ADB" marcada.

En conclusión: para instalar la aplicación, debe desactivarse la "Ejecución instantánea" (consulte las instrucciones en la parte superior del informe). Para mostrar Jerarquía de visualización en Monitor, debe habilitarse "Habilitar integración de ADB". Opening Monitor de bash y de Studio ambos funcionan. Depuración La compilación y la producción crean ambas cosas.


HierarchyViewer no funciona en las compilaciones de producción por razones de seguridad. Escribí una API que le permite usar HierarchyViewer en cualquier dispositivo con su aplicación: https://github.com/romainguy/ViewServer



Para cualquiera que trabaje con Android 4.1 o posterior: puede hacer que Hierarchy Viewer funcione estableciendo la variable de entorno ANDROID_HVPROTO en ddm .

Usuarios de Mac OSX / Android Studio, recuerde iniciar el visor de jerarquía desde la línea de comandos para que recoja la variable de entorno. Si lo instaló con Android Studio, puede encontrarlo en /Users/<user>/Library/Android/sdk/tools

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