Android KitKat

Android 4.4 na telefonie i tablecie

Witamy na Androidzie 4.4 KitKat

Android KitKat udostępnia wszystkie najbardziej innowacyjne, najpiękniejsze i najbardziej przydatne funkcje Androida na większej liczbie urządzeń.

Ten dokument zawiera przegląd nowości dla deweloperów.

Więcej informacji o KitKat dla konsumentów znajdziesz na stronie www.android.com.

Android dla wszystkich

Android 4.4 został zaprojektowany tak, aby działał szybko, płynnie i responsywnie na znacznie większej liczbie urządzeń niż kiedykolwiek wcześniej. Dotyczy to również milionów urządzeń podstawowego poziomu na całym świecie, które mają zaledwie 512 MB pamięci RAM.

KitKat usprawnia działanie wszystkich głównych komponentów, aby zmniejszyć wykorzystanie pamięci, oraz wprowadza nowe interfejsy API i narzędzia, które ułatwiają tworzenie innowacyjnych, responsywnych aplikacji o niskim zużyciu pamięci.

Producenci urządzeń OEM tworzący urządzenia z Androidem nowej generacji mogą korzystać z rekomendacji i opcji, aby wydajnie korzystać z Androida 4.4 nawet na urządzeniach z małą ilością pamięci. Dalvik JIT kodowanie pamięci podręcznej, łączenie stron w jądrze (KSM), wymiana na zRAM i inne optymalizacje pomagają zarządzać pamięcią. Nowe opcje konfiguracji umożliwiają OEM-om dostosowywanie poziomów pamięci dla procesów, ustawianie rozmiarów pamięci podręcznej grafiki oraz kontrolowanie odzyskiwania pamięci.

W samym Androidzie zmiany w systemie poprawiają zarządzanie pamięcią i zmniejszają jej zapotrzebowanie. Główne procesy systemowe są przycinane, aby korzystać z mniejszej ilości stosu, a teraz bardziej agresywnie chronią pamięć systemową przed aplikacjami zużywającymi duże ilości pamięci RAM. Gdy wiele usług uruchamia się jednocześnie (np. gdy zmienia się połączenie z siecią), Android uruchamia je kolejno w małych grupach, aby uniknąć szczytowego zapotrzebowania na pamięć.

Android 4.4 ułatwia deweloperom tworzenie wydajnych i szybko reagujących aplikacji na wszystkich urządzeniach. Nowy interfejs API ActivityManager.isLowRamDevice() umożliwia dostosowanie działania aplikacji do konfiguracji pamięci urządzenia. W zależności od zastosowań, które chcesz obsługiwać na urządzeniach podstawowej klasy, możesz modyfikować funkcje wykorzystujące dużą ilość pamięci lub je wyłączać. Więcej informacji o optymalizowaniu aplikacji na urządzenia z małą ilością pamięci znajdziesz tutaj.

Nowe narzędzia zapewniają też szczegółowe informacje o wykorzystaniu pamięci przez aplikację. Narzędzie procstats podaje szczegółowe informacje o wykorzystaniu pamięci na przestrzeni czasu, a także czasy działania i śladu pamięci w przypadku aplikacji na pierwszym planie oraz usług działających w tle. Nowa opcja dla deweloperów umożliwia wyświetlanie danych na urządzeniu. Narzędzie meminfo zostało ulepszone, aby ułatwić wykrywanie trendów i problemów z pamięcią. Pozwala też wyświetlić dodatkowe obciążenie pamięci, które wcześniej nie było widoczne.

Nowe funkcje NFC dzięki host card emulation

Android 4.4 wprowadza nową platformę z obsługą bezpiecznych transakcji NFC za pomocą Host Card Emulation (HCE) do płatności, programów lojalnościowych, kart dostępu, biletów na przejazdy i innych usług niestandardowych. Dzięki HCE każda aplikacja na urządzeniu z Androidem może emulować kartę inteligentną NFC, umożliwiając użytkownikom inicjowanie transakcji za pomocą aplikacji wybranej przez nich samych – nie jest potrzebny żaden zabezpieczony element (SE) na urządzeniu. Aplikacje mogą też używać nowego Trybu czytnika, aby działać jako czytniki kart HCE i do innych transakcji NFC.

Symbol płatności zbliżeniowej

Android HCE emuluje karty inteligentne oparte na standardzie ISO/IEC 7816, które do transmisji używają protokołu bezstykowego ISO/IEC 14443-4 (ISO-DEP). Obecnie karty te są używane w wielu systemach, w tym w obecnej infrastrukturze płatności EMVCO NFC. Android używa identyfikatorów aplikacji (AID) zgodnie z definicją w normie ISO/IEC 7816-4 jako podstawy kierowania transakcji do odpowiednich aplikacji na Androida.

Aplikacje deklarują obsługiwane identyfikatory AID w plikach manifestu wraz z identyfikatorem kategorii, który wskazuje typ obsługi (np. „płatności”). Jeśli w tej samej kategorii jest wiele aplikacji obsługujących ten sam identyfikator AID, Android wyświetla okno, w którym użytkownik może wybrać aplikację, której ma użyć.

Gdy użytkownik kliknie przycisk płatności na terminalu w punkcie sprzedaży, system wyodrębnia preferowany identyfikator AID i kieruje transakcję do odpowiedniej aplikacji. Aplikacja odczytuje dane transakcji i może korzystać z dowolnych usług lokalnych lub sieciowych, aby zweryfikować transakcję, a następnie ją zrealizować.

Android HCE wymaga, aby na urządzeniu był obecny kontroler NFC. Obsługa HCE jest już powszechnie dostępna w większości kontrolerów NFC, które oferują dynamiczną obsługę transakcji HCE i SE. Urządzenia z Androidem 4.4, które obsługują NFC, będą obsługiwać funkcję Zbliż i zapłać, umożliwiającą łatwe dokonywanie płatności za pomocą HCE.

Platforma drukowania

