簡體   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