疊代程式碼開發

行動開發人員通常會逐步開發應用程式的 UI,而非一次完成所有開發作業。Android Studio 採用這種做法 Jetpack Compose 提供的工具不需完整版本進行檢查 修改值並驗證最終結果

即時編輯

即時編輯功能可讓您在模擬器中更新可組合項 即時監控實體裝置這項功能可在編寫與建構應用程式的過程中盡量減少切換畫面,讓您長時間專注於編寫程式碼而不受干擾。

即時編輯有三種模式:

  • 手動:使用以下工具手動推送程式碼變更 Control + ' (在 macOS 為 Command + ' 鍵)
  • 儲存時手動套用:系統會在您使用 Control + S (在 macOS 上為 Command + S) 手動儲存時套用程式碼變更。
  • 自動:更新可組合函式後,系統會在裝置或模擬器中套用變更。

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

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

最佳工作流程如下:

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

開始使用即時編輯功能

如要開始使用這項功能,請按照下列步驟建立空白的 Compose Activity、為專案啟用即時編輯功能,並透過即時編輯功能進行變更。

設定新專案

  1. 在開始之前,請確認您已安裝 Android Studio Giraffe 以上版本,且實體裝置或模擬器的 API 級別為 30 以上。

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

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

    在 Android Studio 中選取範本
    圖 1 可供選擇的範本。針對即時編輯功能,請選擇「Empty Compose Activity」
  4. 在「New Project」對話方塊中填妥以下必要資訊:名稱、套件名稱、儲存位置、SDK 最低需求版本,以及建構設定語言。

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

啟用即時編輯功能

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

    • 在 Windows 或 Linux 上,依序前往「File」>「Settings」>「Editor」>「Live Edit」
    • 在 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 函式時,即時編輯功能會重設應用程式的狀態。這只會在第一次變更程式碼後發生,因為您在該檔案中對 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」按鈕即可更新應用程式,不必重新部署:

使用者按一下「套用變更」按鈕