Najnowsze wersje Androida często zawierają świetne interfejsy API dla aplikacji, ale nadal musisz obsługiwać starsze wersje Androida, dopóki więcej urządzeń nie zostanie zaktualizowanych. Z tej lekcji dowiesz się, jak korzystać z najnowszych interfejsów API, zachowując przy tym obsługę starszych wersji.
Użyj kreatora Nowy projekt w Android Studio, aby znaleźć dystrybucję aktywnych urządzeń z każdą wersją Androida. Ten rozkład jest oparty na liczbie urządzeń, otwórz Sklep Google Play. Ogólnie zalecamy obsługę około 90% aktywnych urządzeń, kierowanie aplikacji do najnowszej wersji.
Wskazówka: aby zapewnić najlepsze funkcje i najlepszą funkcjonalność w różnych wersjach Androida, użyj w swojej aplikacji Biblioteki pomocy dla Androida, która umożliwia korzystanie z kilku najnowszych interfejsów API platformy w starszych wersjach.
Określanie minimalnego i docelowego poziomu interfejsu API
Plik AndroidManifest.xml zawiera szczegółowe informacje o aplikacji oraz określa, które wersje Androida obsługuje. Konkretnie: minSdkVersion
i atrybuty targetSdkVersion
dla elementu <uses-sdk>
Zidentyfikować najniższy poziom API, z którym Twoja aplikacja jest zgodna, oraz najwyższy poziom API z którym
zaprojektowaną i przetestowaną aplikację.
Na przykład:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... > <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" /> ... </manifest>
W miarę pojawiania się nowych wersji Androida niektóre style i działania mogą się zmieniać.
Aby umożliwić aplikacji skorzystanie z tych zmian i dostosowanie aplikacji do stylu
na urządzeniach poszczególnych użytkowników, ustaw
targetSdkVersion
aby pasowała do najnowszej wersji Androida.
i dostępności informacji.
Sprawdzanie wersji systemu w czasie wykonywania
Android udostępnia unikalny kod dla każdej wersji platformy w Build
klasy stałych. Za pomocą tych kodów w aplikacji możesz utworzyć warunki, które zagwarantują, że kod
zależy od wyższych poziomów API, jest wykonywana tylko wtedy, gdy te interfejsy API są dostępne w systemie.
Kotlin
private fun setUpActionBar() { // Make sure we're running on Honeycomb or higher to use ActionBar APIs if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { actionBar.setDisplayHomeAsUpEnabled(true) } }
Java
private void setUpActionBar() { // Make sure we're running on Honeycomb or higher to use ActionBar APIs if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); } }
Uwaga: podczas analizowania zasobów XML Android ignoruje atrybuty XML, które nie są obsługiwane przez bieżące urządzenie. Możesz więc bezpiecznie używać atrybutów XML, które są obsługiwane tylko przez nowsze wersje, bez obaw, że starsze wersje przestaną działać po napotkaniu tego kodu. Jeśli na przykład ustawisz wartośćtargetSdkVersion="11"
, Twoja aplikacja będzie domyślnie zawierać element ActionBar
w Androidzie 3.0 lub nowszym. Aby dodać pozycje menu do paska działań, musisz ustawić
android:showAsAction="ifRoom"
w pliku XML zasobu menu. Można to zrobić bezpiecznie w pliku XML dla różnych wersji, ponieważ starsze wersje Androida po prostu ignorują atrybut showAsAction
(czyli nie musisz tworzyć osobnej wersji w pliku res/menu-v11/
).
Używanie stylów i motywów platformy
Android zapewnia motywy dla użytkowników, które nadają aplikacjom wygląd i systemu operacyjnego. Te motywy można zastosować do aplikacji w pliku manifestu. Jeśli użyjesz tych wbudowanych stylów i motywów, aplikacja będzie w naturalny sposób dostosowują się do wyglądu i stylu Androida w każdej nowej wersji.
Aby aktywność wyglądała jak okno dialogowe:
<activity android:theme="@android:style/Theme.Dialog">
Aby aktywność miała przezroczyste tło:
<activity android:theme="@android:style/Theme.Translucent">
Aby zastosować własny motyw niestandardowy zdefiniowany w sekcji /res/values/styles.xml
:
<activity android:theme="@style/CustomTheme">
Aby zastosować motyw do całej aplikacji (wszystkich aktywności), dodaj android:theme
atrybut
do elementu <application>
:
<application android:theme="@style/CustomTheme">
Więcej informacji o tworzeniu i używaniu motywów znajdziesz w przewodniku Style i motywy.