Aplikacje na Androida mogą teraz drukować dowolny typ treści przez Wi-Fi lub usługi hostowane w chmurze, takie jak Google Cloud Print. W aplikacjach obsługujących drukowanie użytkownicy mogą znajdować dostępne drukarki, zmieniać formaty papieru, wybierać konkretne strony do wydrukowania oraz drukować niemal wszystkie rodzaje dokumentów, obrazów i plików.

Android 4.4 wprowadza obsługę drukowania natywnych platform, a także interfejsy API do zarządzania drukowaniem i dodawania nowych typów obsługi drukarek. Platforma udostępnia menedżera drukowania, który pośredniczy między aplikacjami wysyłającymi żądania drukowania a zainstalowanymi usługami drukowania, które obsługują żądania drukowania. Menedżer drukowania udostępnia usługi wspólne i interfejs systemu do drukowania, zapewniając użytkownikom spójną kontrolę nad drukowaniem z dowolnej aplikacji. Menedżer drukowania zapewnia też bezpieczeństwo treści podczas ich przekazywania między procesami, z aplikacji do usługi drukowania.

Urządzenie mobilne w orientacji poziomej z funkcjami obsługi drukarki

Możesz dodać obsługę drukowania do swoich aplikacji lub opracować usługi drukowania, aby obsługiwać określone typy drukarek.

Producenci drukarek mogą używać nowych interfejsów API do tworzenia własnych usług drukowania – wtyczkowych komponentów, które dodają logikę specyficzną dla danego producenta oraz usługi do komunikacji z konkretnymi typami drukarek. Mogą tworzyć usługi drukowania i rozpowszechniać je w Google Play, dzięki czemu użytkownicy mogą je łatwo znaleźć i zainstalować na swoich urządzeniach. Podobnie jak w przypadku innych aplikacji, możesz w dowolnym momencie zaktualizować usługi drukowania.

Aplikacje klienckie mogą używać nowych interfejsów API, aby dodać do swoich aplikacji obsługę drukowania z minimalnymi zmianami kodu. W większości przypadków do paska działań dodasz działanie drukowania oraz interfejs do wybierania elementów do drukowania. Musisz też zaimplementować interfejsy API do tworzenia zadań drukowania, wysyłania zapytań do menedżera drukowania w celu sprawdzenia stanu i anulowania zadań. Dzięki temu możesz drukować niemal każdy rodzaj treści, od lokalnych obrazów i dokumentów po dane sieciowe lub widok wyrenderowany na płótnie.

Aby zapewnić największą zgodność, Android używa formatu PDF jako głównego formatu pliku do drukowania. Przed wydrukowaniem aplikacja musi wygenerować poprawnie ponumerowane strony wersji PDF treści. Aby ułatwić Ci pracę, interfejs API do drukowania udostępnia klasy pomocnicze natywne i WebView, które umożliwiają tworzenie plików PDF za pomocą standardowych interfejsów API do rysowania w Androidzie. Jeśli aplikacja potrafi narysować treści, może szybko utworzyć plik PDF do wydrukowania.

Większość urządzeń z Androidem 4.4 będzie miała fabrycznie zainstalowaną usługę drukowania Google Cloud Print, a także kilka aplikacji Google obsługujących drukowanie, w tym Chrome, Dysk, Galeria i QuickOffice.

Ramy dostępu do pamięci

Nowa platforma Storage Access Framework ułatwia użytkownikom przeglądanie i otwieranie dokumentów, obrazów i innych plików we wszystkich preferowanych przez nich usługach przechowywania dokumentów. Standardowy, łatwy w użyciu interfejs umożliwia użytkownikom przeglądanie plików i dostęp do ostatnio używanych aplikacji i usług w sposób spójny.

Ilustracja pokazująca otwartą boczną suwak w ramach nowego interfejsu dostępu do pamięci Prezentacja zintegrowanych usług Box w nowym interfejsie dostępu do miejsca na dane

Box i inne firmy zintegrowały swoje usługi z ramami dostępu do pamięci, zapewniając użytkownikom łatwy dostęp do dokumentów z aplikacji w całym systemie.

Usługi przechowywania w chmurze lub lokalnie mogą uczestniczyć w tym ekosystemie poprzez zaimplementowanie nowej klasy dostawcy dokumentów, która opisuje ich usługi. Klasa dostawcy obejmuje wszystkie interfejsy API potrzebne do zarejestrowania dostawcy w systemie oraz do zarządzania przeglądaniem, czytaniem i zapisywaniem dokumentów w dostawcy. Dostawca dokumentu może przyznać użytkownikom dostęp do wszystkich danych zdalnych lub lokalnych, które mogą być reprezentowane jako pliki – od tekstu, zdjęć i tapet po filmy, dźwięk i inne.

Jeśli tworzysz dostawcę dokumentów dla usługi w chmurze lub lokalnej, możesz go udostępnić użytkownikom w ramach istniejącej aplikacji na Androida. Po pobraniu i zainstalowaniu aplikacji użytkownicy będą mieć natychmiastowy dostęp do Twojej usługi z dowolnej aplikacji korzystającej z tej platformy. Pomoże Ci to zwiększyć widoczność i zaangażowanie użytkowników, ponieważ łatwiej znajdą oni Twoje usługi.

Jeśli tworzysz aplikację klienta, która zarządza plikami lub dokumentami, możesz ją zintegrować z platformą Storage Access Framework, używając nowych intencji CREATE_DOCUMENT lub OPEN_DOCUMENT do otwierania i tworzenia plików. System automatycznie wyświetli standardowe UI do przeglądania dokumentów, w tym wszystkich dostępnych dostawców dokumentów.

Aplikację klienta możesz zintegrować raz, dla wszystkich dostawców, bez kodu specyficznego dla danego dostawcy. Gdy użytkownicy będą dodawać lub usuwać dostawców, nadal będą mieć dostęp do swoich ulubionych usług w aplikacji bez konieczności wprowadzania zmian ani aktualizacji kodu.

