Struktura kompilacji Androida

Projekty na Androida zawierają wiele plików związanych z kompilacją i struktur katalogów, uporządkowanie źródła i zasobów aplikacji. Zanim zagłębimy się w temat przyjrzymy się szczegółowej konfiguracji, przyjrzymy się ogólnej strukturze i podstawom z każdej części.

Ta tabela zawiera listę typowych plików w projekcie na Androida. Opisy poszczególnych elementów który zawiera uwagi dotyczące rodzaju treści, które się w nim znajdują. Najwyższa metody ewoluują z czasem, a te opisy mogą nie odpowiadać projektowi odziedziczonych lub pobranych z internetu.

Podczas tworzenia plików kompilacji stosuj podejście deklaratywne. tworzenie logiki i zadań powinny pojawiać się tylko we wtyczkach. Dzięki ograniczaniu logiki tworzenia do wtyczek pliki kompilacji stają się deklaracjami dotyczącymi danych, i edytowania. Przyszłe wersje mogą zawierać alternatywną specyfikację, taką jak Gradle deklaratywnych, który uniemożliwia tworzenie logiki w parametrze .

Folder/plik

Użyj

.gradle/,

Katalog pamięci podręcznej projektu Gradle

Zarządzana przez Gradle i zawiera pobraną dystrybucję Gradle, pamięć podręczną projektu oraz pliki konfiguracji.

Nie zmieniaj plików w tym katalogu.

.idea/

Metadane projektu Android Studio

Nie zmieniaj plików w tym katalogu.

build.gradle(.kts)

Główny plik kompilacji

Powinien zawierać tylko deklaracje wtyczek, które umożliwiają ustawienie wspólnej ścieżki klasy wtyczki w podprojektach.

Inny kod powinien znajdować się w ustawieniach lub w zagnieżdżonych plikach kompilacji na poziomie projektu.

gradle.properties

Konfiguracja wykonywania Gradle

Zawiera właściwości Gradle, które kontrolują aspekty środowiska kompilacji Gradle, takie jak rozmiar sterty, pamięć podręczna i wykonywanie równoległe.

Zdefiniowano tu niektóre tymczasowe właściwości Androida, aby ograniczyć zmiany w interfejsie AGP DSL w miarę ich dodawania i usuwania.

gradlew (linux, Mac)

gradlew.bat (system Windows)

Plik otoki Gradle

Wczytuje kompilację przez pobranie dystrybucji Gradle i przekazywanie do niej poleceń. Dzięki temu możesz uruchamiać kompilacje bez konieczności wstępnego instalowania Gradle.

local.properties

Konfiguracja maszyny lokalnej

Zawiera właściwości związane z komputerem lokalnym, np. lokalizację pakietu Android SDK.

Wyklucz ten plik z kontroli źródła

settings.gradle(.kts)

Inicjowanie kompilacji Gradle

Zawiera globalne informacje o kompilacji potrzebne do zainicjowania Gradle i konfiguracji projektu, takie jak:

  • nazwa projektu
  • lista podprojektów do uwzględnienia w tej kompilacji
  • specyfikacje repozytorium umożliwiające lokalizowanie wtyczek i zależności
  • zewnętrznych importów katalogu wersji.

gradle/

↳ libs.versions.toml

Katalog wersji

Definiuje zmienne zależności i wtyczek używanych w kompilacji. Możesz określić, których wersji chcesz używać w tym miejscu, co zapewnia spójność we wszystkich podprojektach w projekcie.

↳ zawijaj/

↳ gradle-wrapper.jar

Wczytywanie Gradle plik wykonywalny

Pobiera określony rozkład Gradle (jeśli nie istnieje) i uruchamia go, przekazując dowolne argumenty

↳ gradle-wrapper.properties

Konfiguracja kodu Gradle

Określa, skąd pobrać dystrybucję Gradle (w tym wersję, która ma być używana).

aplikacja/

Katalog podprojektów

Podprojekty (nazywane w Android Studio jako „moduły”) mogą tworzyć aplikacje lub biblioteki i mogą zależeć od innych podprojektów lub zależności zewnętrznych.

app to konwencjonalna nazwa podprojektu aplikacji najwyższego poziomu (ale nie jest wymagana). Inne podprojekty mają podobne struktury i różne nazwy.

