Programowanie iteracyjne

Jako deweloper aplikacji mobilnych często tworzysz interfejs użytkownika aplikacji krok po kroku, a nie od razu od razu. Android Studio stosuje to podejście w Jetpack Compose, udostępniając narzędzia, które nie wymagają pełnego kompilowania, aby sprawdzić, zmodyfikować wartości i zweryfikować wynik końcowy.

Edycja na żywo

Edycja na żywo to funkcja, która umożliwia aktualizowanie komponentów w emulatorze i na fizycznych urządzeniach w czasie rzeczywistym. Ta funkcja minimalizuje przełączanie kontekstu między pisaniem a tworzeniem aplikacji, dzięki czemu możesz dłużej skupiać się na pisaniu kodu bez zakłóceń.

Funkcja Live Edit ma 3 tryby:

  • Ręcznie: zmiany kodu są stosowane, gdy są ręcznie przesyłane za pomocą Control+' (Command+' w systemie macOS).
  • Ręcznie podczas zapisywania: zmiany kodu są stosowane, gdy są zapisywane ręcznie za pomocą Control + S (Command + S w systemie macOS).
  • Automatyczne: zmiany są stosowane na urządzeniu lub w emulatorze, gdy aktualizujesz funkcję składaną.

Edycja na żywo koncentruje się na zmianach kodu związanych z interfejsem i doświadczeniem użytkownika. Funkcja edycji na żywo nie obsługuje zmian takich jak aktualizacje sygnatury metody, dodawanie nowych metod czy zmiany hierarchii klas. Więcej informacji znajdziesz na liście ograniczeń transmisji na żywo.

Ta funkcja nie zastępuje kompilowania i uruchamiania aplikacji ani funkcji Zastosuj zmiany. Zamiast tego ma ona na celu optymalizację Twojego przepływu pracy podczas tworzenia, wdrażania i ulepszania interfejsu Compose.

Proces oparty na sprawdzonych metodach:

  1. Skonfiguruj aplikację, aby można było ją uruchomić.
  2. Używaj funkcji Edytuj na żywo tak często, jak to możliwe, aż będziesz musiał wprowadzić zmianę, której nie obsługuje ta funkcja, np. dodać nowe metody podczas działania aplikacji.
  3. Po wprowadzeniu nieobsługiwanych zmian kliknij Uruchom Ikona, aby ponownie uruchomić aplikację i wznowić edycję na żywo.

Pierwsze kroki z edycją na żywo

Aby rozpocząć, wykonaj te czynności, aby utworzyć pustą aktywność tworzenia, włączyć edycję na żywo w projekcie i wprowadzić zmiany za pomocą edycji na żywo.

Konfigurowanie nowego projektu

  1. Zanim zaczniesz, upewnij się, że masz zainstalowaną wersję Android Studio Giraffe lub nowszą oraz że poziom API na fizycznym urządzeniu lub w emulatorze wynosi co najmniej 30.

  2. Otwórz Android Studio i w oknie Witamy w Android Studio kliknij Nowy projekt. Jeśli masz już otwarty projekt, możesz utworzyć nowy, klikając Plik > Nowy > Nowy projekt.

  3. Wybierz szablon Pustka aktywność tworzenia dla telefonu i tabletu, a potem kliknij Dalej.

    Wybór szablonu w Android Studio
    Rysunek 1. Szablony do wyboru. Aby edytować na żywo, wybierz Pusta aktywność tworzenia.
  4. W oknie Nowy projekt podaj wymagane informacje: nazwę, nazwę pakietu, lokalizację zapisu, minimalną wersję pakietu SDK i język konfiguracji kompilacji.

    Przykładowe ustawienia projektu z kroku 4 wprowadzone w Android Studio
    Rysunek 2. Przykładowe ustawienia projektu
  5. Kliknij Zakończ.

