如何調試Android Annotation Processor程序

【版權申明】非商業目的可自由轉載
博文地址:https://blog.csdn.net/ShuSheng0007/article/details/92795576
出自:shusheng007

概述

當我們開發一個Android Annotation Processor的時候肯定需要調試我們的代碼,但是Annotation Processor的執行是與編譯並行執行的,所以如果我們只是按照通常的方式簡單的打一個斷點,代碼是不會中斷的。

調試方法

我們需要使用遠程調試,我們就以上篇文章秒懂Android註解處理器中開發的 AnnotationProcessorToy爲例來演示一下如何調試Annotation Processor。

1 配置remote configuration

在Android Studio中配置configuration ,如下圖所示
ss
點擊+ 號,選擇Remote
在這裏插入圖片描述
給新建的configuration命名,例如命名爲APT. 複製藍色框中的參數,接下來會用到。

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

點擊apply 按鈕
在這裏插入圖片描述

2 配置gradle.properties 文件

在gradle.properties文件中添加如下兩行內容,第二行的值爲上一步藍框中的內容。

org.gradle.daemon=true
org.gradle.jvmargs= -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

3 運行調試

首先選擇選擇第一步創建的 configuration APT,然後點擊debug按鈕。

如果一切正常的話,在Console窗口會輸出如下內容,表示遠程進程已經啓動了
在這裏插入圖片描述
在processor代碼中要調試的地方打上斷點,然後切換到configuration app ,然後點擊debug按鈕即可
在這裏插入圖片描述

note:注意,只有被註解標記的類內容有改變時註解處理器纔會執行,所以如果發現斷點沒有中斷,記得改一下源代碼。

總結

Annotation Processor的調試主要還是使用了remote調試的技術,Android Stuido的debugger 是運行在自己的進程中,而Annotation Processor 運行在另一個進程中,我們就是通過Remote Debug使得 debugger 可以調試運行在另一個進程中的程序。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章