Android Nougat

Tanıtımı

Google şirketi bu kez de geleneğini devam ettirerek  yeni sürümlerin kod isimlerini latin alfabesinin sıralanan harfleri ile işaretleyip; bu kez sıra "N" harfinde idi. Kod isim ise "New York Cheesecake" (peynirli kek) idi. 2016 yılının üçüncü çeyrek final sürümünden önce yayımlanmış beş Android N önizlemesi oldu. Güncelleştirilmiş bir önizleme her ay yayınlandı (4 ila 6 hafta ara ile). N Geliştirici Önizlemesi "Önizleme 1" sürümü ile 9 Mart 2016 tarihinde başladı. 13 Nisan 2016 günü, Android N Geliştirici "Önizleme 2" duyuruldu. Android N Geliştirici "Önizleme 3" ise 18 Mayıs 2016 tarihinde kullanılabilir hale geldi. 15 Haziran 2016 yılında Android N Geliştirici "Önizleme 4", kullanılabilir hale geldi. Google ayrıca, 18 Mayıs 2016 yılında Google I/O açılış sırasında Android "N"-i tartışdı ve yeni sanal gerçeklik platformu Daydream'i başlattı. Konferans sırasında, Android "N"in yeni bir "beta-kalite" önizleme inşası serbest bırakıldı ve resmi açıklama ile Google işletim sisteminin adını belirlemek için bir yarışma düzenleyeceğini duyurdu. İsim için Nuga, Nutella, Nuts (kuru yemiş), Nektar, Nutmeg (Küçük Hindistan cevizi), Neyyappam (Geleneksel Hint tatlısı), Namik, Nachos (mısır unundan yapılan Meksika cipsi), Noodle  ve Neapolitan ismi ileri sürüldü. 30 Haziran 2016 tarihinde, aynı zamanda sürümün "Android 7.0" olacağı doğrulandı ve kullanıcıların oylarına göre, Google N'nin adının "Nougat" (Nuga) olacağını açıkladı; fakat kullanıcıların beklentileri Nutella idi..
Android 7.0 Nuga resmen 22 Ağustos 2016 tarihinde Nexus 6, Nexus 5X, Nexus 6P, Nexus 9, Nexus Player, Pixel C ve General Mobile 4G (Android One) cihazlarında  güncelleme almak için serbest bırakıldı. Android'in Mühendislikten Sorumlu Başkan Yardımcısı Dave Burke, Ağustos 2016'da Nougat'a yönelik güncellemelerin, "devam eden iyileştirmeler ve lehçe" üzerine yoğunlaşan bakım yayımları şeklinde üç ayda bir yayınlanacağını belirtti. 6 Eylül 2016'da LG, Nougat'ın önceden kurulu olduğu ilk akıllı telefon olan V20'yi duyurdu. Google, birincil parti Pixel ve Pixel XL akıllı telefonlarını, 4 Ekim 2016 tarihinde donanım odaklı bir etkinlik sırasında Pixel telefonlarının Nexus serisinin yerini almasıyla açtığını açıkladı.
Mevcut aygıtlardaki güncellemeler, üreticiye, operatöre ve bir aygıtın ilgili çip sisteminin üreticisi tarafından sürüme yönelik sürücü desteğine göre değişir. HTC, Sony ve Motorola dahil olmak üzere büyük üreticiler, son cihazlarının bir listesini Nougat'a güncelleme niyetlerini açıkladılar. Qualcomm, sistemde, Snapdragon 800 ve 801 sistem yongalarını kullanan cihazlar üzerinde desteklemeyeceğini belirtti. Cihazın, Nougat'ın geliştirici önizleme yapıları tarafından piyasaya sürülmesine rağmen Sony, "öngörülemeyen platform kısıtlamaları" nedeniyle Sony Xperia Z3'ü (Snapdragon 801'i kullanır) son versiyona yükseltmeyeceğini belirtti. Google Uyumluluk Testi Süitinin (resmi sertifikasyonu almak için testleri geçmesi gerektiği), Nougat'ı çalıştıran tüm cihazların Vulkan veya OpenGL ES 3.1 grafik API'larını desteklemesi gerektiği belirtildi. Bunların hiçbiri cihazın Adreno 330 grafik çekirdeği tarafından desteklenmiyor.
Android 7.1 olarak bilinen bir güncelleme, Ekim 2016'da piyasaya sürülen Google'ın Pixel ve Pixel XL akıllı telefonlarına önceden yüklendi. Yeni sürüm, Google Daydream VR platformu, resim klavyeleri, genişletilmiş emoji desteği (erkek ve bayan sürümleri dahil), ana ekran uygulamasındaki kısayollardaki menülerde gösterilecek işlemler için destek ve diğer yeni özellikler için destek ekliyor. Mevcut Nexus cihazları için 7.1 önizlemesi, Android Beta Programı aracılığıyla daha sonra yayınlandı ve 5 Aralık 2016'da resmen Android 7.1.1 olarak piyasaya sürüldü. 7.1.1 itibarıyla, Nexus 6 ve Nexus 9 son olarak kabul edildi ve başka güncelleme almadı.
Android 7.1.2, Nisan 2017'de piyasaya sürülerek Nexus ve Pixel markalı cihazlarda çeşitli iyileştirmeler ve küçük işlevsellik geliştirmeleri sağladı.

