Android 4.3
Jelly Bean'in daha da lezzetli bir sürümü olan Android 4.3'e hoş geldiniz.
Android 4.3, performans optimizasyonları ve kullanıcılar ile geliştiriciler için harika yeni özellikler içerir. Bu dokümanda, geliştiriciler için yeni olan özellikler kısaca açıklanmaktadır.
Yeni geliştirici API'lerini ayrıntılı olarak incelemek için Android 4.3 API'leri dokümanlarına göz atın.
Kullanıcılara yönelik yeni Jelly Bean özellikleri hakkında daha fazla bilgiyi www.android.com adresinde bulabilirsiniz.
Daha hızlı, daha akıcı ve daha duyarlı
Android 4.3, Jelly Bean'de bulunan performans iyileştirmelerini (vsync zamanlaması, üçlü arabelleğe alma, düşük dokunma gecikmesi, CPU girişi artışı ve donanım hızlandırmalı 2D oluşturma) temel alır ve Android'i daha da hızlandıran yeni optimizasyonlar ekler.
Donanım hızlandırmalı 2D oluşturma aracı, grafik performansını artırmak için artık çizim komutları akışını optimize ediyor. Çizim işlemlerini yeniden düzenleyerek ve birleştirerek bu akışı daha verimli bir GPU biçimine dönüştürüyor. Çok iş parçacıklı işleme için oluşturma aracı, belirli görevleri gerçekleştirmek üzere artık birden fazla CPU çekirdeğinde çok iş parçacıklı işleme de kullanabilir.
Android 4.3, şekil ve metin oluşturmayı da iyileştirir. Daireler ve yuvarlatılmış dikdörtgenler gibi şekiller artık daha yüksek kalitede ve daha verimli bir şekilde oluşturuluyor. Metin optimizasyonları arasında birden fazla yazı tipi veya karmaşık karakter grubu (CJK) kullanırken daha yüksek performans, metin ölçeklendirilirken daha yüksek oluşturma kalitesi ve gölgelerin daha hızlı oluşturulması yer alır.
İyileştirilmiş pencere arabelleği tahsisi, uygulamalarınız için daha hızlı bir resim arabelleği tahsisi sağlar. Bu sayede, pencere oluşturduğunuzda oluşturma işleminin başlaması için gereken süre azalır.
Android 4.3, en yüksek performanslı grafikler için OpenGL ES 3.0 desteğini sunar ve hem çerçeve hem de yerel API'ler aracılığıyla uygulamalara erişilebilir hale getirir. Donanım hızlandırmalı 2D oluşturma motoru, desteklenen cihazlarda doku yönetimini optimize etmek ve gradyan oluşturma doğruluğunu artırmak için OpenGL ES 3.0'dan yararlanır.
Yüksek Performanslı Grafikler için OpenGL ES 3.0
Android 4.3, Khronos OpenGL ES 3.0 için platform desteği sunar. Bu sayede, desteklenen cihazlarda oyunlar ve diğer uygulamalar en yüksek performanslı 2D ve 3D grafik özelliklerine sahip olur. Android Native Development Kit (NDK) üzerinden çerçeve API'lerini veya yerel API bağlamalarını kullanarak OpenGL ES 3.0 ve ilgili EGL uzantılarından yararlanabilirsiniz.
OpenGL ES 3.0'ta sunulan önemli yeni işlevler arasında gelişmiş görsel efektlerin hızlandırılması, standart özellik olarak yüksek kaliteli ETC2/EAC doku sıkıştırması, tam sayı ve 32 bit kayan nokta desteğine sahip GLSL ES gölgelendirme dilinin yeni bir sürümü, gelişmiş doku oluşturma ve standartlaştırılmış doku boyutu ve oluşturma arabelleği biçimleri yer alır.
OpenGL ES 3.0 API'lerini kullanarak çeşitli uyumlu Android cihazlarda çalışacak son derece karmaşık ve son derece verimli grafikler oluşturabilir ve bu cihazlarda tek bir standart doku sıkıştırma biçimini destekleyebilirsiniz.
OpenGL ES 3.0, temel grafik donanımına bağlı isteğe bağlı bir özelliktir. Nexus 7 (2013), Nexus 4 ve Nexus 10 cihazlarda destek zaten sunulmaktadır.
Gelişmiş Bluetooth Bağlantısı
Bluetooth Smart cihazlar ve sensörlerle bağlantı
Artık Bluetooth Smart teknolojisini kullanan yeni nesil küçük, düşük güçlü cihaz ve sensörlerle etkileşime geçen uygulamalar tasarlayıp oluşturabilirsiniz.
Android 4.3, merkezi rolde Bluetooth Smart Ready için yerleşik platform desteği sunar ve uygulamaların yakındaki cihazları keşfetmek, GATT hizmetlerini sorgulamak ve özellikleri okumak/yazmak için kullanabileceği standart bir API grubu sağlar.
Yeni API'ler sayesinde uygulamalarınız, ilgilendiğiniz cihaz ve hizmetleri verimli bir şekilde tarayabilir. Her cihaz için UUID'ye göre desteklenen GATT hizmetlerini kontrol edebilir ve bağlantıları cihaz kimliğine ve sinyal gücüne göre yönetebilirsiniz. Cihazda barındırılan bir GATT sunucusuna bağlanıp özellikleri okuyabilir veya yazabilir ya da bu özellikler değiştiğinde bildirim almak için bir dinleyici kaydedebilirsiniz.
Herhangi bir GATT profili için destek uygulayabilirsiniz. Standart özellikleri okuyabilir veya yazabilir ya da gerektiğinde özel özellikler için destek ekleyebilirsiniz. Uygulamanız istemci veya sunucu olarak çalışabilir ve her iki modda da veri aktarıp alabilir. API'ler genel olduğundan yakınlık etiketleri, kol saatleri, fitness ölçerler, oyun kumandaları, uzaktan kumandalar, sağlık cihazları gibi çeşitli cihazlarla etkileşimleri destekleyebilirsiniz.
Bluetooth Smart Ready desteği, Nexus 7 (2013) ve Nexus 4 cihazlarda zaten mevcuttur. Önümüzdeki aylarda, Android uyumlu cihazların giderek artan bir kısmında destek sunulacaktır.
AVRCP 1.3 Profili
Android 4.3, Bluetooth AVRCP 1.3 için yerleşik destek ekler. Böylece uygulamalarınız, uzaktan yayın yapan medya cihazlarıyla daha zengin etkileşimler destekleyebilir. Medya oynatıcı gibi uygulamalar, Android 4.0'ta kullanıma sunulan uzaktan kumanda istemci API'leri aracılığıyla AVRCP 1.3'ten yararlanabilir. Uygulamalar artık Bluetooth üzerinden bağlı uzaktan kumandalarda oynatma denetimlerini göstermenin yanı sıra parça adı, besteci ve diğer medya meta verileri gibi meta verileri de iletebilir.
AVRCP 1.3 için platform desteği, Google ve Broadcom tarafından Android 4.2'de kullanıma sunulan Bluedroid Bluetooth yığınına dayanır. Nexus cihazlarda ve A2DP/AVRCP özelliği sunan diğer Android uyumlu cihazlarda hemen destek alabilirsiniz.
Kısıtlanmış Profiller için Destek
Android 4.3, çok kullanıcılı özelliğini kısıtlanmış profiller içeren tabletlere genişletiyor. Bu özellik, kullanıcıları ve yeteneklerini tek bir cihazda yönetmenin yeni bir yoludur. Kısıtlanmış profiller sayesinde tablet sahipleri, her kullanıcı için hızlıca ayrı ortamlar oluşturabilir ve bu ortamlarda bulunan uygulamalarda daha ayrıntılı kısıtlamalar yönetebilir. Kısıtlanmış profiller, arkadaşlar ve aile üyeleri, misafir kullanıcılar, kiosklar, satış noktası cihazları ve daha fazlası için idealdir.
Kısıtlanmış her profil, kendi yerel depolama alanı, ana ekranları, widget'ları ve ayarlarıyla birbirinden bağımsız ve güvenli bir alan sunar. Kullanıcıların aksine, profiller tablet sahibinin ortamından, sahibin yüklü uygulamalarına ve sistem hesaplarına göre oluşturulur. Sahibi, yeni profilde hangi yüklü uygulamaların etkinleştirileceğini kontrol eder ve sahibin hesaplarına erişim varsayılan olarak devre dışıdır.
Oturum açma, tercihler veya diğer kullanımlar için sahibin hesaplarına erişmesi gereken uygulamalar, manifest özelliğini tanımlayarak bu özelliği etkinleştirebilir. Sahibi de bu uygulamaları profil yapılandırma ayarlarından inceleyip yönetebilir.
Kısıtlanmış profiller, geliştiricilere kullanıcılarına daha fazla değer ve kontrol sunmanın yeni bir yolunu sunar. Uygulama kısıtlamaları (uygulamanız tarafından desteklenen içerik veya özellik kontrolleri) uygulayabilir ve profil yapılandırma ayarlarında tablet sahiplerine reklamını yapabilirsiniz.
Önceden tanımlanmış doğru/yanlış, seçim ve çoklu seçim türlerini kullanarak uygulama kısıtlamalarını doğrudan profil yapılandırma ayarlarına ekleyebilirsiniz. Daha fazla esneklik isterseniz istediğiniz türde kısıtlamalar sunmak için profil yapılandırma ayarlarından kendi kullanıcı arayüzünüzü bile başlatabilirsiniz.
Uygulamanız bir profilde çalışırken, sahip tarafından yapılandırılmış kısıtlamaları kontrol edebilir ve uygun şekilde uygulayabilir. Örneğin, bir medya uygulaması, sahibin profil için bir olgunluk düzeyi belirlemesine olanak tanıyan bir kısıtlama sunabilir. Uygulama, çalışma zamanında olgunluk ayarını kontrol edebilir ve ardından içeriği tercih edilen olgunluk düzeyine göre yönetebilir.
Uygulamanız kısıtlanmış profillerde kullanılmak üzere tasarlanmadıysa bu özelliği tamamen devre dışı bırakabilirsiniz. Böylece uygulamanız hiçbir kısıtlanmış profilde etkinleştirilemez.
Optimize Konum ve Sensör Özellikleri
Google Play Hizmetleri, uygulamalarınızda kullanabileceğiniz gelişmiş konum API'leri sunar. Android 4.3, desteklenen cihazlarda pil kullanımını en aza indiren yeni donanım ve yazılım özellikleriyle bu API'leri optimize eder.
Donanım coğrafi sınırlama, konum hesaplamasını yazılım yerine cihaz donanımında gerçekleştirerek güç verimliliği için optimizasyon yapar. Donanım coğrafi sınırlamayı destekleyen cihazlarda Google Play Hizmetleri coğrafi sınır API'leri, cihaz hareket halindeyken pil tasarrufu yapmak için bu optimizasyondan yararlanabilir.
Yalnızca kablosuz ağ taraması modu, kullanıcıların kablosuz ağa bağlanmadan kablosuz ağ taramasını açık tutmasına olanak tanıyan yeni bir platform optimizasyonudur. Bu sayede, pil tasarrufu sağlarken konum doğruluğu artırılabilir. Konum hizmetleri için kablosuz ağa ihtiyaç duyan uygulamalar artık kullanıcılardan kablosuz ağ gelişmiş ayarlarından yalnızca tarama modunu etkinleştirmelerini isteyebilir. Yalnızca kablosuz tarama modu, cihaz donanımına bağlı değildir ve Android 4.3 platformunun bir parçası olarak kullanılabilir.
Yeni sensör türleri, uygulamaların sensör ölçümlerini daha iyi yönetmesine olanak tanır. Oyun dönme vektörü, oyun geliştiricilerin manyetik girişimden endişe etmeden cihazın dönüşünü algılamasını sağlar. Kalibre edilmemiş jiroskop ve kalibre edilmemiş manyetometre sensörleri, ham ölçümlerin yanı sıra uygulamalara yönelik tahmini önyargıları da raporlar.
Yeni donanım özellikleri Nexus 7 (2013) ve Nexus 4 cihazlarda zaten mevcuttur. Tüm cihaz üreticileri veya yonga seti tedarikçileri bu özellikleri cihazlarına ekleyebilir.
Yeni Medya Özellikleri
Modüler DRM çerçevesi
Android 4.3, yeni nesil medya hizmetlerinin ihtiyaçlarını karşılamak için medya uygulaması geliştiricilerine MPEG DASH (HTTP üzerinden Dinamik Adaptif Akış, ISO/IEC 23009-1) gibi kendi yayın protokollerine DRM'yi daha kolay entegre etmelerini sağlayan bir modüler DRM çerçevesi sunar.
Medya DRM çerçevesi, yeni API'lerin ve mevcut API'lerdeki geliştirmelerin bir kombinasyonuyla lisanslama ve temel hazırlığı yönetme, düşük düzeyli codec'lere erişme ve şifrelenmiş medya verilerini çözme için entegre bir hizmet grubu sağlar. Yeni MediaExtractor API, DASH medyası için PSSH meta verilerini almanızı sağlar. Medya DRM çerçevesini kullanan uygulamalar, lisans sunucusuyla ağ iletişimini yönetir ve içerik kitaplığından şifrelenmiş verilerin aktarılmasını yönetir.
VP8 kodlayıcı
Android 4.3, çerçeve ve yerel API'lerden erişilebilen VP8 kodlaması için yerleşik destek sunar. Yerel API'leri kullanan uygulamalar için platform, VP8 profillerini ve seviyelerini desteklemek amacıyla OpenMAX 1.1.2 uzantı başlıklarını içerir. VP8 kodlama desteği; hedef bit hızı, hız kontrolü, kare hızı, jeton bölme, hatalara karşı dayanıklılık, yeniden oluşturma ve döngü filtreleri ayarlarını içerir. Platform API'si, çeşitli biçimlerde VP8 kodlayıcı desteği sunar. Böylece içeriğiniz için en iyi biçimden yararlanabilirsiniz.
VP8 kodlaması, Android 4.3 yüklü tüm uyumlu cihazlarda yazılım olarak kullanılabilir. Platform, en yüksek performans için uygun cihazlarda donanım hızlandırmalı VP8 kodlamayı da destekler.
Bir yüzeyden video kodlama
Android 4.3'ten itibaren, video kodlayıcının girişi olarak bir yüzey kullanabilirsiniz. Örneğin, artık arabellekler arasında kopyalama yapmak yerine bir akışı OpenGL ES yüzeyinden kodlayıcıya yönlendirebilirsiniz.
Medya birleştirme aracı
Uygulamalar, temel ses ve video akışlarını tek bir çıkış dosyasında birleştirmek için yeni medya birleştirici API'lerini kullanabilir. Şu anda uygulamalar tek bir MPEG-4 ses akışını ve tek bir MPEG-4 video akışını tek bir MPEG-4 çıkış dosyasında çoklu akışa dönüştürebilir. Yeni API'ler, Android 4.2'de kullanıma sunulan medya çoklu akış ayırma API'lerinin eşdeğeridir.
Uzaktan kumanda istemcilerinde oynatma ilerleme durumu ve kaydırma
Android 4.0'tan beri medya oynatıcılar ve benzer uygulamalar, cihaz kilit ekranı, bildirimler ve Bluetooth üzerinden bağlı uzaktan cihazlar gibi uzaktan kumanda istemcilerinden oynatma kontrolleri sunabiliyor. Android 4.3'ten itibaren bu uygulamalar, uzaktan kumanda istemcileri aracılığıyla oynatma ilerlemesini ve hızını da gösterebilir ve belirli bir oynatma konumuna atlama komutları alabilir.
Güzel Uygulamalar Geliştirmenin Yeni Yolları
Bildirimlere erişim
Bildirimler, kullanıcıların sistemdeki tüm bilgileri ve güncellemeleri tek bir yerde görmesine olanak tanıdığı için uzun zamandır popüler bir Android özelliğidir. Android 4.3'te uygulamalar, kullanıcının izniyle bildirim akışını gözlemleyebilir ve bildirimleri Bluetooth üzerinden bağlı yakındaki cihazlara göndermek de dahil olmak üzere istedikleri şekilde görüntüleyebilir.
Bildirim dinleyicisi hizmeti kaydettirmenize ve kullanıcının izniyle bildirimleri durum çubuğunda gösterildiği şekilde almanıza olanak tanıyan yeni API'ler aracılığıyla bildirimlere erişebilirsiniz. Bildirimler, kaynak uygulama, gönderim zamanı, içerik görünümü ve stili ve öncelik hakkındaki tüm ayrıntılarla birlikte size eksiksiz olarak gönderilir. Bildirimlerdeki ilgi alanı alanlarını değerlendirebilir, uygulamanızdan işlem yapabilir veya bağlam ekleyebilir ve bunları istediğiniz şekilde yönlendirebilirsiniz.
Yeni API, bir bildirim eklendiğinde, güncellendiğinde ve kaldırıldığında (kullanıcı tarafından kapatılması veya kaynak uygulama tarafından geri çekilmesi nedeniyle) geri çağırma işlevi sunar. Bildirime veya işlemlerine bağlı tüm intent'leri başlatabilir ve bildirimi sistemden kapatabilirsiniz. Böylece uygulamanız, bildirimler için eksiksiz bir kullanıcı arayüzü sağlayabilir.
Hangi uygulamaların bildirim alabileceğinin kontrolü kullanıcılarda kalır. Bildirim erişimi olan uygulamaları görmek için Ayarlar'a bakabilir ve gerektiğinde erişimi etkinleştirebilir veya devre dışı bırakabilir. Bildirim erişimi varsayılan olarak devre dışıdır. Uygulamalar, yükleme işleminden sonra dinleyici hizmetini etkinleştirmek için kullanıcıyı doğrudan Ayarlar'a yönlendirmek üzere yeni bir Intent kullanabilir.
Yer paylaşımlarını görüntüleme
Artık temel düzen hiyerarşisini bozmadan geçici bir görünüm hiyerarşisi veya geçici animasyon efektleri oluşturmak için Görünümler ve Görünüm Grupları'nın üzerine şeffaf yer paylaşımları oluşturabilirsiniz. Yer paylaşımları, özellikle bir görünümü kapsayıcısının dışına kaydırma veya görünüm hiyerarşisini etkilemeden ekrandaki öğeleri sürükleme gibi animasyonlar oluşturmak istediğinizde kullanışlıdır.
Optik sınırlar düzen modu
Yeni bir düzen modu, ViewGroups içindeki Görünümlerin konumunu klip sınırlarına göre değil, optik sınırlarına göre yönetmenize olanak tanır. Klip sınırları, widget'ın gerçek dış sınırını temsil ederken yeni optik sınırlar, widget'ın klip sınırları içinde göründüğü yeri tanımlar. Gölge ve parıltı gibi dış görsel efektler kullanan widget'ları doğru şekilde hizalamak için optik sınırlar düzen modunu kullanabilirsiniz.
Özel rotasyon animasyon türleri
Uygulamalar artık cihaz döndürüldüğünde bir pencerede kullanılan çıkış ve giriş animasyon türlerini tanımlayabilir. Pencere özelliklerini, atlama kesme, geçiş veya standart pencere rotasyonunu etkinleştirecek şekilde ayarlayabilirsiniz. Sistem, pencere tam ekran olduğunda ve diğer pencereler tarafından kaplanmadığında özel animasyon türlerini kullanır.
Ekran yönü modları
Uygulamalar, cihaz döndürüldüğünde etkinliklerin doğru yönde gösterilmesini sağlamak için etkinlikler için yeni yön modları ayarlayabilir. Ayrıca uygulamalar, ekranı mevcut yönüne kilitlemek için yeni bir mod kullanabilir. Bu, kamerayı kullanan ve video çekerken döndürmeyi devre dışı bırakmak isteyen uygulamalar için kullanışlıdır.
Hızlı yanıtları işleme alma amacı
Android 4.3, tüm uygulamaların hızlı yanıtları (kullanıcı tarafından gelen bir aramaya yanıt olarak gönderilen kısa mesajlar) işlemesine olanak tanıyan yeni bir herkese açık Intent'i kullanıma sunar. Bu sayede aramayı yanıtlamak veya cihazın kilidini açmak gerekmez. Uygulamanız, amacı dinleyebilir ve mesajı mesajlaşma sisteminiz üzerinden arayan kişiye gönderebilir. Intent, alıcının (arayan) yanı sıra mesajın kendisini de içerir.
Uluslararası Kullanıcılar İçin Destek
RTL iyileştirmeleri
Android 4.3, ProgressBar/Spinner ve ExpandableListView gibi çerçeve kullanıcı arayüzü widget'larında RTL performans iyileştirmeleri ve daha geniş RTL desteği içerir. uiautomatorviewer
aracı aracılığıyla daha fazla hata ayıklama bilgisi gösterilir. Ayrıca bildirimler, gezinme çubuğu ve işlem çubuğu gibi daha fazla sistem kullanıcı arayüzü bileşeni artık sağdan sola doğru yazılan dilleri desteklemektedir.
Sağdan sola yazılan komut dosyalarında sistem genelinde daha iyi bir deneyim sunmak için artık daha fazla varsayılan sistem uygulaması (ör. Başlatıcı, Hızlı Ayarlar, Telefon, Kişiler, Kurulum Sihirbazı, Saat, İndirmeler) sağdan sola düzeni destekliyor.
Yerelleştirme için yardımcı programlar
Android 4.3, daha iyi RTL dizelerinin oluşturulması ve yerelleştirilmiş kullanıcı arayüzlerinizin test edilmesi için yeni yardımcı programlar ve API'ler de içerir. Yeni BidiFormatter sınıfı, Unicode dizelerini sarmalamak için basit bir API sağlar. Böylece, RTL yazı dili verileri LTR yerel ayarı mesajlarında amaçlandığı gibi gösterilir ve bunun tersi de geçerlidir. Bu yardımcı programı uygulamalarınızda daha geniş bir şekilde kullanabilmeniz için BidiFormatter API, Android SDK'sındaki Destek Paketi aracılığıyla artık önceki platform sürümlerinde de kullanılabilir.
Android 4.3, yerel ayarlarda tarih biçimlendirmesini yönetmenize yardımcı olmak için yeni bir getBestDateTimePattern() yöntemi içerir. Bu yöntem, belirttiğiniz yerel ayar için Unicode UTS tarihinin mümkün olan en iyi yerelleştirilmiş biçimini otomatik olarak oluşturur. Bu, kullanıcılarınıza daha yerelleştirilmiş bir deneyim sunmanın kullanışlı bir yoludur.
Android 4.3, uygulamanızı diğer yerel ayarlarda daha kolay test etmenize yardımcı olmak için yeni bir geliştirici seçeneği olarak sözde yerel ayarlar sunar. Sanal yerel ayarlar, bir yerel ayar veya dil grubuyla ilişkili dili, yazı sistemini ve görüntüleme özelliklerini simüle eder. Şu anda Aksanlı İngilizce için bir sözde yerel ayar ile test yapabilirsiniz. Bu, kullanıcı arayüzünüzün çeşitli Avrupa dillerinde kullanılan yazım aksanları ve karakterlerle nasıl çalıştığını görmenizi sağlar.
Erişilebilirlik ve UI Otomasyonu
Android 4.3'ten itibaren erişilebilirlik hizmetleri, klavye kısayollarını işlemek veya hareket tabanlı girişle gezinme eşlemesi sağlamak gibi önemli etkinlikleri gözlemleyip filtreleyebilir. Hizmet, etkinlikleri alır ve sisteme veya diğer yüklü uygulamalara aktarılmadan önce gerektiği gibi işleyebilir.
Erişilebilirlik hizmetleri, hizmetlerinin neler yapabileceğini ve hangi platform özelliklerini kullandığını açıklamak için yeni özellik özellikleri tanımlayabilir. Örneğin, önemli etkinlikleri filtreleme, pencere içeriğini alma, dokunarak keşfetme özelliğini etkinleştirme veya web erişilebilirlik özelliklerini etkinleştirme gibi özellikleri belirtebilirler. Bazı durumlarda, hizmetlerin ilgili platform özelliklerine erişebilmesi için bir özellik özelliğini bildirmesi gerekir. Sistem, kullanıcılar için etkinleştirme iletişim kutusu oluşturmak amacıyla hizmetin özellik özelliklerini kullanır. Böylece kullanıcılar, özellikleri kullanıma sunulmadan önce görebilir ve kabul edebilir.
Android 4.3'teki erişilebilirlik çerçevesini temel alan yeni UI otomasyon çerçevesi, kullanıcı işlemlerini simüle ederek ve ekran içeriğini inceleyerek testlerin cihazın kullanıcı arayüzüyle etkileşim kurmasına olanak tanır. Kullanıcı arayüzü otomasyon çerçevesi sayesinde temel işlemleri gerçekleştirebilir, ekranın döndürülmesini ayarlayabilir, giriş etkinlikleri oluşturabilir, ekran görüntüsü alabilir ve daha pek çok şey yapabilirsiniz. Birden fazla uygulamayı kapsayan işlemler veya sıralamalar da dahil olmak üzere gerçekçi kullanıcı senaryolarında testleri otomatikleştirmenin güçlü bir yoludur.
Kurumsal ve Güvenlik
WPA2 Enterprise ağları için kablosuz ağ yapılandırması
Uygulamalar artık WPA2 kurumsal erişim noktalarına bağlantılar için ihtiyaç duydukları kablosuz ağ kimlik bilgilerini yapılandırabilir. Geliştiriciler, kuruluşta kullanılan kimlik doğrulama yöntemleri için Genişletilebilir Kimlik Doğrulama Protokolü (EAP) ve Kapsüllenmiş EAP (2. Aşama) kimlik bilgilerini yapılandırmak üzere yeni API'leri kullanabilir. Kablosuz ağa erişip kablosuz ağda değişiklik yapma iznine sahip uygulamalar, çeşitli EAP ve 2. Aşama kimlik doğrulama yöntemleri için kimlik doğrulama kimlik bilgilerini yapılandırabilir.
SELinux ile güçlendirilmiş Android korumalı alanı
Android artık UID tabanlı uygulama korumalı alanını geliştirmek için Linux çekirdeğinde zorunlu erişim denetimi (MAC) sistemi olan SELinux'u kullanıyor. Bu, işletim sistemini olası güvenlik açıklarına karşı korur.
KeyChain geliştirmeleri
KeyChain API artık uygulamaların sistem genelindeki anahtarların cihaz için bir donanım güven köküne bağlı olduğunu doğrulamasına olanak tanıyan bir yöntem sunmaktadır. Bu sayede, kök veya çekirdek güvenliği ihlal edilse bile cihazdan dışa aktarılamayan özel anahtarlar oluşturabilir veya saklayabilirsiniz.
Android Anahtar Deposu Sağlayıcısı
Android 4.3, uygulamaların özel kullanıma yönelik anahtarlar oluşturmasına olanak tanıyan bir anahtar deposu sağlayıcısı ve API'ler sunar. Uygulamalar, API'leri kullanarak diğer uygulamalar tarafından görülemeyecek veya kullanılamayacak ve herhangi bir kullanıcı etkileşimi olmadan anahtar deposuna eklenebilecek özel anahtarlar oluşturabilir veya saklayabilir.
Anahtar deposu sağlayıcı, sistem genelindeki kimlik bilgileri için KeyChain API'nin sağladığı güvenlik avantajlarını (ör. kimlik bilgilerini bir cihaza bağlama) sunar. Anahtar deposundaki özel anahtarlar cihazdan dışa aktarılamaz.
Android uygulamalarından Setuid'i kısıtlama
/system
bölümü artık zygote tarafından oluşturulan işlemler için nosuid
olarak monte edilir. Bu da Android uygulamalarının setuid
programlarını çalıştırmasını engeller. Bu sayede, kök saldırı yüzeyi ve olası güvenlik açıklarının ortaya çıkma olasılığı azaltılır.
Performansı Analiz Etmenin Yeni Yolları
Gelişmiş Systrace günlük kaydı
Android 4.3, Systrace aracının daha kolay kullanılan ve uygulamanızın performansını profillemek için daha fazla bilgi türüne erişim sağlayan gelişmiş bir sürümünü destekler. Artık donanım modülleri, çekirdek işlevleri, Dalvik sanal makinesi (ör. çöp toplama, kaynak yükleme) ve daha fazlasından izleme verileri toplayabilirsiniz.
Android 4.3, Systrace başlangıç/bitiş etkinliklerini kullanarak izlenecek belirli kod bölümlerini işaretlemek için uygulamalarınızda kullanabileceğiniz yeni Trace API'leri de içerir. Kodun işaretli bölümleri yürütüldüğünde sistem, başlangıç/bitiş etkinliklerini izleme günlüğüne yazar. Uygulamanızın performansı üzerinde çok az bir etkisi olduğundan, raporlanan zamanlamalar uygulamanızın ne yaptığını doğru bir şekilde gösterir.
Uygulamaya özgü etkinlikleri Systrace çıkış dosyasında bir zaman çizelgesinde görselleştirebilir ve etkinlikleri diğer çekirdek ve kullanıcı alanı izleme verileri bağlamında analiz edebilirsiniz. Özel uygulama bölümleri, mevcut Systrace etiketleriyle birlikte uygulamalarınızın performansını ve davranışını anlamanın yeni yollarını sunabilir.
Ekran üzerinde GPU profili oluşturma
Android 4.3, uygulamanızın performansını analiz etmenize ve herhangi bir cihaz veya emülatördeki oluşturma sorunlarını belirlemenize yardımcı olacak yeni geliştirici seçenekleri ekler.
Profil GPU oluşturma seçeneğinde artık uygulama çalışırken uygulamanızın etkili kare hızını ekranda görselleştirebilirsiniz. Profilleme verilerini ekranda çubuk veya çizgi grafikler olarak görüntülemeyi seçebilirsiniz. Bu grafiklerde, çizim komutları oluşturmak (mavi), komutları göndermek (turuncu) ve komutların tamamlanmasını beklemek (sarı) için harcanan süre renklerle gösterilir. Sistem, ekrandaki grafikleri sürekli olarak güncelleyerek gezinme çubuğu ve bildirim çubuğu da dahil olmak üzere her görünür etkinlik için bir grafik gösterir.
Yeşil bir çizgi, oluşturma işlemleri için 16 ms eşiğini vurgular. Böylece, uygulamanızın etkili kare hızını 60 fps hedefine göre değerlendirebilirsiniz (çünkü saniyenin 1/60'ı yaklaşık 16 ms'ye eşittir). Yeşil çizgiyi aşan işlemler görürseniz Systrace ve diğer araçları kullanarak bunları daha ayrıntılı bir şekilde analiz edebilirsiniz.
Android 4.2 ve sonraki sürümlerin yüklü olduğu cihazlarda geliştirici seçenekleri varsayılan olarak gizlidir. Uyumlu bir Android cihazda Ayarlar > Telefon hakkında > Derleme numarası'na 7 kez dokunarak bu bilgileri dilediğiniz zaman gösterebilirsiniz.
Dosya URI'leri için StrictMode uyarısı
StrictMode aracına en son eklenen özellik, uygulamanız sistemde veya başka bir uygulamada file://
URI'si gösterdiğinde uyarı veren bir politika kısıtlamasıdır. Bazı durumlarda, alıcı uygulamanın file://
URI yoluna erişimi olmayabilir. Bu nedenle, uygulamalar arasında dosya paylaşırken content://
URI'si (uygun izinle) kullanılmalıdır. Bu yeni politika, bu tür durumları tespit etmenize ve düzeltmenize yardımcı olur. Dosyaları depolamak ve diğer uygulamalara göstermek için kullanışlı bir yol arıyorsanız Destek Kitaplığı'nda bulunan FileProvider
içerik sağlayıcıyı kullanmayı deneyin.
Android 4.2
Jelly Bean'in en son sürümü olan Android 4.2'ye hoş geldiniz.
Android 4.2, performans optimizasyonları, yenilenmiş bir sistem kullanıcı arayüzü ve kullanıcılar ile geliştiriciler için harika yeni özellikler içerir. Bu dokümanda, geliştiriciler için yeni olan özellikler kısaca açıklanmaktadır.
Yeni geliştirici API'lerini ayrıntılı olarak incelemek için Android 4.2 API'leri belgesine bakın.
Kullanıcılara yönelik yeni Jelly Bean özellikleri hakkında daha fazla bilgiyi www.android.com adresinde bulabilirsiniz.
Daha hızlı, daha akıcı ve daha duyarlı
Android 4.2, Jelly Bean'de bulunan performans iyileştirmelerini (vsync zamanlaması, üçlü arabelleğe alma, düşük dokunma gecikmesi ve CPU giriş desteği) temel alır ve Android'i daha da hızlandıran yeni optimizasyonlar ekler.
Donanım hızlandırmalı 2D oluşturma aracında yapılan iyileştirmeler, kaydırma ve kaydırma gibi yaygın animasyonların daha akıcı ve hızlı olmasını sağlar. Özellikle katmanlar, kırpma ve belirli şekiller (yuvarlatılmış dikdörtgenler, daireler ve ovaller) için çizim optimize edilir.
Çeşitli WebView oluşturma optimizasyonları, web sayfalarında kaydırma işlemini daha sorunsuz ve titreşimsiz hale getirir.
Android'in Renderscript Compute, doğrudan mobil cihaz GPU'sunda çalışacak şekilde taşınan ilk hesaplama platformudur. Mümkün olduğunda otomatik olarak GPU hesaplama kaynaklarından yararlanarak grafik ve resim işleme performansını önemli ölçüde artırır. Desteklenen bir cihazda Renderscript kullanan tüm uygulamalar, yeniden derlemeden bu GPU entegrasyonundan hemen yararlanabilir.
Rafine ve yenilenmiş kullanıcı arayüzü
Android 4.2, Jelly Bean kullanıcı deneyimini iyileştirir ve durum çubuğu, sistem çubuğu ve bildirimler penceresi gibi tanıdık Android kullanıcı arayüzü kalıplarını tüm tabletlere getirir.
Artık tüm ekran boyutlarında üstte durum çubuğu bulunur. Bu çubuk, bildirimlere ve yeni bir Hızlı Ayarlar menüsüne açılır menüden erişmenizi sağlar. Alt tarafta, her iki elinizle de kolayca erişebileceğiniz düğmelerin bulunduğu tanıdık sistem çubuğu görünür. Uygulama tepsisi de tüm ekran boyutlarında kullanılabilir.
Tek tablet, çok kullanıcı
Artık birden fazla kullanıcı tek bir Android tableti paylaşabilir. Her kullanıcı, özel kullanıcı alanına kolayca erişebilir. Kullanıcılar kilit ekranından tek dokunuşla alanlarına geçebilir.
Android, çok kullanıcılı bir cihazda her kullanıcıya ayrı bir ortam sunar. Bu ortamda kullanıcıya özel taklit SD kart depolama alanı da bulunur. Kullanıcıların kendi ana ekranları, widget'ları, hesapları, ayarları, dosyaları ve uygulamaları da vardır. Sistem bu öğeleri ayrı tutar. Tüm kullanıcılar temel sistem hizmetlerini paylaşır ancak sistem, her kullanıcının uygulamalarının ve verilerinin izole kalmasını sağlar. Bu durumda, birden fazla kullanıcının her birinin kendi Android cihazı vardır.
Kullanıcılar kendi ortamlarında diledikleri zaman uygulama yükleyip kaldırabilir. Google Play, depolama alanından tasarruf etmek için bir APK'yı yalnızca cihazda başka bir kullanıcı tarafından yüklenmemişse indirir. Uygulama zaten yüklüyse Google Play, yeni kullanıcının yüklemesini normal şekilde kaydeder ancak uygulamanın başka bir kopyasını indirmez. Sistem, kullanıcıya özel bir veri dizini de dahil olmak üzere her kullanıcı için yeni bir örnek oluşturduğundan birden fazla kullanıcı APK'nın aynı kopyasını çalıştırabilir.
Geliştiriciler için çoklu kullanıcı desteği şeffaftır. Uygulamalarınızın, çok kullanıcılı bir ortamda normal şekilde çalışması için özel bir şey yapmasına gerek yoktur ve mevcut veya yayınlanmış APK'larınızda yapmanız gereken bir değişiklik yoktur. Sistem, uygulamanızı her kullanıcı alanında tek kullanıcılı bir ortamda olduğu gibi yönetir.
Kullanıcılarla etkileşim kurmanın yeni yolları
Kilit ekranı widget'ları
Android 4.2'de kullanıcılar, kilidi açmak zorunda kalmadan favori uygulama içeriklerine anında erişmek için uygulama widget'larını doğrudan kilit ekranlarına yerleştirebilir. Kullanıcılar, yüklü uygulamalar tarafından sağlanan widget'lar arasından seçim yaparak beş adede kadar kilit ekranı widget'ı ekleyebilir. Kilit ekranı, her widget'ı kendi panelinde gösterir. Böylece kullanıcılar farklı panelleri ve widget'larını görüntülemek için ekranı sola ve sağa kaydırabilir.
Tüm uygulama widget'ları gibi kilit ekranı widget'ları da her tür içeriği gösterebilir ve doğrudan kullanıcı etkileşimini kabul edebilir. Tamamen bağımsız olabilirler (ör. müzik çalma kontrolleri sunan bir widget) veya kullanıcıların, gerektiğinde kilidini açarak uygulamanızdaki bir etkinliğe doğrudan atlamasına izin verebilirler.
Kilit ekranı widget'ları, geliştiriciler için kullanıcılarla etkileşim kurmanın yeni ve mükemmel bir yoludur. Bu reklamlar, içeriğinizi kullanıcıların sık göreceği bir konumda göstermenize olanak tanır ve kullanıcıları doğrudan uygulamanıza çekmek için daha fazla fırsat sunar.
Yeni bir uygulama widget'ı oluşturarak veya mevcut bir ana ekran widget'ını genişleterek bu yeni özellikten yararlanabilirsiniz. Uygulamanızda zaten ana ekran widget'ları varsa bunları kilit ekranına en az değişiklikle ekleyebilirsiniz. Kullanıcılara en iyi deneyimi sunmak için widget'ı, mümkün olduğunda kilit ekranının tamamını kullanacak ve gerektiğinde daha küçük ekranlarda yeniden boyutlandıracak şekilde güncelleyebilirsiniz. Widget'larınıza, kilit ekranında özellikle yararlı veya kullanışlı olabilecek özellikler de ekleyebilirsiniz.
Daydream
Daydream, kullanıcının cihazı yuvaya takıldığında veya şarj edildiğinde başlayan etkileşimli bir ekran koruyucu modudur. Bu modda sistem, cihaz ekran koruyucusu olarak bir Daydream'i (yüklü bir uygulama tarafından sağlanan uzaktan içerik hizmeti) başlatır. Kullanıcılar, Ayarlar uygulamasından Daydream'i etkinleştirebilir ve ardından gösterilecek Daydream'i seçebilir.
Daydream'ler, canlı duvar kağıtlarının ve ana ekran widget'larının en iyi özelliklerini bir araya getirir ancak daha güçlüdür. Bu reklamlar, fotoğrafları çevirme, ses veya video oynatma ya da tek bir dokunuşla doğrudan uygulamanıza geçme gibi kullanıcı etkileşimleriyle her türlü içeriği tamamen yeni bir bağlamda sunmanıza olanak tanır.
Bir cihaz şarj olurken veya yuvaya takıldığında otomatik olarak başlatılabilen Daydream'ler, uygulamanıza özel donanım gerektirmeden yeni kullanıcı deneyimi türlerini (ör. dinlenme veya sergi modu, demo veya kiosk modu ve "çekici mod") desteklemenin mükemmel bir yolunu da sunar.
Daydream'ler Aktivite'lere benzer ve bir kullanıcı arayüzü hiyerarşisini oluşturmaktan (RemoteViews kullanılmadan) doğrudan Canvas, OpenGL, SurfaceTexture ve daha fazlasını kullanarak çizmeye kadar Aktivite'nin yapabileceği her şeyi yapabilir. Video ve ses oynatabilir, hatta doğrudan kullanıcı etkileşimini kabul edebilirler. Ancak, Hayal Etmeler etkinlik olmadığından arka yığını etkilemez, Son Kullanılanlar'da görünmez ve doğrudan uygulamanızdan başlatılamaz.
Bir Hayal Kurma etkinliği uygulamak kolaydır. Uygulamanızın diğer bölümleri için daha önce oluşturduğunuz kullanıcı arayüzü bileşenlerinden ve kaynaklarından yararlanabilirsiniz. Uygulamanızda birden fazla Hayal Kurma etkinliği sağlayabilir ve her biri için farklı içerik ve görüntüleme ayarları sunabilirsiniz.
Harici ekran desteği
Android 4.2, yansıtmanın çok ötesine geçen harici ekranlar için platform desteği sunar. Uygulamalar artık Android cihaza bağlı bir veya daha fazla ekranda benzersiz içerikler hedefleyebilir. Uygulamalar, kullanıcılara yeni etkileşim ve eğlence deneyimleri sunmak için bu teknolojiden yararlanabilir.
Görüntülü reklam yöneticisi
Uygulamalar, yeni bir ekran yöneticisi sistem hizmeti aracılığıyla ekranlarla etkileşim kurar. Uygulamanız ekranları sayabilir ve boyut, yoğunluk, görünen ad, kimlik, güvenli video desteği ve daha fazlası dahil olmak üzere her birinin özelliklerini kontrol edebilir. Uygulamanız, harici ekranlardaki içeriğinizi daha iyi yönetmek için ekran eklendiğinde, kaldırıldığında veya ekranların özellikleri değiştiğinde geri arama da alabilir.
Sunu penceresi
Çerçeve, harici bir ekranda içerik göstermeyi kolaylaştırmak için Sunu adlı yeni bir kullanıcı arayüzü nesnesi sağlar. Bu nesne, uygulamanızın içeriğinin belirli bir harici ekrandaki penceresini temsil eden bir iletişim kutusu türüdür. Uygulamanız yalnızca kullanılacak ekranı, pencere için bir temayı ve gösterilecek benzersiz içeriği sağlar. Sunum, kaynakların şişirilmesini ve içeriğinizin hedeflenen ekranın özelliklerine göre oluşturulmasını sağlar.
Sunum, uygulamanıza uzaktan görüntüleme penceresi ve içeriği üzerinde tam kontrol sağlar ve bu pencereyi tuşa basma, hareketler, hareket etkinlikleri gibi kullanıcı giriş etkinliklerine göre yönetmenize olanak tanır. Sunuda kullanıcı arayüzü oluşturmak ve içerik oluşturmak için normal araçların tümünü kullanabilirsiniz. Örneğin, rastgele bir görünüm hiyerarşisi oluşturabilir, aktarılan içerik veya kamera önizlemeleri için doğrudan pencereye çizim yapmak üzere SurfaceView veya SurfaceTexture'yi kullanabilirsiniz.
Tercih edilen görüntüleme seçimi
Birden fazla harici ekran varsa ihtiyacınız olan kadar sunu oluşturabilirsiniz. Her sunum, belirli bir ekranda benzersiz içerikler gösterir. Çoğu durumda içeriğinizi yalnızca tek bir harici ekranda göstermek isteyebilirsiniz. Ancak bu ekran, her zaman sunum içeriği için en uygun ekran olmalıdır. Bu nedenle sistem, uygulamanızın kullanılacak en iyi ekranı seçmesine yardımcı olabilir.
Kullanılacak en iyi ekranı bulmak için uygulamanız, ekran yöneticisini sistemin tercih edilen sunu ekranı için sorgulayabilir ve bu ekran değiştiğinde geri arama alabilir. Alternatif olarak, sistem video yolu değiştiğinde bildirim almak için Android 4.2'de genişletilen medya yönlendirici hizmetini kullanabilirsiniz. Uygulamanız, tercih edilen bir sunu ekranı bağlanana kadar varsayılan olarak ana etkinlikte içerik gösterebilir. Bu durumda, tercih edilen ekrandaki sunu içeriğine otomatik olarak geçebilir. Uygulamalarınız, standart ekran seçimi kullanıcı arayüzü sunmak için medya yönlendiricinin MediaRouteActionProvider ve MediaRouteButton öğelerini de kullanabilir.
Korumalı içerik
Görüntü API'si, artık korumalı veya şifrelenmiş içerikleri işleyen uygulamalarda bağlı ekranların güvenli video özelliklerini raporluyor. Uygulamanız, güvenli bir video çıkışı veya korumalı grafik arabellekleri sunup sunmadığını öğrenmek için ekranı sorgular ve ardından içeriği görüntülenebilir hale getirmek için uygun içerik akışını veya kod çözme yöntemini seçer. SurfaceView nesnelerinde ek güvenlik için uygulamanız, içeriklerin yansıtıldığında bile ekran görüntülerinde veya güvenli olmayan bir ekran çıkışında hiçbir zaman görünmemesi gerektiğini belirten güvenli bir işaret ayarlayabilir.
Kablosuz ekran
Android 4.2'den itibaren, desteklenen cihazlardaki kullanıcılar Wi-Fi Ekran'ı (Miracast™ sertifika programına uygun bir eşler arası kablosuz ekran çözümü) kullanarak harici bir ekrana kablosuz olarak bağlanabilir. Kablosuz ekran bağlandığında kullanıcılar fotoğraflar, oyunlar, haritalar ve daha birçok içerik türünü büyük ekrana aktarabilir.
Uygulamalar, diğer harici ekranlarda olduğu gibi kablosuz ekranlardan da yararlanabilir. Bunun için ek işlem yapılması gerekmez. Sistem, ağ bağlantısını yönetir ve sunumunuzu veya diğer uygulama içeriklerinizi gerektiğinde kablosuz ekrana aktarır.
Yerel RTL desteği
Android 4.2, düzen yansıtma dahil olmak üzere sağdan sola (RTL) düzenler için tam yerel destek sunar. Yerel sağdan sola yazma desteği sayesinde, dilleri sağdan sola veya soldan sağa okunan tüm kullanıcılarınıza aynı mükemmel uygulama deneyimini sunabilirsiniz.
Kullanıcı sistem dilini sağdan sola yazılan bir yazım sistemine geçirdiğinde sistem artık hem okuma hem de karakter girişi için metin öğelerinin iki yönlü yansıtılmasına ek olarak uygulama kullanıcı arayüzü düzenlerinin ve tüm görüntü widget'larının otomatik olarak yansıtılmasını sağlıyor.
Uygulamanız, minimum düzeyde çabayla RTL düzen yansıtma özelliğinden yararlanabilir. Uygulamanın yansıtılmasını istiyorsanız uygulama manifest dosyanızda yeni bir özellik tanımlamanız ve tüm "sol/sağ" düzen özelliklerini yeni "başlangıç/bitiş" eşdeğerleriyle değiştirmeniz yeterlidir. Sistem daha sonra kullanıcı arayüzünüzün yansıtılmasını ve gösterilmesini uygun şekilde yönetir.
Android 4.2, uygulama kullanıcı arayüzünüz üzerinde hassas kontrol sahibi olabilmeniz için Görünüm bileşenlerinde düzen yönünü, metin yönünü, metin hizalamasını, yerçekimini ve yerel ayar yönünü yönetmenize olanak tanıyan yeni API'ler içerir. Hatta sağdan sola komut dosyası kullanılırken düzenin, çizilebilir öğelerin ve diğer kaynakların özel sürümlerini oluşturabilirsiniz.
Özel sağdan sola düzenlerinizde hata ayıklamanıza ve optimize etmenize yardımcı olmak için HierarchyViewer aracı artık hiyerarşideki tüm Görünümler için başlangıç/bitiş özelliklerini, düzen yönünü, metin yönünü ve metin hizalamasını görmenize olanak tanır.
Uluslararası diller için geliştirmeler
Android 4.2, uluslararası kullanıcılar için çeşitli yazı tipi ve karakter optimizasyonları içerir:
- Korece kullanıcılar için yeni bir yazı tipi seçeneği kullanıma sunuldu: Nanum (나눔글꼴) Gothic. Bu Unicode yazı tipi, özellikle Korece yazı için tasarlanmıştır.
- WebView'lerde gösterilen Japonca dikey metin için geliştirilmiş destek.
- Hintçe, Tayca, Arapça ve İbranice varsayılan yazı tipleri için yazı tipi aralığı ve konumlandırma iyileştirildi.
Varsayılan Android klavyesi, güncellenmiş bir sözlük grubu da içerir:
- Fransızca (iki heceli kelime desteğiyle), İngilizce ve Rusça için geliştirilmiş sözlükler
- Danca, Fince, Litvanca, Letonca, Lehçe, Slovence, Sırpça, İsveççe ve Türkçe için yeni sözlükler
Güzel kullanıcı arayüzleri oluşturmanın yeni yolları
İç içe yerleştirilmiş parçalar
Android 4.2, kullanıcı arayüzü bileşenleriniz üzerinde daha fazla kontrol sahibi olmak ve bunları daha modüler hale getirmek için parçaları parçaların içine yerleştirmenize olanak tanır. Yeni bir Fragment yöneticisi, herhangi bir Fragment için diğer Fragment'leri görünüm hiyerarşisinde alt düğüm olarak eklemenize olanak tanır.
İç içe yerleştirilmiş parçaları çeşitli şekillerde kullanabilirsiniz ancak bunlar özellikle dinamik ve yeniden kullanılabilir bir kullanıcı arayüzü bileşeninin içine dinamik ve yeniden kullanılabilir kullanıcı arayüzü bileşenleri uygulamak için kullanışlıdır. Örneğin, ViewPager'ı kullanarak sola ve sağa kaydırılan parçalar oluşturduysanız artık ViewPager'ın her bir parçasına parça ekleyebilirsiniz.
Uygulamanızda iç içe yerleştirilmiş Fragment'lerden daha geniş bir şekilde yararlanabilmeniz için bu özellik Android Destek Kitaplığı'nın en son sürümüne eklendi.
Erişilebilirlik
Sistem artık dokunma keşfi modundayken erişilebilirlik hizmetlerinin dokunma keşfi ile erişilebilirlik hareketlerini ayırt etmesine yardımcı oluyor. Kullanıcı ekrana dokunduğunda sistem, hizmeti genel bir dokunma etkileşiminin başladığı konusunda bilgilendirir. Ardından dokunma etkileşiminin hızını izler ve dokunma keşfi (yavaş) mi yoksa erişilebilirlik hareketi (hızlı) mi olduğunu belirler ve hizmeti bilgilendirir. Dokunma etkileşimi sona erdiğinde sistem hizmeti bilgilendirir.
Sistem, erişilebilirlik hizmetinin kullanıcının yaptığı bir işleme göre Hızlı Ayarlar menüsünü açmasına olanak tanıyan yeni bir genel erişilebilirlik seçeneği sunar. Android 4.2'ye Braille cihazlar için yeni bir erişilebilirlik geri bildirimi türü de eklendi.
Erişilebilirlik hizmetleri için Görünümlerin anlamını erişilebilirlik hizmetlerine açıklamak amacıyla çerçeve, bir Görünüm'ü başka bir Görünüm'ün etiketi olarak ilişkilendirmek için yeni API'ler sağlar. Her bir görünümün etiketi, AccessibilityNodeInfo aracılığıyla erişilebilirlik hizmetleri tarafından kullanılabilir.
HDR ile geliştirilmiş kamera
Android 4.2, daha iyi performans için yeni bir kamera donanım arayüzü ve ardışık düzen sunar. Desteklenen cihazlarda uygulamalar, yüksek dinamik aralık görüntüleme tekniklerini kullanarak resim çekmek için yeni bir HDR kamera sahne modu kullanabilir.
Ayrıca çerçeve artık uygulamaların kamera deklanşör sesinin devre dışı bırakılıp bırakılamayacağını kontrol etmesine olanak tanıyan bir API sağlıyor. Uygulamalar, kullanıcının sesi devre dışı bırakmasına veya standart deklanşör sesi yerine alternatif bir ses seçmesine izin verebilir. Bu, önerilen bir işlemdir.
Renderscript Hesaplama
Android 4.2'de Renderscript Compute, hesaplama işlemlerinde en yüksek performans için yeni komut dosyası özellikleri, yeni optimizasyonlar ve doğrudan GPU entegrasyonu sunar.
Filterscript
Filterscript, Renderscript'in çok çeşitli cihaz yonga setlerinde optimize edilmiş görüntü işlemeye odaklanan bir alt kümesidir. Geliştiriciler, standart Renderscript çalışma zamanı API'sini kullanarak görüntü işleme işlemlerini Filterscript'te yazabilir ancak CPU'lar, GPU'lar ve DSP'ler arasında daha geniş uyumluluk ve daha iyi optimizasyon sağlayan daha katı kısıtlamalar içinde yazmalıdır.
Filterscript, OpenGL ES kırıntı gölgelendiricileri için yazılabilecekler gibi basit görüntü işleme ve hesaplama işlemlerini donanımla hızlandırmak için idealdir. Donanıma daha az kısıtlama getirdiği için işlemleriniz daha fazla cihaz yonga seti türü için optimize edilir ve hızlandırılır. API düzeyi 17 veya üstünü hedefleyen tüm uygulamalar Filterscript'i kullanabilir.
Komut dosyası özellikleri
Android 4.2'de Renderscript, bir dizi komut dosyası içsel özelliği için destek ekler. Bu özellikler, yazmanız gereken kod miktarını azaltmak ve uygulamanızın mümkün olan en yüksek performans kazancını elde etmesini sağlamak için önceden uygulanmış hızlandırılmış filtreleme ilkelleridir.
Yerleşik özellikler; karışımlar, bulanıklık, renk matrisi, 3x3 ve 5x5 convolve, kanal başına arama tablosu ve Android YUV arabelleğinin RGB'ye dönüştürülmesi için kullanılabilir.
Komut dosyası grupları
Artık Renderscript komut dosyası grupları oluşturabilir ve hepsini tek bir komut dosyası parçasıymış gibi tek bir çağrıyla yürütebilirsiniz. Bu, Renderscript'in komut dosyalarının yürütülmesini, komut dosyaları tek tek yürütülüyor olsaydı yapamayacağı şekilde optimize etmesine olanak tanır.
Renderscript görüntü işleme karşılaştırmaları, yalnızca Galaxy Nexus cihazda CPU'da farklı Android platform sürümlerinde (Android 4.0, 4.1 ve 4.2) çalıştırılır.
Aynı Nexus 10 cihazda GPU + CPU ile çalıştırılan işlemleri yalnızca CPU ile çalıştırılan işlemlerle karşılaştıran Renderscript görüntü işleme karşılaştırmaları.
Çalıştırılacağı bir Renderscript işlemlerinin yönlendirilmiş acyclic grafiğiniz varsa işlemleri tanımlayan bir komut dosyası grubu oluşturmak için bir oluşturucu sınıfı kullanabilirsiniz. Renderscript, yürütme sırasında en iyi performans için çalıştırma sırasını ve bu işlemler arasındaki bağlantıları optimize eder.
Devam eden optimizasyon iyileştirmeleri
Hesaplama işlemleri için Renderscript'i kullandığınızda, uygulama kodunuzda herhangi bir etki veya yeniden derleme gerekmeden uygulamalarınız Renderscript motorunda sürekli performans ve optimizasyon iyileştirmelerinden yararlanır.
Optimizasyon iyileştikçe işlemleriniz, herhangi bir işlem yapmanıza gerek kalmadan daha hızlı ve daha fazla yonga setinde yürütülür. Sağdaki grafikte, Android platformunun art arda gelen sürümlerinde devam eden Renderscript optimizasyon iyileştirmelerinin sağladığı performans artışı vurgulanmaktadır.
GPU Bilgi İşlemi
Renderscript Compute, doğrudan mobil cihaz GPU'sunda çalışacak şekilde taşınan ilk hesaplama platformudur. Artık performansı artırmak için mümkün olduğunda otomatik olarak GPU hesaplama kaynaklarından yararlanıyor. GPU entegrasyonu sayesinde grafik veya görüntü işlemeyle ilgili en karmaşık hesaplamalar bile önemli ölçüde daha iyi performansla yürütülebilir.
Desteklenen bir cihazda Renderscript kullanan tüm uygulamalar, yeniden derlemeden bu GPU entegrasyonundan hemen yararlanabilir. Nexus 10 tablet, bu entegrasyonu destekleyen ilk cihazdır.
Yeni yerleşik geliştirici seçenekleri
Android 4.2 sistemi, iyi performans gösteren ve harika görünen uygulamalar oluşturmayı kolaylaştıran çeşitli yeni geliştirici seçenekleri içerir. Yeni seçenekler, uygulamanızı herhangi bir cihazdan veya emülatörden hata ayıklama ve profil oluşturma özelliklerini gösterir.
Android 4.2 yüklü cihazlarda geliştirici seçenekleri varsayılan olarak gizlidir. Bu sayede kullanıcılar daha iyi bir deneyim elde eder. Uyumlu Android cihazlarda Ayarlar > Telefon hakkında > Derleme numarası'na 7 kez dokunarak geliştirici seçeneklerini istediğiniz zaman gösterebilirsiniz.
Android 4.2'deki yeni geliştirici seçenekleri şunlardır:
- Hata raporu al: Hemen ekran görüntüsü alır ve cihaz durumu bilgilerini yerel dosya depolama alanına aktarır, ardından bunları yeni bir giden e-posta iletisine ekler.
- Güç menüsünde hata raporları: Cihazın güç menüsüne ve hızlı ayarlarına, hata raporu almak için yeni bir seçenek ekler (yukarıya bakın).
- USB üzerinden uygulamaları doğrula: USB üzerinden uygulama yükleme işlemlerinde uygulama kontrollerini devre dışı bırakmanıza olanak tanır. Bu durumda, tarayıcı gibi diğer kaynaklardan gelen uygulamaları kontrol etmeye devam edersiniz. Bu sayede güvenlik özelliği etkin kalırken geliştirme süreci hızlandırılabilir.
- Donanım katmanı güncellemelerini göster: Güncellenirken donanım katmanlarını yeşil renkte yanıp söndürür.
- GPU fazla çizimini göster: GPU fazla çizim alanlarını vurgular.
- 4x MSAA'yı zorla: Open GL ES 2.0 uygulamalarında 4x MSAA'yı etkinleştirir.
- İkincil ekranları simüle et: Simüle edilmiş uzaktan ekran olarak kullanmak için geçerli ekranda bir veya daha fazla güvenli olmayan yer paylaşımı penceresi oluşturur. Simüle edilen ekranın boyutunu ve yoğunluğunu kontrol edebilirsiniz.
- OpenGL izlerini etkinleştir: glGetError'da Logcat, Systrace veya yığın çağırmayı kullanarak OpenGL yürütme işlemini izlemenize olanak tanır.
Yeni Platform Teknolojileri
Android 4.2, çeşitli donanım cihazlarında yenilikçi iletişim kullanım alanlarını desteklemek için çeşitli yeni ve geliştirilmiş platform teknolojileri içerir. Çoğu durumda yeni platform teknolojileri ve geliştirmeleri uygulamalarınızı doğrudan etkilemez. Bu nedenle, herhangi bir değişiklik yapmadan bu teknolojilerden yararlanabilirsiniz.
Güvenlik geliştirmeleri
Her Android sürümü, kullanıcıları korumak için onlarca güvenlik geliştirmesi içerir. Android 4.2'deki geliştirmelerden bazıları şunlardır:
- Uygulama doğrulaması: Kullanıcılar, "Uygulamaları Doğrula"yı etkinleştirebilir ve uygulamaları yüklemeden önce bir uygulama doğrulayıcı tarafından taranmasını sağlayabilir. Uygulama doğrulaması, zararlı olabilecek bir uygulamayı yüklemeye çalışan kullanıcıları uyarabilir. Özellikle kötü bir uygulamanın yüklemesini engelleyebilir.
- Premium SMS'ler üzerinde daha fazla kontrol: Bir uygulama, ek ücretlere neden olabilecek premium hizmetler kullanan bir kısa koda SMS göndermeye çalışırsa Android bildirim gönderir. Kullanıcı, uygulamanın mesajı göndermesine izin vermeyi veya engellemeyi seçebilir.
- Her zaman açık VPN: VPN, bir VPN bağlantısı kurulana kadar uygulamaların ağa erişememesi için yapılandırılabilir. Bu, uygulamaların diğer ağlara veri göndermesini engeller.
- Sertifika sabitleme: libcore SSL uygulaması artık sertifika sabitlemeyi destekliyor. Sabitlenmiş alanlar, sertifika beklenen bir sertifika grubuyla zincirlenmezse sertifika doğrulama hatası alır. Bu, sertifika yetkililerinin güvenliğinin ihlal edilmesine karşı koruma sağlar.
- Android izinlerinin daha iyi gösterilmesi: İzinler, kullanıcıların daha kolay anlayabileceği gruplar halinde düzenlendi. Kullanıcı, izinler incelenirken izinle ilgili daha ayrıntılı bilgi görmek için izni tıklayabilir.
- installd sertleştirme: installd daemon'ı root kullanıcı olarak çalışmaz. Bu sayede, root ayrıcalıklarının artırılmasıyla ilgili olası saldırı yüzeyi azaltılır.
- init komut dosyasını güçlendirme: init komut dosyaları artık sembolik bağlantıyla ilgili saldırıları önlemek için O_NOFOLLOW semantiğini uyguluyor.
- FORTIFY_SOURCE: Android artık FORTIFY_SOURCE'ı uygulamaktadır. Bu, sistem kitaplıkları ve uygulamaları tarafından bellek bozulmasını önlemek için kullanılır.
- ContentProvider varsayılan yapılandırması: API düzeyi 17'yi hedefleyen uygulamalarda, her ContentProvider için "export" varsayılan olarak "false" olarak ayarlanır. Bu sayede, uygulamaların varsayılan saldırı alanı azaltılır.
- Şifreleme: SecureRandom ve Cipher.RSA'nın varsayılan uygulamalarını OpenSSL kullanacak şekilde değiştirildi. OpenSSL 1.0.1 kullanılarak TLSv1.1 ve TLSv1.2 için SSLSocket desteği eklendi
- Güvenlik Düzeltmeleri: WebKit, libpng, OpenSSL ve LibXML, güvenlik düzeltmeleri içeren yeni sürüme geçirilmiş açık kaynak kitaplıkları arasındadır. Android 4.2, Android'e özgü güvenlik açıklarıyla ilgili düzeltmeler de içerir. Bu güvenlik açıkları hakkında bilgiler Open Handset Alliance üyelerine sağlandı ve düzeltmeler Android Open Source Project'te mevcuttur. Android'in önceki sürümlerini çalıştıran bazı cihazlarda da güvenlik iyileştirmesi için bu düzeltmeler yer alabilir.
Yeni Bluetooth yığını
Android 4.2, Android cihazlarla kullanım için optimize edilmiş yeni bir Bluetooth yığınını kullanıma sunar. Google ve Broadcom'un ortak çalışmasıyla geliştirilen yeni Bluetooth yığını, BlueZ tabanlı yığının yerini alır ve daha iyi uyumluluk ve güvenilirlik sağlar.Düşük gecikmeli ses
Android 4.2, OpenSL ES, Soundpool ve ton jeneratörü API'leri kullanılarak Android 4.1 sürümünde ses çıkışı gecikmesi için yapılan iyileştirmelerden başlayarak düşük gecikmeli ses oynatma desteğini iyileştirir. Bu iyileştirmeler donanım desteğine bağlıdır. Bu düşük gecikmeli ses özelliklerini sunan cihazlar, donanım özelliği sabitiyle uygulamaların desteğini gösterebilir. Bu özelliğin kullanıldığı cihazlarda yerel ses örnekleme hızını ve arabellek boyutunu sorgulamak için yeni AudioManager API'leri sağlanır.
Yeni kamera donanım arayüzü
Android 4.2, kamera yığınının yeni bir uygulamasını kullanıma sunar. Kamera alt sistemi, kamera ardışık düzenindeki bileşenlerin (ör. işleme kontrolleri içeren seri modu yakalama) uygulamalarını içerir.Yeni NFC donanım arayüzü ve denetleyici arayüzü
Android 4.2, NFC-Forum'un NCI standardına dayalı denetleyiciler için destek sunar. NCI, NFC denetleyici (NFCC) ile cihaz ana makinesi arasında standart bir iletişim protokolü sağlar. Google ve Broadcom'un ortak çalışmasıyla geliştirilen yeni NFC paketi de bu protokolü destekler.Dalvik çalışma zamanı optimizasyonları
Dalvik çalışma zamanı, daha geniş bir mimari yelpazesinde performans ve güvenlikle ilgili iyileştirmeler içerir:
- Intel'den x86 JIT desteği ve MIPS'ten MIPS JIT desteği
- 512 MB'den fazla belleğe sahip cihazlar için optimize edilmiş atık toplama parametreleri
- SecureRandom ve Cipher.RSA'nın varsayılan uygulamaları artık OpenSSL kullanıyor
- OpenSSL 1.0.1 aracılığıyla TLSv1.1 ve TLSv1.2 için SSLSocket desteği
- StrictMath abs, min, max ve sqrt yöntemleri için yeni dahili destek
- BouncyCastle 1.47 olarak güncellendi
- zlib 1.27 sürümüne güncellendi
- dlmalloc 2.8.6 sürümüne güncellendi
Android 4.1
Jelly Bean'in ilk sürümü olan Android 4.1'e hoş geldiniz.
Android 4.1, Android'in şimdiye kadarki en hızlı ve sorunsuz sürümüdür. Platformda iyileştirmeler yaptık ve kullanıcılar ile geliştiriciler için harika yeni özellikler ekledik. Bu belgede, geliştiriciler için yeniliklere genel bir bakış sunulmaktadır.
Yeni geliştirici API'lerini ayrıntılı olarak incelemek için Android 4.1 API'leri belgesine bakın.
Kullanıcılara yönelik Jelly Bean özellikleri hakkında daha fazla bilgiyi www.android.com adresinde bulabilirsiniz.
Daha hızlı, daha akıcı ve daha duyarlı
Android 4.1, Android'in en iyi performansını ve en düşük dokunma gecikmesini, zahmetsiz ve sezgisel bir kullanıcı arayüzünde sunmak için optimize edilmiştir.
Android 4.1, tutarlı bir kare hızı sağlamak için Android çerçevesi tarafından yapılan tüm çizim ve animasyonlarda vsync zamanlamasını genişletir. Uygulama oluşturma, dokunma etkinlikleri, ekran oluşturma ve ekran yenileme gibi her şey 16 milisaniyelik bir vsync kalp atışına göre senkronize bir şekilde çalışır. Böylece kareler öne veya arkaya geçmez.
Android 4.1, kaydırma, sayfalama ve animasyonlardan her şeyin daha akıcı olmasını sağlayan daha tutarlı bir oluşturma için grafik ardışık düzenine üçlü arabelleğe alma özelliği de ekler.
Android 4.1, dokunma gecikmesini yalnızca dokunmayı vsync zamanlamasıyla senkronize ederek değil, ekran yenilenirken parmağınızın nerede olacağını tahmin ederek de azaltır. Bu sayede daha duyarlı ve tekdüze bir dokunma yanıtı elde edilir. Ayrıca Android, işlem yapmama dönemlerinden sonra gecikme olmaması için bir sonraki dokunma etkinliğinde CPU girişi artışı uygular.
Araçlar, uygulamalarınızdan en iyi performansı elde etmenize yardımcı olabilir. Android 4.1, sistem etkinliklerinin genel bir resmini oluşturmak için verileri doğrudan Linux çekirdeğinden toplayan systrace adlı yeni bir araçla çalışacak şekilde tasarlanmıştır. Veriler, oluşturma kesintilerini ve diğer sorunları tespit etmenize yardımcı olmak için dikey olarak yığılmış zaman serisi grafikleri grubu olarak gösterilir. Araç artık Android SDK'sında (Tools R20 veya sonraki sürümler) kullanılabilir.
Gelişmiş Erişilebilirlik
Erişilebilirlik hizmetleri için yeni API'ler, kullanıcı erişilebilirlik hareketlerini, aksesuarları ve diğer girişleri kullanarak ekrandaki öğeler ve gezinme düğmeleri arasında hareket ederken hareketleri yönetmenize ve erişilebilirlik odağını yönetmenize olanak tanır. Talkback sistemi ve dokunarak keşfetme özelliği, daha kolay kullanım için erişilebilirlik odaklı olacak ve geliştiricilere eksiksiz bir API grubu sunacak şekilde yeniden tasarlandı.
Erişilebilirlik hizmetleri, kullanıcıların hizmetlerini yapılandırmalarına ve kullanmalarına yardımcı olmak için kendi eğitimlerini Erişilebilirlik ayarlarına bağlayabilir.
Standart görüntü bileşenlerini kullanan uygulamalar, kodlarında herhangi bir değişiklik yapmadan yeni erişilebilirlik özellikleri için otomatik olarak destek alır. Özel görünümler kullanan uygulamalar, görünümün erişilebilirlik hizmetleri için önemli olan bölümlerini belirtmek üzere yeni erişilebilirlik düğümü API'lerini kullanabilir.
Uluslararası Kullanıcılar İçin Destek
İki Yönlü Metin ve Diğer Dil Desteği
Android 4.1, TextView ve EditText öğelerinde iki yönlü metin desteği sayesinde daha fazla kullanıcıya ulaşmanıza yardımcı olur. Uygulamalar, metni soldan sağa veya sağdan sola yazılmış metinlerde görüntüleyebilir ya da metin düzenlemesini gerçekleştirebilir. Uygulamalar, yeni Arapça ve İbranice yerel ayarlarını ve ilişkili yazı tiplerini kullanabilir.
Yeni dil desteğinin diğer türleri şunlardır:
- Diğer Hint dilleri: Kannada, Telugu ve Malayalam
- Unicode 6.0 sürümündeki yeni emoji karakterleri
- Japon kullanıcılar için daha iyi glif desteği (sistem dili Japonca olarak ayarlandığında gliflerin Japoncaya özgü sürümlerini oluşturur)
- TextView'ler için Arap gliflerine ek olarak WebView'ler için optimize edilmiş Arap glifleri
- Ruby metin ve ek dikey metin karakterleri dahil olmak üzere WebView'lerde dikey metin desteği
- Sentetik kalın yazı tipi, özel kalın karakterleri olmayan tüm yazı tiplerinde kullanılabilir.
Kullanıcı tarafından yüklenebilen tuş haritaları
Platform artık ek uluslararası klavyeler ve özel düzen türleri gibi kullanıcı tarafından yüklenebilen klavye haritalarını destekliyor. Android 4.1, varsayılan olarak Dvorak da dahil olmak üzere klavyeler için 27 uluslararası tuş eşlemesi içerir. Kullanıcılar bir klavye bağladığında Ayarlar uygulamasına gidip bu klavye için kullanmak istedikleri bir veya daha fazla tuş eşlemesini seçebilir. Kullanıcılar, yazarken kısayol (ctrl-boşluk) kullanarak tuş haritaları arasında geçiş yapabilir.
Sisteme ek tuş haritaları yayınlamak için bir uygulama oluşturabilirsiniz. APK, standart Android tuş eşleme biçimine göre klavye düzeni kaynaklarını içerir. Uygulama, manifest dosyasında ACTION_QUERY_KEYBOARD_LAYOUTS için uygun bir yayın alıcısını açıklayarak kullanıcıya ek klavye düzenleri sunabilir.
Güzel Kullanıcı Arayüzü Oluşturmanın Yeni Yolları
Genişletilebilir bildirimler
Bildirimler, Android'de uzun zamandır benzersiz ve popüler bir özelliktir. Geliştiriciler, önemli veya zamana dayalı bilgileri uygulamanın normal kullanıcı arayüzünün dışında, bildirim çubuğunda kullanıcıların önüne yerleştirmek için bu tür bildirimleri kullanabilir.
Android 4.1, Android bildirim çerçevesine önemli bir güncelleme getirdi. Uygulamalar artık kullanıcılara daha büyük ve daha zengin bildirimler gösterebilir. Bu bildirimler, parmak ucuyla sıkıştırılarak veya kaydırılarak genişletilebilir ve daraltılabilir. Bildirimler, fotoğraflar da dahil olmak üzere yeni içerik türlerini destekler, yapılandırılabilir önceliğe sahiptir ve hatta birden fazla işlem içerebilir.
Geliştirilmiş bildirim oluşturucu sayesinde uygulamalar, 256 dp'ye kadar daha büyük bir alan kullanan bildirimler oluşturabilir. Üç şablonlu bildirim stili mevcuttur:
- BigTextStyle: Çok satırlı bir TextView nesnesi içeren bildirim.
- BigInboxStyle: Mesajlar, başlıklar vb. gibi her türlü listeyi gösteren bir bildirimdir.
- BigPictureStyle: Bit eşleme gibi görsel içeriklerin gösterildiği bir bildirim.
Şablonlu stillere ek olarak, herhangi bir uzak görüntüleme aracını kullanarak kendi bildirim stillerinizi de oluşturabilirsiniz.
Uygulamalar, bir bildirime en fazla üç işlem ekleyebilir. Bu işlemler, bildirim içeriğinin altında gösterilir. İşlemler, kullanıcıların uygulamayı ziyaret etmeden doğrudan bildirimdeki bilgilere alternatif yollarla (ör. e-posta veya telefon araması) yanıt vermesine olanak tanır.
Genişletilebilir bildirimler sayesinde uygulamalar, kullanıcıya zahmetsizce ve gerektiğinde daha fazla bilgi verebilir. Kontrol kullanıcılardadır. Kullanıcılar, gönderen hakkında bilgi edinmek ve isteğe bağlı olarak uygulamadan gelen diğer bildirimleri devre dışı bırakmak için bildirimlere uzun basabilir.
Yeniden boyutlandırılabilen uygulama widget'ları
Android 4.1, kullanıcının ana ekranda widget'ı bıraktığı yere, widget'ı genişlettiği boyuta ve ana ekranda mevcut alan miktarına göre otomatik olarak yeniden boyutlandırabilen gelişmiş uygulama widget'larını kullanıma sunar. Yeni uygulama widget'ı API'leri, widget'ların boyutu değiştikçe uygulama widget'ı içeriğinizi optimize etmek için bu avantajdan yararlanmanıza olanak tanır.
Bir widget'ın boyutu değiştiğinde sistem, ana uygulamanın widget sağlayıcısını bilgilendirir. Bu sağlayıcı, widget'taki içeriği gerektiğinde yeniden yükleyebilir. Örneğin, bir widget daha büyük ve daha zengin grafikler ya da ek işlevler veya seçenekler gösterebilir. Geliştiriciler, maksimum ve minimum boyutlar üzerinde kontrol sahibi olmaya devam edebilir ve gerektiğinde diğer widget seçeneklerini güncelleyebilir.
Ayrıca, widget'larınız için ayrı yatay ve dikey düzenler sağlayabilirsiniz. Sistem, ekran yönü değiştiğinde bu düzenleri uygun şekilde genişletir.
Uygulama widget'ları artık yeni bir bağlama intent'i (AppWidgetManager.ACTION_APPWIDGET_BIND) aracılığıyla üçüncü taraf başlatıcılarda ve diğer barındıran uygulamalarda gösterilebilir.
Basitleştirilmiş görev gezinme
Android 4.1, kullanıcıların uygulamalarınızın içinden erişebildiği "Yukarı" gezinme özelliğini yönetmenizi kolaylaştırır ve kullanıcılara tutarlı bir deneyim sunmanıza yardımcı olur.
Uygulamanın manifest dosyasına yeni bir XML özelliği ekleyerek kullanıcı arayüzünüzün ayrı Activity bileşenleri için amaçlanan yukarı gezinme öğesini tanımlayabilirsiniz. Çalışma zamanında, etkinlikler başlatılırken sistem, manifest dosyasından yukarı gezinme ağacını çıkarır ve işlem çubuğunda yukarı gezinme olanağını otomatik olarak oluşturur. Manifestte yukarı gezinmeyi belirten geliştiricilerin artık çalışma zamanında geri çağırma yoluyla gezinmeyi yönetmesi gerekmez. Ancak gerekirse bunu yapabilirler.
Ayrıca, hemen başlatılacak veya bir Activity PendingIntent'ten başlatıldığında kullanılacak sentetik bir görev yığınını hızlıca oluşturmanıza olanak tanıyan yeni bir TaskStackBuilder sınıfı da mevcuttur. Sentetik görev grubu oluşturmak, geliştiricinin Geri gezinme bölümünde yönetilen ve tutarlı bir deneyim sunmasına olanak tanıdığı için kullanıcılar Ana ekran widget'ları ve bildirimler gibi uzak görünümlerden Etkinlikler'i başlattığında özellikle yararlıdır.
Etkinlik başlatmak için kolay animasyonlar
Etkinliklerinizi başlattığınızda gösterilen animasyonu oluşturmak ve kontrol etmek için yeni bir yardımcı sınıf olan ActivityOptions'u kullanabilirsiniz. Yardımcı sınıf aracılığıyla, etkinlik başlatıldığında kullanılacak özel animasyon kaynaklarını belirtebilir veya ekranda belirttiğiniz herhangi bir dikdörtgenden başlayan ve isteğe bağlı olarak küçük resim bitmap'i içeren yeni yakınlaştırma animasyonları isteyebilirsiniz.
Karanlık ve Tam Ekran Modlarına Geçiş
Görünüm'deki yeni sistem kullanıcı arayüzü işaretleri, normal bir uygulama kullanıcı arayüzünden ("İşlem çubuğu, gezinme çubuğu ve sistem çubuğu görünür") "ışıkları kapatma moduna" ("Durum çubuğu ve işlem çubuğu gizli, gezinme çubuğu karartılmış") veya "tam ekran moduna" ("Durum çubuğu, işlem çubuğu ve gezinme çubuğu gizlenmiş") sorunsuz bir şekilde geçiş yapmanızı sağlar.
Uzaktan yönetilebilir yeni görünüm türleri
Geliştiriciler artık ana ekran widget'larında ve bildirimlerde GridLayout ve ViewStub görünümlerini kullanabilir. GridLayout, uzak görünümlerinizin içeriğini yapılandırmanıza ve daha basit bir kullanıcı arayüzü hiyerarşisi ile alt görünümlerin hizalamalarını yönetmenize olanak tanır. ViewStub, çalışma zamanında düzen kaynaklarını tembel bir şekilde şişirmek için kullanılabilen görünmez, sıfır boyutlu bir View'dur.
Animasyonlu duvar kağıdı önizlemesi
Android 4.1, kullanıcıların canlı duvar kağıtlarını içeren uygulamalardan bulup yüklemesini kolaylaştırır. Uygulamanızda canlı duvar kağıtları varsa artık kullanıcıya kendi uygulamanızdaki canlı duvar kağıdının önizlemesini gösteren bir etkinlik (ACTION_CHANGE_LIVE_WALLPAPER) başlatabilirsiniz. Kullanıcılar, önizlemeden canlı duvar kağıdını doğrudan yükleyebilir.
Daha yüksek çözünürlüklü kişi fotoğrafları
Android 4.1 ile 720 x 720 boyutunda kişi fotoğrafları depolayabilir, böylece kişileri daha zengin ve kişisel hale getirebilirsiniz. Uygulamalar, kişi fotoğraflarını bu boyutta saklayabilir ve alabilir ya da ihtiyaç duyulan başka bir boyutu kullanabilir. Belirli cihazlarda desteklenen maksimum fotoğraf boyutu değişiklik gösterebilir. Bu nedenle, uygulamalar mevcut cihazın maksimum boyutunu elde etmek için çalışma zamanında yerleşik kişi sağlayıcıyı sorgulamalıdır.
Yeni Giriş Türleri ve Özellikleri
Eklenen ve kaldırılan cihazlar hakkında bilgi edinme
Uygulamalar, USB, Bluetooth veya başka bir bağlantı türüyle yeni giriş cihazları bağlandığında bildirim almak için kaydolabilir. Bu bilgileri kullanarak durumu veya özellikleri gerektiği gibi değiştirebilirler. Örneğin, bir oyuna yeni bir klavye veya kontrol çubuğu bağlandığında yeni bir oyuncunun varlığını belirten bir bildirim gönderilebilir.
Giriş cihazlarının özelliklerini sorgulayın
Android 4.1, uygulamaların ve oyunların bağlı ve kullanılabilir durumdaki tüm giriş cihazlarından tam olarak yararlanmasına olanak tanıyan API'ler içerir.
Uygulamalar, şu anda bağlı olan tüm giriş cihazlarını numaralandırmak ve her birinin özellikleri hakkında bilgi edinmek için cihaz yöneticisini sorgulayabilir.
Giriş cihazlarındaki titreşimleri kontrol etme
Uygulamalar artık diğer özelliklerin yanı sıra, bağlı bir giriş cihazıyla ilişkili tüm titreşim hizmetlerini (ör. Rumble Pak kontrolörleri) kullanabilir.
Animasyon ve Grafikler
Uygulamalar için Vsync
Android çerçevesine vsync'i genişletmek, daha tutarlı bir kare hızına ve sorunsuz, sabit bir kullanıcı arayüzüne yol açar. Android 4.1, uygulamaların da bu durumdan yararlanabilmesi için vsync zamanlamasını, uygulamalar tarafından başlatılan tüm çizimlere ve animasyonlara genişletir. Bu sayede kullanıcı arayüzü iş parçacığındaki işlemleri optimize edebilir ve senkronizasyon için kararlı bir zaman tabanı sağlayabilir.
Uygulamalar, Android'in animasyon çerçevesi aracılığıyla vsync zamanlamasından ücretsiz olarak yararlanabilir. Animasyon çerçevesi artık animatörlerin senkronizasyonunu otomatik olarak işlemek için vsync zamanlamasını kullanıyor.
Uygulamalar, özel kullanımlar için yeni bir Choreographer sınıfı tarafından sunulan API'ler aracılığıyla vsync zamanlamasına erişebilir. Uygulamalar, bir sonraki vsync karesinde geçersiz kılma isteğinde bulunabilir. Bu, uygulama animasyon çerçevesini kullanmıyorken animasyonu planlamanın iyi bir yoludur. Daha gelişmiş kullanımlar için uygulamalar, Choreographer sınıfının bir sonraki karede çalıştıracağı bir geri çağırma yayınlayabilir.
Yeni animasyon işlemleri ve geçiş türleri
Animasyon çerçevesi artık ViewPropertyAnimator animasyonlarını çalıştırırken uygulamadaki diğer animasyonlarla veya işlemlerle senkronize etmenize yardımcı olmak için yapılacak başlangıç ve bitiş işlemlerini tanımlamanıza olanak tanır. İşlem, çalıştırılabilir herhangi bir nesneyi çalıştırabilir. Örneğin, çalıştırılabilir öğe, önceki animasyon sona erdiğinde başlayacak başka bir animasyon belirtebilir.
Artık bir ViewPropertyAnimator'ın animasyonu sırasında bir katman kullanacağını da belirtebilirsiniz. Daha önce, animasyon başlatmadan önce bir katman oluşturarak karmaşık görünümleri animasyonlu hale getirmek ve ardından animasyon sona erdiğinde katmanı kaldırmak için onAnimationEnd() etkinliğini işlemek en iyi uygulamaydı. Artık ViewPropertyAnimator'daki withLayer() yöntemi, tek bir yöntem çağrısıyla bu süreci basitleştiriyor.
LayoutTransition'daki yeni geçiş türü, bir ViewGroup'daki tüm düzen değişikliklerine yanıt olarak animasyonları otomatikleştirmenize olanak tanır.
Yeni Bağlantı Türleri
Android Beam
Android Beam, kullanıcıların iki NFC özellikli telefona dokunarak anında paylaşım yapmasına olanak tanıyan popüler bir NFC tabanlı teknolojidir.
Android 4.1'de Android Beam, veri aktarımı için Bluetooth'tan yararlanarak resim, video veya diğer yüklerin paylaşılmasını kolaylaştırır. Kullanıcı bir aktarım başlattığında Android Beam, NFC'den Bluetooth'a geçerek bir dosyanın bir cihazdan başka bir cihaza aktarılmasını çok kolay hale getirir.
Kablosuz Ağ Hizmeti Keşfi
Android 4.1, uygulamaların mobil cihazlar, yazıcılar, kameralar, medya oynatıcılar ve diğerleri gibi eş cihazlar tarafından kablosuz ağlar üzerinden sunulan hizmetleri bulup bunlara bağlanmasına olanak tanıyan çoklu yayın DNS tabanlı hizmet keşfi desteğini kullanıma sunar. Geliştiriciler, platformlar arası veya çok oyunculu oyunlar ve uygulama deneyimleri oluşturmak için kablosuz ağ hizmet keşfinden yararlanabilir.
Uygulamalar, hizmet bulma API'sini kullanarak diğer NSD özellikli cihazların keşfedebileceği her türlü hizmeti oluşturup kaydedebilir. Hizmet, kullanıcının hizmet türünü daha kolay tanımlamasına olanak tanıyan, kullanıcı tarafından okunabilen bir dize tanımlayıcısı kullanılarak ağda çoklu yayın yoluyla tanıtılır.
Tüketici cihazları, yerel kablosuz ağa bağlı cihazlarda kullanılabilen hizmetleri taramak ve keşfetmek için API'yi kullanabilir. Keşiften sonra uygulamalar, hizmeti bir soket bağlantısı kurabileceği bir IP adresine ve bağlantı noktasına çözümlemek için API'yi kullanabilir.
Uygulamalarınıza yeni özellikler eklemek için bu API'den yararlanabilirsiniz. Örneğin, kullanıcıların bir web kamerasına, yazıcıya veya başka bir mobil cihazdaki Wi-Fi eşler arası bağlantıları destekleyen bir uygulamaya bağlanmasına izin verebilirsiniz.
Kablosuz P2P Hizmeti Keşfi
Dondurmalı Sandviç, uygulamaların yüksek bant genişliğine sahip eşler arası bağlantı üzerinden doğrudan keşfetmesine ve eşlemesine olanak tanıyan bir teknoloji olan kablosuz eşler arası (P2P) bağlantı desteğini kullanıma sundu (Kablosuz Ağ Birliği'nin Kablosuz Doğrudan™ sertifika programına uygundur). Kablosuz eşler arası, hücresel ağ veya kablosuz ağ bağlantısı olmadığında bile medya, fotoğraf, dosya ve diğer veri türlerini ve oturumları paylaşmak için ideal bir yöntemdir.
Android 4.1, önceden ilişkilendirilmiş hizmet keşfi için API desteği ekleyerek kablosuz P2P'yi daha da ileriye taşır. Önceden ilişkilendirilmiş hizmet keşfi, uygulamalarınızın bağlantı kurmaya çalışmadan önce yakındaki cihazlardan destekledikleri hizmetler hakkında daha faydalı bilgiler almasını sağlar. Uygulamalar, belirli bir hizmet için keşif başlatabilir ve keşfedilen cihazların listesini, hedef hizmeti veya uygulamayı gerçekten destekleyenlerle filtreleyebilir.
Örneğin, uygulamanız yakındaki tüm kablosuz P2P cihazlarını keşfetmek yerine yalnızca "yazıcı" olan veya belirli bir oyuna sahip olan cihazları keşfedebilir. Diğer yandan uygulamanız, sağladığı hizmetin reklamını diğer cihazlara yapabilir. Bu cihazlar, hizmeti keşfedip bağlantı kurabilir. Bu sayede kullanıcılar için cihaz bulma ve eşleme işlemi büyük ölçüde basitleştirilir ve uygulamaların kablosuz P2P'den daha etkili bir şekilde yararlanması sağlanır.
Kablosuz eşler arası hizmet keşfi sayesinde, internet veya mobil ağ bağlantısı gerekmeden fotoğraf, video, oyun, skor veya neredeyse her şeyi paylaşabilen uygulamalar ve çok oyunculu oyunlar oluşturabilirsiniz. Kullanıcılarınız yalnızca doğrudan eşler arası bağlantı kullanarak bağlanabilir. Bu sayede mobil bant genişliği kullanılmaz.
Ağ Bant Genişliği Yönetimi
Android 4.1, cihaz ölçülen bir ağa bağlıyken uygulamaların veri kullanımını uygun şekilde yönetmesine yardımcı olur. Bu, mobil hotspot'a tethering yapmayı da kapsar. Uygulamalar, kullanıcı için nispeten pahalı olabilecek büyük bir indirme işlemine başlamadan önce mevcut ağın sınırlı olup olmadığını sorgulayabilir. Artık API aracılığıyla hangi ağların veri kullanımına duyarlı olduğunu net bir şekilde görebilir ve ağ etkinliğinizi buna göre yönetebilirsiniz.
Yeni Medya Özellikleri
Medya codec'i erişimi
Android 4.1, platform donanım ve yazılım codec'lerine düşük seviyeli erişim sağlar. Uygulamalar, cihazda hangi alt düzey medya codec'lerinin kullanılabildiğini öğrenmek için sistemi sorgulayabilir ve ardından bu codec'leri ihtiyaç duydukları şekilde kullanabilir. Örneğin, artık bir medya codec'inin birden fazla örneğini oluşturabilir, giriş arabelleklerini sıraya ekleyebilir ve bunun karşılığında çıkış arabellekleri alabilirsiniz. Ayrıca medya codec'i çerçevesi, korumalı içerikleri de destekler. Uygulamalar, cihazda bulunan bir DRM çözümüyle korumalı içerik oynatabilen kullanılabilir bir codec'i sorgulayabilir.
USB Ses
USB ses çıkışı desteği, donanım tedarikçilerinin Android cihazlarla arayüz oluşturan ses dock'ları gibi donanımlar üretmesine olanak tanır. Bu işlev, tüm geliştiricilere kendi donanımlarını oluşturma fırsatı vermek için Android Açık Aksesuar Geliştirme Kiti (ADK) ile de sunulur.
Ses kaydı tetikleme
Android artık ses çalma parçasının tamamlanmasına göre ses kaydını tetiklemenizi sağlar. Bu özellik, kullanıcılarınızın seslerini kaydetmeye başlaması için bir ton çalarak onlara ipucu verme gibi durumlarda kullanışlıdır. Bu özellik, kayıt sırasında oynatılan sesleri kaydetmemeniz ve kayıtların çok geç başlamasını önlemek için kaydı senkronize etmenize yardımcı olur.
Çok kanallı ses
Android 4.1, HDMI bağlantı noktası üzerinden donanımsal çok kanallı ses çıkışına sahip cihazlarda çok kanallı sesi destekler. Çok kanallı ses, oyunlar, müzik uygulamaları ve video oynatıcılar gibi uygulamalarda kullanıcılara zengin medya deneyimleri sunmanızı sağlar. Desteklenen donanıma sahip olmayan cihazlarda Android, sesi cihaz tarafından desteklenen kanal sayısına (genellikle stereo) göre otomatik olarak azaltır.
Android 4.1, AAC 5.1 ses kodlama/kod çözme için yerleşik destek de ekler.
Ses ön işleme
Geliştiriciler, kaydedilen sese ön işleme efektleri uygulayabilir. Örneğin, konuşma kaydı kalitesini iyileştirmek için gürültü azaltma, akustik yankı için yankı iptali ve tutarsız ses seviyelerine sahip sesler için otomatik kazanç kontrolü uygulayabilirler. Yüksek kaliteli ve net ses kaydı gerektiren uygulamalar bu ön işlemcilerden yararlanabilir.
Ses zincirleme
MediaPlayer, ses dosyalarını duraklatma olmadan oynatmak için ses akışlarının birbirine bağlanmasını destekler. Bu, müzik çalar gibi ses dosyaları arasında sorunsuz geçiş gerektiren uygulamalarda (ör. kesintisiz parçalar içeren albümleri çalan uygulamalar veya oyunlar) kullanışlıdır.
Medya Yönlendirici
MediaRouter, MediaRouteActionProvider ve MediaRouteButton adlı yeni API'ler, medyanın nerede oynatılacağını seçme için standart mekanizmalar ve kullanıcı arayüzü sağlar. Kablolu kulaklıklar, a2dp Bluetooth kulaklıklar ve hoparlörler için yerleşik destek mevcuttur. Ayrıca kendi uygulamanıza kendi yönlendirme seçeneklerinizi ekleyebilirsiniz.
Renderscript Hesaplama
Android 4.1, size daha fazla esneklik sunmak için Renderscript hesaplamasını genişletir. Artık Renderscript hesaplama komut dosyalarınızda dokunları örnekleyebilirsiniz. Ayrıca, komut dosyalarınızın gerektirdiği kayan nokta hassasiyetini tanımlamak için yeni pragmalar kullanılabilir. Bu sayede, CPU yolunda hızlı vektör matematik işlemleri gibi NEON talimatlarını etkinleştirebilirsiniz. Bu talimatlar, IEEE 754-2008 standardının tamamıyla mümkün olmaz.
Artık x86 tabanlı emülatör ve donanım cihazlarında Renderscript hesaplama komut dosyalarınızı hata ayıklayabilirsiniz. Tek bir Renderscript kaynak dosyasında birden fazla kök stili çekirdek de tanımlayabilirsiniz.
Android Tarayıcı ve WebView
Android 4.1'de Android Tarayıcı ve WebView'ler aşağıdaki geliştirmeleri içerir:
- Dokunarak oynatma/duraklatma ve satır içi moddan tam ekran moduna sorunsuz geçiş dahil olmak üzere daha iyi bir HTML5 video kullanıcı deneyimi.
- Daha iyi kaydırma ve yakınlaştırma performansı için oluşturma hızı iyileştirildi ve bellek kullanımı azaltıldı.
- HTML5/CSS3/Canvas animasyon performansı iyileştirildi.
- Metin girişi iyileştirildi.
- Daha iyi JavaScript performansı için güncellenmiş JavaScript motoru (V8).
- Güncellenen HTML5 Medya Yakalama spesifikasyonu (input type=file öğelerindeki "capture" özelliği) için destek.
Google API'leri ve hizmetleri
Android'in özelliklerini daha da genişletmek için Android için çeşitli yeni hizmetler sunulmaktadır.
Android için Google Cloud Messaging
Google Cloud Messaging (GCM), geliştiricilerin özel bir senkronizasyon çözümüne ihtiyaç duymadan Android cihazlardaki kullanıcılarına kısa mesaj verileri göndermesine olanak tanıyan bir hizmettir.
GCM, iletileri sıraya ekleme ve hedeflenen Android cihazlara etkili bir şekilde yayınlama ile ilgili tüm ayrıntıları yönetir. Mesaj çoklu yayınını destekler ve tek bir istekle aynı anda 1.000'e kadar bağlı cihaza ulaşabilir. Ayrıca mesaj yükleri destekler. Bu sayede geliştiriciler, cihazdaki bir uygulamaya mesaj göndermenin yanı sıra 4.000'e kadar veri gönderebilir.
Google Cloud Messaging, tüm geliştiriciler için tamamen ücretsizdir ve kaydolmak kolaydır. Kayıt, indirme ve dokümanlar için Google Cloud Messaging sayfasına bakın.
Uygulama Şifreleme
Android 4.1'den itibaren Google Play, tüm ücretli uygulamaları cihaza dağıtılmadan ve cihazda saklanmadan önce cihaza özel bir anahtarla şifreleyerek uygulama öğelerinin korunmasına yardımcı olur.
Akıllı Uygulama Güncellemeleri
Akıllı uygulama güncellemeleri, Google Play'in cihazlara uygulama güncellemeleri yayınlamanın daha iyi bir yolunu sunan yeni bir özelliğidir. Geliştiriciler bir güncelleme yayınladığında Google Play artık APK'nın tamamını değil, yalnızca değişen parçaları cihazlara gönderiyor. Bu sayede güncellemeler çoğu durumda çok daha küçük olur. Böylece güncellemelerin indirilmesi daha hızlı olur, cihazın pili korunur ve kullanıcıların mobil veri planındaki bant genişliği kullanımı azaltılır. Akıllı uygulama güncellemeleri, tam APK güncellemelerinin ortalama 1/3'ü kadar boyuta sahiptir.
Google Play hizmetleri
Google Play Hizmetleri, geliştiricilerin kimlik doğrulama gibi Google hizmetlerini Google Play üzerinden yayınlanan uygulamalarına entegre etmelerine yardımcı olur.
Google Play Hizmetleri, Google Play tarafından son kullanıcı cihazlarına otomatik olarak sağlanır. Bu nedenle, uygulamalarınızda bir ince istemci kitaplığına ihtiyacınız vardır.
Uygulamanız yalnızca küçük istemci kitaplığını içerdiğinden, indirme boyutunda ve depolama alanında büyük bir artış olmadan bu hizmetlerden yararlanabilirsiniz. Ayrıca Google Play, geliştiricilerin bu hizmetlerden yararlanmak için uygulama güncellemeleri yayınlamasına gerek kalmadan hizmetlere düzenli güncellemeler sunar.
Google Play Hizmetleri'ne dahil edilen API'ler hakkında daha fazla bilgi için Google Play Hizmetleri geliştirici sayfasına bakın.