Informacje o wersji Androida 1.1

Data: luty 2009 r.
Poziom interfejsu API: 2

Ten dokument zawiera informacje o wersji obrazu systemu Android 1.1 zawartego w pakiecie SDK.

Przegląd

Obraz systemu Android 1.1 dostarczony w pakiecie SDK jest rozwinięciem programu produkcyjnego obrazu systemu Android 1.1, który od lutego 2009 r. można wdrożyć w telefonach z Androidem.

Obraz systemu Android 1.1 zawiera zaktualizowaną wersję interfejsu API platformy. Tak jak w przypadku interfejsu API Androida 1.0, interfejsowi API Androida 1.1 jest przypisany identyfikator całkowita (2), 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.

Aplikacje wskazują najniższy poziom interfejsu API systemu, z którym są zgodne, dodając wartość do atrybutu android:minSdkVersion. Wartość tego atrybutu jest liczbą całkowitą odpowiadającą identyfikatorowi poziomu interfejsu API. Przed zainstalowaniem aplikacji system sprawdza wartość android:minSdkVersion i umożliwia instalację tylko wtedy, gdy wymieniona liczba całkowita jest mniejsza od liczby całkowitej poziomu interfejsu API zapisanej w systemie lub jej równa.

Jeśli używasz obrazu systemu Android 1.1 do tworzenia aplikacji zgodnej z urządzeniami z Androidem i z platformą Android 1.1, musisz ustawić w atrybucie android:minSdkVersion wartość „2”, by określić, że aplikacja jest zgodna tylko z urządzeniami z obrazem systemu Android 1.1 (lub nowszym).

W szczególności musisz podać atrybut android:minSdkVersion w elemencie <uses-sdk> jako element podrzędny elementu <manifest> w pliku manifestu. Po ustawieniu atrybut wygląda tak:

<manifest>
  ...
  <uses-sdk android:minSdkVersion="2" />
  ...
</manifest>

Dzięki temu ustawieniu android:minSdkVersion będziesz mieć pewność, że użytkownicy będą mogli zainstalować Twoją aplikację tylko na urządzeniach z systemem Android 1.1. To z kolei gwarantuje, że aplikacja będzie działać prawidłowo na urządzeniach, zwłaszcza jeśli korzysta z interfejsów API wprowadzonych w Androidzie 1.1.

Jeśli Twoja aplikacja korzysta z interfejsów API wprowadzonych w Androidzie 1.1, ale nie deklaruje <uses-sdk android:minSdkVersion="2" />, będzie działać prawidłowo na urządzeniach z Androidem 1.1, ale nie na urządzeniach z Androidem 1.0. W drugim przypadku aplikacja ulega awarii w czasie działania, gdy spróbuje użyć interfejsów API Androida 1.1.

Jeśli Twoja aplikacja nie korzysta z żadnych nowych interfejsów API wprowadzonych w Androidzie 1.1, możesz wskazać zgodność z tym systemem, usuwając atrybut android:minSdkVersion lub ustawiając atrybut na „1”. Przed opublikowaniem aplikacji musisz jednak skompilować ją do obrazu systemu Android 1.0 (dostępnego w pakiecie SDK do Androida 1.0), by mieć pewność, że będzie dobrze działać na urządzeniach z Androidem 1.0. Należy przetestować aplikację pod kątem obrazów systemu odpowiadających poziomom interfejsów API, z którymi aplikacja ma być zgodna.

Jeśli masz pewność, że Twoja aplikacja nie korzysta z interfejsów API Androida 1.1 i nie musi ich używać, być może łatwiej będzie Ci dalej pracować z pakietem SDK Androida 1.0, zamiast przeprowadzać migrację do Android 1.1 SDK i wykonywać dodatkowe testy.

Biblioteki zewnętrzne

Obraz systemu zawiera te biblioteki zewnętrzne, do których możesz uzyskać dostęp z poziomu aplikacji, dodając tag <uses-library>.

  • com.google.android.maps umożliwia aplikacji dostęp do danych Map Google. Pamiętaj, że do korzystania z danych Map Google wymagany jest klucz interfejsu API Map Google.

Zgodność urządzeń

Obraz systemu Android 1.1 został przetestowany pod kątem zgodności z wymienionymi poniżej urządzeniami z Androidem:

  • T-Mobile G1

Wbudowane aplikacje

Obraz systemu zawiera te wbudowane aplikacje:

  • Budzik
  • Prezentacje interfejsów API
  • Przeglądarka
  • Kalkulator
  • Aparat
  • Kontakty
  • Narzędzia dla programistów
  • Dialer
  • E-mail
  • Mapy (i Street View)
  • Wiadomości
  • Muzyka
  • Zdjęcia
  • Ustawienia

Lokalizacja UI

Obraz systemu zawiera zlokalizowane w interfejsie ciągi znaków dla języków wymienionych poniżej.

  • angielski, Stany Zjednoczone (en_US)
  • German (de)

Zlokalizowane ciągi interfejsu odpowiadają lokalizacjom, które wyświetlają się w emulatorze i są dostępne w aplikacji Ustawienia na urządzeniu.

