Jakie są różnice między „minimalną wersją SDK / docelową wersją SDK” a „kompilacją wersji SDK”? Wiem, co oznacza min i docelowy SDK, ale co oznacza kompilacja wersji SDK?
W Eclipse mam min / max i docelowy SDK, ale w Android Studio są te trzy ustawienia.
android
android-studio
Tobiasz
źródło
źródło
Odpowiedzi:
Wersja min sdk to najwcześniejsza wersja zestawu Android SDK, na którym aplikacja może działać. Zwykle jest to spowodowane problemem z wcześniejszymi interfejsami API, brakiem funkcjonalności lub innym problemem związanym z zachowaniem.
Wersja docelowa SDK jest wersja aplikacji został skierowany do pracy na. Idealnie wynika to z pewnego rodzaju optymalnych warunków pracy. Jeśli miałbyś „stworzyć swoją aplikację dla wersji 19”, to właśnie tutaj by to zostało określone. Może działać na wcześniejszych lub późniejszych wersjach, ale do tego właśnie dążyłeś. Ma to głównie na celu wskazanie aktualności Twojej aplikacji na rynku itp.
Wersja kompilacji SDK jest wersja android IDE (lub inne środki kompilacji przypuszczam) używa się, aby swoją aplikację podczas publikowania
.apk
pliku. Jest to przydatne do testowania aplikacji, ponieważ często trzeba ją kompilować podczas jej opracowywania. Ponieważ będzie to wersja do skompilowania w APK, będzie to oczywiście wersja Twojego wydania. Podobnie wskazane jest, aby dopasować to do docelowej wersji SDK.źródło
Wzór jest następujący
minSdkVersion - to znacznik określający minimalną wersję Androida, na której aplikacja będzie mogła zostać zainstalowana. Jest także używany przez Linta, aby uniemożliwić wywołanie API, które nie istnieje. Ma również wpływ na czas kompilacji. Możesz więc użyć smaków kompilacji, aby zastąpić minSdkVersion do maksimum podczas programowania. Pomoże to przyspieszyć kompilację przy użyciu wszystkich ulepszeń, które zapewnia nam zespół Androida. Na przykład niektóre funkcje Java 8 są dostępne tylko w określonej wersji minSdkVersion.
targetSdkVersion - mówi system Android, aby włączyć określone zmiany zachowania.
Na przykład:
Począwszy od Androida 6.0 (poziom API 23)
Runtime Permissions
zostały wprowadzone. Jeśli ustawisz wartośćtargetSdkVersion
22 lub niższą, aplikacja nie będzie pytać użytkownika o pozwolenie w czasie wykonywania.Począwszy od Androida 8.0 (poziom API 26), wszystkie
notifications
muszą być przypisane do kanału, inaczej nie pojawi się. Na urządzeniach z Androidem 7.1 (API poziom 25) i niższymi użytkownicy mogą zarządzać powiadomieniami tylko dla poszczególnych aplikacji (w rzeczywistości każda aplikacja ma tylko jeden kanał na Androida 7.1 i niższy).Począwszy Androida 9 (poziom API 28)
Web-based data directories separated by process
. JeślitargetSdkVersion
masz 28+ i utworzysz kilkaWebView
różnych procesów, otrzymaszjava.lang.RuntimeException
compileSdkVersion - w rzeczywistości jest to wersja platformy SDK i mówi Gradle, którego zestawu SDK systemu Android używa do kompilacji. Jeśli chcesz korzystać z nowych funkcji lub debugować
.java
pliki z zestawu SDK systemu Android, powinieneś zadbać o compileSdkVersion. Jeszcze jednym przykładem jest użycie systemu AndroidX, który zmusza do użyciacompileSdkVersion
- poziom 28.compileSdkVersion
nie jest uwzględniony w pakiecie APK : jest używany wyłącznie wcompile time
. Zmiana metody compileSdkVersion nie zmienia zachowania środowiska wykonawczego. Może generować na przykład nowe ostrzeżenia / błędy nowego kompilatora. Dlatego zdecydowanie zaleca się, aby zawsze kompilować z najnowszym zestawem SDK. Otrzymasz wszystkie korzyści z nowych kontroli kompilacji istniejącego kodu, unikniesz nowo przestarzałych interfejsów API i będziesz gotowy do korzystania z nowych interfejsów API. Jeszcze jeden faktcompileSdkVersion >= Support Library version
Możesz przeczytać więcej na ten temat tutaj . Polecam również przyjrzeć się przykładowi migracji do Androida 8.0.
źródło
Wersja min sdk to minimalna wersja systemu operacyjnego Android wymagana do uruchomienia aplikacji.
Wersja docelowa SDK jest wersja Androida, że Twoja aplikacja została stworzona do pracy na.
Wersja kompilacji SDK jest wersja Androida że narzędzia kompilacji zastosowania do kompilowania i budowania aplikacji w celu uwolnienia, biegać, lub debugowania.
Zwykle kompilowana wersja SDK i docelowa wersja SDK są takie same.
źródło
compileSdkVersion : CompileSdkVersion to wersja interfejsu API, z którą jest kompilowana aplikacja. Oznacza to, że możesz używać funkcji interfejsu API Androida zawartych w tej wersji interfejsu API (a także oczywiście we wszystkich poprzednich wersjach). Jeśli spróbujesz użyć funkcji API 16, ale ustawisz compileSdkVersion na 15, pojawi się błąd kompilacji. Jeśli ustawisz compileSdkVersion na 16, nadal możesz uruchomić aplikację na urządzeniu API 15.
minSdkVersion : Wersja min sdk to minimalna wersja systemu operacyjnego Android wymagana do uruchomienia aplikacji.
targetSdkVersion : Docelowa wersja SDK to wersja, na której aplikacja ma działać.
źródło