Projekt w Android Studio zawiera wszystko, co definiuje obszar roboczy aplikacji – od kodu źródłowego i zasobów po kod testowy i konfiguracje kompilacji.
Gdy rozpoczniesz nowy projekt, Android Studio utworzy niezbędną strukturę wszystkich plików i wyświetli je w oknie Projekt w Android Studio. Aby otworzyć to okno, wybierz Widok > Okna narzędzi > Projekt.
Na tej stronie znajdziesz omówienie najważniejszych komponentów projektu.
Moduły
Moduł to zbiór plików źródłowych i ustawień kompilacji, który umożliwia podzielenie projektu na odrębne jednostki funkcjonalne. Projekt może mieć jeden lub wiele modułów, a jeden moduł może używać innego modułu jako zależności. Każdy moduł możesz kompilować, testować i debugować niezależnie. Pamiętaj, że w dokumentacji Gradle moduły mogą być nazywane „projektami” lub „podprojektami”.
Dodatkowe moduły są przydatne, gdy tworzysz biblioteki kodu w ramach własnego projektu lub gdy chcesz utworzyć różne zestawy kodu i zasobów dla różnych typów urządzeń, takich jak telefony i urządzenia do noszenia, ale chcesz, aby wszystkie pliki były objęte tym samym projektem i współdzieliły część kodu.
Aby dodać nowy moduł do projektu, kliknij Plik > Nowy > Nowy moduł.
Android Studio oferuje kilka różnych typów modułów:
- Moduł aplikacji na Androida
Zawiera kontener na kod źródłowy aplikacji , pliki zasobów i ustawienia na poziomie aplikacji, takie jak plik kompilacji na poziomie modułu i plik manifestu Androida. Gdy tworzysz nowy projekt, domyślny moduł aplikacji ma nazwę „app”.
Android Studio oferuje te typy modułów aplikacji:
- Telefon i tablet
- Motoryzacja
- Wear OS
- Telewizja
Każdy moduł zawiera niezbędne pliki i szablony kodu, które są odpowiednie dla danego typu aplikacji lub urządzenia.
Więcej informacji o dodawaniu modułu znajdziesz w artykule Dodawanie modułu dla nowego urządzenia.
- Moduł funkcji
-
Reprezentuje modułową funkcję aplikacji, która może korzystać z Play
Feature Delivery. Na przykład za pomocą modułów funkcji możesz udostępniać użytkownikom określone funkcje aplikacji na żądanie lub jako aplikacje błyskawiczne w Aplikacja błyskawiczna w Google Play.
Android Studio oferuje te typy modułów funkcji:
- Moduł funkcji dynamicznej
- Moduł biblioteki funkcji dynamicznej aplikacji błyskawicznej
Więcej informacji znajdziesz w artykule o Play Feature Delivery.
- Moduł biblioteki
Zawiera kontener na kod wielokrotnego użytku, którego możesz używać jako zależności w innych modułach aplikacji lub importować do innych projektów. Pod względem struktury moduł biblioteki jest taki sam jak moduł aplikacji, ale po skompilowaniu, tworzy plik archiwum kodu zamiast pliku APK, więc nie można go zainstalować na urządzeniu.
W oknie Utwórz nowy moduł Android Studio oferuje te typy modułów biblioteki:
- Biblioteka Androida: zawiera wszystkie typy plików obsługiwane w projekcie aplikacji na Androida, z wyjątkiem kodu natywnego C++, w tym kod źródłowy Java i Kotlin, zasoby i pliki manifestu. Wynikiem kompilacji jest plik archiwum Androida (AAR), który możesz dodać jako zależność do modułów aplikacji na Androida.
- Natywna biblioteka Androida: zawiera wszystkie typy plików obsługiwane w projekcie aplikacji na Androida, podobnie jak biblioteka Androida. Natywne biblioteki Androida mogą jednak zawierać też natywny kod źródłowy C++. Wynikiem kompilacji jest plik archiwum Androida (AAR), który możesz dodać jako zależność do modułów aplikacji na Androida.
- Biblioteka Java lub Kotlin: zawiera tylko pliki źródłowe Kotlin lub Java. Wynikiem kompilacji jest plik archiwum Java (JAR), który możesz dodać jako zależność do modułów aplikacji na Androida lub innych projektów Kotlin lub Java.
- Test porównawczy > Mikropomiar: zawiera pliki potrzebne do regularnego pomiaru wydajności kodu i generowania wyników testów porównawczych. Moduły mikropomiarów są szczególnie przydatne do pomiaru wydajności mniejszych fragmentów kodu, które są używane wielokrotnie. Więcej informacji znajdziesz w artykule o mikropomiarach.
Gdy tworzysz moduł biblioteki i chcesz dodać go jako zależność do modułu aplikacji na Androida, musisz zadeklarować go w ten sposób:
Dynamiczny
dependencies { implementation project(':my-library-module') }
Kotlin
dependencies { implementation(project(":my-library-module")) }
- Moduł testowy
Oddziela testy od reszty kodu. Moduł testowy możesz skonfigurować tak, aby był kierowany na określone warianty kompilacji.
Android Studio oferuje te typy modułów testowych:
- Generator profili podstawowych: Profile podstawowe sprawiają, że interakcje użytkownika, takie jak nawigacja i przewijanie, są płynniejsze już przy pierwszym uruchomieniu. Utwórz profile bazowe dla najważniejszych ścieżek użytkownika, aby poprawić wydajność aplikacji i komfort użytkowników.
- Test porównawczy > Makropomiar: zawiera pliki potrzebne do regularnego pomiaru wydajności kodu i generowania wyników testów porównawczych. Moduły makropomiarów są szczególnie przydatne do pomiaru wydajności większych przypadków użycia aplikacji, takich jak przewijanie listy lub inne manipulacje interfejsem. Więcej informacji znajdziesz w artykule o pisaniu makropomiarów.
Pliki projektu
Domyślnie Android Studio wyświetla pliki projektu w widoku Android. Ten widok nie odzwierciedla rzeczywistej hierarchii plików na dysku. Zamiast tego jest on uporządkowany według modułów i typów plików, aby uprościć nawigację między kluczowymi plikami źródłowymi projektu. Ukrywa on niektóre pliki lub katalogi, które nie są często używane.
Oto niektóre różnice strukturalne między widokiem Android a strukturą na dysku:
- Wyświetla wszystkie pliki konfiguracyjne związane z kompilacją projektu w grupie najwyższego poziomu Skrypt Gradle.
- Wyświetla wszystkie pliki manifestu każdego modułu w grupie na poziomie modułu, gdy masz różne pliki manifestu dla różnych wariantów produktu i typów kompilacji.
- Wyświetla wszystkie alternatywne pliki zasobów w jednej grupie zamiast w osobnych folderach według kwalifikatora zasobu. Na przykład wszystkie wersje ikony programu uruchamiającego o różnej gęstości są widoczne obok siebie.
W każdym module aplikacji na Androida pliki są wyświetlane w tych grupach:
- manifests
- Zawiera plik
AndroidManifest.xml. - java
- Zawiera pliki kodu źródłowego Kotlin i Java, rozdzielone według nazw pakietów, w tym kod testowy JUnit.
- res
- Zawiera wszystkie zasoby niebędące kodem, takie jak ciągi tekstowe interfejsu i obrazy bitmapowe, podzielone na odpowiednie podkatalogi. Więcej informacji o możliwych typach zasobów znajdziesz w artykule Omówienie zasobów aplikacji.
Widok projektu
Aby zobaczyć rzeczywistą strukturę plików projektu, w tym wszystkie pliki ukryte w widoku Android, w menu u góry okna Projekt wybierz Projekt.
Gdy wybierzesz widok Projekt, zobaczysz znacznie więcej plików i katalogów, w tym:
module-name/-
build/- Zawiera dane wyjściowe kompilacji.
libs/- Zawiera biblioteki prywatne.
src/- Zawiera wszystkie pliki kodu i zasobów modułu w tych podkatalogach:
androidTest/- Zawiera kod testów instrumentacji, które są uruchamiane na urządzeniu z Androidem. Więcej informacji znajdziesz w artykule Testowanie w Android Studio.
cpp/- Zawiera natywny kod C lub C++ korzystający z interfejsu Java Native Interface (JNI). Więcej informacji znajdziesz w dokumentacji Android NDK.
main/- Zawiera pliki „głównego” zbioru źródeł: kod i zasoby Androida współdzielone przez wszystkie warianty kompilacji (pliki innych wariantów kompilacji znajdują się w katalogach równorzędnych, np.
src/debug/dla rodzaju kompilacji do debugowania):AndroidManifest.xml- Opisuje charakter aplikacji i każdego z jej komponentów. Więcej informacji znajdziesz w artykule Omówienie manifestu aplikacji.
java/- Zawiera źródła kodu Kotlin lub Java albo oba, jeśli aplikacja ma kod źródłowy Kotlin i Java.
kotlin/- Zawiera tylko źródła kodu Kotlin.
res/- Zawiera zasoby aplikacji, takie jak pliki obiektów rysowalnych i pliki ciągów tekstowych interfejsu. Więcej informacji znajdziesz w artykule Omówienie zasobów aplikacji.
assets/- Zawiera pliki, które mają być skompilowane do pliku APK w niezmienionej postaci. Jest to na przykład dobre miejsce na tekstury i dane z gry. Możesz
poruszać się po tym katalogu tak samo jak w typowym systemie plików, używając
identyfikatorów URI i odczytując pliki jako strumień bajtów za pomocą
AssetManager.
test/- Zawiera kod testów lokalnych, które są uruchamiane w JVM hosta.
build.gradlelubbuild.gradle.kts(moduł)- Definiuje konfiguracje kompilacji specyficzne dla modułu.
build.gradleto prawidłowa nazwa pliku, jeśli używasz Groovy jako języka skryptu kompilacji, abuild.gradle.kts– jeśli używasz skryptu Kotlin.
build.gradlelubbuild.gradle.kts(projekt)- Definiuje konfigurację kompilacji, która ma zastosowanie do wszystkich modułów.
build.gradleto prawidłowa nazwa pliku, jeśli używasz Groovy jako języka skryptu kompilacji, abuild.gradle.kts– jeśli używasz skryptu Kotlin. Ten plik jest integralną częścią projektu, dlatego przechowuj go w systemie kontroli wersji razem z całym kodem źródłowym.Informacje o innych plikach kompilacji znajdziesz w artykule Konfigurowanie kompilacji.
Ustawienia struktury projektu
Aby zmienić różne ustawienia projektu Android Studio, otwórz okno Struktura projektu , klikając Plik > Struktura projektu. Zawiera ono te sekcje:
- Projekt: ustawia wersję Gradle i wtyczki Androida do obsługi Gradle oraz nazwę lokalizacji repozytorium.
- Lokalizacja pakietu SDK: ustawia lokalizację JDK, Android SDK, i Android NDK używanych przez projekt.
- Zmienne: umożliwia edytowanie zmiennych używanych w skryptach kompilacji.
-
Moduły: umożliwia edytowanie konfiguracji kompilacji specyficznych dla modułu, w tym docelowego i minimalnego pakietu SDK, podpisu aplikacji oraz zależności biblioteki. Strona ustawień każdego modułu jest podzielona na te karty:
- Właściwości: określa wersje pakietu SDK i narzędzi do kompilacji, które mają być używane do kompilowania modułu.
- Podpisywanie: określa certyfikat, który ma być używany do podpisywania aplikacji.
-
Zależności: zawiera listę zależności biblioteki, pliku i modułu zależności dla tego modułu. W tym panelu możesz dodawać, modyfikować i usuwać zależności z tego panelu. Więcej informacji o zależnościach modułów znajdziesz w artykule Konfigurowanie wariantów kompilacji.
-
Warianty kompilacji: umożliwia konfigurowanie różnych wariantów i typów kompilacji projektu.
-
Warianty: umożliwia tworzenie wielu wariantów kompilacji, z których każdy określa zestaw ustawień konfiguracji, takich jak minimalna i docelowa wersja pakietu SDK modułu oraz kod i nazwa wersji.
Możesz na przykład zdefiniować jeden wariant z minimalnym pakietem SDK 21 i docelowym pakietem SDK 29 oraz inny wariant z minimalnym pakietem SDK 24 i docelowym pakietem SDK 33.
- Typy kompilacji: umożliwia tworzenie i modyfikowanie konfiguracji kompilacji zgodnie z opisem w artykule Konfigurowanie wariantów kompilacji. Domyślnie, każdy moduł ma typy kompilacji debug i release, ale w razie potrzeby możesz zdefiniować więcej.
-