Rozwiązane problemy

  • Alert budzika odtwarza dźwięk i obrazy bezpośrednio, a nie przez usługę AlarmManager. Alert AlarmClock rozpoczyna odtwarzanie dźwięku/obrazu w odbiorniku intencji, a nie w momencie rozpoczęcia aktywności. Te zmiany powinny zapobiegać blokowaniu alarmów przez okna modalne.
  • Poprawki związane z uśpieniem urządzenia.
  • Jedno kliknięcie nie otwiera już klawiatury podczas połączenia. Użytkownicy muszą ją teraz kliknąć i przeciągnąć.
  • Usunięto błąd, który powodował blokowanie połączenia IMAP (z serwerem Gmaila) do około 1 na 25 wiadomości wychodzących do folderu Wysłane.
  • Usuwa wpisy automatycznej konfiguracji konta, które są uszkodzone lub nie nadaje się do sprawdzenia. W pozostałych wpisach wprowadza niewielkie poprawki. Poprawiono okna z ostrzeżeniami używane w kilku szczególnych przypadkach.
  • Zmienia domyślny interwał sprawdzania poczty na co 15 minut (zamiast domyślnego ustawienia „nigdy”).
  • Poprawia błędy związane z cytowaniem haseł w protokole IMAP, aby użytkownicy mogli umieszczać w hasłach znaki specjalne (np. spacje).
  • Poprawia różne błędy automatycznej i ręcznej konfiguracji konta.
  • Ulepsza raportowanie różnych błędów połączenia, ułatwiając użytkownikowi diagnozowanie nieudanych konfiguracji kont.
  • Rozwiązano problem z powiadomieniami o nowej poczcie na kontach POP3.
  • Zapewnia prawidłową, automatyczną kontrolę kont oznaczonych jako „Nigdy nie sprawdzaj”.
  • Teraz wyświetla datę i godzinę zgodnie z ustawieniami użytkownika (np.24 godz. vs. AM/PM).
  • Teraz w widoku wiadomości widać DW:
  • Poprawia odzyskiwanie po niepowodzeniu połączenia POP3.
  • Reguły parsera POP3 zostały rozluźnione, aby aplikacja mogła działać z niezgodnymi serwerami poczty e-mail.

Nowe funkcje

  • Mapy: dodaje szczegóły i opinie, gdy użytkownik przeprowadza wyszukiwanie w Mapach Google i klika na firmę, aby wyświetlić dotyczące jej szczegóły.
  • Telefon: domyślny limit czasu wygaszania ekranu połączenia przychodzącego w przypadku korzystania z głośnika jest teraz dłuższy.
  • Telefon: dodaje opcję „Pokaż klawiaturę” i „Ukryj klawiaturę” do menu połączenia, by ułatwić znalezienie klawiatury DTMF.
  • Dodano obsługę zapisywania załączników z wiadomości MMS
  • Dodano obsługę markiz w układach.

Zmiany interfejsu API

Przegląd

  • Dodaje adnotacje na potrzeby systemów testowych, bez rzeczywistych (nietestowych) zmian w interfejsie API.
  • Dodaje metodę, która umożliwia procesowi łatwego określenia jego identyfikatora UID.
  • Dodano obsługę markiz w układach.
  • Dodaje nowe metody określania dopełnienia w widokach. Ta opcja jest przydatna, gdy tworzysz własne podklasy View.
  • Dodaje nowe uprawnienia, które pozwalają aplikacji na nadawanie SMS-ów lub wiadomości WAP Push.
  • Czyszczenie interfejsu API: usuwa chroniony konstruktor z obrazów systemu powiązanych z pakietem SDK.

Szczegóły zmiany interfejsu API

Moduł lub funkcjaOpis zmiany
Adnotacje na potrzeby systemów testowych
Dodano adnotację LargeTest.
Dodano adnotację MediumTest.
Dodano adnotację SmallTest.
Zezwól procesowi na łatwą identyfikację jego identyfikatora UID.
Dodano metodę publiczną myUid() do klasy android.os.Process
Dopełnienie w widokach
Dodano metodę publiczną getBottomPaddingOffset() do klasy android.view.View.
Dodano metodę publiczną getLeftPaddingOffset() do klasy android.view.View.
Dodano metodę publiczną getRightPaddingOffset() do klasy android.view.View.
Dodano metodę publiczną getTopPaddingOffset() do klasy android.view.View.
Dodano metodę publiczną isPaddingOffsetRequired() do klasy android.view.View.
Obsługa transparentu
Dodano metodę publiczną setMarqueeRepeatLimit(int) do klasy TextView
Dodano pole publiczne android.R.attr.marqueeRepeatLimit
Nowe uprawnienia
Dodano pole publiczne android.Manifest.permission.BROADCAST_SMS
Dodano pole publiczne android.Manifest.permission.BROADCAST_WAP_PUSH
Czyszczenie interfejsu API
Usunięto chroniony konstruktor java.net.ServerSocket.ServerSocket(java.net.SocketImpl).