Kullanıcı deneyimi

Nougat, artık ayarlar için daha küçük bir simge dizisi içeren bildirim gölgesini yeniden tasarladı, bildirim kartlarını yeni bir "sayfa" tasarımıyla değiştirir ve bildirimler için satır içi yanıtlara izin verir. Bu özellik Android Wear'daki varoluş yoluyla uygulanır. Tek bir uygulamadan gelen birden fazla bildirim de "paketlenebilir" ve bildirimler üzerinde daha fazla uygulama denetimi var.
Telefonlar için bölünmüş ekran görüntüsü modu tanıtıldı. Bu modda, ekranın yarısı kaplanmak üzere iki uygulama çakılarak takılabilir. Deneysel birçok pencereli mod, aynı anda birden fazla uygulamanın örtüşen pencerelerde ekranda görünebileceği gizli bir özellik olarak da mevcuttur.
Android Nougat, ilk kez olarak, bölünmüş ekran multi-pencere modu tanıttı, bununla iki uygulama ekranın yarısını kaplama ile edilebilir. Deneysel serbest biçimli çoklu pencere modu, aynı zamanda gizli bir özellik olarak kullanılabilir ve çoklu uygulamaları ekranda aynı anda görünebilir.. Bildirim gölgesi de, bir "levha" tasarımı ile bildirim kartlarının yerine geldi, bu, ayarlar için simgelerin küçük bir satırını içeren şekilde, yeniden dizayn edildi ve Android Wear ile kullanılabilir, bildirimlere mevcut API'ler üzerinden uygulanan satır içi cevapa izin verir. Tek bir uygulamadan birden fazla bildirim de "birlikte" olabilir. Ayrıca, hızlı erişim simgeleri artık kompakt panelde görüntülenir. Yeni tasarım klasörleri geldi ve çerçevenin içine simgeleri bir tablo içinde düzenlenir. Bir telefon numarasına gelen çağrıların filtrelemesi uygulandı. Tüm açık uygulamaları ve işlemleri hızlı "Browse" düğmesine basarak ana ekrana yol açabilir. Çift tıklayarak, önceki işlevi açar ve mevcut tüm arasında isteneni seçebilir. Bu fonksiyon başarıyla Alt + Tab kombinasyonu ile Microsoft Windowsda kullanılmaktadır.
Dikişsiz güncellemeler de Chrome OS-a takip olarak tanıtıldı. Yazılım güncellemeleri arka planda yüklemek ve sadece bir yeniden başlatma ile çalıştırmak mümkün oldu. Bu, iki sistem bölümlerinin getirilmesi nedeniyle, kullanılmak üzere diğer güncellemeler için mümkündür. Marshmallowda tanıtılan "Doze" güç tasarrufu mekanizması cihaz pille çalışırken devreye bir devlet kapsayacak şekilde genişletildi, ve ekran bir süre için kapalı, fakat sabit olmayan alır. Bu durumda, ağ etkinliği sınırlıdır ve uygulamalar "bakım pencereleri" gibi verilir, onlar ağa erişebilir ve arka plan görevleri gerçekleştirebilirler. Tam Doze durumu cihaz uzun bir süre için sabitse, etkinleştirilir. Yeni bir "Veri Tasarrufu" modunda, arka plan mobil veri kullanımını kısıtlar ve uygulamalarda iç fonksiyonlarını tetikleyebilir, bu diğer örnekler arasında medya akışı kalitesini kapatan gibi, bant genişliği kullanımını azaltmak için tasarlanmıştır. Geliştirici "Önizleme 2"ye OpenGL ES-i artırmak için yeni düşük seviyeli, ancak yüksek grafik performansı ile 3D render API ve Vulkan API platform desteği eklendi, geliştiricilere 3D uygulama grafiki sağlayır. İnsan emojinin bir dizisi yeni cilt tonları için destek ile, bu sürümün önizlemesine dahil edildi.

Geliştirme platformları

