疊代程式碼開發

行動開發人員通常會逐步開發應用程式的使用者介面 而不是一次開發所有內容Android Studio 採用這種做法 Jetpack Compose 提供的工具不需完整版本進行檢查 修改值並驗證最終結果

即時編輯

即時編輯功能可讓您在模擬器中更新可組合項 即時監控實體裝置這項功能可將內容切換降到最低 讓您專心編寫程式碼 完全不會中斷

即時編輯功能有三種模式:

  • 手動:使用以下工具手動推送程式碼變更 Control + ' (在 macOS 為 Command + ' 鍵)
  • 儲存時手動:使用以下工具手動儲存程式碼變更: Control + S 鍵 (在 macOS 為 Command + S 鍵)。
  • 自動:當您更新 可組合函式

即時編輯功能主要針對與使用者介面和使用者體驗相關的程式碼變更,不支援更新方法簽章、新增方法或變更類別階層等異動項目。詳情請參閱即時編輯的限制清單。

這項功能無法取代建構及執行應用程式或套用變更功能,其主要用途是對 Compose 使用者介面開發過程中的建構、部署及疊代工作流程進行最佳化。

最佳工作流程如下:

  1. 設定讓應用程式順利執行。
  2. 盡可能使用即時編輯功能,除非您需要進行這項功能不支援的變更,例如在應用程式執行期間新增方法。
  3. 在完成不支援的變更後,按一下「Run」圖示 在
圖示 即可重新啟動 並繼續執行即時編輯功能。

開始使用即時編輯功能

首先,請按照下列步驟建立空白的 Compose 活動,然後啟用 即時編輯專案功能,並透過即時編輯功能進行變更。

設定新專案

  1. 開始之前,請確認您擁有 Android Studio Giraffe 以上版本 安裝該元件的 API 級別 裝置或模擬器至少為 30

  2. 開啟 Android Studio,並在「Welcome to Android Studio」對話方塊中選取「New Project」。如果已開啟專案,可以建立新專案 方法是依序前往「檔案」>新增 >New Project

  3. 針對「Phone and Tablet」選擇「Empty Compose Activity」範本,然後按一下「Next」

    在 Android Studio 中選取範本
    圖 1 可供選擇的範本。在即時編輯部分 選擇「Empty Compose Activity」
  4. 完成「New Project」(新增專案) 對話方塊,並提供下列必要資訊:name、 套件名稱、儲存位置、最低 SDK 和建構設定語言。

    在 Android Studio 中輸入步驟 4 的專案設定範例
    圖 2. 專案設定範例。
  5. 按一下「Finish」

啟用即時編輯功能

  1. 前往設定啟用即時編輯功能。

    • 在 Windows 或 Linux 上,瀏覽至 [檔案] >「設定」>「編輯者」> 即時編輯
    • 在 macOS 上,依序前往「Android Studio」>「設定」>「編輯者」> 即時編輯
  2. 從設定中選取「Live Edit」選項和要執行的模式。

    在手動模式中,每當您按下按鈕,系統就會推送程式碼變更 Control + ' 鍵 (在 macOS 為 Command + ' 鍵)。已開啟手動模式 每次您手動儲存程式碼變更時 系統就會套用這些變更 使用 Control + S 鍵 (開啟 Command + S 鍵) macOS)。在自動模式中,程式碼變更會套用至您的裝置或 模擬器功能。

    Android Studio 設定中的「Live Edit」核取方塊使用者介面
    圖 3 即時編輯設定。
  3. 在編輯器中開啟 MainActivity 檔案,這是應用程式的進入點。

  4. 按一下「Run」使用者介面按鈕 部署應用程式

  5. 開啟即時編輯功能後,畫面上會顯示「最新」綠色勾號 「Running Devices」工具視窗右上角:

    即時編輯功能的綠色勾號使用者介面

進行變更並檢查變更結果

系統支援的編輯器變更時,虛擬/實體測試裝置 自動更新。

例如,將 MainActivity 中現有的 Greeting 方法修改為 包括:

@Composable
fun Greeting(name: String) {
    Text(
        text = "Hello $name!",
        Modifier
            .padding(80.dp) // Outer padding; outside background
            .background(color = Color.Cyan) // Solid element background color
            .padding(16.dp) // Inner padding; inside background, around text)
    )
}

您的變更會立即顯示在測試裝置上,如圖 4 所示。

套用至裝置的 Greeting 方法變更內容
圖 4.顯示即時編輯功能變更內容的測試裝置 Greeting 方法。

即時編輯疑難排解

如果測試裝置上沒有顯示編輯內容,表示 Android Studio 可能失敗 更新編輯內容。確認「即時編輯」指標是否顯示 如圖 5 所示的「Out Of Date」,表示發生編譯錯誤。適用對象 關於錯誤的詳細資訊與解決方式的建議,請按一下 指標。

