android - 如何检查 APK 是否已签名或 "debug build"?

标签 android debugging certificate

据我所知,在 android 中,“release build”是签名的 APK。如何从代码中检查它 或者 Eclipse 是否有某种 secret 定义?

我需要它来调试从 Web 服务数据填充 ListView 项目(不,logcat 不是一个选项)。

我的想法:

  • 应用程序的 android:debuggable,但由于某种原因看起来不可靠。
  • 硬编码设备 ID 不是一个好主意,因为我使用相同的设备来测试签名的 APK。
  • 在代码中的某处使用手动标志?有道理,但肯定会在某个时候忘记更改,而且所有程序员都很懒惰。

最佳答案

要检查可调试标志,您可以使用以下代码:

boolean isDebuggable =  ( 0 != ( getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE ) );

Kotlin :

val isDebuggable = 0 != applicationInfo.flags and ApplicationInfo.FLAG_DEBUGGABLE

更多信息,请参阅Securing Android LVL Applications .

或者,如果您正确使用 Gradle,您可以检查 BuildConfig.DEBUG 是 true 还是 false。

关于android - 如何检查 APK 是否已签名或 "debug build"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7085644/

相关文章:

Android - 按下后退按钮时停止 AsyncTask 并返回到上一个 Activity

debugging - emacs 调试器 : how can I step-out, 跳过?

ios - 我需要 Mac 设备才能拥有 'signing key' 吗?

java - 以编程方式从信任库中删除证书

java - Eclipse自动构建Android项目很糟糕

java - 选项菜单在 Android 中保持空白

android - 为什么 addr2line 无法将某些地址解析为函数名称?

c# - 气隙 .NET 代码签名应用程序将无法安装/运行

android - 如何在没有远程调试的情况下使用 Android 上的 React Native 查看控制台日志? (genymotion)

debugging - 如何调试akka Streams流量?