Platforma Storage Access Framework jest zintegrowana z dotychczasowym zamiarem GET_CONTENT, dzięki czemu użytkownicy mają też dostęp do wszystkich swoich poprzednich treści i źródeł danych z nowego interfejsu użytkownika systemu do przeglądania. Aplikacje mogą nadal używać GET_CONTENT do importowania danych przez użytkowników. System dostępu do pamięci i interfejs przeglądania ułatwiają użytkownikom znajdowanie i importowanie danych z większej liczby źródeł.

Większość urządzeń z Androidem 4.4 będzie miała wstępnie zintegrowany Dysk Google i pamięć lokalną jako dostawców dokumentów. Nowe środowisko będą też używać aplikacje Google, które pracują z plikami.

Czujniki o małej mocy

grupowanie czujników.

Android 4.4 wprowadza obsługę nowej optymalizacji przetwarzania zbiorczego czujników sprzętowych, która może znacznie zmniejszyć zużycie energii przez trwające działania czujników.

Dzięki grupowaniu zdarzeń czujników Android współpracuje ze sprzętem urządzenia, aby zbierać i przekazywać zdarzenia czujników w skutecznych partiach, a nie pojedynczo, gdy są wykrywane. Dzięki temu procesor aplikacji na urządzeniu może pozostać w stanie niskiego poboru mocy do czasu dostarczenia partii. Możesz żądać zbiorczego przesyłania zdarzeń z dowolnego czujnika, używając standardowego odbiornika zdarzeń. Możesz też kontrolować interwał, w jakim otrzymujesz partie. Możesz też poprosić o natychmiastowe przesyłanie zdarzeń między cyklami zbiorczego przetwarzania.

Przetwarzanie zbiorcze czujników jest idealne do długotrwałych zastosowań o niskim poborze mocy, takich jak fitness, śledzenie lokalizacji czy monitorowanie. Może to zwiększyć wydajność aplikacji i umożliwi Ci śledzenie zdarzeń czujnika w ciągłej pracy – nawet gdy ekran jest wyłączony, a system jest uśpiony.

Przetwarzanie zbiorcze czujników jest obecnie dostępne na Nexusie 5. Współpracujemy z partnerami zajmującymi się układami scalonymi, aby jak najszybciej udostępnić tę funkcję na większej liczbie urządzeń.

Obsługa nowego licznika kroków na urządzeniach mobilnych Urządzenie mobilne z obsługą nowego licznika kroków

Movespedometr Runtastic korzystają z urządzenia do wykrywania kroków, aby oferować długotrwałe usługi o niskim poborze mocy.

Wykrywacz kroków i licznik kroków

Android 4.4 obsługuje też 2 nowe czujniki złożone – licznik kroków i detektor kroków – które umożliwiają aplikacji śledzenie kroków podczas chodzenia, biegania lub wchodzenia po schodach. Nowe czujniki są implementowane w sprzęcie, aby zapewnić niskie zużycie energii.

Detektor kroków analizuje dane z akcelerometru, aby rozpoznać, kiedy użytkownik wykonał krok, a następnie wywołuje zdarzenie po każdym kroku. Licznik kroków śledzi łączną liczbę kroków od ostatniego ponownego uruchomienia urządzenia i wywołuje zdarzenie przy każdej zmianie liczby kroków. Logika i zarządzanie czujnikami są wbudowane w platformę i podstawowy sprzęt, więc nie musisz utrzymywać własnych algorytmów wykrywania w aplikacji.

Detektor kroków i czujniki licznika są dostępne na Nexusie 5. Współpracujemy z partnerami, którzy dostarczają chipsety, aby jak najszybciej udostępnić te funkcje na nowych urządzeniach.

Dostawca SMS-ów

Jeśli opracowujesz aplikację do obsługi SMS-ów lub MMS-ów, możesz teraz zarządzać przechowywaniem i odzyskiwaniem wiadomości w aplikacji za pomocą wspólnego dostawcy SMS-ów i nowych interfejsów API. Nowy dostawca SMS-ów i interfejsy API definiują ujednolicony model interakcji dla wszystkich aplikacji, które obsługują SMS-y lub MMS-y.

Oprócz nowego dostawcy i interfejsów API Android 4.4 wprowadza nową semantykę dotyczącą odbierania wiadomości i zapisywania danych do dostawcy. Gdy otrzymasz wiadomość, system przekieruje ją bezpośrednio do domyślnej aplikacji do obsługi wiadomości użytkownika, używając nowego zamiaru SMS_DELIVER. Inne aplikacje nadal mogą nasłuchiwać przychodzących wiadomości za pomocą intencji SMS_RECEIVED. System zezwala teraz na zapisywanie danych wiadomości w usłudze dostawcy tylko przez domyślną aplikację, ale inne aplikacje mogą je odczytać w dowolnym momencie. Aplikacje, które nie są domyślnymi aplikacjami użytkownika, mogą nadal wysyłać wiadomości – system obsługuje zapisywanie tych wiadomości do dostawcy w imieniu aplikacji, aby użytkownicy mogli je zobaczyć w aplikacji domyślnej.

Nowy dostawca i nowa semantyka pomagają poprawić komfort korzystania z aplikacji przez użytkowników, którzy mają zainstalowane różne aplikacje do obsługi wiadomości. Pozwalają też tworzyć nowe funkcje obsługi wiadomości przy użyciu w pełni obsługiwanych interfejsów API zgodnych z wersjami nowszymi.

Nowe sposoby tworzenia atrakcyjnych aplikacji

Telefon z wyświetloną nową funkcję trybu pełnoekranowego

Nowy tryb pełnoekranowy pozwala aplikacjom używać każdego piksela na ekranie do wyświetlania treści i rejestrowania zdarzeń dotykowych.

Tryb pełnoekranowy z przewijaniem

