Для чего я стоил, я посмотрел на исходный код 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()
call.
Подводя итог: к сожалению, нетне любой готовый к использованию стабильный API для получения размера объекта в виртуальной машине Dalvik.