feat: 估算 `device_score`

This commit is contained in:
HuanCheng65 2023-07-19 18:38:08 +08:00
parent a5aad67262
commit 67d4af51aa
No known key found for this signature in database
GPG Key ID: 5EC9DD60A32C7360
1 changed files with 15 additions and 3 deletions

View File

@ -6,19 +6,31 @@ import java.io.File
import java.io.IOException import java.io.IOException
import java.util.Locale import java.util.Locale
import java.util.regex.Pattern import java.util.regex.Pattern
import kotlin.math.round
object DeviceUtils { object DeviceUtils {
var coreNum = -1 var coreNum = -1
private const val CPU_MAX_INFO_FORMAT = "/sys/devices/system/cpu/cpu%d/cpufreq/cpuinfo_max_freq" private const val CPU_MAX_INFO_FORMAT = "/sys/devices/system/cpu/cpu%d/cpufreq/cpuinfo_max_freq"
private const val MEM_INFO_FILE = "/proc/meminfo" private const val MEM_INFO_FILE = "/proc/meminfo"
fun roundUpRom(f: Float): Int {
var i = 1
while (f > i * 1.5) {
i *= 2
if (i > 0x10000000) break
}
return i
}
fun getDeviceScore(): Float { fun getDeviceScore(): Float {
val cpuCores = getDeviceCpuCore().takeIf { it > 0 } ?: 6.9822063f val cpuCores = getDeviceCpuCore().toFloat().takeIf { it > 0 } ?: 6.9822063f
val cpuAverageFrequency = getDeviceCpuAverageFrequency().takeIf { it > 0 } ?: 1.7859616f val cpuAverageFrequency = getDeviceCpuAverageFrequency().takeIf { it > 0 } ?: 1.7859616f
val totalMemory = getTotalMemory().takeIf { it > 0 } ?: 3.5425532f val totalMemory = getTotalMemory().takeIf { it > 0 } ?: 3.5425532f
val totalSDCardSize = getTotalSDCardSize().takeIf { it >= 0 } ?: 51.957294f val totalSDCardSize = getTotalSDCardSize().takeIf { it >= 0 } ?: 51.957294f
// val deviceScore = round(totalMemory)*0.0572301f + roundUpRom return round(totalMemory) * 0.0572301f +
return 0f roundUpRom(totalSDCardSize) * 4.1613E-4f +
(round(cpuCores) * cpuAverageFrequency) * 0.01155649f +
0.0231852f
} }
fun getTotalSDCardSize(): Float { fun getTotalSDCardSize(): Float {