Teraz aplikacje mogą wyświetlać Twoje treści i rejestrować zdarzenia dotykowe, korzystając z każdego piksela na ekranie urządzenia. Android 4.4 wprowadza nowy tryb pełnoekranowy, który umożliwia tworzenie interfejsów sięgających od krawędzi do krawędzi na telefonach i tabletach, ukrywając cały interfejs systemowy, np. pasek stanu i pasek nawigacji. Jest on idealny do treści wizualnych, takich jak zdjęcia, filmy, mapy, książki i gry.

W nowym trybie interfejs systemu pozostaje ukryty, nawet gdy użytkownicy korzystają z aplikacji lub gry. Możesz rejestrować zdarzenia dotykowe z dowolnego miejsca na ekranie, nawet w obszarach, które w innym przypadku byłyby zajęte przez paski systemu. Dzięki temu możesz tworzyć w swojej aplikacji lub grze większy, bogatszy i bardziej wciągający interfejs, a także ograniczać rozpraszające elementy.

Aby zapewnić użytkownikom łatwy i spójny dostęp do interfejsu systemu z trybu pełnego ekranu, Android 4.4 obsługuje nowy gest – w trybie pełnoekranowym gest przesunięcia palcem od góry lub od dołu ekranu powoduje wyświetlenie interfejsu systemu.

Aby wrócić do trybu pełnoekranowego, użytkownicy mogą dotknąć ekranu poza obszarem paska lub poczekać chwilę, aż paski znikną automatycznie. Aby zapewnić spójne wrażenia użytkownika, nowy gest działa również z poprzednimi metodami ukrywania paska stanu.

Ramy przejść do animacji scen

Większość aplikacji tworzy swoje przepływy na podstawie kilku kluczowych stanów interfejsu, które umożliwiają wykonywanie różnych działań. Wiele aplikacji wykorzystuje też animacje, aby pomóc użytkownikom zrozumieć, jak przechodzą przez te stany i jakie działania są dostępne w każdym z nich. Aby ułatwić tworzenie wysokiej jakości animacji w aplikacji, Android 4.4 wprowadza nowy framework przejść.

Framework przejść umożliwia definiowanie scenów, które zwykle są hierarchiami widoków, oraz przejść, które opisują, jak animować lub przekształcać sceny, gdy użytkownik wchodzi do nich lub z nich wychodzi. Możesz użyć kilku wstępnie zdefiniowanych typów przejść, aby animować sceny na podstawie określonych właściwości, takich jak granice układu lub widoczność. Dostępny jest też typ automatycznego przejścia, który automatycznie zaciera obraz, przesuwa i zmienia rozmiary widoków podczas zmiany sceny. Dodatkowo możesz definiować niestandardowe przejścia, które animują właściwości, które są najważniejsze dla Twojej aplikacji. W razie potrzeby możesz też stosować własne style animacji.

Dzięki temu frameworkowi możesz też w bieżącym trybie animować zmiany w interfejsie użytkownika bez konieczności definiowania scen. Możesz na przykład wprowadzić serię zmian w hierarchii widoku, a następnie pozwolić komponentowi TransitionManager automatycznie wykonać opóźnione przejście między tymi zmianami.

Po skonfigurowaniu przejść możesz je łatwo wywoływać z aplikacji. Możesz na przykład wywołać jedną metodę, aby rozpocząć przejście, wprowadzić różne zmiany w hierarchii widoku, a następnie w następnym ujęciu automatycznie rozpoczną się animacje, które odzwierciedlają wprowadzone zmiany.

przezroczysty interfejs systemu

Aplikacje mogą używać nowych stylów okien, aby prosić o przezroczyste paski systemowe.

Aby uzyskać kontrolę nad przejściami między określonymi scenami w przebiegu aplikacji, możesz użyć klasy TransitionManager. Komponent TransitionManager umożliwia zdefiniowanie relacji między scenami a przejściami, które są uruchamiane w przypadku określonych zmian scen.

Stylizacja interfejsu systemu w półprzezroczystym

Aby uzyskać jak najlepszy efekt, możesz teraz używać nowych stylów okien i motywów, aby poprosić o przezroczysty interfejs systemu, w tym pasek stanu i pasek nawigacyjny. Aby zapewnić czytelność przycisków na pasku nawigacyjnym lub informacji na pasku stanu, za paskami systemowymi wyświetlane są subtelne gradienty. Typowym przypadkiem użycia jest aplikacja, która musi wyświetlać tapetę.

Ulepszona obsługa dostępu do powiadomień

Usługi odbioru powiadomień mogą teraz wyświetlać więcej informacji o przychodzących powiadomieniach utworzonych za pomocą interfejsów API do tworzenia powiadomień. Usługi odbioru mogą uzyskać dostęp do działań powiadomienia oraz nowych pól dodatkowych (tekst, ikona, obraz, postęp, zegar i wiele innych), aby wyodrębnić czystsze informacje o powiadomieniu i przedstawić je w inny sposób.

Logo Chromium WebView

WebView w Chromium

Android 4.4 zawiera zupełnie nową implementację WebView opartą na Chromium. Nowy komponent WebView przeglądarki Chromium zapewnia najnowsze standardy, wydajność i zgodność, co pozwala tworzyć i wyświetlać treści internetowe.

Chromium WebView zapewnia szeroką obsługę HTML5, CSS3 i JavaScriptu. Obsługuje większość funkcji HTML5 dostępnych w Chrome na Androida 30. Zawiera też zaktualizowaną wersję mechanizmu JavaScript (V8), która znacznie poprawia wydajność JavaScriptu.

Nowy komponent WebView w Chromium obsługuje też debugowanie zdalne za pomocą narzędzi Chrome DevTools. Na przykład możesz użyć Narzędzi deweloperskich w Chrome na komputerze programistycznym, aby sprawdzić, debugować i analizować treści WebView na urządzeniu mobilnym.

Nowy komponent WebView Chromium jest dostępny na wszystkich zgodnych urządzeniach z Androidem 4.4 lub nowszym. Możesz od razu zacząć korzystać z nowego WebView, wprowadzając minimalne zmiany w dotychczasowych aplikacjach i treściach. W większości przypadków Twoje treści zostaną bezproblemowo przeniesione do nowej implementacji.

