Android 获取可用/总/可用的内部内存大小
您好,我正在尝试使用下面的方法获取设备的总内存和可用内存大小。但它给了我错误的价值观:Android 获取可用/总/可用的内部内存大小,android,android-studio,kotlin,memory,Android,Android Studio,Kotlin,Memory,您好,我正在尝试使用下面的方法获取设备的总内存和可用内存大小。但它给了我错误的价值观: fun totalMemory(): Long { val statFs = StatFs(Environment.getRootDirectory().absolutePath) return (statFs.blockCount * statFs.blockSize).toLong() } fun freeMemory(): Long { val statFs = StatFs
fun totalMemory(): Long {
val statFs = StatFs(Environment.getRootDirectory().absolutePath)
return (statFs.blockCount * statFs.blockSize).toLong()
}
fun freeMemory(): Long {
val statFs = StatFs(Environment.getRootDirectory().absolutePath)
return (statFs.availableBlocks * statFs.blockSize).toLong()
}
fun busyMemory(): Long {
val statFs = StatFs(Environment.getRootDirectory().absolutePath)
val total = (statFs.blockCount * statFs.blockSize).toLong()
val free = (statFs.availableBlocks * statFs.blockSize).toLong()
return total - free
}
我正在使用以下方法以人类可读的形式转换值:
fun floatForm(d: Double): String {
return DecimalFormat("#.##").format(d)
}
fun bytesToHuman(size: Long): String? {
val Kb = 1 * 1024.toLong()
val Mb = Kb * 1024
val Gb = Mb * 1024
val Tb = Gb * 1024
val Pb = Tb * 1024
val Eb = Pb * 1024
if (size < Kb) return floatForm(size.toDouble()) + " byte"
if (size >= Kb && size < Mb) return floatForm(size.toDouble() / Kb) + " Kb"
if (size >= Mb && size < Gb) return floatForm(size.toDouble() / Mb) + " Mb"
if (size >= Gb && size < Tb) return floatForm(size.toDouble() / Gb) + " Gb"
if (size >= Tb && size < Pb) return floatForm(size.toDouble() / Tb) + " Tb"
if (size >= Pb && size < Eb) return floatForm(size.toDouble() / Pb) + " Pb"
return if (size >= Eb) floatForm(size.toDouble() / Eb) + " Eb" else "???"
}
fun floatForm(d:Double):字符串{
返回十进制格式(“#.###”)。格式(d)
}
fun bytesToHuman(尺寸:长):字符串?{
val Kb=1*1024.toLong()
val Mb=Kb*1024
val Gb=Mb*1024
val Tb=Gb*1024
val Pb=Tb*1024
val Eb=Pb*1024
if(size=Kb&&size=Mb&&size=Gb&&size=Tb&&size=Pb&&size=Eb)floatForm(size.toDouble()/Eb)+“Eb”else“”,则返回
}
我需要得到实际的自由/总内部尺寸 您应该包括代码返回的内容以及您期望它返回的内容。这可能会帮助您更快此方法返回我totalMemory:-1751187456字节freeMemory:49.44Mbin文件管理器显示实际总大小为32GB,可用空间为13.8GB