Как заставить работать "Иерархический просмотрщик" на реальном устройстве?

Я новичок в разработке Android Я начал использовать "Hierarchy Viewer"... он прекрасно работает с эмулятором, который поставляется с SDK.
Дело в том, что я хочу использовать это на реальном устройстве. Я сделал свое исследование и обнаружил, что по соображениям безопасности он работает только на эмуляторе и телефоне разработчика, из разных источников.

Официальный сайт разработчика Android

Но я также обнаружил, что используя "ViewServer.java" в нашем проекте, мы можем использовать этот инструмент на реальном устройстве.

https://github.com/romainguy/ViewServer:

Я понимаю, что нужно сделать 2 вещи...

  1. Включить этот ViewServer.java в наш проект

  2. Добавьте разрешение ИНТЕРНЕТ в манифесте. (<uses-permission android:name="android.permission.INTERNET"/>)

И, читая комментарии в файле Java, я также понял, как использовать addWindow метод внутри onCreate и прочее.

Но даже после всего этого, пытаясь установить это приложение на мое устройство, затмите "Invalid APK File!"... как для реального устройства, так и для эмулятора.

Но обычные приложения работают с эмулятором, а не приложение, добавленное с этим файлом Java в нем!!!

И кто-то, пожалуйста, объясните мне, если что-то еще нужно сделать. Поскольку у ссылки, которой я поделился, есть очень много других файлов, и я не уверен, что они и как их использовать. Все, что меня беспокоило, - это файл ViewServer.java.

Если это возможно, может кто-нибудь объяснить мне шаг за шагом, что нужно сделать?

3 ответа

ViewServer требуется только на некорневых устройствах с Android старше 4.1.

Для устройств с Android 4.1+ все, что вам нужно, это установить ANDROID_HVPROTO=ddm переменная среды и перезапустите сервер ADB.

Это одна из скрытых функций Android, которую можно найти в бесплатном курсе Udacity - " Производительность Android" (Урок 1: Рендеринг, 12-я часть "Пошаговое руководство по просмотру иерархии", ссылки под видео).

Попробуйте использовать HierarchyViewerSupport Annotation, но не уверены, насколько это будет полезно.

Эта аннотация @HierarchyViewerSupport позволяет использовать инструмент проверки HierarchyViewer на любом устройстве.

Убедитесь, что у вашего приложения есть доступ к Интернету и android:debuggable = true Manifest.

Просто аннотируйте свою деятельность с помощью @HierarchyViewerSupport:

@HierarchyViewerSupport
 @EActivity
 public class MyActivity extends Activity {

 }

Я не уверен, чувак, насколько это может помочь, основываясь на твоем вопросе, который я сделал, и я думаю, что это невозможно на производственных сборках, как причина, которую ты уже объяснил.

В любом случае, если вам нужны подробности о вашем текущем экране активности, такие как информация о виджетах, и все, что вы можете получить, используя также скрипт Python, который я разработал, но, опять же, он не работает в рабочей сборке.

Попробуйте это решение выше и дайте нам знать, если это поможет.

Посмотрите на ссылку, приведенную ниже, она содержит подробную информацию о том, как включить просмотрщик иерархии на реальном устройстве.

Как показать просмотрщик иерархии в устройстве Android

Другие вопросы по тегам