Nowe możliwości mediów

Nagrywanie ekranu

Teraz możesz łatwo tworzyć wysokiej jakości filmy z aplikacją bezpośrednio na urządzeniu z Androidem. Android 4.4 obsługuje nagrywanie ekranu i zawiera narzędzie do nagrywania ekranu, które umożliwia uruchamianie i zatrzymywanie nagrywania na urządzeniu połączonym z otoczeniem Android SDK przez USB. To świetny nowy sposób na tworzenie samouczków i instrukcji dotyczących aplikacji, materiałów testowych, filmów marketingowych i nie tylko.

Za pomocą narzędzia do nagrywania ekranu możesz nagrywać filmy z ekranu urządzenia i przechowywać je na urządzeniu jako pliki MP4. Możesz nagrywać w dowolnej rozdzielczości i z dowolną szybkością transmisji danych obsługiwaną przez urządzenie, a wyjście zachowa proporcje wyświetlacza. Domyślnie narzędzie wybiera rozdzielczość równą lub zbliżoną do rozdzielczości ekranu urządzenia w bieżącej orientacji. Po zakończeniu nagrywania możesz udostępnić film bezpośrednio z urządzenia lub przenieść plik MP4 na komputer hosta w celu postprodukcji.

Jeśli Twoja aplikacja odtwarza film lub inne chronione treści, których nie chcesz rejestrować za pomocą funkcji nagrywania ekranu, możesz użyć metody SurfaceView.setSecure(), aby oznaczyć je jako chronione.

Dostęp do nagrywania ekranu możesz uzyskać za pomocą narzędzia adb zawartego w pakiecie SDK Androida, używając polecenia adb shell screenrecord. Możesz też uruchomić go za pomocą logcat w Android Studio.

Przełączanie rozdzielczości w ramach odtwarzania adaptacyjnego

Android 4.4 wprowadza oficjalną obsługę odtwarzania adaptacyjnego w ramach interfejsu mediów Androida. Adaptive playback to opcjonalna funkcja dekoderów wideo dla MPEG-DASH i innych formatów, która umożliwia płynną zmianę rozdzielczości podczas odtwarzania. Klient może zacząć przesyłać do dekodera ramki wideo o nowej rozdzielczości, a rozdzielczość buforów wyjściowych zmienia się automatycznie i bez znaczącej przerwy.

Przełączanie rozdzielczości w Androidzie 4.4 pozwala aplikacjom multimedialnym znacznie poprawić jakość strumieniowego przesyłania filmów. Aplikacje mogą sprawdzać obsługę odtwarzania adaptacyjnego w czasie działania za pomocą dotychczasowych interfejsów API oraz stosować przełączanie rozdzielczości za pomocą nowych interfejsów API wprowadzonych w Androidzie 4.4.

Wspólne szyfrowanie dla DASH

Android obsługuje teraz standard szyfrowania (CENC) dla MPEG-DASH, zapewniając standardowy, wieloplatformowy schemat DRM do zarządzania treściami. Aplikacje mogą korzystać z CENC za pomocą modułowego frameworku DRM Androida i interfejsów API platformy obsługujących DASH.

Transmisja na żywo przez HTTP

Android 4.4 aktualizuje obsługę transmisji na żywo przez HTTP (HLS) na platformie do superzbioru wersji 7 specyfikacji HLS (wersja 4 protokołu). Szczegóły znajdziesz w projektie IETF.

Przekierowanie dźwięku do procesora dsp

Aby zapewnić płynne odtwarzanie dźwięku przy mniejszym zużyciu energii, Android 4.4 obsługuje tunelowanie dźwięku do procesora sygnału cyfrowego (DSP) w układach scalonych urządzeń. Dzięki tunelowaniu dekodowanie dźwięku i efekty wyjściowe są przenoszone do procesora DSP, co powoduje rzadsze budzenie procesora aplikacji i mniejsze zużycie baterii.

Tunelowanie dźwięku może znacznie wydłużyć czas pracy na baterii w przypadku takich zastosowań jak słuchanie muzyki przez zestaw słuchawkowy przy wyłączonym ekranie. Na przykład dzięki tunelowaniu dźwięku Nexus 5 oferuje łączny czas odtwarzania dźwięku poza siecią do 60 godzin, co stanowi wzrost o ponad 50% w porównaniu z dźwiękiem bez tunelowania.

Aplikacje multimedialne mogą korzystać z tunelowania dźwięku na obsługiwanych urządzeniach bez konieczności modyfikowania kodu. System stosuje tunelowanie, aby zoptymalizować odtwarzanie dźwięku, gdy jest ono dostępne na urządzeniu.

Wizualizacja pokazująca efekt głośności

Wizualizacja tego, jak efekt wzmacniacza głośności może poprawić słyszalność treści mowy.

Tunelowanie dźwięku wymaga obsługi przez sprzęt urządzenia. Obecnie tunelowanie dźwięku jest dostępne na Nexusie 5. Współpracujemy z partnerami, aby jak najszybciej udostępnić tę funkcję na większej liczbie urządzeń.

Monitoring dźwięku

Aplikacje mogą używać nowych narzędzi monitorowania w efekcie wizualizacji, aby otrzymywać informacje o wartościach szczytowych i RMS dowolnego dźwięku odtwarzanego obecnie na urządzeniu. Możesz na przykład wykorzystać tę funkcję w wizualizatorach muzyki lub w celu wdrożenia pomiaru odtwarzania w odtwarzaczu multimediów.

Kompensacja głośności

Aplikacje do odtwarzania multimediów mogą zwiększać głośność treści mowy, używając nowego efektu LoudnessEnhancer, który działa jak kompresor z konstantami czasowymi dostosowanymi specjalnie do mowy.

znaczniki czasu dźwięku w celu poprawy synchronizacji obrazu i dźwięku,

