当前位置: 首页 > 面试题库 >

Android应用程序的发布调试版本

夏俊杰
2023-03-14
问题内容

在C ++中,我通常会设置2个构建-
分别调试和发布,分别具有DEBUGRELEASE预先定义。然后,我将使用这些定义来确定常量值,例如启用/禁用日志记录,服务器URL等。

现在,在Java / Android中,在构建发行版之前我会注释掉一些东西。我知道这不是一个好方法。我可能会忘记一些东西。

确保在构建发行版本(签名)或调试版本(未签名)时什么都不会忘记的常见做法是什么?


问题答案:

(默认情况下)没有用于Java的任何预处理器,因此#ifdef在编译时没有任何东西。但是,如果您不介意在应用程序中保留调试代码,则可以使用以下代码检查应用程序是否已发布或在运行时进行调试:

Boolean release = (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE);

检查debuggable标志值。并且所说的flad自动设置false为发布版本和true调试版本。

如果要摆脱一些调试代码,可以尝试使用ProGuard剥离某些类或方法。默认情况下,ProGuard仅参与发行版本的构建过程。



 类似资料:
  • 在 Android Studio 中,当我单击工具栏中的“调试”图标时,会出现 gradle 以尝试进行发布版本。 首先,它显示了“编辑配置”弹出窗口。在底部,它有一条消息“您当前选择的变体(app release unsigned.apk)的apk未签名。请为此变体(release)指定签名配置。 为什么当我单击“调试”时,它试图使用“发布”?显然我改变了什么,我希望我知道。。。 这是我的应用程

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

  • 我也想过把所有东西都保存在配置文件中,但目前我还不知道是否可以这样做(我正在研究),以及是否方便 sharedPreferences我了解它是如何工作的。 1)我想知道是否有一个方法在应用程序调试与否时返回一个值。

  • My AndroidManifest.xml 文件 我的Gradle 我尝试清理/重建 gradle 项目、重新启动 Android Studio、使缓存失效和 rebbot ADB 集成(工具 - 有什么想法吗? 附言:在此之前,我更改了应用程序包的名称 P、 Android Studio无法调试其他项目。

  • 8天前,我在谷歌Play上发布了我的应用程序1.0版。我想发布一个小的更新——版本1.01。通过阅读以下内容: Android清单中的versionCode与versionName 我发现,只被用户看到,并且每次上传新的APK时,应该增加一个整数。我有以下问题: 对于我的情况,我应该只是更新我的versionCode到和versionName到? 我有一个db在我的应用程序,但它没有任何变化。我是

  • 我有一个android的设备,我在上面调试应用程序。在我生成签名apk后,我卸载了现有的调试应用程序,尝试安装签名apk,但我得到了应用程序未安装的错误。我安装在一个没有调试应用程序安装的新设备上,看起来还可以。我尝试清除应用程序数据并卸载,但没有工作。 图像错误