Aralık 2015 yılında, Google Android N-in "Java Runtime Environmente"nin (Java sanal makinesi) feshedilmiş Apache Harmony-den Oracle ve Java topluluk tarafından yapılan, Java platformunun resmi açık kaynak uygulaması olan OpenJDK-ye geçişini duyurdu. Google vardiyanın Android'de Java ve diğer platformlar arasında bir "ortak kod tabanı" oluşturmak için bir çaba parçası olduğunu ve popüler Java 8 kod özelliklerin kullanımına izini destekledi. Android Runtime (ART) şimdi, bir profil yönlendirmeli optimizasyon sistemine sahiptir. Bu değişiklik aynı zamanda bir uygulama veya sistemde yükseltme oluşturarak uygulama "optimizasyon" sürecinin hızını artırır. Bu, bir JIT derleyicisi kullanır ve uygulamaların bir aygıtın donanımı ve diğer koşullar için arka planda daha da optimize edilmesi için mevcut AOT derlemesini profiller.
Nougat, Chrome OS'de benzer işlevlerin uygulanması ile bazı kodlara dayanan ve bu sistemi paylaşan "kesintisiz" otomatik sistem güncellemelerini etkinleştiren bir sistemi tanıtmaktadır. Sistem, bir çift SquashFS bölümü kullanıyor; Android sistemi "çevrimiçi" bir bölümden yürütürken güncellemeler arka planda yedekli "çevrimdışı" bir bölüme uygulanır. Bir güncellemenin yüklenmesini izleyen bir sonraki önyüklemede, artık bölüm etkin olarak belirlenir ve aygıt bundan böyle güncellenmiş sisteme önyüklenir. Önceki sistem bölümü, güncelleme hatası olması durumunda yedek olarak tutulur ve bir sonraki güncelleme için "çevrimdışı" bölüm olarak hizmet verebilir.
Bu sistem, güncellemeyi uygulamak için cihazın sistem kurtarma ortamında yeniden başlatılması gerekliliğini ortadan kaldırır (cihazın güncelleme tamamlanıncaya kadar kullanılmasını önler) ve ayrıca bir güncelleme işlemi tamamlanıncaya kadar otomatik olarak geri alınmasına olanak tanır. Bu sistemin bölümleme gereksinimleri nedeniyle, mevcut cihazlar sorunsuz güncellemeleri desteklemez. Buna ek olarak, Nougat'daki ART değişiklikleri nedeniyle, bir sistem güncellemesi yapıldıktan sonra uygulamaların ilk açılışta yeniden derlenmesi gerekmiyor.
Developer Preview 2, OpenGL ES'yi genişletmek için daha düşük grafik performansı ile yeni düşük seviyeli 3D (üç boyutlu uzay) API'si olan Vulkan için platform desteği ekledi. Nougat, Unicode 9.0 desteğine sahip ilk sürümüdür ve güncellenmiş emoji ve emoji cilt tonları desteği ile birlikte gelir.
Android 7.1, görüntü klavyelerini uygulamak için yerel API desteği ekler. Başlatıcılardaki uygulamalar için kısayol menüler ve yuvarlak simge varlıkları; ve Google Daydream sanal gerçeklik platformu için destek de geldi. Google Daydream özelliği, geliştiricilerin daha düşük grafik gecikmesi için gelişmiş teknolojiye sahip belirli bir "VR modu", geliştiricilere bir uygulamanın cihazın termal profiline optimize edilmesine yardımcı olan "sürekli performans modu" (dinamik frekans ölçekleme), yeni bir kafa izleme algoritması çeşitli cihaz algılayıcılarından gelen girişi ve sistem bildirimlerini VR kullanıcı arabirimine entegre eder.

Güvenlik

2015 yılında açıklanan ve düzeltilen hatalar Stagefright uyarınca, medya yığınını gelecekteki güvenlik açıklarıyla sertleştirmek için çeşitli değişiklikler yapılmıştır. Bu tür hataların düzeltilmesine ve önlenmesine yardımcı olmanın yanı sıra, Stagefright benzeri programlama hatalarının çoğunun güvenlik açığı haline gelmesini engelleyen "tam sayı aşımı" algılama uygulaması da uygulandı. Android'in monolitik MediaServer süreci en az ayrıcalık ilkesine daha iyi uyacak şekilde yeniden tasarlandı. MediaServer artık her biri kendi ayrıcalıksız sanal alanda çalışan birkaç ayrı işleme ayrılıyor ve yalnızca görev için gerekli izinleri alıyor. Örneğin, yalnızca AudioServer Bluetooth'a erişebilir ve libstagefright artık yalnızca GPU erişimi verilen MediaCodecService sanal alanında çalışır. Daha fazla kısıtlama, medya istifine seccomp aracılığıyla yerleştirildi.
Kötü amaçlı kodların Linux çekirdeği içine enjekte edilmesi veya çalıştırılması olasılığını azaltmak için çeşitli mekanizmalar sağlandı, çekirdek belleğini kod ve veri için mantıksal kesimlere bölme, sayfa erişimi izinleri salt okunur ve gerektiği gibi yürütme ait idi. Çekirdek kullanıcı alanına doğrudan erişmekten de kısıtlandı ve GCC derleyicisinde yığın arabelleği aşımını azaltmak için daha güçlü yığın arabellek koruması etkinleştirildi. Çekirdeğin potansiyel olarak kötü amaçlı koda maruz kalma olasılığını sınırlandırmak için, perf varsayılan olarak devre dışı bırakıldı, ioctl komutları SELinux tarafından kısıtlandı ve seccomp-bpf, süreçlere sistem çağrılarını kısıtlama olanağı tanımak için etkinleştirildi.