Android 4.4 KitKat'a hoş geldiniz.
Android KitKat, Android'in en yenilikçi, en güzel ve en kullanışlı özelliklerinin tümünü dünyanın her yerindeki daha fazla cihaza getiriyor.
Bu belgede, geliştiriciler için yeniliklere genel bir bakış sunulmaktadır.
Tüketiciler için KitKat hakkında daha fazla bilgiyi www.android.com adresinde bulabilirsiniz.
Android'i herkes için kullanılabilir hale getirme
Android 4.4, dünyanın dört bir yanında 512 MB RAM'e sahip milyonlarca giriş seviyesi cihaz da dahil olmak üzere her zamankinden daha geniş bir cihaz yelpazesinde hızlı, sorunsuz ve duyarlı bir şekilde çalışacak şekilde tasarlanmıştır.
KitKat, bellek kullanımını azaltmak için her önemli bileşeni basitleştirir ve yenilikçi, duyarlı, bellek açısından verimli uygulamalar oluşturmanıza yardımcı olacak yeni API'ler ve araçlar sunar.
Yeni nesil Android cihazlar üreten OEM'ler, Android 4.4'ü düşük bellek kapasitesine sahip cihazlarda bile verimli bir şekilde çalıştırmak için hedeflenen önerilerden ve seçeneklerden yararlanabilir. Dalvik JIT kod önbelleği ayarı, çekirdek aynı sayfa birleştirme (KSM), zRAM'e takas ve diğer optimizasyonlar, belleği yönetmenize yardımcı olur. Yeni yapılandırma seçenekleri, OEM'lerin bellek dışı seviyeleri süreçler için ayarlamalarına, grafik önbelleği boyutlarını belirlemelerine, bellek geri alma işlemini kontrol etmelerine ve daha fazlasına olanak tanır.
Android'de sistem genelinde yapılan değişiklikler, bellek yönetimini iyileştirir ve bellek ayak izini azaltır. Çekirdek sistem işlemleri, daha az yığın kullanacak şekilde düzenlendi ve artık büyük miktarda RAM tüketen uygulamalardan sistem belleğini daha agresif bir şekilde koruyor. Ağ bağlantısı değiştiğinde olduğu gibi birden fazla hizmet aynı anda başlatıldığında Android artık hizmetleri seri olarak, küçük gruplar halinde başlatarak zirveye ulaşan bellek taleplerini önlüyor.
Android 4.4, geliştiricilerin tüm cihazlarda verimli ve duyarlı uygulamalar sunmasına yardımcı olur. ActivityManager.isLowRamDevice() adlı yeni API, uygulamanızın davranışını cihazın bellek yapılandırmasına uyacak şekilde ayarlamanıza olanak tanır. Giriş seviyesi cihazlarda desteklemek istediğiniz kullanım alanlarına bağlı olarak, gerektiğinde büyük bellek özelliklerini değiştirebilir veya devre dışı bırakabilirsiniz. Uygulamalarınızı düşük bellek kapasiteli cihazlar için optimize etme hakkında daha fazla bilgiyi burada bulabilirsiniz.
Yeni araçlar, uygulamanızın bellek kullanımıyla ilgili güçlü analizler de sunar. procstats aracı, ön plan uygulamaları ve arka plan hizmetleri için çalışma süreleri ve bellek kullanımıyla birlikte zaman içindeki bellek kullanımını ayrıntılı olarak gösterir. Yeni bir geliştirici seçeneği olarak cihaz üzerinde görüntüleme de kullanılabilir. meminfo aracı, bellek trendlerini ve sorunlarını daha kolay tespit etmenizi sağlamak için geliştirildi. Ayrıca, daha önce görünmeyen ek bellek yükü de bu araçta gösterilir.
Ana kart emülasyonu ile yeni NFC özellikleri
Android 4.4, ödemeler, bağlılık programları, kart erişimi, toplu taşıma kartları ve diğer özel hizmetler için Ana Kart Emülasyonu (HCE) aracılığıyla güvenli NFC tabanlı işlemler için yeni platform desteği sunar. HCE ile Android cihazdaki herhangi bir uygulama, NFC akıllı kartını taklit edebilir. Böylece kullanıcılar, istedikleri uygulamayla işlem başlatmak için dokunabilir. Cihazda önceden hazırlanmış güvenli öğe (SE) gerekmez. Uygulamalar, HCE kartları ve NFC tabanlı diğer işlemler için okuyucu olarak hareket etmek üzere yeni bir Okuyucu Modu da kullanabilir.
Android HCE, aktarım için temassız ISO/IEC 14443-4 (ISO-DEP) protokolünü kullanan ISO/IEC 7816 tabanlı akıllı kartları taklit eder. Bu kartlar, mevcut EMVCO NFC ödeme altyapısı da dahil olmak üzere günümüzde birçok sistem tarafından kullanılmaktadır. Android, işlemleri doğru Android uygulamalarına yönlendirmek için temel olarak ISO/IEC 7816-4'te tanımlanan uygulama tanımlayıcılarını (AID'ler) kullanır.
Uygulamalar, destekledikleri AID'leri manifest dosyalarında, sunulan destek türünü belirten bir kategori tanımlayıcısı (ör. "ödemeler") ile birlikte belirtir. Aynı kategorideki birden fazla uygulamanın aynı AID'yi desteklediği durumlarda Android, kullanıcının hangi uygulamayı kullanacağını seçmesine olanak tanıyan bir iletişim kutusu gösterir.
Kullanıcı bir satış noktası terminalinde ödeme yapmak için dokunduğunda sistem, tercih edilen AID'yi çıkarır ve işlemi doğru uygulamaya yönlendirir. Uygulama, işlem verilerini okur ve işlemi doğrulamak ve ardından tamamlamak için yerel veya ağa dayalı herhangi bir hizmeti kullanabilir.
Android HCE, cihazda NFC denetleyicinin bulunması gerekir. HCE desteği, hem HCE hem de SE işlemleri için dinamik destek sunan çoğu NFC denetleyicide zaten yaygın olarak kullanılmaktadır. NFC'yi destekleyen Android 4.4 cihazlarda, HCE'yi kullanarak kolayca ödeme yapmak için Dokundur ve Öde özelliği bulunur.
Baskı çerçevesi
Android uygulamaları artık kablosuz ağ üzerinden veya Google Cloud Print gibi bulutta barındırılan hizmetler üzerinden her tür içeriği yazdırabilir. Yazdırma özellikli uygulamalarda kullanıcılar mevcut yazıcıları keşfedebilir, kağıt boyutlarını değiştirebilir, yazdırılacak belirli sayfaları seçebilir ve neredeyse her tür belgeyi, resmi veya dosyayı yazdırabilir.
Android 4.4, yazdırma için yerel platform desteğinin yanı sıra yazdırmayı yönetme ve yeni yazıcı desteği türleri ekleme API'leri sunar. Platform, yazdırma isteğinde bulunan uygulamalar ile yazdırma isteklerini işleyen yüklü yazdırma hizmetleri arasında aracılık yapan bir yazdırma yöneticisi sağlar. Yazdırma yöneticisi, yazdırma için paylaşılan hizmetler ve sistem kullanıcı arayüzü sağlayarak kullanıcılara herhangi bir uygulamadan yazdırma üzerinde tutarlı bir kontrol sağlar. Yazdırma yöneticisi, bir uygulamadan yazdırma hizmetine aktarılan içeriklerin güvenliğini de sağlar.
Yazıcı üreticileri, kendi yazdırma hizmetlerini (belirli yazıcı türleriyle iletişim kurmak için tedarikçiye özgü mantık ve hizmetler ekleyen takılabilir bileşenler) geliştirmek üzere yeni API'leri kullanabilir. Baskı hizmetleri oluşturabilir ve bunları Google Play üzerinden dağıtabilir. Böylece kullanıcıların bu hizmetleri bulup cihazlarına yüklemesi kolaylaşır. Diğer uygulamalarda olduğu gibi, yazdırma hizmetlerini dilediğiniz zaman kablosuz olarak güncelleyebilirsiniz.
İstemci uygulamaları, minimum kod değişikliğiyle uygulamalarına baskı özellikleri eklemek için yeni API'leri kullanabilir. Çoğu durumda, işlem çubuğunuza bir yazdırma işlemi ve yazdırılacak öğeleri seçmek için bir kullanıcı arayüzü eklersiniz. Ayrıca yazdırma işleri oluşturmak, yazdırma yöneticisinden durum bilgisi almak ve işleri iptal etmek için API'ler de uygularsınız. Bu sayede yerel resimlerden ve belgelerden ağ verilerine veya kanvas üzerinde oluşturulan bir görünüme kadar neredeyse her tür içeriği yazdırabilirsiniz.
Android, en geniş uyumluluk için yazdırma işleminde birincil dosya biçimi olarak PDF'yi kullanır. Uygulamanızın, baskıdan önce içeriğinizin sayfaları doğru şekilde düzenlenmiş bir PDF sürümünü oluşturması gerekir. Baskı API'si, standart Android çizim API'lerini kullanarak PDF oluşturmanıza olanak tanıyan yerel ve WebView yardımcı sınıfları sağlar. Uygulamanız içeriği nasıl çizeceğini biliyorsa baskı için hızlıca bir PDF oluşturabilir.
Android 4.4 yüklü çoğu cihazda, Chrome, Drive, Galeri ve QuickOffice gibi yazdırmayı destekleyen çeşitli Google uygulamalarının yanı sıra Google Cloud Print yazım hizmeti önceden yüklenmiş olarak bulunur.
Depolama erişim çerçevesi
Yeni depolama alanı erişim çerçevesi, kullanıcıların tercih ettikleri tüm doküman depolama alanı sağlayıcılardaki dokümanlara, resimlere ve diğer dosyalara göz atmasını ve bunları açmasını kolaylaştırır. Standart ve kullanımı kolay bir kullanıcı arayüzü, kullanıcıların dosyalara göz atmasına ve uygulamalar ile sağlayıcılar arasında tutarlı bir şekilde son dosyalara erişmesine olanak tanır.
Bulut veya yerel depolama hizmetleri, hizmetlerini kapsayan yeni bir doküman sağlayıcı sınıfı uygulayarak bu ekosisteme katılabilir. Sağlayıcı sınıfı, sağlayıcıyı sisteme kaydetmek ve sağlayıcıda dokümanlara göz atma, okuma ve yazma işlemlerini yönetmek için gereken tüm API'leri içerir. Doküman sağlayıcı, kullanıcılara metin, fotoğraf, duvar kağıdı, video, ses ve daha fazlası gibi dosya olarak temsil edilebilecek tüm uzak veya yerel verilere erişim verebilir.
Bir bulut veya yerel hizmet için belge sağlayıcı oluşturursanız bunu mevcut Android uygulamanızın bir parçası olarak kullanıcılara sunabilirsiniz. Uygulamayı indirip yükledikten sonra kullanıcılar, çerçeveye katılan herhangi bir uygulamadan hizmetinize anında erişebilir. Bu sayede, kullanıcılar hizmetlerinizi daha kolay bulacağından daha fazla görünürlük ve kullanıcı etkileşimi elde edebilirsiniz.
Dosyaları veya dokümanları yöneten bir istemci uygulaması geliştirirseniz dosyaları açmak veya oluşturmak için yeni CREATE_DOCUMENT veya OPEN_DOCUMENT intent'lerini kullanarak depolama alanı erişim çerçevesiyle entegrasyon yapabilirsiniz. Sistem, mevcut tüm doküman sağlayıcılar dahil olmak üzere dokümanlara göz atmaya yönelik standart kullanıcı arayüzünü otomatik olarak gösterir.
İstemci uygulamanızı, tedarikçi firmaya özel kod olmadan tüm sağlayıcılar için tek seferde entegre edebilirsiniz. Kullanıcılar sağlayıcı ekledikçe veya kaldırdıkça, kodunuzda herhangi bir değişiklik veya güncelleme yapmadan uygulamanızdan tercih ettikleri hizmetlere erişmeye devam ederler.
Depolama alanı erişim çerçevesi, mevcut GET_CONTENT intent'iyle entegre olduğundan kullanıcılar, önceki tüm içeriklerine ve veri kaynaklarına göz atmak için yeni sistem kullanıcı arayüzünden de erişebilir. Uygulamalar, kullanıcıların veri içe aktarmasına izin vermek için GET_CONTENT iznini kullanmaya devam edebilir. Depolama alanı erişim çerçevesi ve göz atmaya yönelik sistem kullanıcı arayüzü, kullanıcıların verilerini daha geniş bir kaynak yelpazesinden bulup içe aktarmasını kolaylaştırır.
Android 4.4 yüklü çoğu cihazda, Google Drive ve yerel depolama alanı doküman sağlayıcısı olarak önceden entegre edilmiş olarak bulunur. Dosyalarla çalışan Google uygulamaları da yeni çerçeveyi kullanır.
Düşük güçlü sensörler
Sensör toplu işleme
Android 4.4, devam eden sensör etkinlikleri tarafından tüketilen gücü önemli ölçüde azaltabilecek yeni bir optimizasyon olan donanım sensör gruplandırması için platform desteği sunar.
Android, sensör gruplandırma özelliğiyle sensör etkinliklerini algılandığı anda tek tek değil, gruplar halinde verimli bir şekilde toplamak ve yayınlamak için cihaz donanımıyla birlikte çalışır. Bu sayede cihazın uygulama işlemcisi, gruplar gönderilene kadar düşük güçte boşta kalır. Standart bir etkinlik dinleyicisi kullanarak herhangi bir sensörden toplu etkinlik isteğinde bulunabilir ve toplu etkinlikleri alma aralığını kontrol edebilirsiniz. Ayrıca, toplu döngüler arasında etkinliklerin hemen yayınlanmasını isteyebilirsiniz.
Sensör gruplandırma, fitness, konum takibi, izleme ve daha fazlası gibi düşük güç tüketimi olan, uzun süre çalışan kullanım alanları için idealdir. Bu, uygulamanızı daha verimli hale getirebilir ve ekran kapalıyken ve sistem uykudayken bile sensör etkinliklerini sürekli olarak izlemenize olanak tanır.
Sensör gruplandırma özelliği şu anda Nexus 5'te kullanılabiliyor. Bu özelliği en kısa sürede daha fazla cihaza sunmak için yonga seti iş ortaklarımızla birlikte çalışıyoruz.
Adım Dedektörü ve Adım Sayacı
Android 4.4, kullanıcı yürürken, koşarken veya merdiven çıkarken uygulamanızın adımları izlemesine olanak tanıyan iki yeni karma sensör (adım algılayıcı ve adım sayıcı) için platform desteği de ekler. Bu yeni sensörler, düşük güç tüketimi için donanıma uygulanır.
Adım algılayıcı, kullanıcının ne zaman adım attığına karar vermek için ivmeölçer girişini analiz eder ve her adımda bir etkinlik tetikler. Adım sayacı, cihazın son yeniden başlatılmasından bu yana atılan toplam adım sayısını izler ve adım sayısında her değişiklikle birlikte bir etkinlik tetikler. Mantık ve sensör yönetimi platforma ve temel donanıma dahil olduğundan uygulamanızda kendi algılama algoritmalarınızı yönetmeniz gerekmez.
Adım sayıcı ve sayaç sensörleri Nexus 5'te mevcuttur. Bu sensörleri en kısa sürede yeni cihazlara sunmak için yonga seti iş ortaklarımızla birlikte çalışıyoruz.
SMS sağlayıcı
SMS veya MMS kullanan bir mesajlaşma uygulaması geliştiriyorsanız artık uygulamanızın mesaj depolama ve alma işlemlerini yönetmek için paylaşılan bir SMS sağlayıcı ve yeni API'leri kullanabilirsiniz. Yeni SMS sağlayıcı ve API'ler, SMS veya MMS mesajlarını işleyen tüm uygulamalar için standartlaştırılmış bir etkileşim modeli tanımlar.
Android 4.4, yeni sağlayıcı ve API'lerin yanı sıra mesaj alma ve sağlayıcıya yazma için yeni semantikler sunar. Sistem, bir mesaj aldığında yeni SMS_DELIVER intent'ini kullanarak mesajı doğrudan kullanıcının varsayılan mesajlaşma uygulamasına yönlendirir. Diğer uygulamalar, SMS_RECEIVED intent'ini kullanarak gelen mesajları dinlemeye devam edebilir. Ayrıca sistem artık yalnızca varsayılan uygulamanın sağlayıcıya mesaj verileri yazmasına izin veriyor ancak diğer uygulamalar diledikleri zaman bu verileri okuyabiliyor. Kullanıcının varsayılan uygulaması olmayan uygulamalar da mesaj gönderebilir. Sistem, bu mesajları sağlayıcıya uygulama adına yazar. Böylece kullanıcılar bu mesajları varsayılan uygulamada görebilir.
Yeni sağlayıcı ve anlamlar, birden fazla mesajlaşma uygulaması yüklüyken kullanıcı deneyimini iyileştirmeye ve tam destekli, ileriye dönük uyumlu API'lerle yeni mesajlaşma özellikleri oluşturmanıza yardımcı olur.
Güzel uygulamalar oluşturmanın yeni yolları
Tam ekran yoğun içerik modu
Artık uygulamalarınız, içeriklerinizi sergilemek ve dokunma etkinliklerini yakalamak için cihaz ekranındaki her pikseli kullanabilir. Android 4.4, telefon ve tabletlerde kenardan kenara uzanan tam sayfa kullanıcı arayüzleri oluşturmanıza olanak tanıyan, durum çubuğu ve gezinme çubuğu gibi tüm sistem kullanıcı arayüzlerini gizleyen yeni bir tam ekran tam sayfa modu ekler. Fotoğraflar, videolar, haritalar, kitaplar ve oyunlar gibi zengin görsel içerikler için idealdir.
Yeni modda, kullanıcılar uygulamanız veya oyununuzla etkileşimde bulunurken bile sistem kullanıcı arayüzü gizli kalır. Bu sayede, ekranın herhangi bir yerinden (sistem çubuklarının yer alacağı alanlar da dahil) dokunma etkinliklerini yakalayabilirsiniz. Bu sayede uygulamanızda veya oyununuzda daha büyük, daha zengin ve daha etkileyici bir kullanıcı arayüzü oluşturabilir, aynı zamanda görsel dikkat dağıtıcı unsurları azaltabilirsiniz.
Kullanıcıların tam ekran tam sayfa modunda sistem kullanıcı arayüzüne her zaman kolay ve tutarlı bir şekilde erişebilmesi için Android 4.4 yeni bir hareketi destekler. Tam sayfa modunda, ekranın üst veya alt kısmından kenara doğru kaydırarak sistem kullanıcı arayüzünü görebilirsiniz.
Kullanıcılar, tam ekran moduna dönmek için çubuk sınırlarının dışındaki ekrana dokunabilir veya çubukların otomatik olarak gizlenmesi için kısa bir süre bekleyebilir. Tutarlı bir kullanıcı deneyimi için yeni hareket, durum çubuğunu gizlemeyle ilgili önceki yöntemlerle de çalışır.
Sahneleri animasyonlu hale getirmek için geçişler çerçevesi
Çoğu uygulama, akışlarını farklı işlemleri gösteren birkaç temel kullanıcı arayüzü durumu etrafında yapılandırır. Birçok uygulama, kullanıcıların bu durumlardaki ilerleme durumlarını ve her bir durumda kullanılabilen işlemleri anlamalarına yardımcı olmak için animasyon da kullanır. Android 4.4, uygulamanızda yüksek kaliteli animasyonlar oluşturmayı kolaylaştırmak için yeni bir geçiş çerçevesi sunar.
Geçiş çerçevesi, sahneler (genellikle görünüm hiyerarşileri) ve geçişler tanımlamanıza olanak tanır. Geçişler, kullanıcı sahnelere girdiğinde veya sahnelerden çıktığında sahnelerin nasıl canlandırılacağını ya da dönüştürüleceğini tanımlar. Sahnelerinizi düzen sınırları veya görünürlük gibi belirli özelliklere göre animasyonlu hale getirmek için önceden tanımlanmış çeşitli geçiş türlerini kullanabilirsiniz. Sahne değişikliği sırasında görünümleri otomatik olarak soldurup hareket ettiren ve yeniden boyutlandıran bir otomatik geçiş türü de vardır. Ayrıca, uygulamanız için en önemli mülkleri canlandıran özel geçişler tanımlayabilir ve gerekirse kendi animasyon stillerinizi ekleyebilirsiniz.
Geçiş çerçevesi sayesinde, sahne tanımlamanıza gerek kalmadan kullanıcı arayüzünüzdeki değişiklikleri anında animasyonlu hale getirebilirsiniz. Örneğin, bir görünüm hiyerarşisinde bir dizi değişiklik yapabilir ve ardından TransitionManager'ın bu değişikliklerde gecikmeli geçişi otomatik olarak çalıştırmasını sağlayabilirsiniz.
Geçişleri oluşturduktan sonra bunları uygulamanızdan çağırmak kolaydır. Örneğin, bir geçişi başlatmak için tek bir yöntem çağırabilir, görünüm hiyerarşinizde çeşitli değişiklikler yapabilirsiniz. Ardından, bir sonraki karede belirttiğiniz değişiklikleri animasyonlu olarak gösteren animasyonlar otomatik olarak başlar.
Uygulama akışınızdaki belirli sahneler arasında gerçekleşen geçişler üzerinde özel kontrol için TransitionManager'ı kullanabilirsiniz. TransitionManager, sahneler ile belirli sahne değişiklikleri için çalıştırılan geçişler arasındaki ilişkiyi tanımlamanıza olanak tanır.
Şeffaf sistem kullanıcı arayüzü stili
İçeriğinizle en iyi etkiyi elde etmek için artık hem durum çubuğu hem de gezinme çubuğu da dahil olmak üzere saydam sistem kullanıcı arayüzü isteğinde bulunmak için yeni pencere stilleri ve temalarını kullanabilirsiniz. Gezinme çubuğu düğmelerinin veya durum çubuğu bilgilerinin okunaklılığını sağlamak için sistem çubuklarının arkasında ince degradeler gösterilir. Tipik bir kullanım alanı, duvar kağıdının üzerinden gösterilmesi gereken bir uygulamadır.
Gelişmiş bildirim erişimi
Bildirim dinleyici hizmetleri artık bildirim oluşturucu API'leri kullanılarak oluşturulan gelen bildirimler hakkında daha fazla bilgi görebilir. Dinleyici hizmetleri, bildirimle ilgili daha net bilgiler alıp bu bilgileri farklı bir şekilde sunmak için bildirimin işlemlerine ve yeni ekstra alanlara (metin, simge, resim, ilerleme durumu, kronometre ve daha fazlası) erişebilir.
Chromium WebView
Android 4.4, Chromium'a dayalı tamamen yeni bir Web Görünümü uygulaması içerir. Yeni Chromium WebView, web tabanlı içeriğinizi oluşturmak ve görüntülemek için en son standart desteğini, performansını ve uyumluluğunu sunar.
Chromium WebView, HTML5, CSS3 ve JavaScript için geniş kapsamlı destek sunar. Android 30 için Chrome'da bulunan HTML5 özelliklerinin çoğunu destekler. Ayrıca, JavaScript motorunun (V8) JavaScript performansını önemli ölçüde artıran güncellenmiş bir sürümünü de sunar.
Ayrıca yeni Chromium Web Görünümü, Chrome Geliştirici Araçları'nı kullanarak uzaktan hata ayıklamayı destekler. Örneğin, WebView içeriğinizi mobil cihazda canlı olarak incelemek, hata ayıklamak ve analiz etmek için geliştirme makinenizde Chrome Geliştirici Araçları'nı kullanabilirsiniz.
Yeni Chromium WebView, Android 4.4 ve sonraki sürümleri çalıştıran tüm uyumlu cihazlara dahildir. Mevcut uygulamalarda ve içeriklerde minimum düzeyde değişiklik yaparak yeni WebView'den hemen yararlanabilirsiniz. Çoğu durumda içeriğiniz yeni uygulamaya sorunsuz bir şekilde taşınır.
Yeni medya özellikleri
Ekran kaydı
Artık doğrudan Android cihazınızdan uygulamanızın yüksek kaliteli videosunu oluşturabilirsiniz. Android 4.4, ekran kaydı desteği ekler ve Android SDK ortamınıza USB üzerinden bağlı bir cihazda kaydı başlatıp durdurmanıza olanak tanıyan bir ekran kaydı yardımcı programı sağlar. Bu, uygulamanız için açıklamalı kılavuzlar ve eğitici içerikler, test materyalleri, pazarlama videoları ve daha fazlasını oluşturmanın yeni ve mükemmel bir yoludur.
Ekran kaydı yardımcı programı ile cihazınızın ekranındaki içeriklerin videosunu kaydedebilir ve videoyu cihazda MP4 dosyası olarak saklayabilirsiniz. Cihaz tarafından desteklenen herhangi bir çözünürlükte ve bit hızında kayıt yapabilirsiniz. Çıkışta ekranın en boy oranı korunur. Yardımcı program varsayılan olarak, mevcut yönde cihazın ekran çözünürlüğüne eşit veya yakın bir çözünürlük seçer. Kayıt işlemini tamamladığınızda videoyu doğrudan cihazınızdan paylaşabilir veya MP4 dosyasını son düzenleme için ana bilgisayarınıza çekebilirsiniz.
Uygulamanızda, ekran kaydedici tarafından kaydedilmesini istemediğiniz video veya başka bir korumalı içerik oynatılıyorsa içeriği güvenli olarak işaretlemek için SurfaceView.setSecure() yöntemini kullanabilirsiniz.
Ekran kaydına, Android SDK'sına dahil olan adb aracı üzerinden adb shell screenrecord komutunu kullanarak erişebilirsiniz. Ayrıca Android Studio'daki logcat üzerinden de başlatabilirsiniz.
Uyarlanabilir oynatma üzerinden çözünürlük değiştirme
Android 4.4, Android medya çerçevesine uyarlanabilir oynatma için resmi destek sunar. Uyarlanabilir oynatma, MPEG-DASH ve diğer biçimler için video kod çözücülerin isteğe bağlı bir özelliğidir. Bu özellik, oynatma sırasında çözünürlükte sorunsuz geçiş sağlar. İstemci, kod çözücüye yeni çözünürlükte giriş video kareleri beslemeye başlayabilir ve çıkış arabelleklerinin çözünürlüğü önemli bir boşluk olmadan otomatik olarak değişir.
Android 4.4'te çözünürlük değiştirme özelliği, medya uygulamalarının çok daha iyi bir akışlı video deneyimi sunmasına olanak tanır. Uygulamalar, mevcut API'leri kullanarak çalışma zamanında uyarlanabilir oynatma desteğini kontrol edebilir ve Android 4.4'te kullanıma sunulan yeni API'leri kullanarak çözünürlük geçişini uygulayabilir.
DASH için Ortak Şifreleme
Android artık MPEG-DASH için Ortak Şifreleme (CENC)'yi destekliyor. Böylece, içeriği korumak ve yönetmek için standart, çok platformlu bir DRM şeması sunuyor. Uygulamalar, Android'in modüler DRM çerçevesi ve DASH'ı destekleyen platform API'leri aracılığıyla CENC'den yararlanabilir.
HTTP Canlı Yayın
Android 4.4, platformun HTTP Canlı Akış (HLS) desteğini, HLS spesifikasyonunun 7. sürümünün (protokolün 4. sürümü) süper kümesiyle günceller. Ayrıntılar için IETF taslağına bakın.
DSP'ye ses tünelleme
Android 4.4, yüksek performanslı ve düşük güç tüketimi olan ses oynatma için cihaz çipsetindeki dijital sinyal işlemciye (DSP) ses tünelleme platform desteği ekler. Tünelleme sayesinde ses kod çözme ve çıkış efektleri DSP'ye aktarılır. Böylece uygulama işlemcisi daha az uyandırılır ve daha az pil kullanılır.
Ses tünelleme, ekran kapalıyken kulaklıktan müzik dinleme gibi kullanım alanlarında pil ömrünü önemli ölçüde artırabilir. Örneğin, ses tünelleme özelliği sayesinde Nexus 5, ağ bağlantısı olmadan 60 saate kadar ses çalma süresi sunar. Bu süre, tünelsiz sesle kıyaslandığında% 50'den fazla artış anlamına gelir.
Medya uygulamaları, kodda değişiklik yapmadan desteklenen cihazlarda ses tünelleme özelliğinden yararlanabilir. Sistem, cihazda mevcut olduğunda ses oynatmayı optimize etmek için tünelleme uygular.
Ses tünelleme özelliği için cihaz donanımında destek gerekir. Ses tünelleme özelliği şu anda Nexus 5'te kullanılabiliyor. Bu özelliği en kısa sürede daha fazla cihazda kullanıma sunmak için yonga seti iş ortaklarımızla birlikte çalışıyoruz.
Ses izleme
Uygulamalar, cihazda çalan sesin tepe ve RMS seviyeleri hakkında güncelleme almak için Görselleştirici efektindeki yeni izleme araçlarını kullanabilir. Örneğin, bu özelliği müzik görselleştiricilerde veya bir medya oynatıcıda oynatma ölçümünü uygulamak için yaratıcı bir şekilde kullanabilirsiniz.
Ses yükseltici
Medya oynatma uygulamaları, özellikle konuşma için ayarlanmış zaman sabitleri içeren bir sıkıştırıcı gibi çalışan yeni LoudnessEnhancer efektini kullanarak konuşulan içeriğin ses seviyesini artırabilir.
Daha iyi AV senkronizasyonu için ses zaman damgaları
Ses çerçevesi artık daha iyi ses-video senkronizasyonu için ses çıkışı HAL'inden uygulamalara sunum zaman damgalarını bildirebilir. Ses zaman damgaları, uygulamanızın belirli bir ses çerçevesinin ne zaman cihaz dışında kullanıcıya sunulacağını (veya sunulduğunu) belirlemesine olanak tanır. Sesleri video çerçeveleriyle daha doğru senkronize etmek için zaman damgası bilgilerini kullanabilirsiniz.
Wi-Fi CERTIFIED Miracast™
Android 4.4 çalıştıran cihazlar artık Miracast uyumlu olarak Wi-Fi Alliance Wi-Fi Display Spesifikasyonu sertifikası alabilir. Testlere yardımcı olmak için yeni bir kablosuz ekran geliştirici seçeneği, kablosuz ekran sertifikası için gelişmiş yapılandırma denetimlerini ve ayarlarını gösterir. Bu seçeneğe Ayarlar > Geliştirici seçenekleri > Kablosuz ekran sertifikası bölümünden erişebilirsiniz. Nexus 5, Miracast sertifikalı bir kablosuz ekran cihazıdır.
RenderScript Compute
Devam eden performans iyileştirmeleri
Uygulamalarınız RenderScript'i kullandığında, yeniden derlemeye gerek kalmadan RenderScript çalışma zamanında sürekli performans ayarlamalarından yararlanır. Sağdaki grafikte, iki popüler yonga setinde Android 4.4'te elde edilen performans kazanımları gösterilmektedir.
GPU hızlandırma
Desteklenen bir cihazda RenderScript kullanan tüm uygulamalar, kod değişikliği veya yeniden derleme yapmadan GPU hızlandırmasından yararlanır. RenderScript GPU hızlandırması ilk kez Nexus 10'da kullanıma sunulduğundan beri çeşitli donanım iş ortakları da destek ekledi.
Android 4.4 ile GPU hızlandırması artık Nexus 5'in yanı sıra Nexus 4, Nexus 7 (2013) ve Nexus 10'da da kullanılabilir. Bu özelliği en kısa sürede daha fazla cihaza sunmak için iş ortaklarımızla birlikte çalışıyoruz.
Android NDK'da RenderScript
Artık RenderScript'ten doğrudan yerel kodunuzdan yararlanabilirsiniz. Android Native Development Kit'te (NDK) bulunan yeni bir C++ API, komut dosyası içsel özellikleri ve özel çekirdekler dahil olmak üzere çerçeve API'leri aracılığıyla sunulan aynı RenderScript işlevine erişmenize olanak tanır.
Yerel kodda işlemeniz gereken büyük ve performans açısından yoğun görevleriniz varsa bu görevleri RenderScript'i kullanarak gerçekleştirebilir ve yerel kodunuzla entegre edebilirsiniz. RenderScript, çok çekirdekli CPU'lar, GPU'lar ve diğer işlemciler için otomatik destek sunarak çok çeşitli cihazlarda mükemmel performans sağlar.
NDK aracılığıyla RenderScript kullanan bir uygulama oluşturduğunuzda, bu uygulamayı, çerçeve API'leri için kullanılabilen RenderScript destek kitaplığında olduğu gibi Android 2.2 veya daha yeni sürümleri çalıştıran tüm cihazlara dağıtabilirsiniz.
Grafik
GLES2.0 SurfaceFlinger
Android 4.4, SurfaceFlinger'ı OpenGL ES 1.0'dan OpenGL ES 2.0'a yükseltir.
Sanal ekranlar için yeni donanım derleyici desteği
Android Donanım Oluşturucu'nun en son sürümü olan HWComposer 1.3, birincil harici (ör. HDMI) ekrana ek olarak bir sanal ekranın donanım oluşturmasını destekler ve OpenGL ES birlikte çalışabilirliğini iyileştirir.
Yeni Bağlantı Türleri
Yeni Bluetooth profilleri
Uygulamaların daha geniş bir düşük güç ve medya etkileşimi yelpazesini desteklemesine olanak tanımak için iki yeni Bluetooth profili için Android 4.4 desteği. GATT üzerinden Bluetooth HID (HOGP), uygulamalara fare, kontrol çubuğu ve klavye gibi düşük güçlü çevre birimleri ile düşük gecikmeli bağlantı sağlar. Bluetooth MAP, uygulamalarınızın yakındaki bir cihazla (ör. ellerinizi kullanmadan kullanabileceğiniz bir otomotiv terminali veya başka bir mobil cihaz) mesaj alışverişi yapmasına olanak tanır. Bluetooth AVRCP 1.3'ün bir uzantısı olarak kullanıcılar artık sistemde mutlak ses seviyesini Bluetooth cihazlarından ayarlayabilir.
HOGP, MAP ve AVRCP için platform desteği, Google ve Broadcom tarafından Android 4.2'de kullanıma sunulan Bluedroid Bluetooth yığınına dayanır. Destek, Nexus cihazlarda ve uyumlu Bluetooth özellikleri sunan diğer Android uyumlu cihazlarda hemen kullanılabilir.
IR Alıcı
Android 4.4, yerleşik IR blaster'lar için platform desteğinin yanı sıra bu özelliklerden yararlanmak için uygulama oluşturmanıza olanak tanıyan yeni bir API ve sistem hizmeti sunar.
Yeni API'yi kullanarak kullanıcıların yakındaki TV'leri, tuner'ları, anahtarları ve diğer elektronik cihazları uzaktan kontrol etmesine olanak tanıyan uygulamalar oluşturabilirsiniz. API, uygulamanızın telefon veya tablette kızılötesi verici olup olmadığını kontrol etmesine, taşıyıcı frekanslarını sorgulamasına ve ardından kızılötesi sinyaller göndermesine olanak tanır.
API, Android 4.4 veya sonraki sürümleri çalıştıran Android cihazlarda standart olduğundan uygulamanız, özel entegrasyon kodu yazmadan mümkün olan en geniş tedarikçi yelpazesini destekleyebilir.
Kablosuz TDLS desteği
Android 4.4, kablosuz tünellenmiş doğrudan bağlantı kurulumunu (TDLS) destekleyerek aynı kablosuz ağdaki cihazlar arasında medya ve diğer verileri daha hızlı aktarmanın sorunsuz bir yolunu sunar.
Erişilebilirlik
Altyazılar için sistem genelinde ayarlar
Android 4.4, altyazılar için sistem genelinde tercihler ekleyerek uygulamalarda daha iyi bir erişilebilirlik deneyimi sunar. Kullanıcılar, altyazıların gösterilip gösterilmeyeceği ve hangi dilin, metin boyutunun ve metin stilinin kullanılacağı gibi genel altyazı tercihlerini ayarlamak için Ayarlar > Erişilebilirlik > Altyazılar'a gidebilir.
Video kullanan uygulamalar artık kullanıcının altyazı ayarlarına erişebilir ve sunumu kullanıcının tercihlerine göre ayarlayabilir. Yeni altyazı yöneticisi API'si, kullanıcının altyazı tercihlerini kontrol etmenizi ve izlemenizi sağlar. Altyazı yöneticisi, kullanıcının tercih ettiği altyazı durumunun yanı sıra tercih edilen yerel ayarı, ölçeklendirme faktörünü ve metin stilini sağlar. Metin stili, ön plan ve arka plan renklerini, kenar özelliklerini ve yazı tipini içerir.
Ayrıca, VideoView kullanan uygulamalar, oluşturma işlemi için video akışıyla birlikte altyazı akışı iletmek üzere yeni bir API kullanabilir. Sistem, altyazıların video karelerinde gösterilmesini kullanıcının sistem genelindeki ayarlarına göre otomatik olarak yönetir. VideoView şu anda yalnızca WebVTT biçimindeki altyazıların otomatik olarak görüntülenmesini desteklemektedir.
Altyazı gösteren tüm uygulamalar, kullanıcının sistem genelindeki altyazı tercihlerini kontrol etmeli ve altyazıların bu tercihlere mümkün olduğunca yakın şekilde oluşturulmasını sağlamalıdır. Belirli ayar kombinasyonlarının nasıl görünmesi gerektiği hakkında daha fazla bilgi edinmek için Ayarlar uygulamasında farklı dil, boyut ve stillerde altyazı önizlemelerine göz atabilirsiniz.
Gelişmiş Erişilebilirlik API'leri
Android 4.4, erişilebilirlik API'lerini daha doğru yapısal ve anlamsal açıklama ve ekrandaki öğelerin gözlemlenmesini desteklemek için genişletir. Geliştiriciler, yeni API'ler sayesinde erişilebilirlik hizmetlerine ekrandaki öğeler hakkında daha fazla bilgi sağlayarak erişilebilir geri bildirim kalitesini artırabilir.
Geliştiriciler artık erişilebilirlik düğümlerinde bir düğümün pop-up olup olmadığını belirleyebilir, giriş türünü alabilir ve daha fazlasını yapabilir. Liste ve tablo gibi ızgara benzeri bilgiler içeren düğümlerle çalışmak için yeni API'leri de kullanabilirsiniz. Örneğin, artık desteklenen yeni işlemleri, koleksiyon bilgilerini, canlı bölge modlarını ve daha fazlasını belirtebilirsiniz.
Yeni erişilebilirlik etkinlikleri, geliştiricilerin pencere içeriğinde gerçekleşen değişiklikleri daha yakından takip etmesine olanak tanır. Ayrıca geliştiriciler artık cihazdaki dokunma keşfi modunda gerçekleşen değişiklikleri dinleyebilir.
Uluslararası kullanıcılar için destek
Sağdan sola yerel ayarlar için çizilebilir yansıtma
Uygulamanız RTL komut dosyaları kullanan kullanıcıları hedefliyorsa kullanıcının yerel ayarlarında RTL dili bulunduğunda drawable'un otomatik olarak yansıtılması gerektiğini belirtmek için yeni bir API kullanabilirsiniz.
Bir çizilebilir öğeyi otomatik olarak yansıtılan olarak tanımlamak, uygulamanızda öğelerin kopyalanmasını önlemenize yardımcı olur ve APK'nızın boyutunu azaltır. Hem soldan sağa hem de sağdan sola doğru sunumlar için yeniden kullanılabilir çizilebilir öğeleriniz varsa varsayılan sürümleri otomatik olarak yansıtılmış olarak tanımlayabilir ve ardından bu çizilebilir öğeleri RTL kaynaklarınızdan çıkarabilirsiniz.
Uygulama kodunuzda bitmap, dokuz yama, katman, durum listesi ve diğer çizilebilir öğeler gibi çeşitli çizilebilir öğe türlerini otomatik olarak yansıtılan olarak tanımlayabilirsiniz. Ayrıca, yeni bir özellik kullanarak bir çizilebilir öğeyi kaynak dosyalarınızda otomatik olarak yansıtılan olarak da tanımlayabilirsiniz.
RTL Düzenini zorunlu tut
Android, sağdan sola bir dile geçmeden düzen yansıtma sorunlarını test etmeyi ve bu sorunlarda hata ayıklamayı kolaylaştırmak için tüm uygulamalarda sağdan sola düzen yönünü zorlayan yeni bir geliştirici seçeneği içerir.
Sağdan sola düzeni zorla seçeneği, cihazı tüm yerel ayarlar için sağdan sola düzene geçirir ve metni mevcut dilinizde gösterir. Bu sayede, uygulamayı RTL dilinde görüntülemek zorunda kalmadan uygulamanızdaki düzen sorunlarını bulabilirsiniz. Bu seçeneğe Ayarlar > Geliştirici seçenekleri > Yatay sayfa düzeni yönünü zorla bölümünden erişebilirsiniz.
Güvenlik geliştirmeleri
SELinux (zorunlu mod)
Android 4.4, SELinux yapılandırmasını "izin verici"den "zorunlu"ya güncelledi. Bu, yaptırım politikası olan bir SELinux alanındaki olası politika ihlallerinin engelleneceği anlamına gelir.
İyileştirilmiş kriptografik algoritmalar
Android, iki şifreleme algoritması daha destekleyerek güvenliğini daha da iyileştirdi. Anahtar mağazası sağlayıcısına Eliptic Curve Digital Signature Algorithm (ECDSA) desteği eklendi. Bu destek, dijital imzalamanın güvenliğini artırır ve uygulama veya veri bağlantısı imzalama gibi senaryolarda kullanılabilir. Scrypt anahtar türetme işlevi, tam disk şifrelemede kullanılan kriptografik anahtarları korumak için uygulanır.
Diğer geliştirmeler
Çok kullanıcılı cihazlarda VPN'ler artık kullanıcı başına uygulanıyor. Bu sayede kullanıcı, cihazdaki diğer kullanıcıları etkilemeden tüm ağ trafiğini bir VPN üzerinden yönlendirebilir. Ayrıca Android artık FORTIFY_SOURCE 2. düzeyini destekliyor ve tüm kod bu korumalarla derleniyor. FORTIFY_SOURCE, clang ile çalışacak şekilde geliştirildi.
Bellek kullanımını analiz etme araçları
Procstats
procstats adlı yeni bir araç, uygulamanızın kullandığı bellek kaynaklarının yanı sıra sistemde çalışan diğer uygulama ve hizmetlerin kullandığı kaynakları analiz etmenize yardımcı olur.
Procstats, uygulamaların zaman içinde nasıl çalıştığını izler ve ne kadar verimli performans sergilediklerini belirlemenize yardımcı olmak için yürütme süreleri ve bellek kullanımı hakkında veri sağlar. Bu, arka planda çalışan hizmetleri başlatan uygulamalar için çok önemlidir. Bu sayede, bu hizmetlerin ne kadar süredir çalıştığını ve bu sırada ne kadar RAM kullandığını izleyebilirsiniz. Procstats, uygulamanın genel bellek profilini belirlemek için ön plandaki uygulamalarda zaman içindeki bellek kullanımıyla ilgili verileri de toplar.
Procstats, uygulamanız tarafından başlatılan arka plan hizmetlerini belirlemenize yardımcı olabilir. Bu hizmetlerin ne kadar süre boyunca çalışmaya devam ettiğini ve bu sırada ne kadar RAM kullandığını takip edebilirsiniz. Procstats, genel bellek profilini belirlemek için uygulamanızın ön plandayken bellek kullanımını kullanarak uygulamanızın profilini oluşturmanıza da olanak tanır.
procstats dosyasına Android SDK'sına dahil olan adb aracından adb shell dumpsys procstats komutuyla erişebilirsiniz. Cihaz üzerinde profil oluşturma için aşağıdaki İşlem İstatistikleri geliştirici seçeneğine de göz atın.
Cihaz üzerindeki bellek durumu ve profil oluşturma
Android 4.4, uygulamanızın herhangi bir cihazda veya emülatörde çalışırken bellek profilini analiz etmeyi kolaylaştıran yeni bir geliştirici seçeneği içerir. Bu özellikle, uygulamanızın RAM'i nasıl kullandığına ve düşük RAM'e sahip cihazlarda nasıl performans gösterdiğine dair bir görünüm elde etmek için yararlıdır. Bu seçeneğe Ayarlar > Geliştirici seçenekleri > İşlem istatistikleri bölümünden erişebilirsiniz.
İşlem İstatistikleri seçeneği, yeni procstats hizmeti kullanılarak toplanan verilere dayalı olarak uygulamanızın bellek kullanımıyla ilgili çeşitli üst düzey metrikler gösterir. Ana ekranda sistem belleği durumunun özetini görebilirsiniz. Yeşil, düşük RAM kullanımıyla harcanan göreli süreyi, sarı orta düzey RAM kullanımını, kırmızı ise yüksek (kritik) RAM kullanımını gösterir.
Özetin altında, her uygulamanın sistemdeki bellek yükünü özetleyen bir liste bulunur. Her uygulama için mavi çubuk, işleminin göreceli hesaplanmış bellek yükünü (çalışma süresi x avg_pss) gösterir. Yüzdelik sayı ise arka planda harcanan göreceli süreyi belirtir. Listeyi yalnızca ön plan, arka plan veya önbelleğe alınmış işlemleri gösterecek şekilde filtreleyebilir ve sistem işlemlerini dahil edebilir veya hariç tutabilirsiniz. Ayrıca, toplanan verilerin süresini 3, 6, 12 veya 24 saat olarak değiştirebilir ve uss belleğini dahil edebilir veya hariç tutabilirsiniz.
Belirli bir uygulamanın bellek kullanımını tek başına daha ayrıntılı incelemek için uygulamaya dokunun. Artık her uygulama için tüketilen belleğin özetini ve uygulamanın çalıştığı toplama aralığının yüzdesini görebilirsiniz. Ayrıca, toplama dönemi boyunca ortalama ve maksimum kullanımı, uygulamanın hizmetlerini ve bunların çalıştırıldığı sürenin yüzdesini de görebilirsiniz.
İşlem istatistiklerindeki verileri kullanarak uygulamanızı analiz etmek, sorunları ortaya çıkarabilir ve uygulamanız için olası optimizasyonlar önerebilir. Örneğin, uygulamanız olması gerekenden daha uzun süre çalışıyorsa veya bir süre boyunca çok fazla bellek kullanıyorsa kodunuzda, özellikle RAM'i düşük bir cihazda çalışırken uygulamanızın performansını iyileştirmek için çözebileceğiniz hatalar olabilir.