Joe*_*way 55 android development-environment release-management
我正在构建一个Android应用程序,并希望维护一些我可以调整的环境变量,具体取决于我是处于开发模式还是发布模式.例如,我需要调用Web服务,并且在任一模式下URL都会略有不同.我想将此设置和其他设置外部化,以便我可以根据目标部署轻松更改它们.
SDK中是否有任何最佳实践或任何内容可以满足此需求?
Vik*_*šan 44
以下解决方案假定您在清单文件中始终android:debuggable=true在开发和android:debuggable=false应用程序发布时设置.
现在,您可以通过检查从中获取的ApplicationInfo.FLAG_DEBUGGABLE标志来检查代码中此属性的值.ApplicationInfoPackageManager
以下代码段可以提供帮助:
PackageInfo packageInfo = ... // get package info for your context
int flags = packageInfo.applicationInfo.flags;
if ((flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0) {
// development mode
} else {
// release mode
}
Run Code Online (Sandbox Code Playgroud)
@ viktor-bresan感谢您提供有用的解决方案.如果您只是包含一般方法来检索当前应用程序的上下文以使其成为一个完全可用的示例,那将会更有帮助.下面的内容:
PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
Run Code Online (Sandbox Code Playgroud)
在build.gradle文件中附加以下代码段
buildTypes {
debug {
buildConfigField "Boolean", "IS_DEBUG_MODE", 'true'
}
release {
buildConfigField "Boolean", "IS_DEBUG_MODE", 'false'
}
}
Run Code Online (Sandbox Code Playgroud)
现在您可以像下面一样访问变量了
if (BuildConfig.IS_DEBUG_MODE) { {
//Debug mode.
} else {
//Release mode
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14289 次 |
| 最近记录: |