Włączanie edycji na żywo

  1. Przejdź do ustawień, aby włączyć edycję na żywo.

    • W systemie Windows lub Linux kliknij kolejno Plik > Ustawienia > Edytor > Edytowanie na żywo.
    • W systemie macOS otwórz Android Studio > Ustawienia > Edytor > Edytowanie na żywo.
  2. W ustawieniach wybierz opcję Edycja na żywo i tryb, który chcesz uruchomić.

    W trybie ręcznym zmiany kodu są przesyłane za każdym razem, gdy naciśniesz Control+' (Command+' w systemie macOS). W trybie ręcznym podczas zapisywania zmiany w kodzie są stosowane za każdym razem, gdy zapisujesz ręcznie, używając skrótu Ctrl + S (Command + S w systemie macOS). W trybie automatycznym zmiany kodu są wprowadzane na urządzeniu lub w emulatorze w miarę ich wprowadzania.

    Pole wyboru Edycja na żywo w interfejsie ustawień Android Studio
    Rysunek 3. Ustawienia edycji na żywo
    .
  3. W edytorze otwórz plik MainActivity, który jest punktem wejścia do aplikacji.

  4. Aby wdrożyć aplikację, kliknij Uruchom Przycisk interfejsu.

  5. Gdy włączysz edycję na żywo, w prawym górnym rogu okna narzędzia Urządzenia w trakcie pracy pojawi się zielona ikona potwierdzenia Aktualny:

    Interfejs użytkownika Edycji na żywo z zielonym znacznikiem

Wprowadzanie i sprawdzanie zmian

Gdy wprowadzasz obsługiwane zmiany w edytorze, wirtualne lub fizyczne urządzenie testowe aktualizuje się automatycznie.

Na przykład w pliku MainActivity zmień dotychczasową metodę Greeting na:

@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)
    )
}

Zmiany są natychmiast widoczne na urządzeniu testowym (patrz rys. 4).

Zmiany w sposobie powitania zastosowane na urządzeniu
Rysunek 4. Urządzenie testowe wyświetlające zmiany wprowadzone za pomocą funkcji Edytuj na żywo w metodzie Greeting.

Rozwiązywanie problemów z edycją na żywo

Jeśli nie widzisz swoich zmian na urządzeniu testowym, może to oznaczać, że Android Studio nie zaktualizowało ich. Sprawdź, czy wskaźnik edycji na żywo wyświetla komunikat Out Of Date (jak na rysunku 5), co oznacza błąd kompilacji. Aby uzyskać informacje o błędzie i sugestie dotyczące jego rozwiązania, kliknij wskaźnik.

Ikona nieaktualnej treści w edytorze na żywo
Rysunek 5. Wskaźnik stanu edycji na żywo

Ograniczenia funkcji edycji na żywo

Poniżej znajdziesz listę obecnych ograniczeń.

  • [Dotyczy tylko Android Studio Giraffe i nowszych wersji] Edycja na żywo wymaga Compose Runtime w wersji 1.3.0 lub nowszej. Jeśli Twój projekt korzysta z niższej wersji Compose, edytowanie na żywo jest wyłączone.

  • [Dotyczy tylko Android Studio Giraffe lub nowszej wersji] Funkcja edycji na żywo wymaga pakietu AGP w wersji 8.1.0-alpha05 lub nowszej. Jeśli Twój projekt korzysta z starszej wersji AGP, funkcja edycji na żywo jest wyłączona.

  • Edytowanie na żywo wymaga fizycznego urządzenia lub emulatora z interfejsem API na poziomie 30 lub wyższym.

  • Edytowanie na żywo obsługuje tylko edytowanie treści funkcji, co oznacza, że nie możesz zmienić nazwy funkcji ani sygnatury, dodać ani usunąć funkcji ani zmienić pól niefunkcyjnych.

  • Edycja na żywo resetuje stan aplikacji przy pierwszej zmianie funkcji tworzenia w pliku. Dzieje się tak tylko po pierwszej zmianie kodu – stan aplikacji nie jest resetowany przez kolejne zmiany kodu funkcji Compose w tym pliku.

  • Zajęcia zmodyfikowane za pomocą funkcji edycji na żywo mogą być mniej wydajne. Uruchom aplikację i użyj czystej wersji, jeśli oceniasz jej skuteczność.

  • Aby debuger mógł działać na klasach zmodyfikowanych za pomocą funkcji Edycja na żywo, musisz przeprowadzić pełne uruchomienie.

  • Uruchomiona aplikacja może ulec awarii, gdy edytujesz ją za pomocą funkcji Edycja na żywo. W takim przypadku możesz ponownie wdrożyć aplikację za pomocą przycisku Uruchom przycisk.

  • Funkcja edycji na żywo nie wykonuje żadnych manipulacji bajtowym kodem, które są zdefiniowane w pliku kompilacji projektu. Nie dotyczy to na przykład manipulacji bajtowym kodem, które są stosowane podczas kompilowania projektu za pomocą opcji w menu Kompiluj lub po kliknięciu przycisków Kompiluj lub Uruchom.

  • Funkcje niezłożone są aktualizowane na żywo na urządzeniu lub w emulatorze, a także uruchamia się pełne ponowne skompilowanie. Pełna rekompozycja może nie wywołać zaktualizowanej funkcji. W przypadku funkcji niezłożonych musisz uruchomić nowo zaktualizowane funkcje lub ponownie uruchomić aplikację.

  • Edytowanie na żywo nie wznawia się po ponownym uruchomieniu aplikacji. Musisz ponownie uruchomić aplikację.

  • Edytowanie na żywo obsługuje tylko procesy, które można debugować.

  • Edycja na żywo nie obsługuje projektów, które w konfiguracji kompilacji w sekcji kotlinOptions używają niestandardowych wartości dla parametru moduleName.

  • Edycja na żywo nie działa w przypadku wdrożeń z wieloma wdrożeniami. Oznacza to, że nie możesz wdrożyć aplikacji na jednym urządzeniu, a potem na innym. Edytowanie na żywo jest aktywne tylko na ostatnim zestawie urządzeń, na które została wdrożona aplikacja.

  • Edycja na żywo działa w przypadku wdrożeń na wielu urządzeniach (wdrożeń na wielu urządzeniach utworzonych za pomocą opcji Wybierz wiele urządzeń w menu urządzeń docelowych). Nie jest ona jednak oficjalnie obsługiwana i może powodować problemy. Jeśli napotkasz problemy, zgłoś je.

  • Zmiany w aplikacji i zmiany kodu nie są zgodne z edycją na żywo i wymagają ponownego uruchomienia aplikacji.

  • Edycja na żywo nie obsługuje obecnie projektów dotyczących Androida Automotive.

