Na tej stronie opisujemy właściwości i opcje niezbędne do przygotowania Projekt biblioteki na Androida do publikacji za pomocą wtyczki Androida do obsługi Gradle (AGP). Nawet jeśli ustawisz niektóre z tych właściwości na początku tworzenia zapoznaj się z tymi wskazówkami ustawieniach.
Wybierz przestrzeń nazw
Biblioteki Androida muszą zadeklarować przestrzeń nazw, by móc wygenerować unikalny
R
podczas skompilowania zasobów. Ta przestrzeń nazw powinna być ściśle dopasowana
pakietu klas głównych biblioteki, aby uniknąć nieporozumień, gdy użytkownicy importują zwykłe pliki.
zajęcia z biblioteki i jej zajęć R
.
Począwszy od AGP 7.0, można
przestrzeń nazw
w pliku build.gradle
aplikacji, jak widać w tym przykładowym kodzie:
Odlotowe
android { namespace = 'com.example.library' }
Kotlin
android { namespace = "com.example.library" }
Przestrzeń nazw jest właściwością biblioteki widoczną dla programistów. Nie
powiązane z tożsamością aplikacji, ustawianą za pomocą
applicationId
usłudze.
W poprzednich wersjach interfejsu AGP zarówno właściwość applicationId
, jak
aplikacji) i właściwości namespace
(w przypadku biblioteki) można ustawić za pomocą
package
w pliku manifestu
co prowadziło do dezorientacji.
Wybierz wartość minSdkVersion
Wybieranie minSdkVersion
dla
biblioteka jest ważnym aspektem jej publikowania.
minSdkVersion
powinna odzwierciedlać minimalną wersję Androida dostępną w przypadku Twojego kodu
.
Wybierając minSdkVersion
, pamiętaj o tych kwestiach:
Wybranie niskiej wartości
minSdkVersion
zazwyczaj umożliwia szerszą dystrybucję: w bibliotece.Kod biblioteki zwykle nie jest wykonywany, chyba że aplikacja w sposób jawny. Aplikacja może nadal działać na wersji Androida, która jest mniejsza niż wymagana przez zależność biblioteki – jeśli biblioteka niezbędne do działania głównej funkcji aplikacji – przez sprawdzenie jej w czasie działania przed wywołaniem do biblioteki. Ustaw
minSdkVersion
w bibliotece na tyle niskie, aby można go umieszczać w aplikacjach i wywołać, gdy jest to możliwe, użytkowników.Ustawienie wysokiej wartości
minSdkVersion
może uniemożliwić aplikacjom uwzględnianie do biblioteki.Scalanie plików manifestu, czyli krok w AGP, który scala pliki manifestu z aplikacji i zależności, wymusza na nich zależność ma wartość
minSdkVersion
większą niż aplikacja.Ustawienie wysokiej wartości
minSdkVersion
może spowodować, że deweloperzy będą musieli wyłączyć aplikację kontrole bezpieczeństwa scalania plików manifestu, które powodują problemy na późniejszym etapie procesu kompilacji.Ponieważ scalanie plików manifestu uniemożliwia projektom aplikacji uwzględnianie biblioteki o wartości
minSdkVersion
wyższą niż sama aplikacja, deweloperzy aplikacji może wyłączyć kontrole bezpieczeństwa scalania pliku manifestu, aby zminimalizować kompilację . Ryzykuje to jednak w przyszłości problemy z niezgodnością.Wybranie wysokiej wartości
minSdkVersion
może być konieczne w szczególnych przypadkach, gdy Plik manifestu biblioteki zawiera odbiornik lub inny mechanizm, a jego kod jest uruchamiany automatycznie.W takich przypadkach wybór wysokiej wartości
minSdkVersion
umożliwia uruchomienie kodu. Możesz też wyłączyć automatyczne zachowanie, aby aplikacja mogła z niej korzystać które jest niezbędne do uruchomienia biblioteki po przeprowadzeniu odpowiednich testów.
Aby zezwolić na umieszczanie w aplikacjach, użyj atrybutu
Adnotacja RequiresApi
w
w celu wskazania aplikacji wywołujących, że muszą przeprowadzić weryfikację w czasie działania. Android,
Lint używa informacji z narzędzia RequiresApi
na potrzeby inspekcji. Więcej materiałów
na temat korzystania z adnotacji w celu ulepszenia kodu API i interfejsów API, zapoznaj się z artykułem Ulepszanie kodu
i przeglądanie danych za pomocą adnotacji.
Konfigurowanie metadanych AAR
Biblioteka Androida jest spakowana w formacie pliku Android Archive (AAR). Metadane AAR składają się z właściwości, które pomagają Biblioteki wykorzystywane przez AGP. Jeśli Twoją bibliotekę zajmuje niezgodny i metadanych AAR, użytkownikom wyświetla się komunikat o błędzie, i pomóc w rozwiązaniu problemu.
Wybierz wartość minCompileSdk
Począwszy od wersji 4.1, AGP obsługuje
minCompileSdk
Ta wartość określa minimalną
compileSdk
których mogą używać
projekty. Jeśli biblioteka zawiera wpisy manifestu lub
zasobów, które korzystają z nowszych atrybutów platformy, musisz
ustaw tę wartość.
Wartość minCompileSdk
można ustawić w parametrach defaultConfig{}
,
productFlavors{}
i buildTypes{}
bloki na poziomie modułu (build.gradle
)
plik:
Odlotowe
android { defaultConfig { aarMetadata { minCompileSdk = 29 } } productFlavors { foo { ... aarMetadata { minCompileSdk = 30 } } } }
Kotlin
android { defaultConfig { aarMetadata { minCompileSdk = 29 } } productFlavors { register("foo") { ... aarMetadata { minCompileSdk = 30 } } } }
Jeśli skonfigurujesz minCompileSdk
w wielu miejscach, Gradle nadaje priorytet tym ustawieniom
lokalizacji w taki sposób:
buildTypes{}
productFlavors{}
defaultConfig{}
W poprzednim przykładzie, gdzie minCompileSdk
jest zdefiniowane w obu tych miejscach
defaultConfig{}
i productFlavors{}
, productFlavors{}
mają priorytet
a minCompileSdk
ma wartość 30.
Aby dowiedzieć się więcej o tym, jak Gradle nadaje priorytet ustawieniom podczas łączenia kodu i zasobów, zobacz Build with source .
Włącz urządzenia testowe
Sprzęt testowy są często używane do konfigurowania testowanego kodu lub ułatwiania testowania . Począwszy od wersji 7.1, AGP może tworzyć osprzęt testowy dla biblioteki projekty, jak również projekty aplikacji i funkcji dynamicznych.
Publikując bibliotekę, by inni mogli z niej korzystać, rozważ utworzenie testu
dla Twojego interfejsu API. Urządzenia testowe można włączyć na poziomie modułu
Plik build.gradle
:
Odlotowe
android { testFixtures { enable = true } }
Kotlin
android { testFixtures { enable = true } }
Gdy włączysz osprzęt testowy, Gradle automatycznie utworzy
Zbiór źródłowy src/testFixtures
, w którym można zapisywać urządzenia testowe.
Więcej informacji znajdziesz w dokumentacji Gradle na temat korzystania urządzenia testowe.