Ответ 1
HierarchyViewer не работает с производственными сборками по соображениям безопасности. Я написал API, который позволяет использовать HierarchyViewer на любом устройстве с вашим приложением: https://github.com/romainguy/ViewServer
когда я запускаю иерархию в терминале. он может показать интерфейс, но не может подключиться к моему устройству. И он может подключиться к виртуальному эмулятору. Это напоминает мне в терминале, что,
Как он может показать мою структуру представления моего устройства в средстве просмотра иерархии. Может кто-нибудь мне помочь? любой, кто знает, где найти знание иерархии. спасибо заранее.
HierarchyViewer не работает с производственными сборками по соображениям безопасности. Я написал API, который позволяет использовать HierarchyViewer на любом устройстве с вашим приложением: https://github.com/romainguy/ViewServer
Для тех, кто работает с Android 4.1 или новее: вы можете запустить Hierarchy Viewer, установив переменную окружения ANDROID_HVPROTO
на ddm
.
Пользователи Mac OSX/Android Studio, не забудьте запустить средство просмотра иерархии из командной строки, чтобы он мог выбрать переменную окружения. Если вы установили его в Android Studio, вы можете найти его в /Users/<user>/Library/Android/sdk/tools
https://developer.android.com/tools/performance/hierarchy-viewer/setup.html
Проект Romain ViewServer (см. ответ №1) отлично подходит для этого. Я загрузил код, превратил проект в проект библиотеки, добавил зависимость в моем приложении к новому проекту библиотеки и изменил класс активности приложения на класс подкласса из этого простого класса:
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);
}
}
Теперь я могу подключиться к Android Hierarchy View и отладить мой макет.
Средство просмотра иерархии работало для меня, как только я выбрал Инструменты → Android → Включите интеграцию ADB в Android Studio.
У меня была та же проблема и, наконец, нашла ответ на http://developer.android.com/tools/performance/hierarchy-viewer/setup.html. Существует переменная окружения, которая должна быть установлена в вашей среде разработки до подключения ViewServer.
Я использую Android Studio 2.3.3. Вывод находится в конце этой публикации.
Обозначения: Монитор = монитор устройств Android Studio = Android Studio
В настройках Android Studios → (сборка, выполнение, развертывание) → Instant Run → снимите флажок Instant Run. В противном случае будет выведено сообщение об ошибке "Ошибка установки приложения", и я попробовал несколько способов, не сняв флажок "Мгновенный запуск", но ни один из них не работает. Поэтому просто снимите флажок Instant Run на данный момент.
(i) Если его производственная сборка (Run 'app):
(1) Если я поставлю галочку в опции "Включить интеграцию ADB" в раскрывающемся меню "Инструменты":
(a) Открытие монитора непосредственно из Studio будет работать, и иерархия представлений будет отображаться в мониторе, но она предложит сообщение "Отключить интеграцию ADB. После завершения сеансов отладки: приложение" (в нем говорится "сеанс отладки", хотя я использую сборку). Уведомление После закрытия монитора параметр "Включить интеграцию с ADB" будет автоматически снова проверяться Studio.
(b) Открытие монитора из Bash предложит сообщение об ошибке "ddms, не сможет открыть выбранный порт отладки VM (870)", но просто вручную отключив опцию "Включить интеграцию с ADB", это устранит проблему, а View Отобразится иерархия.
(2) Если я не установил галочку в опции "Включить интеграцию ADB" : Открытие монитора непосредственно из Studio и из Bash работает, никаких дополнительных операций не требуется.
(ii) Если его отладочная сборка: Я должен включить интеграцию ADB для запуска отладки, поэтому будет включена опция "Включить интеграцию ADB" . После того, как Studio установила приложение в свой телефон: Тогда поведение в точности то же самое в разделе (i) - (1). Другими словами, для цели "Просмотр иерархии" запуск сборки отладки совпадает с запуском сборки сборки с опцией "Включить интеграцию ADB" .
В заключение: для установки приложения необходимо отключить "Instant Run" (см. инструкцию в верхней части отчета). Чтобы показать "Просмотр иерархии в мониторе", необходимо отключить "Включить интеграцию ADB" . Открытие монитора от Bash и от Studio работает. Отладка сборки и сборки сборки работают.