Что означают числа в окне отладчика Android Studio? - PullRequest
0 голосов
/ 27 сентября 2018

Android Studio Debugger

Что означают выделенные цифры, например, 4580, 4581 и т. Д.?Это не PID, это было проверено командой ps в оболочке adb.

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Короче говоря : номер не обязательно должен быть номером регистра, это может быть идентификатор из ObjectReferenceImpl, который является реализацией интерфейса ObjectReference из интерфейса отладки Java ( JDI ).

В длине : Из анализа базы кода сообщества Idea было установлено, что ThreadDescriptorImpl.java ( ThreadDescriptorImpl ) является классом, отвечающим за предоставление описания потокабудет отображаться в окне отладки (пожалуйста, обратитесь к изображению выше с вопросом).Идентификатор называется thread.uniqueID().Поток здесь имеет тип ThreadReferenceProxyImpl, который расширяет ObjectReferenceProxyImpl, где реализован метод uniqueID .Этот метод, в свою очередь, возвращает уникальный идентификатор объекта типа ObjectReference.После беглого поиска определение ObjectReference с удовлетворяющими критериями не было найдено в кодовой базе Idea.Позже было обнаружено, что он скрыт в определении интерфейса JDI .Из jar реализации JDI, найденной в настройке Idea, было обнаружено, что ObjectReferenceImpl обеспечивает окончательную реализацию метода uniqueID.Фрагмент кода приведен ниже -

  private long myID;

  private static synchronized long nextID()
  {
    return nextID++;
  }

  ObjectReferenceImpl(VirtualMachine aVm, Oop oRef)
  {
    super(aVm);
    this.saObject = oRef;
    this.myID = nextID();
  }

  public long uniqueID()
  {
    return this.myID;
  }

Однако при этом и при ответе на вопрос использовались такие слова, как «вероятно» и «может быть», поскольку ссылки на реализации ObjectReference не были найдены сразув исходном коде издания сообщества идей.И выводы были сделаны из реализаций jar.Если в будущем кто-то, взглянув на этот вопрос и ответ, должен будет предоставить прямые ссылки, ответ можно изменить, чтобы отразить определенность.

0 голосов
/ 28 сентября 2018

Этот номер является регистрационным номером регистра, в котором хранится ссылка на объект.

Что такое номер регистра?

Что-то совершенно бесполезное с точки зрения разработчика приложения!Я уверен, что вы знаете о виртуальной машине Dalvik, на которой работают приложения для Android.Итак, кадры в байт-коде Dalvik состоят из регистров.И эти регистры хранят ссылки на объекты.Проверьте эту ссылку, чтобы узнать больше .Не уверен, почему андроид студия показывает их в отладчике.Я не вижу в этом смысла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...