📜  Android Debug Build 需要多少时间?

📅  最后修改于: 2022-05-13 01:58:45.196000             🧑  作者: Mango

Android Debug Build 需要多少时间?

当我们创建一个 Android 应用程序时,我们会采用多种技术来整合某些功能。我们创建一种方法并在需要的任何地方使用它。这些方法通过提供各种特殊功能来增加我们程序的用户数量。但是,这些方法可能会减少您的消费者数量。为什么以及怎么会这样?如果这些方法的执行需要很长时间,您的应用程序会给该方法额外的时间,您的应用程序可能会变慢或挂起,从而导致消费者不满意和应用程序的用户数量下降。

您可以通过确定方法的执行时间然后减少持续时间来提高应用程序的性能,从而加快应用程序的运行。但是你如何计算一个方法的执行时间呢?在这里,我们将了解几种评估方法执行时间的方法。因此,让我们开始使用第一种、最简单、最有效的技术来确定方法执行时间。

最简单的方法是使用 Hugo

您可以通过简单地利用 Hugo 库并使用 @DebugLog 标记对其进行注释来确定任何方法的方法执行时间。阅读有关 Android 注释处理的更多信息

添加 Hugo 库

要在您的应用程序中添加和使用 Hugo,请按照以下步骤操作: 将以下代码行添加到项目的 build.gradle 文件中。

buildscript {
    repositories {
        google()
        jcenter()
        
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.1'
        classpath 'com.jakewharton.hugo:hugo-plugin:1.2.0'
    }
}

然后在您的应用程序 gradle 文件中添加以下插件:

dependencies {
    ...
}
apply plugin: 'com.android.application'
apply plugin: 'com.jakewharton.hugo'

您现在可以将@DebugLog注解添加到您的方法中,执行时间将在构建模式中报告。例如,考虑以下情况:

Java
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.gfgActivity);
    gfgViewText = findViewById(R.id.gfgTextView);
    String name = getCompanyName("GeeksforGeeks", "Spandan Saxena");
    gfgViewText.setText(name);
}
@DebugLog
public String getCompanyName(String start, String end) {
    SystemClock.sleep(5); // Some Process
    return first + " " + last;
}


Kotlin
V/MainActivity: ⇢ getName(start="GeeksforGeeks", end="Spandan Saxena")
V/MainActivity: ⇠ getName [1ms] = "GeeksforGeeks Spandan Saxena"


Kotlin
fun gfgMethod(): Long {
    // some methods
    val beginTime = System.currentTimeMillis()        
    val endingTime = System.currentTimeMillis()
    return endingTime - beginTime
}


除了方法执行时间之外,您还将了解: 方法返回值中给出的参数 因此,在 logcat 中,您会注意到以下内容:

科特林

V/MainActivity: ⇢ getName(start="GeeksforGeeks", end="Spandan Saxena")
V/MainActivity: ⇠ getName [1ms] = "GeeksforGeeks Spandan Saxena"

箭头的方向区分参数和返回类型。

确定方法执行时间的常规方法

如果您不想在应用程序中包含第三方库,可以使用 currentTimeMillis()函数。本质上,目标是记录您进入方法的时间以及离开方法的时间。最后,您可以通过从进入时间减去退出时间来计算方法执行时间。因此,要以毫秒为单位检索当前时间,我们使用 currentTimeMillis()函数。例如,考虑以下情况:

科特林

fun gfgMethod(): Long {
    // some methods
    val beginTime = System.currentTimeMillis()        
    val endingTime = System.currentTimeMillis()
    return endingTime - beginTime
}

结论

这些是确定任何方法的方法执行时间的几种方法。因此,下次您开发应用程序时,您可以利用这些方法来确定方法执行时间并相应地更新您的应用程序代码。