Ответ 1
Для чего это стоит, я просмотрел исходный код Dalvik VM и не могу найти стабильный API для получения размера объекта. Если вы хотите взглянуть на себя, размер объекта хранится в ClassObject::objectSize : size_t
, см. dalvik/vm/oo/Object.h.
Существует, однако, внутренние API, чтобы получить размер объекта. Он используется DDMS для предоставления подробной информации о размерах объектов. Но, поскольку API является внутренним, он, вероятно, изменится между различными версиями Android. Кроме того, API отправляет необработанные данные byte[]
и основан на клиенте/сервере, а не на простом вызове библиотеки, поэтому будет крайне неудобно использовать. Если вы хотите взглянуть, начните с dvmAllocObject()
в dalvik/vm/alloc/Alloc.cpp и вызове dvmTrackAllocation()
.
Подводя итог: к сожалению, нет доступного, стабильного API для получения размера объекта в VM Dalvik.