繁体   English   中英

为什么默认情况下无法调试Android应用?

[英]Why is an Android app not debuggable by default?

根据Android Doc的说法,默认情况下无法调试Android应用。

android:debuggable

即使可以在用户模式下的设备上运行应用程序,也可以对其进行调试-如果可以,则为“ true”,否则为“ false”。 默认值为“ false”。

现在,前提是我通过默认步骤通过Android Studio创建了最简单的应用。

  • AndroidManifest.xml包含android:debuggable说明符。

  • 默认的build.gradle文件在buildTypes下不包含可调试的说明buildTypes

因此,根据Android Doc,该应用默认情况下不可调试。

但是,我始终可以通过Android Studio调试新创建的应用。

为什么?

下面的帖子很好地解释了不要使用debugabble属性

这是重要的注释。

曾经有一段时间,Android开发人员必须负责更新其应用清单文件的debuggable属性,将其设置为“ true”进行调试,并在发布新的签名包之前将其设置为“ false”。

但是那段时间是在2010年12月过去的。尽管不是每个开发人员都注意到它,但仍有许多开发人员继续手动进行可调试切换。

http://developer.android.com/tools/sdk/tools-notes.html

从SDK Tools修订版8:

支持真正的调试版本。 开发人员不再需要在清单中的标签中添加android:debuggable属性-构建工具会自动添加该属性。 在Eclipse / ADT中,所有增量构建都假定为调试构建,因此工具会插入android:debuggable =“ true”。 导出签名发行版本时,这些工具不会添加属性。 在Ant中,ant debug命令会自动插入android:debuggable =“ true”属性,而ant release不会。 如果手动设置了android:debuggable =“ true”,则ant release实际上将进行调试构建,而不是发布构建。 因此,在大多数情况下,您可以做的最好的事情就是根本不处理该属性,因为这样可以确保在导出签名版本时,它不会包含调试数据。

唯一的例外是,如果您实际上需要分发包含调试信息的签名程序包,实际上并不常见。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM