Tworzenie i uruchamianie aplikacji

Aby sprawdzić, jak aplikacja wygląda i działa na urządzeniu, musisz ją skompilować i uruchomić. Android Studio konfiguruje nowe projekty, dzięki czemu możesz kilkoma kliknięciami wdrożyć aplikację na urządzeniu wirtualnym lub fizycznym.

To omówienie dotyczy sposobów korzystania z Android Studio do tworzenia i uruchamiania aplikacji w celu testowania i debugowania. Informacje o tym, jak za pomocą Android Studio utworzyć aplikację i udostępnić ją użytkownikom, znajdziesz w artykule Tworzenie aplikacji i udostępnianie jej użytkownikom. Więcej informacji o zarządzaniu kompilacją i dostosowywaniu jej za pomocą Android Studio lub bez niej znajdziesz w artykule o konfigurowaniu kompilacji.

Podstawowa kompilacja i uruchamianie

Aby skompilować i uruchomić aplikację, wykonaj te czynności:

  1. Na pasku narzędzi wybierz aplikację z menu uruchamiania konfiguracji.
  2. W menu urządzenia docelowego wybierz urządzenie, na którym chcesz uruchomić aplikację.

    Menu urządzenia docelowego.

    Jeśli nie masz skonfigurowanych żadnych urządzeń, musisz utworzyć wirtualne urządzenie z Androidem na potrzeby emulatora Androida lub połączyć urządzenie fizyczne.

  3. Kliknij Uruchom .

Android Studio ostrzega przed uruchomieniem projektu na urządzeniu z błędem lub ostrzeżeniem. Zmiany ikon i stylizacji rozróżniają błędy (wybory urządzeń, które powodują uszkodzoną konfigurację) od ostrzeżeń (wyborów urządzeń, które mogą spowodować nieoczekiwane zachowanie, ale nadal działają).

Monitorowanie procesu kompilacji

Aby wyświetlić szczegóły procesu kompilacji, wybierz Widok > Okna narzędzi > Kompilacja lub kliknij Kompilacja na pasku okna narzędzi. W oknie narzędzia do tworzenia wyświetlane są zadania wykonywane przez Gradle w celu skompilowania aplikacji, jak pokazano na rysunku 1.

Rysunek 1. Okno narzędzia do tworzenia w Android Studio.
  1. Karta Synchronizacja: wyświetla zadania wykonywane przez Gradle w celu zsynchronizowania ich z plikami projektu. Podobnie jak w przypadku karty Dane wyjściowe kompilacji, w przypadku błędu synchronizacji wybierz elementy drzewa, aby uzyskać o nim więcej informacji. Wyświetla też podsumowanie wpływu na pobieranie, które pomaga określić, czy pobieranie zależności negatywnie wpływa na kompilację.
  2. Karta Kompilowanie danych wyjściowych: wyświetla zadania wykonywane przez Gradle w postaci drzewa, w którym każdy węzeł reprezentuje fazę kompilacji lub grupę zależności zadań. Jeśli pojawią się błędy podczas kompilacji lub kompilacji, sprawdź drzewo i wybierz element do odczytu danych wyjściowych błędu, jak pokazano na rysunku 2.
    Rysunek 2. Sprawdź, czy na karcie Dane wyjściowe kompilacji nie ma komunikatów o błędach.
  3. Karta Analizator kompilacji: zawiera informacje o analizie wydajności kompilacji. Więcej informacji znajdziesz w artykule o rozwiązywaniu problemów z wydajnością kompilacji za pomocą Analizatora kompilacji.
  4. Uruchom ponownie:ponownie wykonuje ostatnie działanie kompilacji. Jeśli ostatnio zdarzyło Ci się uruchomić Kompilowanie > Wybierz moduł, zostanie utworzony bieżący moduł. Jeśli ostatnio uruchomisz Kompilowanie > Utwórz projekt, wygeneruje ono pośrednie pliki kompilacji dla wszystkich modułów w projekcie.
  5. Filtry: odfiltrowuje ostrzeżenia, zadania lub oba te elementy, które zostały ukończone. Może to ułatwić znalezienie problemów w danych wyjściowych.

Jeśli wersje kompilacji używają smaków usług, Gradle wywołuje również zadania w celu utworzenia tych smaków usług. Aby wyświetlić listę wszystkich dostępnych zadań kompilacji, kliknij Widok > Okna narzędzi > Gradle lub kliknij Gradle na pasku narzędzi.

Jeśli podczas kompilacji wystąpi błąd, Gradle może polecić Ci opcje wiersza poleceń, które mogą pomóc w rozwiązaniu problemu, takie jak --stacktrace lub --debug. Aby użyć opcji wiersza poleceń w procesie kompilacji:

  1. Otwórz okno Ustawienia lub Preferencje:
    • W systemach Windows i Linux na pasku menu wybierz Plik > Ustawienia.
    • W systemie macOS na pasku menu wybierz Android Studio > Preferencje.
  2. Kliknij Build, Execution, Deployment (Kompilacja, wykonanie, wdrażanie) > Kompilator.
  3. W polu tekstowym obok Opcje wiersza poleceń wpisz opcje wiersza poleceń.
  4. Kliknij OK, aby zapisać zmiany i zamknąć okno.

Gradle zastosuje te opcje wiersza poleceń, gdy następnym razem spróbujesz utworzyć aplikację.

Zaawansowane funkcje kompilacji i uruchamiania

Domyślny sposób kompilowania i uruchamiania aplikacji w Android Studio powinien wystarczyć do przetestowania prostej aplikacji. W bardziej zaawansowanych przypadkach możesz jednak używać tych funkcji kompilacji i uruchamiania:

  • Aby wdrożyć aplikację w trybie debugowania, kliknij Debuguj . Uruchamianie aplikacji w trybie debugowania umożliwia ustawianie w kodzie punktów przerwania, analizowanie zmiennych, ocenianie wyrażeń w czasie wykonywania oraz uruchamianie narzędzi do debugowania. Więcej informacji znajdziesz w artykule Debugowanie aplikacji.

  • Jeśli masz większą i bardziej złożoną aplikację, użyj przycisku Zastosuj zmiany, zamiast kliknąć Uruchom . Oszczędza to czas, ponieważ unikasz ponownego uruchamiania aplikacji za każdym razem, gdy chcesz wdrożyć zmianę. Więcej informacji o stosowaniu zmian znajdziesz w sekcji Wdrażanie przyrostowe za pomocą funkcji Zastosuj zmiany.

  • Jeśli używasz Jetpack Compose, edycja na żywo to eksperymentalna funkcja, która pozwala aktualizować kompozycje w czasie rzeczywistym bez ponownego klikania Uruchom . Pozwala to skupić się na pisaniu kodu interfejsu z minimalną liczbą przerw. Więcej informacji znajdziesz w sekcji Edycja na żywo (eksperymentalna).

  • Jeśli masz aplikację z wieloma wariantami kompilacji lub wersjami, w oknie narzędzia Warianty kompilacji możesz wybrać ten wariant do wdrożenia. Więcej informacji o uruchamianiu konkretnego wariantu kompilacji znajdziesz w sekcji Zmienianie wariantu kompilacji.

  • Aby dostosować opcje instalacji, uruchamiania i testowania aplikacji, możesz zmienić konfigurację uruchamiania/debugowania. Więcej informacji o tworzeniu niestandardowych konfiguracji uruchamiania/debugowania znajdziesz w sekcji Tworzenie konfiguracji uruchamiania/debugowania.

  • Zalecamy korzystanie z Android Studio do celów programistycznych, ale możesz też wdrożyć aplikację na urządzeniu wirtualnym lub fizycznym z poziomu wiersza poleceń. Więcej informacji znajdziesz w artykule o tworzeniu aplikacji z poziomu wiersza poleceń.

Wdrażanie przyrostowe za pomocą funkcji Zastosuj zmiany

W Android Studio 3.5 i nowszych wersjach funkcja Zastosuj zmiany umożliwia wprowadzanie zmian w kodzie i zasobach w działającej aplikacji bez jej ponownego uruchamiania, a w niektórych przypadkach – bez ponownego uruchamiania bieżącej aktywności. Ta elastyczność pomaga kontrolować, jaka część aplikacji jest ponownie uruchamiana, gdy chcesz wdrożyć i przetestować niewielkie, stopniowe zmiany, zachowując przy tym bieżący stan urządzenia.

Stosowanie zmian korzysta z możliwości w implementacji JVMTI na Androida, które są obsługiwane na urządzeniach z Androidem 8.0 (poziom interfejsu API 26) lub nowszym. Więcej informacji o tym, jak działa Zastosuj zmiany, znajdziesz w artykule Projekt Marble w Android Studio: Stosowanie zmian.

Wymagania

Działania Zastosuj zmiany są dostępne tylko wtedy, gdy spełniasz te warunki:

  • Plik APK swojej aplikacji możesz utworzyć za pomocą wersji kompilacji przeznaczonej do debugowania.
  • Wdrażasz aplikację na urządzeniu docelowym lub emulatorze z Androidem 8.0 (poziom interfejsu API 26) lub nowszym.

Korzystanie z przycisku Zastosuj zmiany

Jeśli chcesz wdrożyć zmiany na zgodnym urządzeniu, skorzystaj z tych opcji:

Zastosuj zmiany i uruchom ponownie aktywność Ikona Zastosuj zmiany i ponownie uruchom aktywność: to próba zastosowania zmian zarówno w zasobach, jak i kodzie przez ponowne uruchomienie aktywności, ale bez ponownego uruchamiania aplikacji. Ogólnie rzecz biorąc, tej opcji możesz użyć po zmodyfikowaniu kodu w treści metody lub zmodyfikowaniu istniejącego zasobu.

Możesz to też zrobić, naciskając Control+Alt+F10 (Control+Command+Shift+R w systemie macOS).

Zastosuj zmiany w kodzie Ikona Zastosuj zmiany w kodzie : podejmowane są próby zastosowania tylko zmian w kodzie bez ponownego uruchamiania niczego. Ogólnie możesz użyć tej opcji, jeśli zmodyfikowano kod w treści metody, ale nie zostały zmodyfikowane żadne zasoby. Jeśli zmodyfikowano zarówno kod, jak i zasoby, użyj opcji Zastosuj zmiany i uruchom ponownie aktywność.

Możesz też nacisnąć Control+F10 (Control+Command+R w systemie macOS).

Uruchom : wdraża wszystkie zmiany i ponownie uruchamia aplikację. Użyj tej opcji, jeśli nie można zastosować wprowadzonych zmian za pomocą żadnej z opcji Zastosuj zmiany. Więcej informacji o typach zmian, które wymagają ponownego uruchomienia aplikacji, znajdziesz w sekcji Ograniczenia stosowania zmian.

Włącz kreację zastępczą uruchamiania dla opcji Zastosuj zmiany

Gdy klikniesz Zastosuj zmiany i uruchom ponownie aktywność lub Zastosuj zmiany w kodzie, Android Studio skompiluje nowy plik APK i określi, czy zmiany można zastosować. Jeśli nie można zastosować zmian i spowodowałyby one odrzucenie zmian, Android Studio wyświetli prośbę o ponowne uruchomienie Ikona uruchamiania aplikacji.

Jeśli nie chcesz, by prośba za każdym razem była wyświetlana, możesz skonfigurować Android Studio tak, by automatycznie uruchamiał ponownie aplikację, gdy nie można zastosować zmian. Aby włączyć tę funkcję, wykonaj te czynności:

  1. Otwórz okno Ustawienia lub Preferencje:

    • W systemach Windows i Linux wybierz w menu Plik > Ustawienia.
    • W systemie macOS wybierz z menu Android Studio > Ustawienia.
  2. Przejdź do sekcji Build, Execution, Deployment > Deployment (Kompilacja, wykonywanie, wdrażanie > Wdrażanie).

  3. Zaznacz pola wyboru, aby włączyć automatyczne uruchamianie kreacji zastępczej dla jednej lub obu działań Zastosuj zmiany.

  4. Kliknij OK.

Zmiany zależne od platformy

Niektóre funkcje opcji Zastosuj zmiany zależą od konkretnych wersji platformy Androida. Aby zastosować tego typu zmiany, aplikacja musi być wdrożona na urządzeniu z Androidem w tej wersji (lub nowszej). Na przykład dodanie metody wymaga Androida 11 lub nowszego.

Ograniczenia stosowania zmian

Opcja Zastosuj zmiany ma na celu przyspieszenie procesu wdrażania aplikacji. Istnieją jednak pewne ograniczenia co do tego, kiedy można z niej korzystać.

Zmiany w kodzie, które wymagają ponownego uruchomienia aplikacji

Niektóre zmiany w kodzie i zasobach nie mogą zostać zastosowane do momentu ponownego uruchomienia aplikacji. Są to między innymi:

  • Dodawanie i usuwanie pola
  • Usuwanie metody
  • Zmienianie podpisów metod
  • Zmiana modyfikatorów metod lub klas
  • Zmiana dziedziczenia klas
  • Zmiana wartości w wyliczeniach
  • dodanie lub usunięcie zasobu.
  • Zmiana pliku manifestu aplikacji
  • Zmiana bibliotek natywnych (plików SO)
Biblioteki i wtyczki

Niektóre biblioteki i wtyczki automatycznie wprowadzają zmiany w plikach manifestu lub zasobach, do których odwołuje się plik manifestu. Te automatyczne aktualizacje mogą zakłócać stosowanie zmian w następujący sposób:

  • Jeśli biblioteka lub wtyczka wprowadza zmiany w pliku manifestu aplikacji, nie możesz użyć przycisku Zastosuj zmiany. Aby zobaczyć zmiany, musisz ponownie uruchomić aplikację.
  • Jeśli biblioteka lub wtyczka wprowadza zmiany w plikach zasobów aplikacji, nie możesz użyć opcji Zastosuj zmiany w kodzie Ikona Zastosuj zmiany w kodzie. Aby zobaczyć zmiany, musisz użyć opcji Zastosuj zmiany i uruchom ponownie aktywność Ikona Zastosuj zmiany i ponownie uruchom aktywność (lub uruchom ponownie aplikację).

Aby uniknąć tych ograniczeń, wyłącz wszystkie automatyczne aktualizacje wariantów kompilacji do debugowania.

Na przykład Firebase Crashlytics aktualizuje zasoby aplikacji przy użyciu unikalnego identyfikatora kompilacji podczas każdej kompilacji, co uniemożliwia użycie opcji Zastosuj zmiany w kodzie Ikona Zastosuj zmiany w kodzie i wymaga ponownego uruchomienia aktywności w aplikacji, aby zobaczyć zmiany. Wyłącz to zachowanie, aby w kompilacjach do debugowania używać stosowania zmian kodu razem z Crashlytics.

Kod, który odwołuje się bezpośrednio do treści w zainstalowanym pliku APK

Jeśli kod odwołuje się bezpośrednio do zawartości pliku APK aplikacji zainstalowanego na urządzeniu, może on spowodować awarie lub nieprawidłowe działanie po kliknięciu Zastosuj zmiany w kodzie Ikona Zastosuj zmiany w kodzie. Dzieje się tak, ponieważ po kliknięciu Zastosuj zmiany w kodzie plik APK na urządzeniu zostaje zastąpiony podczas instalacji. W takich przypadkach możesz zamiast tego kliknąć Zastosuj zmiany i ponownie uruchom aktywność Ikona Zastosuj zmiany i ponownie uruchom aktywność lub Uruchom Ikona uruchamiania.

Jeśli podczas korzystania z funkcji Zastosuj zmiany wystąpią jakiekolwiek inne problemy, zgłoś błąd.

Edycja na żywo

Edycja na żywo to eksperymentalna funkcja dostępna w Android Studio, która umożliwia aktualizowanie elementów kompozycyjnych w emulatorach i na urządzeniach fizycznych w czasie rzeczywistym. Ta funkcja minimalizuje przełączanie kontekstu między pisaniem a tworzeniem aplikacji, dzięki czemu możesz się skupić na dłuższym pisaniu kodu bez zakłóceń.

Więcej informacji o transmisjach na żywo

Zmiana wariantu kompilacji

Domyślnie Android Studio tworzy wersję do debugowania Twojej aplikacji, która jest przeznaczona do użycia wyłącznie podczas programowania, gdy klikniesz Uruchom Przycisk.

Aby zmienić wariant kompilacji, którego używa Android Studio, wykonaj jedną z tych czynności:

  • W menu kliknij Kompilacja > Wybierz wariant kompilacji.
  • W menu wybierz Widok > Okna narzędzi > Warianty kompilacji.
  • Kliknij kartę Utwórz warianty na pasku okna narzędzi.

W przypadku projektów bez kodu natywnego/C++ panel Warianty kompilacji zawiera 2 kolumny: Moduł i Aktywny wariant kompilacji. Wartość aktywnego wariantu kompilacji modułu określa, który wariant kompilacji jest wdrażany przez IDE na połączonym urządzeniu i jest widoczny w edytorze.

