最佳做法

Android Studio 中的代理可做為程式設計協作者,生成程式碼、總結複雜主題、尋找特定資源等,加快開發工作流程。有效溝通是充分發揮代理潛力的關鍵。

本指南將說明如何設定開發環境,以及如何撰寫提示,取得實用可靠的回覆。我們為多種策略提供了不同用途的提示範例。如需更多提示範例,請參閱提示庫。

清楚明確

提供清楚明確的指令,代理才能發揮最佳成效。如果您想使用特定程式庫、API 或方法,請在問題中加入這些內容,或加入專案的根 AGENTS.md 檔案,以便在互動中保留這些內容。這就像提交錯誤報告:提供的資訊越多,問題就能越快、越有效地解決。

導入新功能:

如何使用 CameraX 為應用程式新增相機支援功能?請務必加入使用程式庫所需的任何依附元件和權限。
如何在應用程式中加入相機支援功能?

生成程式碼:

編寫 Kotlin 暫停函式,使用 Coil 程式庫從指定的網址字串下載圖片。

函式應命名為 fetchImageAsBitmap。這個函式應採用 Context 和 String 網址做為引數,並傳回可為空值的 Bitmap。如果發生任何網路或解碼錯誤,系統應擷取例外狀況、記錄錯誤,並傳回 null。

編寫函式來下載圖片。

說明概念:

我正在建構音樂播放器應用程式,且需要在應用程式處於背景時繼續播放。

當使用者在裝置上執行其他操作時,有哪些選項可讓應用程式繼續執行?每種方法的 API 級別需求和電池續航力影響為何?

說明 Android 服務。

說明答案的結構

根據預設,代理會以對話式段落格式提供答案。雖然這通常有助於說明,但如果能告訴模型如何架構回覆,就能獲得更有效且可立即使用的結果。指定輸出格式可引導模型以清楚、可預測的方式整理資訊,省去自行重新格式化的時間。

如要將代理生成的程式碼插入應用程式,且需要特定格式的程式碼,以便立即使用,請向代理提供明確的操作說明,說明如何生成程式碼及設定格式。

建構回覆:

為使用者個人資料建立 Room 實體。其中應包含 id、userName、email 和 memberSince 欄位。id 欄位應由系統自動產生。memberSince 欄位應代表時間戳記。

為使用者個人資料建立 Room 實體。

如果問題較為開放,請要求提供 x 個選項。

限制回覆:

有哪些工具可用於最佳化應用程式效能? 請列出前三名。
有哪些工具可用於最佳化應用程式效能?

將複雜要求拆解成細項任務

如果代理的做法不符合預期,建議您透過一系列較小的循序提示引導代理,而不是一次要求所有內容。這種做法可讓您進一步控管,並在繼續下一步之前驗證每個步驟。

套用依序提示:

提示 1:資料模型
首先,建立名為 User 的 Kotlin 資料類別。其中應有三個屬性:id (Int)、name (String) 和 email (String)。

提示 2:網路層
現在,請建立名為 ApiService 的 Retrofit API 介面。它需要一個名為 getUsers() 的 suspend fun,並傳回 List<User>。

提示 3:狀態管理
接下來,請編寫 UsersViewModel,並將 ApiService 做為依附元件。UsersViewModel 應公開密封 UiState 類別的 StateFlow,該類別可代表 Loading, Success(users: List) 和 Error(message: String) 狀態。在 ViewModel 中建立函式,擷取使用者並更新狀態。為新功能編寫單元測試。

提示 4:UI 層
最後,編寫名為 UserListScreen 的 Jetpack Compose 函式,並接受 UiState 做為參數。使用 when 陳述式,為載入狀態顯示 CircularProgressIndicator、為成功狀態顯示使用者名稱的 LazyColumn,以及為錯誤狀態顯示含有錯誤訊息的 Text 元素。新增測試,驗證新功能。

建立 Jetpack Compose 畫面,從 JSON API 擷取使用者清單,並在清單中顯示。其中應包含使用 Retrofit 和協同程式的 ViewModel、用於處理資料邏輯的存放區、User 資料類別,且必須顯示載入和錯誤狀態。

管理脈絡

與代理合作時,提供正確的背景資訊是重要的一環。提供相關程式碼片段、檔案內容和專案結構資訊,即可取得最實用的回覆。您可能需要反覆調整,才能達到適當平衡:資訊過多可能會導致代理偏離主題,資訊過少則無法提供足夠的背景資訊。請使用可用功能,讓代理存取必要情境:

  • 附加圖片,提供您構想的 UI 視覺效果,或您想瞭解的應用程式架構。
  • 附加檔案,醒目顯示程式碼集中的相關部分。
  • 使用 .aiexclude 檔案,讓代理忽略程式碼集的特定部分。
  • 使用 AGENTS.md 檔案提供專案專屬指示,並與團隊成員共用。使用 AGENTS.md 檔案時,請使用 Markdown 標頭和格式,讓指令清楚明瞭。
  • 使用 Agent 模式時,請設定 MCP 伺服器,透過外部環境擴充代理的知識和功能。

要求說明

如果聽不懂服務專員的回覆,請要求對方說明。這是學習和驗證建議解決方案是否適合您用途的好方法。如果回覆不符合預期,可能是代理有誤,要求解釋可讓代理有機會修正。

反覆調整指令

就像與同事合作一樣,有時您需要與代理來回溝通,才能釐清工作內容和預期成果。如果代理的初始回覆不夠完善,請提供意見回饋和改善建議。如果模型根據您的建議改善回覆,請更新提示庫中的項目或 AGENTS.md 檔案,將建議納入原始提示。