使用版本分析器檢查專案的版本效能。針對您執行的每項版本,版本分析器會嘗試呈現最重要的資訊,方便您快速找出並解決建構效能中的迴歸問題。
如要瞭解其他改善建構效能的策略,請參閱「最佳化建構速度」。
開始使用
每次建構應用程式時,版本分析器都會建立一份報表,並在「Build」視窗中顯示最新的報吿資料。
如要開始使用,請按照下列指示操作:
- 如果尚未建立應用程式,請透過下列其中一種方式建構應用程式:
- 在選單列中,依序按一下「Build」>「Make Project」。
- 如要建立 Android App Bundle 或 APK,請按一下「Build」>「Build Bundle(s)/APK」>「Build Bundle」或是從選單上選「Build」>「Build Bundle(s)/APK」>「Build APK(s)」。
- 如要開啟「Build」視窗,請從選單列中依序選取「View」>「Tool Windows」>「Build」。
- 如要在「Build Analyzer」中查看建構報告,請按一下「Build」視窗中的「Build Analyzer」分頁標籤。
版本分析器顯示的資料可能會因版本而異,因此建議您多次建構專案,並比較資料來判斷模式。
檢視具有會影響版本時間長度的工作的外掛程式
完成建構後初次開啟版本分析器時,該視窗會顯示建構分析的總覽,如圖 1 所示。
![](https://developer.android.com/static/studio/images/build/build-analyzer/analyzer-overview.png?authuser=9&hl=zh-tw)
如要查看外掛程式的細目,以及會影響建構時間長度的工作,請按一下總覽頁面上的「Plugins with tasks impacting build duration」。您也可以從下拉式選單中選取「Tasks」,並確認資料是依照外掛程式分組。圖表會依完成外掛程式所需的總時間排序外掛程式和相關工作。
![](https://developer.android.com/static/studio/images/plugins-breakdown.png?authuser=9&hl=zh-tw)
查看決定版本時間長度的工作
如要查看影響版本時間長度的工作細目,請按一下總覽頁面上的「Tasks impacting build duration」,或在下拉式選單中選取「Tasks」。如果專案使用 AGP 8.0 以上版本,系統預設會依類別分組工作,方便您找出影響建構時間長度的區域。點選每個子工作即可進一步瞭解其執行作業。
![](https://developer.android.com/static/studio/images/tasks-breakdown.png?authuser=9&hl=zh-tw)
檢查警告
如果版本分析器偵測到某些工作可以設定為更有效率地執行,則會發出警告。如要查看版本分析器針對該版本發現的所有警告,請按一下總覽頁面上的「All warnings」,或在下拉式選單中選取「Warnings」。
有些警告會有「產生報表」連結,如圖 4 所示。按一下「Generate report」連結後,系統會顯示對話方塊,其中含有其他資訊,可協助外掛程式開發人員在新版外掛程式中解決問題。按一下「Copy」將文字儲存至剪貼簿,方便您將資訊貼到提供給外掛程式開發人員的錯誤報告中。
![](https://developer.android.com/static/studio/images/build/build-analyzer/inspect-warning.png?authuser=9&hl=zh-tw)
警示類型
版本分析器會回報下列警告類型:
一律執行工作:一律執行的工作會讓其他工作在每個版本中執行,這是不必要的。收到這種警示的主要原因有二:
(較常見) 您未正確宣告工作的輸入/輸出。如果是這種情形,請正確宣告工作的輸入和輸出。這表示,您可以自行在此宣告輸入及輸出,或者如果警示是因為第三方外掛程式的工作所引起,則請變更外掛程式版本。
(較不常見) 工作會將
upToDateWhen
設為否,這點應予以避免。可能是因為某些邏輯判定為否,或upToDateWhen
經過硬式編碼將其指定為否。如果有邏輯判定為否,則這個結果可能是刻意的設定,您可以選擇忽略此警示。如果upToDateWhen
的硬式編碼強制指定為否,建議您從程式碼中移除該硬式編碼。
工作設定問題:宣告成與輸出相同的目錄的工作會產生此警示。這表示這些工作的輸出內容很可能不會保存在版本中,而且即使沒有改變,這些工作仍會一直執行。如要解決這則警示問題,您必須為工作宣告不同的輸出目錄。亦即在可以的地方自行宣告不同的輸出目錄,或者如果觸發警示的工作來自第三方外掛程式,則變更外掛程式版本。
非累加性的註解處理工具:這個警示會在註解處理工具屬於非累加、且會導致
JavaCompile
工作一律以非累加的方式執行時產生。如要解決這項警示,請切換至累加式註解處理工具。設定快取:如果專案未啟用設定快取,系統就會顯示這項警示。版本分析器會逐步檢查一系列的版本,確認您的專案是否與設定快取相容。如果相容性檢查成功,您可以從版本分析器中開啟設定快取。
檢查 Jetifier:如果專案中有
enableJetifier
旗標且已啟用,系統就會顯示此警示;意即如果gradle.properties
檔案中有android.enableJetifier=true
,就會顯示此警示。版本分析器可以執行檢查,確認是否可安全移除該旗標,確保能提升您的專案建構效能,並停止使用未經維護的 Android 支援資料庫。
檢查下載作業的影響
版本分析器會提供下載依附元件的耗費時間摘要,以及每個存放區的下載作業詳細檢視畫面。如要查看下載作業的影響,請從下拉式選單中選取「Downloads」。這項資訊也會顯示在「Sync」視窗中。
您可以根據這項資訊,判斷非預期的依附元件下載作業是否會對建構效能造成負面影響。在漸進式建構作業中,這項資訊特別重要,因為不應一致性地下載所有構件。
具體來說,您可以利用這項資訊找出設定問題,例如使用會造成非預期下載作業的依附元件動態版本。此外,如果您發現特定存放區有大量失敗的要求,可能表示應該把該存放區從存放區設定中移除,或移到較低位置。
![](https://developer.android.com/static/studio/images/build/build-analyzer/build-analyzer-download-impact.png?authuser=9&hl=zh-tw)
[僅限 Windows] 檢查防毒軟體的影響
如果防毒軟體可能會影響建構效能,版本分析器會通知您。如果防毒軟體 (例如 Windows Defender) 對 Gradle 使用的目錄進行即時掃描,就可能發生這種情況。版本分析器會建議要從主動掃描中排除的目錄清單,如果可以,也會提供將目錄新增至 Windows Defender 資料夾排除清單的連結。