Ramy audio mogą teraz przekazywać oznaczenia czasu prezentacji z warstwy HAL wyjścia audio do aplikacji, aby zapewnić lepszą synchronizację dźwięku z obrazem. Sygnatury czasowe dźwięku umożliwiają aplikacji określenie, kiedy konkretny kadr audio zostanie (lub został) wyświetlony użytkownikowi poza urządzeniem. Możesz użyć informacji o sygnaturze czasowej, aby dokładniej zsynchronizować dźwięk z kadrami wideo.

Wi-Fi CERTIFIED Miracast™

Urządzenia z Androidem 4.4 mogą teraz uzyskać certyfikat zgodności ze specyfikacją wyświetlaczy Wi-Fi Wi-Fi Alliance, który potwierdza ich zgodność z Miracast. Aby ułatwić testowanie, nowa opcja dla deweloperów wyświetlacza bezprzewodowego udostępnia zaawansowane ustawienia konfiguracji i certyfikacyjne wyświetlacza bezprzewodowego. Opcja ta jest dostępna w sekcji Ustawienia > Opcje programisty > Certyfikacja wyświetlacza bezprzewodowego. Nexus 5 to urządzenie z certyfikatem Miracast do wyświetlania bezprzewodowego.

Renderowanie za pomocą RenderScript

Wykres optymalizacji Render.js

Wyniki testów wydajności Androida 4.4 w porównaniu z Androidem 4.3, przeprowadzonych na tych samych urządzeniach (Nexus 7, Nexus 10).

Ciągłe ulepszanie wydajności

Aplikacje korzystające z RenderScript będą korzystać z ciągłego optymalizowania wydajności w czasie działania RenderScript bez konieczności ponownej kompilacji. Wykres po prawej stronie pokazuje wzrost wydajności w Androidzie 4.4 na 2 popularnych chipsetach.

akceleracja GPU;

Każda aplikacja korzystająca z RenderScript na obsługiwanym urządzeniu korzysta z przyspieszania GPU bez konieczności wprowadzania zmian w kodzie ani ponownego kompilowania. Od czasu, gdy Nexus 10 po raz pierwszy wykorzystał akcelerację GPU RenderScript, inni partnerzy sprzętowi również zaczęli oferować tę funkcję.

Teraz w Androidzie 4.4 przyspieszanie przez procesor graficzny jest dostępne na Nexusie 5, a także Nexusie 4, Nexusie 7 (2013 r.) i Nexusie 10. Współpracujemy z partnerami, aby jak najszybciej udostępnić tę funkcję na kolejnych urządzeniach.

Renderowanie w języku RenderScript w Android NDK

Teraz możesz korzystać z RenderScript bezpośrednio w natywności kodu. Nowy interfejs C++ w pakiecie NDK (Android Native Development Kit) zapewnia dostęp do tych samych funkcji RenderScript, które są dostępne w interfejsach frameworku, w tym do elementów scriptu, własnych jąder i innych.

Jeśli masz do wykonania duże zadania wymagające dużej wydajności w kodzie natywnym, możesz je wykonać za pomocą RenderScript i zintegrować je z kodem natywnym. RenderScript zapewnia wysoką wydajność na wielu urządzeniach, automatycznie obsługując procesory wielordzeniowe, procesory graficzne i inne procesory.

Gdy skompilujesz aplikację, która korzysta z RenderScript za pomocą NDK, możesz ją rozpowszechniać na dowolnym urządzeniu z Androidem 2.2 lub nowszym, tak jak w przypadku biblioteki obsługi RenderScript dostępnej dla interfejsów API frameworka.

Grafika

GLES2.0 SurfaceFlinger

Android 4.4 ulepsza bibliotekę SurfaceFlinger z OpenGL ES 1.0 do OpenGL ES 2.0.

Nowa obsługa kompozytora sprzętowego w przypadku wyświetlaczy wirtualnych

Najnowsza wersja Android Hardware Composer, HWComposer 1.3, obsługuje komponowanie sprzętowe jednego wirtualnego wyświetlacza oprócz głównego wyświetlacza zewnętrznego (np. HDMI) i zapewnia lepszą współdziałalność z OpenGL ES.

Nowe typy połączeń

Nowe profile Bluetooth

Android 4.4 obsługuje 2 nowe profile Bluetooth, aby umożliwić aplikacjom obsługę szerszego zakresu interakcji z urządzeniami o niskim poborze mocy i multimediów. Bluetooth HID over GATT (HOGP) zapewnia aplikacjom połączenie o małej latencji z niskoenergetycznymi urządzeniami peryferyjnymi, takimi jak myszy, joysticki i klawiatury. Bluetooth MAP umożliwia aplikacjom wymianę wiadomości z urządzeniem w pobliżu, na przykład z terminalem samochodowym do korzystania z handsfree lub innym urządzeniem mobilnym. Dzięki rozszerzeniu Bluetooth AVRCP 1.3 użytkownicy mogą teraz ustawiać głośność bezwzględną na systemie za pomocą swoich urządzeń Bluetooth.

Obsługa platformy dla protokołów HOGP, MAP i AVRCP jest oparta na stosie Bluedroid Bluetooth wprowadzonym przez Google i Broadcom w Androidzie 4.2. Obsługa jest dostępna od razu na urządzeniach Nexus i innych urządzeniach z Androidem, które oferują zgodne funkcje Bluetooth.

Odbiorniki podczerwieni

Android 4.4 wprowadza obsługę wbudowanych nadajników podczerwieni na platformie, a także nowy interfejs API i usługę systemową, które umożliwiają tworzenie aplikacji wykorzystujących te nadajniki.

Dzięki nowemu interfejsowi API możesz tworzyć aplikacje, które umożliwiają użytkownikom zdalne sterowanie telewizorami, tunerami, przełącznikami i innymi urządzeniami elektronicznymi w pobliżu. Interfejs API umożliwia aplikacji sprawdzenie, czy telefon lub tablet ma nadajnik podczerwieni, zapytanie o częstotliwości operatora, a następnie wysyłanie sygnałów podczerwieni.

