根据Android Doc,Android应用默认无法调试。
机器人:可调试
是否可以调试应用程序,即使在设备上运行也是如此 用户模式 - " true"如果它可以,并且"假"如果不。 默认值为" false"。
现在,只要我通过默认步骤创建Android Studio最简单的应用程序。
AndroidManifest.xml
不包含android:debuggable
说明符。
默认build.gradle
文件在buildTypes
下不包含可调试说明符。
因此,根据Android Doc,默认情况下该应用不应该是可调试的。
但是,我总是可以通过Android Studio调试新创建的应用程序。
为什么?
答案 0 :(得分:1)
以下文章很好地解释了do not use debugabble attribute
以下是它的重要说明。
有一段时间,Android开发人员必须处理更新应用程序清单文件的debuggable属性,将其设置为" true"用于调试,用于" false"就在发布新的签名包之前。
但是那个时间在2010年12月过去了。虽然不是每个开发人员都注意到了它,但是很多人继续手动进行可调试的切换。
http://developer.android.com/tools/sdk/tools-notes.html
从SDK工具版本8开始:
支持真正的调试版本。开发人员不再需要将android:debuggable属性添加到清单中的标记 - 构建工具会自动添加属性。在Eclipse / ADT中,假设所有增量构建都是调试版本,因此工具插入android:debuggable =" true"。导出已签名的发布版本时,工具不会添加该属性。在Ant中,一个ant debug命令会自动插入android:debuggable =" true"属性,而ant释放不。 Ifandroid:可调试="真"手动设置,然后ant发布实际上会进行调试构建,而不是发布版本。 因此,在大多数情况下,您可以做的最好的事情就是不要处理属性,因为这样您就可以确保在导出签名版本时它不会包含调试数据。
唯一的例外是,如果您确实需要分发包含调试信息的签名包,而不是常见的情况...