Każdy katalog może być podprojektem i musi zawierać co najmniej plik build.gradle(.kts) oraz musi być uwzględniony w kompilacji za pomocą tagu settings.gradle(.kts).

↳ build.gradle(.kts)

Plik kompilacji na poziomie podprojektu

Deklaruje sposób utworzenia tego podprojektu. Każdy podprojekt wymaga osobnego pliku kompilacji i powinien zawierać

  • wtyczki użyte do utworzenia tego podprojektu
  • bloki konfiguracji wymagane przez wtyczki
  • zależności (biblioteki i platformy) uwzględnione podczas tworzenia tego podprojektu

W plikach kompilacji nie należy uwzględniać logiki tworzenia (np. definicji lub warunków funkcji Kotlin) ani deklaracji zadań. Logika kompilacji i zadania powinny znajdować się tylko wewnątrz wtyczek.

↳ src/

Pliki źródłowe podprojektu

Grupuje pliki źródłowe (kod aplikacji i zasoby) w zbiory źródłowe. Zbiór źródłowy main zawiera pliki źródłowe, które są wspólne dla wszystkich wariantów, a inne zbiory źródłowe zawierają pliki źródłowe unikalne dla danego wariantu.

↳ główna/

Główny zbiór źródłowy

Kod źródłowy i zasoby, które są wspólne we wszystkich wariantach kompilacji. To źródło stanowi podstawę wszystkich kompilacji, a inne, bardziej szczegółowe zbiory źródłowe dodają lub zastępują to źródło.

↳ java/

↳ kotlin/

Kod źródłowy Kotlin i Java

Katalog java może zawierać kod źródłowy Java i Kotlin. Jeśli ten podprojekt zawiera tylko kod Kotlin, możesz zmienić nazwę tego katalogu kotlin.

Android
na platformę Kotlin. Obsługiwane jest źródło Java, ale nowe interfejsy API są kierowane na język Kotlin. Zalecamy korzystanie z Kotlin w przypadku całego nowego kodu i głównych aktualizacji istniejącego kodu.

↳ rozdzielcz./

Pliki zasobów Androida

Zawiera zasoby aplikacji, takie jak pliki XML i obrazy. Wszystkie aplikacje korzystają z podstawowych zasobów, takich jak ikony w programie uruchamiającym, ale wiele z nich, takich jak układy i menu, jest używanych tylko w aplikacjach opartych na widokach. Do tworzenia aplikacji używane są zasoby ciągów znaków zdefiniowane w tym katalogu.

↳ AndroidManifest.xml

Metadane aplikacji na Androida

Czytaj przez menedżera pakietów Androida, aby poinformować system

  • komponenty zdefiniowane przez aplikację
  • niezbędne uprawnienia
  • zgodność urządzeń
  • Ograniczenia platformy Androida

↳ androidTest/

Test urządzenia – zbiór źródeł

Zawiera źródło testów, które zostaną przeprowadzone na urządzeniu z Androidem lub w emulatorze. Testy te mają dostęp do rzeczywistego środowiska Androida, ale są wykonywane wolniej niż testy hosta.

Wszystkie pliki źródłowe w zbiorze źródłowym main są dostępne do użycia w źródle w ramach testu androidTest.

↳ test/

Test hosta Zbiór źródłowy

Zawiera źródło dla testów przeprowadzanych lokalnie w maszynie wirtualnej JVM w porównaniu do testów przeprowadzanych na urządzeniu. Takie testy przeprowadza się znacznie szybciej niż testy na urządzeniach. Jednak wszystkie wywołania systemowe (w tym cykle życia uruchomione w aplikacji) muszą być udawane, sfałszowane, skrócone lub w inny sposób symulowane.

Wszystkie pliki źródłowe w zbiorze źródłowym main mogą być używane przez testowane źródło.

↳ proguard-rules.pro

Reguły konfiguracji R8

Określa reguły kontrolujące zmniejszanie, optymalizację i zaciemnianie aplikacji. R8 usuwa zbędny kod i zasoby, optymalizuje wydajność środowiska wykonawczego i jeszcze bardziej minimalizuje kod przez zmianę nazw identyfikatorów.