Android 2.0, wersja 1

Poziom API: 5

Android 2.0 to wersja na dużą platformę i będzie można ją wdrożyć w telefonach z Androidem od listopada 2009 r. Wersja zawiera nowe funkcje dla użytkowników i deweloperów, a także zmiany w interfejsie Android Framework API.

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. Platforma do pobrania jest w pełni jest zgodny i nie zawiera bibliotek zewnętrznych.

Aby rozpocząć tworzenie i testowanie aplikacji na Androida 2.0, użyj pakietu Android SDK i narzędzia AVD Manager, aby pobrać platformę do pakietu SDK.

Najważniejsze informacje o platformie

Listę nowych funkcji dla użytkowników oraz informacje o platformie znajdziesz w artykule Android 2.0 Informacje o platformie.

Wbudowane aplikacje

Obraz systemu dołączony do platformy do pobrania zawiera te elementy: wbudowane aplikacje:

  • Budzik
  • Przeglądarka
  • Kalkulator
  • Kamera
  • Aparat
  • Kontakty
  • Język niestandardowy (aplikacja dla programistów)
  • Narzędzia dla programistów (aplikacja dla programistów)
  • Dialer
  • Wysyłając e-mailem
  • Galeria
  • Kreator gestów
  • IME do wprowadzania tekstu w języku japońskim
  • Wiadomości
  • Muzyka
  • Ustawienia
  • Części zamienne (aplikacja dla programistów)

Języki

