Poziom API: 5
Android 2.0 to główna wersja platformy, którą można wdrożyć na telefonach z Androidem od listopada 2009 r. Ta wersja zawiera nowe funkcje dla użytkowników i programistów oraz zmiany w interfejsie API Androida.
Dla programistów platforma Android 2.0 jest dostępna jako dostępny do pobrania komponent Android SDK. Platforma do pobrania zawiera w pełni zgodnej biblioteki Androida i obrazu systemu oraz zestaw emulatora skórki, przykładowe aplikacje i nie tylko. Pobierana platforma jest w pełni zgodna z tymi zasadami i nie zawiera żadnych bibliotek zewnętrznych.
Aby rozpocząć tworzenie lub testowanie aplikacji na platformie Android 2.0, użyj pakietu Android SDK i narzędzia Menedżer AVD, aby pobrać platformę do pakietu SDK.
Platform Highlights
Listę nowych funkcji dla użytkowników oraz informacje o platformie znajdziesz w artykule Android 2.0 Informacje o platformie.
Wbudowane aplikacje
Obraz systemu zawarty w platformie do pobrania udostępnia te wbudowane aplikacje:
|
|
Języki
Obraz systemu zawarty w pobieranej platformie zawiera wiele wbudowanych lokalizacji. W niektórych przypadkach dla parametru ustawienia regionalne. W innych przypadkach używana jest domyślna wersja języka. języków, które są dostępne w systemie Android 2.0 Obrazy znajdują się poniżej (z podziałem na language_country/region locale) deskryptor).
|
|
Lokalizacja ciągów tekstowych interfejsu odpowiada lokalizacji dostępnej w Ustawieniach.
Skórki emulatora
Platforma do pobrania zawiera zestaw skórek emulatora, które możesz wykorzystać do modelowania aplikacji w różnych rozmiarach i rozdzielczościach ekranu. Skórki emulatora:
- QVGA (240 x 320, mała gęstość, mały ekran)
- WQVGA (240 x 400, niska gęstość, zwykły ekran)
- FWQVGA (240 x 432, niska gęstość, ekran normalny)
- HVGA (320 x 480, średnia gęstość, ekran normalny)
- WVGA800 (480 x 800, wysoka gęstość, ekran normalny)
- WVGA854 (480 x 854 o wysokiej gęstości pikseli, ekran normalny)
Więcej informacji o tym, jak tworzyć aplikacje, które wyświetlają się i działają prawidłowo na wszystkich urządzeniach z Androidem, znajdziesz w artykule Obsługa wielu ekranów.
Funkcje dla programistów
W sekcjach poniżej znajdziesz informacje na temat nowych funkcji dla programistów oferowanych w ramach dostępnego do pobrania komponentu platformy Androida 2.0.
Wsparcie dotyczące Ant
- podpisywanie aplikacji w trybie debugowania i w wersji produkcyjnej. Podpisywanie w trybie wydania obejmuje zintegrowaną obsługę optymalizacji
zipalign
. Więcej informacji znajdziesz w artykule Podpisywanie aplikacji. - Dodano nowy system kompilacji Ant z obsługą projektów pomiarów Emma (zasięg kodu).
Interfejs API platformy
W sekcjach poniżej znajdziesz informacje na temat interfejsu API platformy aplikacji udostępnianego przez platformę Android 2.0.
Poziom interfejsu API
Platforma Android 2.0 udostępnia zaktualizowaną wersję interfejsu API frameworku. Podobnie jak w poprzednich wersjach, interfejs API Androida 2.0 ma przypisany identyfikator liczby całkowitej – 5 – który jest przechowywany w samym systemie. Ten identyfikator, nazywany „poziomem interfejsu API”, umożliwia stosowanie funkcji systemu pozwalającego poprawnie określić, czy aplikacja jest zgodna z systemu.
Aby używać w swojej aplikacji interfejsów API wprowadzonych w Androidzie 2.0, musisz ustawić odpowiednią wartość „5” w atrybutach elementu <uses-sdk>
w manifeście aplikacji.
Więcej informacji o tym, jak korzystać z poziomów interfejsu API, znajdziesz w dokumentacji Poziomy interfejsu API.
Podsumowanie zmian w interfejsie API
Bluetooth
- Włączanie i wyłączanie Bluetootha
- Wykrywanie urządzeń i usług
- Łączenie się z urządzeniem zdalnym za pomocą RFCOMM i wysyłanie/odbieranie danych
- Reklamowanie usług RFCOMM i nasłuchiwanie przychodzących połączeń RFCOMM
Adaptery synchronizacji
- Nowe interfejsy API dla adapterów synchronizacji umożliwiające połączenie z dowolnym backendem
Menedżer konta
- Centralizowany interfejs API menedżera kont do bezpiecznego przechowywania tokenów uwierzytelniania i haseł oraz uzyskiwania do nich dostępu
kontakty,
- Nowe interfejsy API kontaktów, które umożliwiają dostęp do danych z wielu kont
- Nowe interfejsy API platformy szybkich kontaktów umożliwiają deweloperom tworzenie plakietek kontaktowych w aplikacjach. Kliknięcie plakietki spowoduje otwarcie okna z listą sposobów skontaktowania się z tą osobą za pomocą jednego kliknięcia.
WebView | komponent WebView
- Klasy przestarzałe: UrlInterceptHandler, Plugin, PluginData, PluginList, UrlInterceptRegistry.
Aparat
- Nowe parametry efektu koloru, trybu sceny, trybu lampy błyskowej, trybu ostrości, balansu bieli, obracania i innych ustawień.
- Nowy interfejs ZoomCallback do wykonywania działań po zmianie poziomu powiększenia.
Multimedia
- Narzędzie MediaScanner generuje teraz miniatury wszystkich obrazów po ich wstawieniu do MediaStore.
- Nowy interfejs Thumbnail API do pobierania miniatur zdjęć i filmów na żądanie.
Inna platforma
- Nowe motywy systemowe w stylu android.R.style, które pozwalają łatwo wyświetlać aktywność na bieżącej tapecie systemu lub zachować poprzednią aktywność w tle.
- Nowy interfejs API TapManager zastępuje i rozszerza interfejsy API tapet, które były wcześniej dostępne w kontekście, umożliwiając aplikacjom żądanie i ustawianie tapety systemu.
- Nowe interfejsy API usług ułatwiające aplikacjom prawidłową obsługę cyklu życia usługi, w szczególności w sytuacjach, w których brakuje pamięci, kiedy usługa może zostać zatrzymana.
- Funkcja Service.setForeground() została wycofana i obecnie nie wykonuje żadnej operacji. Zastąpiliśmy go nowym interfejsem API startForeground(), który pomaga (i wymaga) powiązania ciągłego powiadomienia ze stanem na pierwszym planie.
- MotionEvent może teraz przekazywać informacje o jednoczesnym dotyku na urządzeniach, które obsługują tę funkcję. Możesz śledzić maksymalnie 3 wskaźniki jednocześnie.
- Interfejs KeyEvent zawiera nowe interfejsy API do obsługi kluczy, które ułatwiają implementację działania po naciśnięciu i przytrzymaniu, a także nowy mechanizm anulowania naciśnięć klawiszy (w przypadku klawiszy wirtualnych).
- Okno WindowManager.LayoutParams ma nowe stałe, które umożliwiają jego wyświetlenie po uruchomieniu ekranu i wyświetlenie go nawet wtedy, gdy ekran jest zablokowany. Dzięki temu aplikacje takie jak budziki, które mają wybudzać urządzenie, mogą w prostszy sposób wdrożyć takie funkcje jak budzik.
- Nowe interfejsy API intencji, które przesyłają stan dokowania urządzenia i umożliwiają aplikacjom uruchamianie specjalnych działań, gdy urządzenie jest umieszczone na stacji dokującej na biurku lub w samochodzie.
Kluczowe zdarzenia wykonywane po puszczeniu klawisza
Android 2.0 jest przeznaczony do uruchamiania na urządzeniach, które używają wirtualnych przycisków (Strona główna, Menu, Wstecz i Szukaj) zamiast fizycznych. Aby zapewnić użytkownikom jak najlepszą obsługę na tych urządzeniach, platforma Androida wykonuje teraz te przyciski w momentach naciśnięcia i odblokowania, a nie tylko naciśnięcia. Zapobiega to przypadkowym zdarzeniom związanym z przyciskiem i pozwala użytkownikowi nacisnąć obszar przycisku, a następnie go zwolnić bez generowania zdarzenia.
Ta zmiana zachowania powinna mieć wpływ na aplikację tylko wtedy, gdy przechwytuje zdarzenia przycisków i podejmuje działanie po naciśnięciu klawisza, a nie po jego puszczeniu. Zwłaszcza jeśli aplikacja przechwytuje klawisz BACK, należy się upewnić, że aplikacja prawidłowo obsługuje kluczowe zdarzenia.
Ogólnie przechwytywanie naciśnięcia przycisku WSTECZ w aplikacji jest niewskazane. Jeśli jednak Twoja aplikacja to robi i wywołuje jakieś działanie przy naciśnięciu przycisku, a nie puszczeniu go, musisz zmodyfikować kod.
Jeśli Twoja aplikacja będzie wykorzystywała interfejsy API wprowadzone w Androidzie 2.0 (poziom API 5), możesz korzystać z nowych interfejsów API do zarządzania parami kluczy i zdarzeń:
- Jeśli przechwytujesz klawisz BACK w aktywności lub oknie dialogowym, po prostu zastosuj nową metodę
onBackPressed()
. - Jeśli w widoku przechwytujesz klawisz W TYŁ, musisz śledzić zdarzenie naciśnięcia klawisza (za pomocą nowej metody
startTracking()
), a potem wywołać działanie po zwolnieniu klawisza. Oto wzór, którego możesz użyć:
Kotlin
override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean { return when (keyCode) { KeyEvent.KEYCODE_BACK -> { if (event.repeatCount == 0) { event.startTracking() true } else { false } } ... else -> super.onKeyDown(keyCode, event) } } override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean { return when (keyCode) { KeyEvent.KEYCODE_BACK -> { if (event.isTracking && !event.isCanceled) { // *** DO ACTION HERE *** true } else { false } } ... else -> super.onKeyUp(keyCode, event) } }
Java
public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { event.startTracking(); return true; } return super.onKeyDown(keyCode, event); } public boolean onKeyUp(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking() && !event.isCanceled()) { // *** DO ACTION HERE *** return true; } return super.onKeyUp(keyCode, event); }
Jeśli chcesz zaktualizować starsze aplikacje, aby obsługa klawisza BACK działała prawidłowo zarówno na Androidzie 2.0, jak i na starszych wersjach tej platformy, możesz zastosować podobne podejście jak w powyższym przykładzie. Twój kod może wychwycić zdarzenie przycisku docelowego po naciśnięciu klawisza, ustawić flagę śledzenia kluczowego zdarzenia, a potem również wychwycić to zdarzenie po zwolnieniu klawisza, wykonując odpowiednie działanie, jeśli ustawiona jest flaga śledzenia. Zwróć też uwagę na zmiany ostrości i wyczyść śledzenie flaga przy odzyskiwaniu/utracie ostrości.
Raport o różnicach w interfejsie API
Szczegółowe informacje o zmianach w interfejsie API w Androidzie 2.0 (poziom interfejsu API 5) w porównaniu z poprzednią wersją znajdziesz w raporcie o różnicach w interfejsie API.