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

Edytowanie na żywo to funkcja, która umożliwia aktualizowanie w emulatorach i na urządzeniach fizycznych elementów kompozycyjnych 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ń.

Edytowanie na żywo ma 3 tryby:

  • Ręcznie: zmiany w kodzie są stosowane ręcznie po naciśnięciu Control+' (Command+' w 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 zaktualizujesz funkcję składającą się z komponentów.

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. Jest ona przeznaczona do optymalizacji 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. Edytuj na żywo jak najwięcej, dopóki nie wprowadzisz zmiany, której nie obsługuje Edycja na żywo, np. dodaj nowe metody w trakcie działania aplikacji.
  3. Po wprowadzeniu nieobsługiwanych zmian kliknij Uruchom Ikona Uruchom, 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ść związaną z tworzeniem wiadomości, włączyć edycję na żywo w projekcie i wprowadzić zmiany za pomocą edycji na żywo.

Skonfiguruj nowy projekt

  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 wybierz New Project (Nowy projekt) w oknie Welcome to Android Studio (Witamy w Android Studio). Jeśli masz już otwarty projekt, możesz utworzyć nowy, klikając Plik > Nowy > Nowy projekt.

  3. Wybierz szablon Opróżnij aktywność związaną z tworzeniem wiadomości dla telefonów i tabletów, a następnie kliknij Dalej.

    Wybór szablonu w Android Studio
    Rysunek 1. Szablony, które możesz wybrać. W przypadku edycji 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łącz edycję 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 w kodzie są przekazywane 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 w kodzie są wprowadzane na urządzeniu lub w emulatorze w miarę ich wprowadzania.

    Pole wyboru Edycja na żywo w ustawieniach 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. Po włączeniu edycji na żywo w prawym górnym rogu okna narzędzia Uruchomione urządzenia pojawi się zielony znacznik aktualny:

    Interfejs z zielonym znacznikiem wyboru podczas edycji na żywo

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 w funkcji edycji na żywo w metodzie Greeting.

Rozwiązywanie problemów z funkcją Live Edit

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

Ikona nieaktualnej wersji w Live Edit
Rysunek 5. Wskaźnik stanu edycji na żywo

Ograniczenia edycji na żywo

Poniżej znajdziesz listę obecnych ograniczeń.

  • [Dotyczy tylko Androida Studio Giraffe i nowszych] Edycja na żywo wymaga środowiska wykonawczego Compose 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 podpisu, dodać ani usunąć funkcji ani zmienić pól niefunkcjonalnych.

  • 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 niekompozycyjne są aktualizowane na bieżąco na urządzeniu lub w emulatorze i aktywowane jest pełne przekomponowanie. Pełna rekompozycja może nie wywołać zaktualizowanej funkcji. W przypadku funkcji niekompozycyjnych musisz aktywować nowo zaktualizowane funkcje lub ponownie uruchomić aplikację.

  • Edycja na żywo nie jest wznawiana po ponownym uruchomieniu aplikacji. Musisz ponownie uruchomić aplikację.

  • Edycja na żywo obsługuje tylko procesy możliwe do debugowania.

  • 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 jednak oficjalnie obsługiwana i mogą w niej występować problemy. Jeśli wystąpią problemy, zgłoś je.

  • Funkcja Zastosuj zmiany/Stosowanie zmian kodu jest niezgodna z edycją na żywo i wymaga ponownego uruchomienia uruchomionej aplikacji.

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

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

  • Jaki jest obecny stan funkcji edycji na żywo?

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

  • Kiedy warto używać funkcji edycji na żywo?

    Użyj funkcji edycji na żywo, jeśli 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 użytkownika i doświadczeniem użytkownika. Nie obsługuje ono zmian takich jak aktualizacja podpisu metod, dodawanie nowych metod czy zmiana hierarchii klas. Więcej informacji znajdziesz w artykule Ograniczenia dotyczące transmisji na żywo.

  • Kiedy warto korzystać z 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, języki i rozmiar czcionki.

Edytowanie dosłowne 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ć literały stałe, które aktywują aktualizacje w czasie rzeczywistym bez kroku kompilacji. Aby to zrobić, włącz dekoracje dosłowne za pomocą wskaźnika interfejsu edycji na żywo:

umożliwienie edycji literatury na żywo

Apply Changes

Opcja Zastosuj zmiany umożliwia aktualizowanie kodu i zasobów bez konieczności ponownego wdrażania aplikacji w emulatorze lub na 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 klikający przycisk „Zastosuj zmiany”