Interfejs API jest standardem na urządzeniach z Androidem w wersji 4.4 lub nowszej, więc Twoja aplikacja może obsługiwać jak najwięcej urządzeń różnych producentów bez konieczności pisania niestandardowego kodu integracji.

Obsługa TDLS w sieci Wi-Fi

Android 4.4 wprowadza płynny sposób przesyłania strumieniowo multimediów i innych danych między urządzeniami w tej samej sieci Wi-Fi dzięki obsłudze konfiguracji skrótu bezpośredniego Wi-Fi (TDLS).

Ułatwienia dostępu

Ustawienia napisów na poziomie systemu

Android 4.4 zapewnia teraz lepsze ułatwienia dostępu w aplikacjach dzięki dodaniu ustawień napisów na poziomie całego systemu. Użytkownicy mogą otworzyć Ustawienia > Ułatwienia dostępu > Napisy, aby ustawić globalne ustawienia napisów, takie jak język, rozmiar tekstu i styl napisów.

Aplikacje korzystające z filmów mogą teraz uzyskać dostęp do ustawień napisów użytkownika i dostosowywać prezentację do jego preferencji. Nowe API menedżera napisów umożliwia sprawdzanie i monitorowanie preferencji użytkownika dotyczących napisów. Menedżer napisów podpowiada preferowany stan napisów użytkownika, a także preferowany język, współczynnik skalowania i styl tekstu. Styl tekstu obejmuje kolory pierwszego i drugiego planu, właściwości krawędzi oraz czcionkę.

Urządzenie mobilne w orientacji poziomej z napisami wyświetlanymi w ramach ustawień napisów systemowych

Aplikacje mogą teraz odwoływać się do ustawień napisów użytkownika w całym systemie. Przykład oczekiwanego stylu wyświetlania jest wyświetlany bezpośrednio w ustawieniach.

Aplikacje korzystające z VideoView mogą też używać nowego interfejsu API do przekazywania strumienia napisów wraz ze strumieniem wideo na potrzeby renderowania. System automatycznie wyświetla napisy na klatkach filmu zgodnie z ustawieniami użytkownika dotyczącymi całego systemu. Obecnie aplikacja VideoView obsługuje automatyczne wyświetlanie napisów tylko w formacie WebVTT.

Wszystkie aplikacje wyświetlające napisy powinny sprawdzić ustawienia napisów użytkownika w całym systemie i renderować napisy tak, aby jak najbardziej odpowiadały tym ustawieniom. Aby dowiedzieć się więcej o tym, jak powinny wyglądać określone kombinacje ustawień, możesz wyświetlić podgląd napisów w różnych językach, rozmiarach i stylach bezpośrednio w aplikacji Ustawienia.

Interfejsy API rozszerzonej dostępności

Android 4.4 rozszerza interfejsy API ułatwień dostępu, aby umożliwić bardziej precyzyjny opis strukturalny i semantyczny oraz obserwację elementów na ekranie. Dzięki nowym interfejsom API deweloperzy mogą poprawić jakość informacji o dostępności, przekazując usługom ułatwień dostępu więcej informacji o elementach na ekranie.

W węzłach ułatwień deweloperzy mogą teraz określać, czy dany węzeł jest wyskakującym okienem, uzyskiwać typ danych wejściowych i wykonywać inne czynności. Możesz też używać nowych interfejsów API do pracy z węzłami zawierającymi informacje podobne do siatki, np. list i tabel. Możesz na przykład określić nowe obsługiwane działania, informacje o zbieraniu danych i tryby regionów na żywo.

Nowe zdarzenia dotyczące ułatwień dostępu umożliwiają deweloperom ściślej śledzenie zmian zachodzących w treści okna. Mogą też teraz odbierać powiadomienia o zmianach w trybie eksploracji dotykiem na urządzeniu.

Pomoc dla użytkowników z innych krajów

Odzwierciedlanie elementów rysowanych w przypadku języków z orientacją od prawej do lewej

Jeśli Twoja aplikacja jest kierowana do użytkowników, którzy używają skryptów RTL, możesz użyć nowego interfejsu API, aby zadeklarować, że drawable powinien być automatycznie lustrzany, gdy ustawienie języka użytkownika zawiera język RTL.

Zadeklarowanie rysunku jako automatycznie lustrzanego pomaga zapobiegać powielaniu zasobów w aplikacji i zmniejsza rozmiar pliku APK. Jeśli masz elementy graficzne, które można ponownie wykorzystać w prezentacjach zarówno w orientacji poziomej, jak i pionowej, możesz zadeklarować wersje domyślne jako automatycznie lustrzane, a następnie pominąć te elementy z zasobów RTL.

Opcja Wymuś układ z orientacją poziomą ułatwia testowanie lokalizacji aplikacji.

W kodzie aplikacji możesz zadeklarować różne typy obiektów rysowanych jako automatycznie lustrzane, np. bitmapy, obiekty nine-patch, warstwy, listy stanów i inne obiekty rysowane. Możesz też zadeklarować w plikach zasobów, że dany obiekt graficzny ma być automatycznie lustrzane. W tym celu użyj nowego atrybutu.

Wymuś układ od prawej do lewej

Aby ułatwić testowanie i debugowanie problemów z odbiciem lustrzanym układu bez przełączania na język zapisany od prawej do lewej, Android zawiera nową opcję dla deweloperów, która wymusza kierunek układu od prawej do lewej we wszystkich aplikacjach.

Opcja Wymuś układ od prawej do lewej przełącza urządzenie na układ od prawej do lewej dla wszystkich języków i wyświetla tekst w bieżącym języku. Dzięki temu możesz wykrywać problemy z układem w całej aplikacji, bez konieczności wyświetlania jej w języku z orientacją poziomą. Możesz uzyskać do niej dostęp w sekcji Ustawienia > Opcje programisty > Wymuś kierunek układu RTL.

Ulepszenia zabezpieczeń

SELinux (tryb egzekwowania)

Android 4.4 aktualizuje konfigurację SELinux z „permissive” na „enforcing”. Oznacza to, że potencjalne naruszenia zasad w domenie SELinux, w której obowiązują zasady, będą blokowane.