Najczęstsze pytania dotyczące funkcji edycji na żywo

  • Jaki jest aktualny stan funkcji edycji na żywo?

    Funkcja Live Edit jest dostępna w Android Studio Giraffe. Aby ją włączyć, wybierz Plik > Ustawienia > Edytor > Edytowanie na żywo (Android Studio > Ustawienia > Edytor > Edytowanie na żywo na komputerze Mac).

  • Kiedy warto używać funkcji Live Edit?

    Użyj funkcji edycji na żywo, gdy chcesz szybko sprawdzić wpływ zmian elementów UX (np. aktualizacji modyfikatorów i animacji) na ogólne wrażenia z aplikacji.

  • Kiedy nie należy używać funkcji edycji na żywo?

    Edycja na żywo koncentruje się na zmianach kodu związanych z interfejsem i doświadczeniem użytkownika. Nie obsługuje ona zmian takich jak aktualizacje sygnatury metody, dodawanie nowych metod czy zmiany hierarchii klas. Więcej informacji znajdziesz w artykule Ograniczenia dotyczące transmisji na żywo.

  • Kiedy należy używać podglądu w edytorze?

    Korzystaj z podglądu kompozytora, gdy tworzysz pojedyncze komponenty. Podgląd wizualizuje elementy w sekcji Tworzenie i automatycznie odświeża się, aby wyświetlić efekt zmian w kodzie. Podgląd umożliwia też wyświetlanie elementów interfejsu w różnych konfiguracjach i stanach, takich jak ciemny motyw, ustawienia regionalne i rozmiar czcionki.

Edytowanie literali na żywo (wycofane)

Android Studio może aktualizować w czasie rzeczywistym niektóre stałe literalne używane w komponowalnych w podglądzie, emulatorze i na urządzeniu fizycznym. Oto kilka obsługiwanych typów:

  • Int
  • String
  • Color
  • Dp
  • Boolean

Film przedstawiający użytkownika zmieniającego literale w kodzie źródłowym i podgląd aktualizowany dynamicznie

Możesz wyświetlać ciągłe literale, które powodują aktualizacje w czasie rzeczywistym bez etapu kompilacji, włączając ozdoby literalne za pomocą wskaźnika interfejsu edycji na żywo:

Włączanie edycji na żywo w przypadku literali

Apply Changes

Zastosuj zmiany umożliwia aktualizowanie kodu i zasobów bez konieczności ponownego wdrażania aplikacji na emulatorze lub urządzeniu fizycznym (z pewnymi ograniczeniami).

Po dodaniu, zmodyfikowaniu lub usunięciu funkcji kompozycyjnych możesz zaktualizować aplikację bez konieczności jej ponownego wdrożenia. Aby to zrobić, kliknij przycisk Zastosuj zmiany kodu:

Użytkownik klika przycisk „Zastosuj zmiany”