即時編輯功能過時的圖示
圖 5 即時編輯狀態指標。

即時編輯的限制

目前的限制清單如下。

  • [僅適用於 Android Studio Giraffe 以上版本] 即時編輯功能必須搭配 Compose 執行階段 1.3.0 以上版本。 如果專案使用較舊的 Compose 版本,即時編輯將 已停用。

  • [僅適用於 Android Studio Giraffe 以上版本] 即時編輯功能僅適用於 AGP 8.1.0-alpha05 或 更高。如果您的專案使用較舊的版本 AGP 的即時編輯功能會停用。

  • 即時編輯功能僅適用於搭載 API 級別的實體裝置或模擬器 30 以上版本。

  • 即時編輯功能僅支援編輯函式主體,代表您無法變更函式名稱或簽章、新增或移除函式,或是變更非函式欄位。

  • 當您在 檔案。這種情況只會在第一次程式碼變更後發生,因為應用程式狀態並未變更 您對該檔案中的 Compose 函式所做的後續程式碼變更就會重設。

  • 透過即時編輯功能修改過的類別可能會對效能產生負面影響。執行 並在評估其使用新版本時,使用簡潔的發布子版本。 效能

  • 您必須對偵錯工具進行完整的執行作業,才能 已透過即時編輯功能修改影片

  • 假如您透過即時編輯功能編輯執行中的應用程式,可能會導致應用程式當機。發生這種情況時 您可以使用「Run」按鈕 UI 按鈕 重新部署應用程式。

  • 即時編輯功能不會執行您在 專案的建構檔案 — 像是位元碼操控 使用「Build」選單中的選項建構專案時就會套用 按一下「Build」或「Run」按鈕。

  • 非可組合函式會在裝置或模擬器上即時更新,且 即可觸發完整重組程序完整重組功能可能不會叫用已更新的函式。如果是非可組合函式,您必須觸發更新後的函式或再次執行應用程式。

  • 應用程式重新啟動後,系統不會一併恢復即時編輯功能,因此您必須再次執行應用程式。

  • 即時編輯功能僅支援可進行偵錯的程序。

  • 即時編輯功能不支援將 moduleName 自訂值的專案 位於建構設定的 kotlinOptions 底下

  • 即時編輯功能不適用於多次部署作業。這表示 您無法先部署至某部裝置,再部署至另一部裝置即時編輯功能僅適用於 應用程式最後部署的裝置組合。

  • 即時編輯功能適用於多裝置部署 (部署至多個裝置) 透過「選取多部裝置」在目標中建立的裝置 裝置下拉式選單)。不過,由於系統並未正式支援這項功能, 以負載平衡機制分配流量 即可降低應用程式發生效能問題的風險如果您遇到任何問題 請提出檢舉

  • 套用變更/套用程式碼變更與即時編輯功能不相容 並且需要重新啟動執行中的應用程式。

  • 即時編輯功能目前不支援 Android Automotive 專案。

即時編輯功能常見問題

  • 即時編輯功能目前處於什麼狀態?

    您可以在 Android Studio Giraffe 中使用即時編輯功能。如要開啟這項功能, 依序點選「File」> 「設定」>「編輯者」>「Live Edit」(「Android Studio」>) 「設定」>「編輯者」>Live Edit

  • 何時該使用即時編輯功能?

    當您要快速查看使用者體驗更新帶來的影響時,就可以使用即時編輯功能 整體應用程式的元素 (例如修飾符更新和動畫) 無須專人管理

  • 何時該避免使用即時編輯功能?

    即時編輯功能主要針對與使用者介面和使用者體驗相關的程式碼變更,不支援 相關異動,例如更新方法簽章、新增方法或類別 階層變更詳情請參閱直播功能的限制 編輯

  • 何時該使用 Compose 預覽功能?

    開發個別可組合項時,請使用 Compose 預覽。預覽 以視覺化方式呈現 Compose 元素,並自動重新整理以顯示 程式碼變更的影響預覽功能也支援查看 採用不同的設定和狀態,例如深色主題、語言代碼和字型 規模。

常值即時編輯 (已淘汰)

Android Studio 可以即時更新 預覽、模擬器和實體裝置中的可組合項。以下列舉部分支援的類型:

  • Int
  • String
  • Color
  • Dp
  • Boolean

影片:使用者變更原始碼中的常值,以及預覽內容
更新中
動態

您可以在沒有 編譯步驟,也就是透過「即時編輯」 常值 UI 指標:

正在啟用「 」的即時編輯功能
常值

套用變更

套用變更可讓您更新程式碼和資源 不必將應用程式重新部署至模擬器或實體裝置 ( 限制)。

每次新增、修改或刪除可組合函式時,您都可以更新應用程式,不需要 這時只要按一下「Apply Code Changes」按鈕就能重新部署:

使用者點選「套用變更」
按鈕