当前位置: 首页 > 知识库问答 >
问题:

检测android应用程序是否处于调试或发布中

滕项明
2023-03-14

我也想过把所有东西都保存在配置文件中,但目前我还不知道是否可以这样做(我正在研究),以及是否方便

sharedPreferences我了解它是如何工作的。

1)我想知道是否有一个方法在应用程序调试与否时返回一个值。

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    if (BuildConfig.DEBUG) {
        toast("debug")
    }

}

共有1个答案

暴向笛
2023-03-14

buildconfig.debug引用当前变体,如果应用程序是否部署在设备上,则不引用。下面是Kotlin中的一个方法,用于检查应用程序是否部署在模拟器上

fun isProbablyAnEmulator() = Build.FINGERPRINT.startsWith("generic")
            || Build.FINGERPRINT.startsWith("unknown")
            || Build.MODEL.contains("google_sdk")
            || Build.MODEL.contains("Emulator")
            || Build.MODEL.contains("Android SDK built for x86")
            || Build.BOARD == "QC_Reference_Phone" //bluestacks
            || Build.MANUFACTURER.contains("Genymotion")
            || Build.HOST.startsWith("Build") //MSI App Player
            || (Build.BRAND.startsWith("generic") && Build.DEVICE.startsWith("generic"))
            || "google_sdk" == Build.PRODUCT

我认为,在调试和发布之间使用不同配置的最佳方式是在gradle文件中使用变量。例如,您可以像这样预先填充表单

Build.Gradle

buildTypes {
    debug {
        resValue("string", "username", "JohnDoe")
        resValue("string", "password", "johnny")
    }

    release {
        resValue("string", "username", "")
        resValue("string", "password", "")
    }
}
 类似资料:
  • 如何在代码中检测到我处于发布模式或调试模式?

  • 问题内容: 在C ++中,我通常会设置2个构建- 分别调试和发布,分别具有和预先定义。然后,我将使用这些定义来确定常量值,例如启用/禁用日志记录,服务器URL等。 现在,在Java / Android中,在构建发行版之前我会注释掉一些东西。我知道这不是一个好方法。我可能会忘记一些东西。 确保在构建发行版本(签名)或调试版本(未签名)时什么都不会忘记的常见做法是什么? 问题答案: (默认情况下)没有

  • 问题内容: 我想更改日志记录级别,具体取决于是否在进行调试,但是我找不到代码片段来检查应用程序是否在调试模式下运行。 我正在使用eclipse调试应用程序,因此,如果该解决方案仅在Eclipse中有效,则可以。 问题答案: 您可以修改调试配置。例如,仅在“调试配置”中添加特殊的VM参数。您可以用来读取提供的参数。 更好的是,修改配置(运行和调试)以加载不同的日志记录配置文件。如果需要编写代码来确定

  • 问题内容: 有时,通过按主屏幕按钮可以关闭应用程序,并且不会调用onDestroy()。我想在整个应用程序关闭时调用一个方法,而我不会在所有活动的onDestroy()中调用我的方法。 问题答案: 在appication类内实现LifecycleObserver然后用作打击: 也可以使用其他事件,例如Lifecycle.Event.ON_DESTROY或ON_CREATE

  • 问题内容: 实际上,我有两个有关Android错误的相关问题。我发布了一个应用程序的更新,该应用程序以前可以正常运行,并且可以在Nexus One,G1和模拟器上以当前版本运行。但是,自从上次更新以来,我通过Android市场控制台收到了很多错误日志,并且无法重现该错误。该应用程序非常简单,只有两个活动,因此手动测试该应用程序应该非常容易。但是,在发布之前,经常会发现一些我找不到的错误。 所以第一

  • 据我所知,在APK下的google开发者控制台中有一个名为“UNPUBLISH”的选项。 在添加ManageAPK之后,google实际上删除了对APK的访问。 不幸的是,我在生产中上传了APK而不是BETA版,我需要删除/取消发布该应用程序。 我怎么能做到呢? 解决这个问题的最佳流程是什么。 我检查了所有与我的问题类似的问题,但所有答案都过时了,因为古尔奇添加了Manage APK来代替APK。