Interfejsy API Androida 2.2

Poziom API: 8

Android 2.2 to drobne wersje platformy obejmujące funkcje dla użytkowników i programistów, zmiany w interfejsie API i poprawki błędów. Informacje o funkcjach dla programistów i zmianach w interfejsie API znajdziesz w sekcji Framework API.

Dla programistów platforma Android 2.2 jest dostępna jako komponent pakietu Android SDK, który można pobrać. Platforma do pobrania zawiera bibliotekę Androida i obraz systemu, a także zestaw skórek emulatorów. Aby rozpocząć tworzenie i testowanie pod kątem Androida 2.2, pobierz platformę do swojego pakietu SDK za pomocą Menedżera pakietu Android SDK.

Najważniejsze funkcje platformy

Listę nowych funkcji dla użytkowników i najważniejszych informacji o platformie znajdziesz w dokumencie Android 2.2 Platform Applications (Najważniejsze funkcje Androida 2.2).

Poziom API

Platforma Android 2.2 udostępnia zaktualizowaną wersję interfejsu API platformy. Do interfejsu API Androida 2.2 jest przypisany identyfikator w postaci liczby całkowitej (8), który jest przechowywany w samym systemie. Ten identyfikator, nazywany „poziomem interfejsu API”, pozwala systemowi przed jej zainstalowaniem prawidłowo określić, czy aplikacja jest z nim zgodna.

Aby korzystać w swojej aplikacji z interfejsów API wprowadzonych w Androidzie 2.2, musisz ustawić odpowiednią wartość „8” w atrybutach android:minSdkVersion elementu <uses-sdk> w pliku manifestu aplikacji.

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

Zmiany interfejsu Framework API

W sekcjach poniżej znajdziesz informacje o zmianach wprowadzonych do interfejsu API platformy aplikacji udostępnianego przez platformę Android 2.2.

Instalacja aplikacji na nośniku zewnętrznym

Platforma Androida umożliwia teraz aplikacjom żądanie instalacji na zewnętrznym nośniku pamięci (np. na karcie SD) zamiast instalacji w pamięci wewnętrznej urządzenia.

Programiści aplikacji mogą określić preferowaną lokalizację instalacji swoich aplikacji za pomocą nowego atrybutu <manifest> w pliku manifestu android:installLocation. Ten atrybut obsługuje 3 wartości: "internalOnly", "preferExternal" i "auto". Podczas instalacji system sprawdza wartość android:installLocation i w miarę możliwości instaluje aplikację .apk zgodnie z preferowaną lokalizacją. Jeśli aplikacja zażądała instalacji zewnętrznej, system instaluje ją na prywatnej, zaszyfrowanej partycji na zewnętrznym nośniku. Po zainstalowaniu pliku APK na zewnątrz system pozwala użytkownikowi zmienić lokalizację zapisu pliku APK i w razie potrzeby przenieść go do pamięci wewnętrznej urządzenia (i odwrotnie) w sekcji Zarządzaj aplikacjami w ustawieniach użytkownika.

Domyślnie system instaluje w pamięci wewnętrznej urządzenia wszystkie aplikacje z wyjątkiem tych, które wyraźnie zażądają instalacji zewnętrznej. Oznacza to, że system zawsze będzie instalować w pamięci wewnętrznej starsze aplikacje, ponieważ nie mają one dostępu do atrybutu android:installLocation. W razie potrzeby można jednak skonfigurować i skompilować starszą aplikację w taki sposób, aby została zainstalowana wewnętrznie na starszych wersjach platformy i poza nią na platformach Androida 2.2 i nowszych.

Pamiętaj, że prośba o instalację na zewnętrznym nośniku urządzenia nie jest odpowiednia dla wszystkich aplikacji, zwłaszcza że taki nośnik można odłączyć, a jego odłączenie lub ponowne podłączenie może zakłócić działanie użytkownika i ustawienia systemu.

Więcej informacji o ustawianiu preferowanej lokalizacji instalacji, w tym omówienie typów aplikacji, które powinny, a których nie powinny żądać zewnętrznej instalacji, znajdziesz w dokumencie Lokalizacja instalacji aplikacji.

Tworzenie kopii zapasowych danych

Platforma udostępnia obecnie ogólną usługę tworzenia kopii zapasowych, której aplikacje mogą używać do tworzenia kopii zapasowych i przywracania danych użytkowników. Dzięki temu użytkownicy mogą zachować swoje dane podczas zmiany urządzenia lub ponownego instalowania aplikacji. Menedżer kopii zapasowych zajmuje się przenoszeniem danych aplikacji do i z miejsca na kopie zapasowe w chmurze. Menedżer kopii zapasowych może przechowywać dane dowolnego typu, od dowolnych danych po pliki, oraz łatwo zarządzać operacjami tworzenia i przywracania kopii zapasowych. Więcej informacji znajdziesz w artykule Tworzenie kopii zapasowych danych.

Grafika

Multimedia

Rozpoznawanie mowy i mechanizmy rozpoznawania innych firm

  • Platforma udostępnia nowe interfejsy API do rozpoznawania mowy, które pozwalają aplikacjom na lepsze interakcje z dostępnym modułem rozpoznawania mowy. Na przykład interfejsy API wystarczą do głębszej integracji rozpoznawania głosu z edytorem IME.
  • Platforma udostępnia też klasę bazową RecognitionService, która umożliwia deweloperom zewnętrznym tworzenie silników rozpoznawania wtyczek.
  • Nowy interfejs RecognitionListener do otrzymywania wywołań zwrotnych.
  • Nowe dodatki w usłudze RecognizerIntent, które umożliwiają aplikacji zgłaszającej określanie szczegółów takich jak preferowany język, minimalna długość w milisekundach itp.

