Poziom API: 9
Dla deweloperów platforma Android 2.3 (GINGERBREAD
) 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.3, pobierz platformę do swojego pakietu SDK za pomocą Menedżera pakietu Android SDK.
Omówienie interfejsu API
Sekcje poniżej zawierają omówienie nowości dla programistów w wersji 2.3, w tym informacje o nowych funkcjach i zmianach wprowadzonych w interfejsie API platformy od poprzedniej wersji.
VoIP oparty na SIP
Platforma zawiera teraz stos protokołów SIP i platformowy interfejs API, który umożliwia programistom tworzenie aplikacji telefonii internetowej. Dzięki interfejsowi API aplikacje mogą oferować funkcje połączeń głosowych bez konieczności zarządzania sesjami, komunikacją czy dźwiękiem na poziomie transportowym. Obsługę tych funkcji zajmuje się w sposób przejrzysty interfejs SIP API oraz usługi platformy.
Interfejs SIP API jest dostępny w pakiecie android.net.sip
. Klasa klucza to SipManager
. Aplikacje tego używają do konfigurowania profili SIP i zarządzania nimi, a następnie inicjowania połączeń głosowych i odbierania połączeń głosowych. Po nawiązaniu połączenia głosowego aplikacje mogą m.in. wyciszyć rozmowy, włączyć tryb głośnika i wysyłać sygnały DTMF. Aplikacje mogą też używać SipManager
do tworzenia ogólnych połączeń SIP.
Podstawowy stos SIP i usługi platformy są dostępne na urządzeniach według uznania producenta i powiązanego operatora. Dlatego przed udostępnieniem funkcji nawiązywania połączeń aplikacje powinny używać metody isApiSupported()
, aby sprawdzić, czy jest dostępna obsługa SIP.
Aby korzystać z interfejsu SIP API, aplikacje muszą prosić użytkownika o pozwolenie, deklarując <uses-permission
android:name="android.permission.INTERNET">
i <uses-permission
android:name="android.permission.USE_SIP">
w plikach manifestu.
Deweloperzy mogą też poprosić o filtrowanie w Google Play, aby ich aplikacje nie były widoczne dla użytkowników, których urządzenia nie zawierają stosu SIP platformy ani usług. Aby poprosić o filtrowanie, dodaj do pliku manifestu aplikacji <uses-feature
android:name="android.software.sip"
android:required="true">
i <uses-feature
android:name="android.software.sip.voip">
.
Więcej informacji znajdziesz w przewodniku dla programistów SIP.
Komunikacja Near Field Communication (NFC)
Android 2.3 obejmuje stos NFC i interfejs API platformy, który umożliwia programistom odczytywanie tagów NDEF wykrywanych, gdy użytkownik dotyka urządzenia z NFC, by otagować elementy w naklejkach, inteligentnych plakatach, a nawet innych urządzeniach.
Platforma udostępnia podstawowe usługi NFC, które współpracują ze sprzętem urządzenia przy wykrywaniu tagów, gdy znajdują się w zasięgu. Po wykryciu tagu platforma powiadamia aplikacje, transmitując intencję i dołączając do niej komunikaty NDEF tagu jako dodatki. Aplikacje mogą tworzyć filtry intencji, aby rozpoznawać i obsługiwać kierowane tagi i wiadomości. Na przykład po otrzymaniu tagu za pomocą intencji aplikacje wyodrębniają wiadomości NDEF, przechowują je, powiadamiają użytkownika lub obsługują je w inny sposób.
Interfejs NFC API jest dostępny w pakiecie android.nfc
. Klasy kluczy to:
NfcAdapter
, który reprezentuje sprzęt NFC urządzenia.NdefMessage
, który reprezentuje wiadomość z danymi NDEF, czyli standardowy format przesyłania danych między urządzeniami i tagami. Aplikacje mogą odbierać te wiadomości z intencjiACTION_TAG_DISCOVERED
.NdefRecord
, dostarczany w elemencieNdefMessage
, który opisuje typ udostępnianych danych i przenosi same dane.
Komunikacja NFC opiera się na technologii bezprzewodowej w sprzęcie urządzenia, dlatego to obsługa funkcji NFC platformy na określonych urządzeniach zależy od jej producenta. Aby ustalić, czy bieżące urządzenie obsługuje komunikację NFC, aplikacje mogą wywołać metodę isEnabled()
, by wysłać zapytanie do systemu NfcAdapter
. Niezależnie od obsługi sprzętowej interfejs NFC jest zawsze dostępny.
Aby korzystać z interfejsu NFC API, aplikacje muszą prosić użytkownika o zgodę, deklarując <uses-permission
android:name="android.permission.NFC">
w plikach manifestu.
Deweloperzy mogą też poprosić o filtrowanie w Google Play, tak aby ich aplikacje nie były widoczne dla użytkowników, których urządzenia nie obsługują NFC. Aby poprosić o filtrowanie, dodaj <uses-feature android:name="android.hardware.nfc"
android:required="true">
do pliku manifestu aplikacji.
Przykładową aplikację, która korzysta z interfejsu API NFC, znajdziesz NFCDemo.
Żyroskop i inne czujniki
Android 2.3 dodaje obsługę platformy i interfejsu API w przypadku kilku nowych typów odczytu czujników: żyroskopu, wektora obrotowego, przyspieszenia liniowego, grawitacji i barometru. Deweloperzy mogą wykorzystać odczyty z czujników do tworzenia aplikacji, które szybko i płynnie reagują na dokładne zmiany położenia urządzenia i ruchu. Interfejs Sensor API zgłasza żyroskop i inne zmiany w czujnikach w zainteresowanych aplikacjach, niezależnie od tego, czy działają one w środowisku aplikacji, czy w kodzie natywnym.
Pamiętaj, że producent urządzenia może mieć różne zestawy czujników sprzętowych dostępnych w danym urządzeniu.
Deweloperzy mogą poprosić o filtrowanie w Google Play, tak aby ich aplikacje nie były widoczne dla użytkowników, których urządzenia nie mają żyroskopu. Aby to zrobić, dodaj <uses-feature
android:name="android.hardware.sensor.gyroscope"
android:required="true">
do pliku manifestu aplikacji.
Szczegółowe informacje o interfejsie API znajdziesz na stronie Sensor
.
Obsługa wielu aparatów
Aplikacje mogą teraz korzystać z dowolnych aparatów dostępnych w urządzeniu do robienia zdjęć lub nagrywania filmów. Dzięki Camera
aplikacje mogą wysyłać zapytania o liczbę dostępnych kamer i ich unikalne cechy.
- Nowa klasa
Camera.CameraInfo
przechowuje parametry położenia kamery (orientację, przód lub tył). - Nowe metody
getNumberOfCameras()
igetCameraInfo()
w klasieCamera
pozwalają aplikacjom wysyłać zapytania o dostępne kamery i otwierać potrzebne kamery. - Nowa metoda
get()
umożliwia aplikacjom pobieranie identyfikatoraCamcorderProfile
określonego dla konkretnego aparatu. - Nowa wersja
getJpegEncodingQualityParameter()
umożliwia aplikacjom uzyskanie poziomu jakości robienia zdjęć z określonego aparatu.
Przykładowy kod dostępu do przedniego aparatu znajdziesz w pliku CameraPreview.java w przykładowej aplikacji ApiDemos.
Interfejs Camera API dodaje też:
- Nowe parametry kamer, w tym odległość ostrzenia, tryb ostrości oraz podgląd maksymalnej/minimalnej liczby klatek na sekundę. Nowe
getFocusDistances()
,getPreviewFpsRange()
igetSupportedPreviewFpsRange()
do pobierania parametrów kamery, a takżesetPreviewFpsRange()
do ustawiania liczby klatek na podglądzie.
Mieszane efekty dźwiękowe
Platforma multimedialna na platformie dodała obsługę nowych efektów dźwiękowych z poszczególnych ścieżek i globalnych efektów dźwiękowych, takich jak wzmocnienie basów, wirtualizacja słuchawek, korekta dźwięku i pogłos.
- Nowy pakiet
android.media.audiofx
zawiera interfejs API umożliwiający dostęp do efektów audio. - Nowa
AudioEffect
to klasa podstawowa do kontrolowania efektów dźwiękowych przez platformę audio Androida. - Nowy identyfikator sesji audio, który pozwala aplikacji powiązać zestaw efektów audio z wystąpieniem
AudioTrack
lubMediaPlayer
. - Nowy konstruktor klasy
AudioTrack
, który umożliwia tworzenie elementówAudioTrack
o określonym identyfikatorze sesji. Nowe metodyattachAuxEffect()
,getAudioSessionId()
isetAuxEffectSendLevel()
. - Nowe metody
attachAuxEffect()
,getAudioSessionId()
,setAudioSessionId(int)
isetAuxEffectSendLevel()
oraz ich typy pomocnicze.
Przykładowy kod efektów dźwiękowych znajdziesz w AudioFxDemo.java w przykładowej aplikacji ApiDemos.
Struktura medialna zawiera też:
- Nowa obsługa tagu wysokości w metadanych EXIF w plikach JPEG. Nowa metoda
getAltitude()
do pobierania wartości tagu wysokości EXIF. - Nowa metoda
setOrientationHint()
umożliwia aplikacji określenie orientacji (MediaRecorder
) podczas nagrywania filmu.
Menedżer pobierania
Platforma ta zawiera nową usługę systemową DownloadManager
, która obsługuje długotrwałe pobieranie plików za pomocą protokołu HTTP. Aplikacje mogą prosić o pobranie
identyfikatora URI do określonego pliku docelowego. DownloadManager
wykona pobieranie w tle, obsługując interakcje HTTP oraz ponawia próby pobrania w przypadku awarii, zmian połączeń i ponownego uruchomienia systemu.
- Aplikacje mogą uzyskać instancję klasy
DownloadManager
, wywołującgetSystemService(String)
i przekazującDOWNLOAD_SERVICE
. Aplikacje, które żądają pobierania za pomocą tego interfejsu API, powinny rejestrować odbiornik transmisjiACTION_NOTIFICATION_CLICKED
, aby prawidłowo obsługiwać kliknięcia trwającego pobierania w powiadomieniu lub w interfejsie pobierania. - Klasa
DownloadManager.Request
pozwala aplikacji udostępnić wszystkie informacje niezbędne do żądania nowego pobrania, takie jak identyfikator URI żądania i miejsce docelowe pobierania. Identyfikator URI żądania jest jedynym wymaganym parametrem. Pamiętaj, że domyślnym miejscem docelowym pobierania jest wolumin współdzielony, z którego system może usunąć plik, jeśli będzie musiał zwolnić miejsce na potrzeby systemu. Aby pobrać pliki w pamięci zewnętrznej, określ miejsce docelowe w pamięci zewnętrznej (patrzsetDestinationUri(Uri)
). - Klasa
DownloadManager.Query
udostępnia metody, które umożliwiają aplikacji odpytywanie i filtrowanie aktywnych pobranych plików.
Tryb rygorystyczny
Aby pomóc deweloperom w monitorowaniu i poprawianiu wydajności aplikacji, platforma ta udostępnia nową funkcję systemową o nazwie StrictMode
.
Gdy implementuje się w aplikacji, StrictMode wychwytuje i powiadamia dewelopera o przypadkowej aktywności dysku lub sieci, która może pogorszyć wydajność aplikacji, na przykład gdy jest ona wykonywana w głównym wątku aplikacji (w którym są odbierane operacje interfejsu i odbywają się również animacje).
Deweloperzy mogą ocenić problemy z wykorzystaniem sieci i dysku zgłoszone w zasadzie StrictMode i w razie potrzeby je skorygować. Pozwoli to zachować większą elastyczność wątku głównego i zapobiegnie wyświetlaniu użytkownikom okien ANR.
StrictMode
jest klasą podstawową i głównym punktem integracji z systemem i maszyną wirtualną. Klasa udostępnia wygodne metody zarządzania zasadami dotyczącymi wątków i maszyn wirtualnych, które mają zastosowanie do instancji.- Reguły
StrictMode.ThreadPolicy
iStrictMode.VmPolicy
zawierają zasady zdefiniowane przez Ciebie i stosowane do instancji maszyn wirtualnych i wątków.
Więcej informacji o używaniu StrictMode do optymalizacji aplikacji znajdziesz w dokumentacji klas i przykładowym kodzie na stronie android.os.StrictMode
.
Platforma UI
- Obsługa nadmiernych przewijania.
- Nowa obsługa dalekiego przewijania w widokach i widżetach. W widokach danych aplikacje mogą włączać i wyłączać nadmierną przewijanie w danym widoku, włączać tryb Overscoll, kontrolować odległość od przewijania oraz obsługiwać wyniki nadmiernego przewijania.
- W Widżetach aplikacje mogą kontrolować parametry sygnalizowania końca przewijania, np. animację, sprężyny i odległość przewijania. Więcej informacji można znaleźć na stronach
android.view.View
iandroid.widget.OverScroller
. ViewConfiguration
udostępnia też metodygetScaledOverflingDistance()
igetScaledOverscrollDistance()
.- Nowe atrybuty
overScrollMode
,overScrollFooter
ioverScrollHeader
dla elementów<ListView>
do kontrolowania zachowania nadmiernych przewijania.
- Obsługa filtrowania dotykowego.
- Nowa obsługa filtrowania dotykowego, która umożliwia aplikacji zwiększenie bezpieczeństwa widoków zapewniających dostęp do poufnych funkcji. Filtrowanie dotykiem pozwala na przykład zapewnić bezpieczeństwo działań użytkownika, takich jak przyznanie uprawnień, dokonanie zakupu czy kliknięcie reklamy. Więcej informacji znajdziesz w wyświetlaniu dokumentacji zajęć.
- Nowy atrybut
filterTouchesWhenObscured
do elementów widoku, który określa, czy mają być filtrowane dotknięcia, gdy okno widoku jest zasłonięte przez inne widoczne okno. Gdy ustawisz"true"
, widok nie będzie otrzymywać dotyk, gdy nad jego oknem pojawi się toast, okno lub inne okno. Więcej informacji znajdziesz w artykule Wyświetlanie dokumentacji zabezpieczeń.
Przykładowy kod do filtrowania dotykowego znajdziesz w pliku SecureView.java w przykładowej aplikacji ApiDemos.
- Ulepszone zarządzanie zdarzeniami:
- Nowa klasa bazowa dla zdarzeń wejściowych:
InputEvent
. Klasa udostępnia metody, które pozwalają aplikacjom określać znaczenie zdarzenia, np. wysyłając zapytanie o urządzenie wejściowe, z którego zainicjowano zdarzenie.KeyEvent
iMotionEvent
są podklasamiInputEvent
. - Nowa klasa bazowa dla urządzeń wejściowych:
InputDevice
. Klasa przechowuje informacje o możliwościach danego urządzenia wejściowego i udostępnia metody, które pozwalają aplikacjom określać sposób interpretowania zdarzeń z tego urządzenia.
- Nowa klasa bazowa dla zdarzeń wejściowych:
- Ulepszone zdarzenia ruchu
- Rozszerzyliśmy interfejs API
MotionEvent
o informacje o identyfikatorze wskaźnika, które pozwalają aplikacjom śledzić poszczególne palce poruszające się w górę i w dół. Klasa dodaje różne metody, które pozwalają aplikacji wydajnie pracować ze zdarzeniami ruchu. - System wprowadzania danych korzysta teraz z logiki generowania zdarzeń ruchu na podstawie nowych informacji o identyfikatorze wskaźnika, syntetyzując identyfikatory w miarę nieużywania wskaźników. System osobno śledzi wiele identyfikatorów wskaźników podczas zdarzenia ruchu i dba o odpowiednią ciągłość wskaźników, oceniając odległość między ostatnim a następnym zestawem wskaźników.
- Rozszerzyliśmy interfejs API
- Elementy sterujące zaznaczaniem tekstu
- Nowa metoda
setComposingRegion
umożliwia aplikacji oznaczenie obszaru tekstu jako tworzonego tekstu z zachowaniem bieżącego stylu. MetodagetSelectedText
zwraca wybrany tekst do aplikacji. Metody są dostępne w językachBaseInputConnection
,InputConnection
iInputConnectionWrapper
. - Nowe atrybuty
textSelectHandle
,textSelectHandleLeft
,textSelectHandleRight
itextSelectHandleWindowStyle
dotyczące elementu<TextView>
do odwoływania się do elementów rysowanych, które będą używane do wyświetlania kotwic wyboru tekstu oraz stylu okna nadrzędnego.
- Nowa metoda
- Zarządzanie aktywnością
ActivityInfo
dodaje nowe stałe do zarządzania Orientacją działania:SCREEN_ORIENTATION_FULL_SENSOR
,SCREEN_ORIENTATION_REVERSE_LANDSCAPE
,SCREEN_ORIENTATION_REVERSE_PORTRAIT
,SCREEN_ORIENTATION_SENSOR_LANDSCAPE
iSCREEN_ORIENTATION_SENSOR_PORTRAIT
.- Nowa stała
IMPORTANCE_PERCEPTIBLE
dla polaimportance
wActivityManager.RunningAppProcessInfo
. Wartość wskazuje, że dany proces wykonuje coś, co jest uważane za łatwo zauważalne dla użytkownika. Przykładem może być aplikacja do odtwarzania muzyki w tle. - Metoda Activity.setPersistent(boolean) do oznaczania aktywności jako trwałej została wycofana, a implementacja nie jest operacją.
- Style tekstów powiadomień i ikon
- Nowe funkcje
TextAppearance.StatusBar.EventContent
,TextAppearance.StatusBar.EventContent.Title
,TextAppearance.StatusBar.Icon
iTextAppearance.StatusBar.Title
do zarządzania stylem powiadomień
- Nowe funkcje
- Dodaje pozostałe metody OpenGL ES 2.0
glDrawElements()
iglVertexAttribPointer()
w klasieandroid.opengl.GLES20
. - Dodano obsługę formatu pikselowego
YV12
(planarnego 4:2:0) YCrCb. - Nowa klasa dostawcy
AlarmClock
do ustawiania alarmu lub obsługi alarmu. Dostawca zawiera intencjęACTION_SET_ALARM
i dodatkowe elementy, których można użyć do uruchomienia działania w celu ustawienia nowego alarmu w aplikacji budzika. Aplikacje, które chcą otrzymywać intencjęSET_ALARM
, powinny utworzyć działanie wymagające uprawnienia SET_ALARM. Aplikacje, które chcą utworzyć nowy alarm, powinny używaćContext.startActivity()
, aby użytkownik mógł wybrać aplikację budzika. MediaStore
obsługuje nowe działanie intencji (PLAY_FROM_SEARCH
), które umożliwia aplikacji wyszukiwanie multimediów z muzyką i automatyczne odtwarzanie treści z wyniku, gdy jest to możliwe. Na przykład aplikacja może uruchomić tę intencję w efekcie polecenia rozpoznawania głosu, by posłuchać muzyki.MediaStore
dodaje też nową flagęMEDIA_IGNORE_FILENAME
, która informuje skanera multimediów, że ma ignorować multimedia w katalogu zawierającym i jego podkatalogach. Deweloperzy mogą dzięki temu uniknąć wyświetlania grafiki w Galerii aplikacji oraz zapobiegać wyświetlaniu w niej dźwięków i muzyki z aplikacji.- Dostawca
Settings
dodaje nowe działania związane z aktywnościąAPPLICATION_DETAILS_SETTINGS
iMANAGE_ALL_APPLICATIONS_SETTINGS
, które umożliwiają aplikacji wyświetlanie ekranu ze szczegółowymi informacjami o konkretnej aplikacji lub ekran Zarządzaj aplikacjami. - Dostawca
ContactsContract
dodaje rodzaj danychContactsContract.CommonDataKinds.SipAddress
do przechowywania adresu SIP (telefonu internetowego) kontaktu. LocationManager
śledzi teraz żądania aplikacji, które skutkują blokadami uśpienia lub Wi-Fi zgodnie z klasą zarządzaną przez systemWorkSource
, która identyfikuje aplikację.LocationManager
śledzi wszystkich klientów żądających okresowych aktualizacji i informuje swoich dostawców o nich jako parametrWorkSource
podczas ustawiania minimalnego czasu aktualizacji. Dostawca lokalizacji sieciowej używaWorkSource
do śledzenia blokad uśpienia i Wi-Fi inicjowanych przez aplikację, a następnie dodaje je do wykorzystania baterii przez aplikację raportowanego w sekcji Zarządzaj aplikacjami.LocationManager
dodaje kilka nowych metod, które pozwalają rejestru aktywności otrzymywać okresowe lub jednorazowe aktualizacje lokalizacji na podstawie określonych kryteriów (patrz poniżej).- Nowa klasa
Criteria
umożliwia aplikacji określenie zestawu kryteriów wyboru dostawcy lokalizacji. Dostawcy mogą być np. porządkowani według dokładności, zużycia energii, możliwości raportowania wysokości, prędkości, kierunku jazdy i kosztów pieniężnych. - W Androidzie 2.3 dodaliśmy nowy
StorageManager
, który obsługuje pliki OBB (Opaque Binary Blob). Chociaż obsługa OBB przez platformę jest dostępna w Androidzie 2.3, narzędzia programistyczne do tworzenia plików OBB i zarządzania nimi będą dostępne dopiero na początku 2011 roku. - Platforma Android 2.3 dodaje oficjalną obsługę urządzeń bez
kart SD (chociaż umożliwia korzystanie z wirtualnej partycji na karcie SD, jeśli nie jest dostępna fizyczna karta SD). Wygodna metoda (
isExternalStorageRemovable()
) pozwala aplikacjom określić, czy dostępna jest fizyczna karta SD. - Nowe stałe wartości deklarowanych funkcji sprzętu i oprogramowania. Listę znajdziesz poniżej w sekcji Stałe nowych funkcji.
PackageInfo
dodaje nowe polafirstInstallTime
ilastUpdateTime
, które przechowują czas instalacji pakietu i ostatniej aktualizacji.- Nowa metoda
getProviderInfo()
do pobierania wszystkich informacji o konkretnej klasie dostawcy treści. - Element
TelephonyManager
dodaje stałąNETWORK_TYPE_EVDO_B
, która określa typ sieci CDMA EVDO Rev B. - Nowa metoda
getPsc()
zwraca podstawowy kod szyfrowania komórki obsługującej w sieci UMTS. NativeActivity
to nowy typ klasy aktywności, którego wywołania zwrotne cyklu życia są zaimplementowane bezpośrednio w kodzie natywnym.NativeActivity
i jego bazowy kod natywny uruchamiają się w systemie tak samo jak inne działania – w szczególności działają w procesie systemu aplikacji na Androida i w głównym wątku interfejsu aplikacji. Otrzymują te same wywołania zwrotne cyklu życia co inne działania.- Nowa klasa
InputQueue
i interfejs wywołania zwrotnego pozwalają natywnemu kodowi zarządzać kolejnością zdarzeń w kolejce. - Nowy interfejs
SurfaceHolder.Callback2
umożliwia kodowi natywnym zarządzanieSurfaceHolder
. - Nowe metody
takeInputQueue
itakeSurface()
w językuWindow
pozwalają kodowi natywnemu zarządzać zdarzeniami i platformami. dalvik.system
usuwa kilka zajęć, które zostały wcześniej wycofane.- Podstawowe biblioteki Dalvik:
- Nowe kolekcje:
ArrayDeque
,NavigableMap
,ConcurrentSkipListMap
,LinkedBlockingDeque
- Nowe narzędzia w:
Arrays
:binarySearch()
,copyOf()
,copyOfRange()
i inne. CookieManager
przezHttpURLConnection
.- Bardziej kompletne interfejsy API sieci:
InterfaceAddress
,NetworkInterface
iIDN
File
elementów sterujących do odczytu i zapisuString.isEmpty()
Normalizer
iNormalizer.Form
- Ulepszono gniazda serwera
javax.net.ssl
.
- Nowe kolekcje:
- Nowy atrybut
xlargeScreens
dla elementu<supports-screens>
, który wskazuje, czy aplikacja obsługuje bardzo duże formaty ekranu. Szczegółowe informacje znajdziesz w artykule Obsługa wielu ekranów. - Nowe wartości atrybutu
android:screenOrientation
elementu<activity>
:"reverseLandscape"
– funkcja chce, aby ekran był w orientacji poziomej i w przeciwnym kierunku niż normalnie."reversePortrait"
– działanie chce, aby ekran miał orientację pionową i był on obrócony w przeciwnym kierunku niż normalna pionowa."sensorLandscape"
– działanie chce mieć ekran w orientacji poziomej, ale może użyć czujnika do zmiany kierunku ekranu."sensorPortrait"
– działanie chce mieć ekran w orientacji pionowej, ale może użyć czujnika do zmiany kierunku ekranu."fullSensor"
– orientacja jest określana na podstawie fizycznego czujnika orientacji. Ekran będzie się obracać w zależności od tego, jak użytkownik się porusza. Możesz wybrać jeden z 4 możliwych obrotów, niezależnie od tego, co normalnie robi urządzenie (np. niektóre urządzenia zwykle nie obracają o 180 stopni).
com.android.permission.SET_ALARM
– pozwala aplikacji na transmisję intencji w celu ustawienia alarmu dla użytkownika. Działanie, które obsługuje działanie intencjiSET_ALARM
, powinno wymagać tego uprawnienia.android.permission.USE_SIP
– pozwala aplikacji używać interfejsuSIP API
do wykonywania i odbierania połączeń przez internet.android.permission.NFC
– umożliwia aplikacji korzystanie z interfejsuNFC API
do odczytywania tagów NFC.android.hardware.audio.low_latency
– aplikacja wykorzystuje na urządzeniu potok audio o małym czasie oczekiwania i jest wrażliwy na opóźnienia oraz opóźnienia wejścia i wyjścia dźwięku.android.hardware.camera.front
– aplikacja używa przedniego aparatu.android.hardware.nfc
– aplikacja używa funkcji komunikacji NFC w urządzeniu;android.hardware.sensor.barometer
– aplikacja używa barometru urządzenia.android.hardware.sensor.gyroscope
– aplikacja używa żyroskopu urządzenia.android.software.sip
– Aplikacja używa interfejsu SIP API na urządzeniu.android.software.sip.voip
– aplikacja korzysta na urządzeniu z usługi VoIP opartej na SIP.android.hardware.touchscreen.multitouch.jazzhand
– aplikacja wykorzystuje zaawansowane funkcje wielopunktowego dotyku na ekranie urządzenia, aby w pełni niezależnie śledzić 5 punktów.
Bardzo duże ekrany
Platforma obsługuje teraz ekrany o bardzo dużych rozmiarach, np. w tabletach. Deweloperzy mogą wskazać, że ich aplikacje są dostosowane do obsługi bardzo dużych ekranów, dodając element <supports
screens ... android:xlargeScreens="true">
do plików manifestu. Aplikacje mogą korzystać z nowego kwalifikatora zasobów (xlarge
) do tagowania zasobów przeznaczonych na bardzo duże ekrany. Informacje o obsłudze bardzo dużych i innych rozmiarów ekranu znajdziesz w artykule Obsługa wielu ekranów.
Grafika
Dostawcy treści
Lokalizacja
Miejsce na dane
Menedżer pakietów
Telefonia
Dostęp natywny do cyklu życia aktywności, okien
Android 2.3 udostępnia szeroki zestaw interfejsów API aplikacjom korzystającym z kodu natywnego. Do klas platform, które są odpowiednie dla takich aplikacji, należą:
Pełne informacje o pracy z kodem natywnym i pobieraniu pakietu NDK znajdziesz na stronie Android NDK.
Środowisko wykonawcze Dalvik
Nowe elementy i atrybuty pliku manifestu
Nowe uprawnienia
Stałe nowych funkcji
Platforma dodaje kilka nowych funkcji sprzętowych, które deweloperzy mogą zadeklarować w plikach manifestu jako wymagane przez aplikacje. Dzięki temu deweloperzy mogą kontrolować sposób filtrowania aplikacji po opublikowaniu w Google Play.
Pełne informacje o deklarowaniu funkcji i używaniu ich do filtrowania znajdziesz w dokumentacji <uses-feature>
.
Raport Różnice w interfejsach API
Szczegółowe informacje o wszystkich zmianach w interfejsach API w Androidzie 2.3 (poziom 9 interfejsu API) znajdziesz w raporcie Różnice w interfejsach API.
Poziom API
Platforma Android 2.3 udostępnia zaktualizowaną wersję interfejsu API platformy. Do interfejsu API Androida 2.3 jest przypisany identyfikator w postaci liczby całkowitej (9), 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 aplikacji z interfejsów API wprowadzonych w Androidzie 2.3, należy skompilować ją z biblioteką Androida dostępną na platformie SDK Androida 2.3. W zależności od potrzeb może być też konieczne dodanie atrybutu android:minSdkVersion="9"
do elementu <uses-sdk>
w pliku manifestu aplikacji. Jeśli Twoja aplikacja jest przeznaczona do działania wyłącznie na Androidzie 2.3 lub nowszym, zadeklarowanie tego atrybutu uniemożliwia jej zainstalowanie we wcześniejszych wersjach platformy.
Więcej informacji znajdziesz w artykule Co to jest poziom interfejsu API.