ulepszone algorytmy kryptograficzne;

Android zwiększył bezpieczeństwo, dodając obsługę 2 dodatkowych algorytmów kryptograficznych. Do dostawcy magazynu kluczy dodano obsługę algorytmu podpisu cyfrowego wykorzystującego krzywe eliptyczne (ECDSA), co zwiększa bezpieczeństwo podpisywania cyfrowego w takich sytuacjach jak podpisywanie aplikacji lub połączenia danych. Funkcja wyprowadzenia klucza Scrypt jest implementowana w celu ochrony kluczy kryptograficznych używanych do szyfrowania całego dysku.

Inne ulepszenia

Na urządzeniach wieloużytkownikowych VPN jest teraz stosowany dla każdego użytkownika. Dzięki temu użytkownik może przekierowywać cały ruch sieciowy przez sieć VPN bez wpływu na innych użytkowników urządzenia. Android obsługuje teraz poziom 2 protokołu FORTIFY_SOURCE, a cały kod jest kompilowany z tymi zabezpieczeniami. Ustawienie FORTIFY_SOURCE zostało ulepszone, aby działało z clang.

Narzędzia do analizowania wykorzystania pamięci

Procstats

Nowe narzędzie procstats pomaga analizować zasoby pamięci używane przez aplikację, a także zasoby używane przez inne aplikacje i usługi działające w systemie.

Procstats śledzi działanie aplikacji w czasie, dostarczając dane o czasie ich wykonywania i użyciu pamięci, aby ułatwić określenie ich wydajności. Jest to szczególnie ważne w przypadku aplikacji, które uruchamiają usługi działające w tle, ponieważ pozwala to monitorować czas ich działania i wykorzystywanie pamięci RAM. Narzędzie Procstats będzie też zbierać dane o używaniu pamięci przez aplikacje na pierwszym planie na przestrzeni czasu, aby określić ogólny profil pamięci aplikacji.

Narzędzie Procstats może pomóc w identyfikacji usług działających w tle, które zostały uruchomione przez Twoją aplikację. Możesz śledzić, jak długo te usługi są uruchomione i ile pamięci RAM wykorzystują. Narzędzie Procstats umożliwia też profilowanie aplikacji, gdy jest ona na pierwszym planie. Korzystając z wykorzystywania pamięci na przestrzeni czasu, możesz określić jej ogólny profil pamięci.

Nowe narzędzie procstats umożliwia sprawdzanie wykorzystania pamięci przez aplikacje i usługi w ciągu czasu.

Ulepszone narzędzie meminfo umożliwia wyświetlanie szczegółów dotyczących wykorzystania pamięci przez aplikację.

Dostęp do procstats możesz uzyskać za pomocą narzędzia adb zawartego w pakiecie Android SDK: adb shell dumpsys procstats. Informacje o profilowaniu na urządzeniu znajdziesz też poniżej w opcji dla deweloperów Statystyki przetwarzania.

Stan i profilowanie pamięci na urządzeniu

Android 4.4 zawiera nową opcję dla deweloperów, która ułatwia analizowanie profilu pamięci aplikacji podczas jej działania na dowolnym urządzeniu lub emulatorze. Jest to szczególnie przydatne, aby sprawdzić, jak aplikacja wykorzystuje pamięć i działa na urządzeniach z małą ilością pamięci RAM. Opcja jest dostępna w sekcji Ustawienia > Opcje programisty > Statystyki przetwarzania.

Urządzenie mobilne z wyświetloną nową opcją Statystyki procesów Szczegóły dotyczące korzystania z urządzeń mobilnych w nowej opcji Statystyki procesu

Statystyki procesu to wygodny sposób sprawdzania wykorzystania pamięci przez aplikację. Możesz zobaczyć, jak Twoja aplikacja wypada na tle innych aplikacji, oraz powiększyć konkretne dane o aplikacji lub jej usługach działających w tle.

Opcja Statystyki procesu zawiera różne ogólne dane dotyczące wykorzystania pamięci przez aplikację na podstawie informacji zebranych za pomocą nowego serwisu procstats. Na ekranie głównym znajdziesz podsumowanie stanu pamięci systemowej. Zielony kolor wskazuje względną ilość czasu spędzonego przy niskim wykorzystaniu pamięci RAM, żółty – umiarkowane wykorzystanie pamięci RAM, a czerwony – wysokie (krytyczne) wykorzystanie pamięci RAM.

Poniżej podsumowania znajduje się lista podsumowująca obciążenie pamięci systemowej przez poszczególne aplikacje. W przypadku każdej aplikacji niebieski pasek wskazuje względne obciążenie pamięci (runtime x avg_pss) jej procesu, a wartość procentowa wskazuje względną ilość czasu spędzonego w tle. Możesz filtrować listę, aby wyświetlać tylko procesy na pierwszym planie, w tle lub z pamięci podręcznej, a także uwzględniać lub wykluczać procesy systemowe. Możesz też zmienić czas zbierania danych na 3, 6, 12 lub 24 godziny oraz uwzględnić lub wykluczyć pamięć uss.

Aby dokładniej przyjrzeć się wykorzystaniu pamięci przez konkretną aplikację, kliknij tę aplikację. Teraz możesz zobaczyć podsumowanie zużytej pamięci i procentowy udział danej aplikacji w okresie zbierania danych. Możesz też sprawdzić średnie i maksymalne wykorzystanie w okresie zbierania danych, a pod usługami aplikacji – procentowy czas ich działania.

Analiza aplikacji na podstawie danych w Statystykach procesów może ujawnić problemy i zaproponować możliwe optymalizacje. Jeśli na przykład aplikacja działa dłużej niż powinna lub zużywa zbyt dużo pamięci w danym przedziale czasu, może to oznaczać, że w jej kodzie są błędy, które możesz usunąć, aby poprawić jej wydajność, zwłaszcza na urządzeniu z małą ilością pamięci RAM.