Najnowsze wersje Androida często mają świetne interfejsy API, ale zalecamy dalsze obsługę starszych wersji, dopóki nie zaktualizujesz kolejnych urządzeń. Z tej lekcji dowiesz się, jak korzystać z najnowszych interfejsów API przy jednoczesnym zapewnieniu obsługi starszych wersji.
Użyj kreatora nowego projektu w Android Studio, aby znaleźć informacje o dystrybucji aktywnych urządzeń z poszczególnymi wersjami Androida. Dystrybucja na podstawie liczby urządzeń odwiedzanych Sklep Google Play. Zalecamy obsługę około 90% aktywnych urządzeń i kierowanie aplikacji na najnowszą wersję.
Wskazówka: aby korzystać z najlepszych funkcji w kilku wersjach Androida, zalecamy korzystanie w niej z biblioteki pomocy na Androida, która umożliwia korzystanie w starszych wersjach z kilku najnowszych interfejsów API platformy.
Określanie minimalnych i docelowych poziomów interfejsu API
Plik AndroidManifest.xml zawiera szczegółowe informacje o Twojej aplikacji i wskazuje, które wersje Androida są przez nią obsługiwane. W szczególności atrybuty minSdkVersion
i targetSdkVersion
elementu <uses-sdk>
wskazują najniższy poziom interfejsu API, z którym jest zgodna Twoja aplikacja, oraz najwyższy poziom interfejsu API, pod którym ją zaprojektowano i przetestowałaś.
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 elementy stylu i działania mogą się zmieniać.
Aby umożliwić aplikacji wykorzystanie tych zmian i zapewnić jej dopasowanie do stylu urządzenia każdego użytkownika, ustaw wartość targetSdkVersion
tak, aby pasowała do najnowszej dostępnej wersji Androida.
Sprawdzanie wersji systemu w czasie działania
Android udostępnia unikalny kod dla każdej wersji platformy w klasie stałych Build
. Użyj tych kodów w aplikacji, aby stworzyć warunki, które zapewnią, że kod zależny od wyższych poziomów API będzie wykonywany tylko wtedy, gdy te interfejsy API będą 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 obecne urządzenie. Możesz więc bezpiecznie używać atrybutów XML, które są obsługiwane tylko przez nowsze wersje, i nie martwić się o uszkodzenie starszych wersji podczas napotkania kodu. Jeśli np. ustawisz właściwość targetSdkVersion="11"
, aplikacja będzie domyślnie zawierać ActionBar
na Androidzie w wersji 3.0 i nowszych. Aby dodać pozycje menu do paska działań, musisz ustawić android:showAsAction="ifRoom"
w pliku XML zasobu menu. Można to bezpiecznie zrobić w pliku XML zawierającym różne wersje, ponieważ starsze wersje Androida ignorują po prostu atrybut showAsAction
(czyli nie potrzebujesz osobnej wersji w res/menu-v11/
).
Używaj stylów i motywów platformy
Android udostępnia użytkownikom motywy, które nadają aplikacjom wygląd i sposób działania systemu operacyjnego. Motywy te możesz zastosować do aplikacji w pliku manifestu. Dzięki tym wbudowanym stylom i motywom aplikacja będzie w każdej odsłonie naturalnie zgodna z najnowszym wyglądem i stylem Androida.
Aby aktywność wyglądała jak okno dialogowe:
<activity android:theme="@android:style/Theme.Dialog">
Aby Twoja aktywność miała przezroczyste tło:
<activity android:theme="@android:style/Theme.Translucent">
Aby zastosować własny motyw niestandardowy zdefiniowany w /res/values/styles.xml
:
<activity android:theme="@style/CustomTheme">
Aby zastosować motyw do całej aplikacji (wszystkich aktywności), dodaj atrybut android:theme
do elementu <application>
:
<application android:theme="@style/CustomTheme">
Więcej informacji o tworzeniu i używaniu motywów znajdziesz w przewodniku Style i motywy.