简体   繁体   English

使用 Kotlin 获取 Android 的帧速率

[英]Get Frame Rate of Android using Kotlin

I am able to get the frame rate of the Android system using the following answer in Java: https://stackoverflow.com/a/8908035/4190159我可以使用 Java 中的以下答案获得 Android 系统的帧速率: https ://stackoverflow.com/a/8908035/4190159

However, being new to Kotlin I was wondering how can I get the frame rate of Android system using Kotlin code?但是,作为 Kotlin 的新手,我想知道如何使用 Kotlin 代码获得 Android 系统的帧速率? (my app is using Kotlin instead of Java) (我的应用使用 Kotlin 而不是 Java)

The code as follows is not working for me:以下代码对我不起作用:

fun getFrameRate(): String {
        val timeElapsed1: android.os.SystemClock = SystemClock.elapsedRealtime()
        val timeElapsed2: android.os.SystemClock = SystemClock.elapsedRealtime()
        val frameTime = 1000.0 / (timeElapsed2 - timeElapsed1) 
        return frameTime
}

SystemClock.elapsedRealtime() returns a long , not an android.os.SystemClock : SystemClock.elapsedRealtime()返回long ,而不是android.os.SystemClock

fun getFrameRate(): String {
        val timeElapsed1: Long = SystemClock.elapsedRealtime()
        val timeElapsed2: Long = SystemClock.elapsedRealtime()
        val frameTime = 1000.0 / (timeElapsed2 - timeElapsed1) 
        return frameTime
}

or you can simply omit the types and let Kotlin infer them for you:或者您可以简单地省略类型并让 Kotlin 为您推断它们:

fun getFrameRate(): String {
        val timeElapsed1 = SystemClock.elapsedRealtime()
        val timeElapsed2 = SystemClock.elapsedRealtime()
        val frameTime = 1000.0 / (timeElapsed2 - timeElapsed1) 
        return frameTime
}

Lastly, you'll need to convert frameTime to a String :最后,您需要将frameTime转换为String

fun getFrameRate(): String {
        val timeElapsed1 = SystemClock.elapsedRealtime()
        val timeElapsed2 = SystemClock.elapsedRealtime()
        val frameTime = 1000.0 / (timeElapsed2 - timeElapsed1) 
        return frameTime.toString()
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM