Что означают выделенные числа, например, 4580, 4581 и т. д.? Это не PID, это было проверено командой ps в оболочке adb.
Этот номер является Регистрационный номер регистра, в котором хранится ссылка на объект.
Что такое регистрационный номер?
Что-то совершенно бесполезное с точки зрения разработчика приложений! Я уверен, что вы знаете о виртуальной машине Dalvik, на которой запускаются приложения для Android. Итак, кадры в байтовом коде Dalvik состоят из регистров. И в этих регистрах хранятся ссылки на объекты. Проверьте эту ссылку, чтобы узнать более. Не уверен, почему студия Android показывает их в отладчике. Я не вижу в этом никакой пользы.
Это единственное, что мне удалось найти ... Покопайся в поиске в гугле и возможно найдешь что-нибудь
Суммируя: номер не обязательно может быть номером регистра, это может быть идентификатор из ObjectReferenceImpl, который является реализацией интерфейса ObjectReference из интерфейса отладки Java (JDI).
В длину: Из анализа базы кода Idea Community было обнаружено, что класс ThreadDescriptorImpl.java (ThreadDescriptorImpl) отвечает за предоставление описания потока, отображаемого в окне отладки (см. Изображение выше, представленное с вопросом). Идентификатор упоминается как thread.uniqueID(). Поток здесь относится к типу ThreadReferenceProxyImpl, который расширяет ObjectReferenceProxyImpl, где реализован метод уникальный идентификатор. Этот метод, в свою очередь, возвращает уникальный идентификатор объекта типа 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 не были найдены сразу в исходном коде редакции Idea Community. И выводы были из реализаций jar. Если в будущем кто-то, изучающий этот вопрос и ответ, предоставит прямые ссылки, ответ может быть изменен, чтобы отразить определенность.
Спасибо, можете ли вы предоставить больше ссылок?