我也想过把所有东西都保存在配置文件中,但目前我还不知道是否可以这样做(我正在研究),以及是否方便
sharedPreferences我了解它是如何工作的。
1)我想知道是否有一个方法在应用程序调试与否时返回一个值。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
if (BuildConfig.DEBUG) {
toast("debug")
}
}
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。