Rysunek 9. W przypadku projektów, które nie mają kodu natywnego/C++, panel Utwórz warianty zawiera 2 kolumny.

Aby przełączać się między wariantami, kliknij komórkę Aktywna wersja kompilacji obok modułu i wybierz odpowiedni wariant z listy.

W przypadku projektów zawierających kod natywny lub C++ panel Warianty kompilacji zawiera 3 kolumny:

  • Moduł
  • Aktywna wersja kompilacji
  • Aktywny interfejs ABI

Wartość aktywnych wariantów kompilacji modułu określa wariant kompilacji, który IDE wdraża na urządzeniu i jest widoczny w edytorze. W przypadku modułów natywnych wartość Aktywnego interfejsu ABI określa interfejs ABI używany przez edytor, ale nie ma wpływu na to, co jest wdrażane.

Rysunek 10. W przypadku projektów z kodem natywnym/C++ panel Tworzenie wariantów dodaje kolumnę Aktywny interfejs ABI.

Aby zmienić wariant kompilacji lub interfejs ABI, kliknij komórkę kolumny Aktywna wersja kompilacji lub Aktywny interfejs ABI i wybierz z listy odpowiedni wariant lub interfejs ABI. Gdy zmienisz wybór, IDE automatycznie zsynchronizuje projekt. Zmiana jednej z kolumn w przypadku modułu aplikacji lub modułu biblioteki spowoduje zastosowanie zmiany do wszystkich wierszy zależnych.

Domyślnie nowe projekty są skonfigurowane z 2 wariantami kompilacji: wariantem do debugowania i wariantem wersji. Aby przygotować aplikację do opublikowania publicznego, musisz utworzyć wariant wersji. Aby zdefiniować inne odmiany aplikacji o innych funkcjach lub wymaganiach dotyczących urządzenia, możesz zdefiniować dodatkowe warianty kompilacji.

Konflikty w oknie „Warianty kompilacji w Android Studio”

W oknie Warianty kompilacji w Android Studio możesz zobaczyć komunikaty o błędach wskazujące konflikty między wariantami kompilacji, np.:

Okno wariantu kompilacji wyświetlające błędy związane z konfliktem wariantów

Ten błąd nie wskazuje na problem z kompilacją w Gradle. Wskazuje on, że IDE Android Studio nie może rozpoznać symboli między wariantami wybranych modułów.

Jeśli na przykład masz moduł M1, który jest zależny od wariantu v1 modułu M2, ale w IDE M2 jest wybrany wariant v2, w IDE masz nierozstrzygnięte symbole. Załóżmy, że M1 zależy od klasy, która jest dostępna tylko w v1. Gdy wybrana jest klasa v2, ta klasa nie jest znana IDE. Dlatego nie naprawi on nazwy klasy i wyświetla błędy w kodzie modułu M1.

Te komunikaty o błędach pojawiają się, ponieważ IDE nie może wczytać kodu dla wielu wariantów jednocześnie. Jeśli jednak chodzi o kompilację aplikacji, wariant wybrany w tym oknie nie ma żadnego efektu, ponieważ Gradle kompiluje aplikację z użyciem kodu źródłowego określonego w przepisach kompilacji Gradle, a nie na podstawie tego, co jest aktualnie wczytane w IDE.

Zmień konfigurację uruchamiania/debugowania

Przy pierwszym uruchomieniu aplikacji Android Studio używa domyślnej konfiguracji uruchamiania. Konfiguracja uruchomienia określa, czy aplikację chcesz wdrożyć z poziomu pliku APK czy z pakietu Android App Bundle, a także z modułu do uruchomienia, pakietu do wdrożenia, działania, które ma zostać uruchomione, urządzenia docelowego, ustawień emulatora, opcji Logcat itd.

Domyślna konfiguracja do uruchamiania/debugowania tworzy plik APK, uruchamia domyślne działanie projektu i używa okna Wybierz cel wdrożenia do wyboru urządzenia docelowego. Jeśli ustawienia domyślne nie pasują do Twojego projektu lub modułu, możesz dostosować konfigurację uruchamiania/debugowania lub utworzyć nową na poziomie projektu, domyślnego i modułu.

Aby zmodyfikować konfigurację uruchamiania/debugowania, kliknij Uruchom > Edytuj konfiguracje. Więcej informacji znajdziesz w artykule o tworzeniu i edytowaniu konfiguracji uruchamiania/debugowania.