Java getAvailableBlocksLong()*getBlockSizeLong()与getAvailableBytes()的比较

Java getAvailableBlocksLong()*getBlockSizeLong()与getAvailableBytes()的比较,java,android,emulation,genymotion,Java,Android,Emulation,Genymotion,[编辑]我确实在测试中犯了一个愚蠢的错误。我在这里问了一个不知道的问题 答案是,两者都是一样的。但我把我的职位留给了其他人 两者之间的区别是什么 getAvailableBlocksLong()*getBlockSizeLong()和getAvailableBytes()? 我测试了自己,在Genymotion上得到了一个非常奇怪的结果 来自getAvailableBlocksLong()*getBlockSizeLong()和getAvailableBytes()的值不同 我真的不明白这里发生

[编辑]我确实在测试中犯了一个愚蠢的错误。我在这里问了一个不知道的问题

答案是,两者都是一样的。但我把我的职位留给了其他人

两者之间的区别是什么
getAvailableBlocksLong()*getBlockSizeLong()
getAvailableBytes()

我测试了自己,在Genymotion上得到了一个非常奇怪的结果

来自
getAvailableBlocksLong()*getBlockSizeLong()
getAvailableBytes()
的值不同

我真的不明白这里发生了什么

它是否只与Genymotion有关?
在大多数情况下,我是否应该使用
getAvailableBytes()

前者获取可用内存块的数量并将其乘以内存块大小,后者直接返回可用内存块的字节数。同样的事情

我就是这么想的,这就是为什么到目前为止我随机使用其中一个。但正如您在上面看到的结果,在emulator上,只有getAvailableBytes()返回的值似乎更正确。我不确定这只是Genymotion的问题还是什么。。感谢您的回答:)我建议使用后一个,因为它很容易使用,而且更常见,前一个检查设备的内存块,有些可能包含部分数据,因此它们不会报告为空闲块,这就是为什么前一个的数字较小。不过,这只是我对差异的假设。你可能认为该值是打字错误,但事实并非如此。后者要小得多。我猜,前者在Genymotion上报告了错误的值。方法getTotalBytes()返回5284429824,这比从前者获得的值小得多。。我不知道原因,因为很多人都在用前一种方法。。不管怎样,我会像你说的那样使用getAvailableBytes()+(感谢你试图帮助我。)我的错。。我犯了一个愚蠢的错误。我在代码中重用了缓存的一个。没错,两者返回的值完全相同。谢谢