Aparat i kamera

  • Zmiany w interfejsie API podglądu aparatu mające na celu zwiększenie wydajności potoku podglądu.
  • Nowa orientacja wyświetlacza aparatu (teraz może działać w orientacji pionowej).
  • Nowe interfejsy API do zarządzania poziomem powiększenia w android.hardware.Camera.
  • Nowe interfejsy API android.hardware.Camera.Parameters do wysyłania zapytań i konfigurowania ustawień aparatu urządzenia, takich jak ogniskowa, ekspozycja, poziom powiększenia czy kąt patrzenia.
  • Nowe narzędzie thumbnail do dodawania miniatur filmów i obrazów.
  • Nowe klasy CamcorderProfile i CamcorderProfile umożliwiają aplikacjom określanie możliwości sprzętowych aparatów.
  • Nowa obsługa pobierania danych GPS i ogniskowej w android.media.ExifInterface w języku angielskim.

Menedżer zasad dotyczących urządzeń

Nowe interfejsy API do zarządzania zasadami dotyczącymi urządzeń umożliwiają programistom pisanie aplikacji „administratorów urządzenia”, które mogą kontrolować funkcje zabezpieczeń urządzenia, na przykład minimalną siłę hasła czy czyszczenie danych. Użytkownicy mogą wybrać administratorów, którzy mają dostęp do swoich urządzeń. Więcej informacji znajdziesz w klasach android.app.admin lub w przykładowym kodzie aplikacji w pliku DeviceAdminSample.java.

Platforma UI

  • Nowe tryby interfejsu – „tryb samochodowy” i „nocny” oraz UiModeManager umożliwiają aplikacjom dostosowywanie interfejsu aplikacji do określonych trybów użytkownika.
  • Nowy element ScaleGestureDetector, który umożliwia widokom wykrywanie i obsługę gestów przekształcania obejmujących więcej niż 1 wskaźnik (wielodotyk) za pomocą dostarczonych zdarzeń MotionEvents.
  • Ulepszenia raportowania zdarzeń obejmujących wiele interakcji w obiektach MotionEvent.
  • Nazwa atrybutu układu fill_parent została zmieniona na match_parent. Dotyczy to zarówno kodu XML, jak i Javy (patrz ViewGroup.LayoutParams). Pamiętaj, że platforma nadal będzie obsługiwać użycie fill_parent w starszych aplikacjach.
  • Nowe atrybuty układu tabStripEnabled, tabStripRight i tabStripLeft umożliwiają programistom dostosowywanie dolnego paska elementów TabWidgets.
  • Lepsza obsługa zarządzanych okien w sekcji Aktywność.

Konta i synchronizacja

  • Nowa metoda AddPeriodicSync() umożliwia zaplanowanie okresowej synchronizacji z określonym kontem, urzędem i dodatkowymi uprawnieniami z podaną częstotliwością.

Nowe elementy i atrybuty pliku manifestu

  • Aby określić preferowaną lokalizację instalacji aplikacji (patrz powyższa sekcja Instalacja aplikacji na zewnętrznym nośniku pamięci):
    • Nowy atrybut android:installLocation elementu <manifest>. Określa domyślną lokalizację instalacji zdefiniowaną przez aplikację.
  • Aby zarządzać kopią zapasową danych użytkowników (więcej informacji znajdziesz w sekcji Menedżer kopii zapasowych powyżej):
    • Nowy atrybut android:backupAgent elementu <application>. Określa nazwę komponentu podklasy komponentu BackupAgent udostępnianej przez aplikację do obsługi operacji tworzenia/przywracania kopii zapasowej (jeśli ma to miejsce).
    • Nowy atrybut android:restoreAnyVersion elementu <application>. Wartość logiczna wskazująca, czy aplikacja jest przygotowana do podjęcia próby przywrócenia zbioru danych z kopii zapasowej, nawet jeśli kopia zapasowa pochodzi z nowszej wersji aplikacji niż jest obecnie zainstalowana na urządzeniu.
  • Do zarządzania kompilatorem JIT na platformie:
    • Nowy atrybut android:vmSafeMode elementu <application>. Wartość logiczna określająca, czy podczas uruchamiania aplikacji mają być wyłączone optymalizacje kompilatora JIT.

Uprawnienia

  • android.permission.BIND_DEVICE_ADMIN – każdy odbiornik transmisji używany przez administratora urządzenia musi wymagać tego uprawnienia, aby mieć pewność, że tylko system może z nich korzystać.
  • android.permission.KILL_BACKGROUND_PROCESSES – umożliwia aplikacji wywoływanie funkcji killBackgroundProcesses(String).
  • android.permission.BIND_WALLPAPER – każdy element WallpaperService musi wymagać tego uprawnienia, aby zapewnić, że tylko system może z nich korzystać.
  • android.permission.SET_TIME – umożliwia aplikacji ustawienie czasu systemowego.

Raport Różnice w interfejsach API

Szczegółowe informacje o wszystkich zmianach w interfejsach API w Androidzie 2.2 (poziom 8 interfejsu API) znajdziesz w raporcie Różnice w interfejsach API.