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
- Nowe interfejsy API OpenGL ES 2.0 w:
android.opengl.GLES20
. - Nowe klasy
ETC1
,ETC1Util
iETC1Util.ETC1Texture
oraz metody narzędziowe do wykorzystania ETC1 do kompresji tekstur. - Nowe zajęcia w:
ImageFormat
. - Nowy
YUV image format API
umożliwia kompresję z YUV do JPEG oraz manipulowanie danymi YUV.
Multimedia
- Nowe interfejsy API w
android.media.AudioManager
do zarządzania koncentracją na dźwięku, kontroli transportu, chwilowej utraty uwagi i wyciszania dźwięku. - Nowa intencja przesyłania dźwięku do SCO –
ACTION_SCO_AUDIO_STATE_CHANGED
z dodatkowymi elementami wskazującymi nowy stan. - Nowe interfejsy API w
SoundPool
wykrywające zakończenie wczytywania dźwięku. - Nowe interfejsy API w
SoundPool
do automatycznego wstrzymywania i wznawiania. - Nowe interfejsy API w
MediaRecorder
do określania ustawień audio dla liczby kanałów, kodowania i częstotliwości próbkowania oraz częstotliwości próbkowania. - Nowe interfejsy API do dodawania plików do bazy danych multimediów, tak aby były automatycznie skanowane. Zobacz
MediaScannerConnection.scanFile
iMediaScannerConnection.OnScanCompletedListener
.
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
iCamcorderProfile
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 namatch_parent
. Dotyczy to zarówno kodu XML, jak i Javy (patrzViewGroup.LayoutParams
). Pamiętaj, że platforma nadal będzie obsługiwać użyciefill_parent
w starszych aplikacjach. - Nowe atrybuty układu
tabStripEnabled
,tabStripRight
itabStripLeft
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ę.
- Nowy atrybut
- 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.
- Nowy atrybut
- 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.
- Nowy atrybut
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 funkcjikillBackgroundProcesses(String)
.android.permission.BIND_WALLPAPER
– każdy elementWallpaperService
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.