Obraz systemu dołączony do platformy do pobrania zawiera różne z wbudowanymi ustawieniami regionalnymi. 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).

  • chiński, Chiny (zh_CN)
  • chiński, Tajwan (zh_TW)
  • czeski (cs_CZ)
  • holenderski, Holandia (nl_NL)
  • holenderski, Belgia (nl_BE)
  • angielski, Stany Zjednoczone (en_US)
  • angielski, Wielka Brytania (en_GB)
  • angielski, Kanada (en_CA)
  • angielski, Australia (en_AU)
  • angielski, Nowa Zelandia (en_NZ)
  • angielski, Singapur (en_SG)
  • francuski, Francja (fr_FR)
  • francuski, Belgia (fr_BE)
  • francuski, Kanada (fr_CA)
  • francuski, Szwajcaria (fr_CH)
  • niemiecki, Niemcy (de_DE)
  • niemiecki, Austria (de_AT)
  • niemiecki, Szwajcaria (de_CH)
  • niemiecki, Liechtenstein (de_LI)
  • włoski, Włochy (it_IT)
  • włoski, Szwajcaria (it_CH)
  • japoński (ja_JP)
  • koreański (ko_KR)
  • polski (pl_PL)
  • rosyjski (ru_RU)
  • hiszpański (es_ES)
  • Zlokalizowane ciągi tekstowe w interfejsie pasują do dostępnych języków w Ustawieniach.

    Skórki emulatora

    Platforma do pobrania zawiera zestaw skórek emulatora, których możesz używać do modelowania aplikacji w różnych rozmiarach i rozdzielczościach ekranu. Skórki emulatora to:

    • 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ść, zwykły ekran)
    • HVGA (320 x 480, średnia gęstość, zwykły ekran)
    • WVGA800 (480 x 800, wysoka gęstość, zwykły ekran)
    • WVGA854 (480 x 854, wysoka gęstość, zwykły ekran)

    Więcej informacji o tworzeniu aplikacji, która będzie prawidłowo wyświetlać się i działać 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.

    Zwalczanie mrówek

    • Podpisywanie aplikacji w trybie debugowania i wersji. Podpisywanie w trybie wersji obejmuje zintegrowaną obsługę optymalizacji zipalign. Więcej informacji znajdziesz w artykule Podpisywanie aplikacji.
    • Dodaje nowy system kompilacji Ant, który obsługuje projekty instrumentacji 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 zapewnia zaktualizowaną wersję platformy. API. Podobnie jak w poprzednich wersjach, Android 2.0 API jest przydzielony identyfikator w postaci liczby całkowitej – 5 – który jest zapisanych 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 korzystać w aplikacji z interfejsów API wprowadzonych w Androidzie 2.0, musisz ustawić odpowiednią wartość „5” w atrybutach funkcji <uses-sdk> w pliku manifestu aplikacji.

    Więcej informacji o korzystaniu z poziomu interfejsu API znajdziesz w dokumencie Poziomy interfejsu API.

    Podsumowanie zmian w interfejsie API

    Bluetooth

    • Włącz/wyłącz Bluetooth
    • Wykrywanie urządzeń i usług
    • Łączenie się z urządzeniem zdalnym za pomocą RFCOMM i wysyłanie/odbieranie danych
    • Reklamuj usługi RFCOMM i nasłuchuj przychodzących połączeń RFCOMM

    Adaptery synchronizacji

    • Nowe interfejsy API dla adapterów synchronizacji umożliwiające łączenie się z dowolnym backendem

    Menedżer konta

    • Scentralizowany interfejs API menedżera konta umożliwiający bezpieczne przechowywanie tokenów uwierzytelniania i haseł oraz uzyskiwanie do nich dostępu

    Kontakty

    • nowe interfejsy API kontaktów, które umożliwiają zbieranie 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

    • Wycofane klasy: UrlInterceptHandler, Plugin, PluginData, PluginList, UrlInterceptRegistry.

    Aparat

    • Nowe parametry efektów kolorów, trybu sceny, trybu lampy błyskowej, trybu ostrości, balansu bieli, obrotu i innych ustawień.
    • Nowy interfejs ZoomCallback do wykonywania działań po zmianie poziomu powiększenia.

    Multimedia

    • MediaScanner generuje teraz miniatury wszystkich obrazów wstawionych do MediaStore.
    • Nowy interfejs API Miniatura do pobierania miniatur obrazów i filmów na żądanie.

    Inne platformy

    • 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 raportować informacje o jednoczesnym dotknięciu urządzeń, które go obsługują. Jednocześnie można śledzić maksymalnie 3 wskaźniki.
    • KeyEvent ma nowe interfejsy API wysyłania kluczy, które ułatwiają wdrożenie działania po naciśnięciu i przytrzymaniu. Dostępny jest też nowy mechanizm anulowania naciśnięć klawiszy (w przypadku klawiszy wirtualnych).
    • WindowManager.LayoutParams ma nowe stałe, które pozwalają okno wybudzić ekran po jego wyświetleniu i pokazać je 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 przekazują stan dokowania urządzenia i umożliwiają aplikacjom uruchamianie specjalnych działań, gdy urządzenie zostanie umieszczone w stacji dokującej na komputerze lub w samochodzie.

    Kluczowe zdarzenia wykonywane po naciśnięciu klawisza

    Android 2.0 został zaprojektowany z myślą o urządzeniach korzystających z klawiszy wirtualnych MENU, WSTECZ i WYSZUKIWANIE, a nie klawisze fizyczne. Wspieranie najlepszych użytkowników na tych urządzeniach, platforma Android uruchamia te przyciski na do uruchamiania kombinacji klawiszy. Dzięki temu zapobiegamy przypadkowych zdarzeń przycisków. Użytkownik może nacisnąć obszar przycisku i przeciągnąć z nich bez generowania zdarzenia.

    Ta zmiana działania powinna mieć wpływ na Twoją aplikację tylko wtedy, gdy jest przechwytywania zdarzeń przycisków i podejmowania działań związanych z kluczykiem, a nie na naciśnięcia klawiszy. Zwłaszcza jeśli aplikacja przechwytuje klawisz BACK, należy się upewnić, że aplikacja prawidłowo obsługuje kluczowe zdarzenia.

    Przechwytywanie klucza BACK w aplikacji nie jest zalecane, ale jeśli Twoja aplikacja to robi i wywołuje działanie na naciśnięcie klawiszy, a nie naciśnięcie klawiszy, zmodyfikuj 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, po prostu zaimplementuj nową metodę onBackPressed().
    • Jeśli przechwytujesz klawisz BACK w widoku, należy śledzić klawisz zdarzenia polegającego na ograniczeniu klucza (za pomocą nowej funkcji startTracking() ), a potem wywołaj działanie przy naciśnięciu klawisza up. Możesz użyć tego wzoru:
    • 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ć starszą aplikację, tak aby obsługiwała ona interfejs WSTECZ działa prawidłowo zarówno w Androidzie 2.0, jak i starszych wersjach platformy, może zastosować podejście podobne do przedstawionego powyżej. Twój kod może wychwytywać ustawić flagę do śledzenia kluczowego zdarzenia oraz ustawić flagę do śledzenia kluczowego zdarzenia a potem rejestruje zdarzenie na kluczu i wykonując oczekiwane działanie, flaga jest ustawiona. Zwróć też uwagę na zmiany ostrości i wyczyść śledzenie flaga przy odzyskiwaniu/utracie ostrości.

    Raport o różnicach w interfejsie API

    Szczegółowy widok zmian interfejsu API w Androidzie 2.0 (poziom API 5) w porównaniu z poprzedniej wersji znajdziesz w raporcie o różnicach w interfejsie API.