Android

Android 8.1 İle Gelen Yenilikler

Merhaba sevgili Android severler, Ağustos ayında Android 8’in (Android Oreo API 27) açıklanması ile birlikte hepimizi yeni bir heyecan dalgası yakaladı. Google’ın Pixel ya da Nexus marka telefonları çoktan Android Oreo’ya güncellendiler. Geçtiğimiz hafta ise Android 8.1 Developer Preview yani geli...

Burhan Aras |

06.12.2017

Merhaba sevgili Android severler,

Ağustos ayında Android 8’in (Android Oreo API 27) açıklanması ile birlikte hepimizi yeni bir heyecan dalgası yakaladı. Google’ın Pixel ya da Nexus marka telefonları çoktan Android Oreo’ya güncellendiler. Geçtiğimiz hafta ise Android 8.1 Developer Preview yani geliştiriciler için sunulan versiyon duyuruldu. Bu yazımızda Android 8.1 ile gelen yenilikleri kısaca açıklayacağız.

Android Oreo

NEURAL NETWORKS API

Yapay zeka ve  makine öğrenmesi son dönemin en popüler konusu. Bunların temelinde de Neural network denilen yapay sinir ağları mevcut. Android 8.1 ile birlikte gelen Neural Networks API (NNAPI) sayesinde, Android cihazlar üzerinde çalışan yapay zeka uygulamaları geliştirilmesini kolaylaştırıyor. Bu API sayesinde yapay zeka uygulamalarında kullanılan model üretme, eğitme ve çalıştırma işlemleri yapılırken cihazın donanımsal kaynaklarının daha verimli kullanılması sağlanıyor. (Hardware accelerated denilen yöntemler.) Bunun beraberinde çok yakında Tensorflow’un düşük donanımlı cihazlar için olan versiyonu Tensorflow Lite’ın da çok yakında çıkacağı açıklandı.

DÜŞÜK HAFIZALI CİHAZLAR İÇİN OPTİMİZASYON

Android’in bu sürümünde düşük hafızalı cihazları cihazlara daha fazla önem veriliyor. Bilindiği gibi düşük hafızalı cihazları ayırt edebilmek için  API 19’da ActivityManager.isLowRamDevice()  diye bir method gelmişti. Bu metod, cihazın hafızası 1 GB’dan az ise TRUE döndürüyor.

Bu sürümde de manifesto içinde FEATURE_RAM_LOW, FEATURE_RAM_NORMAL gibi özellikler belirtip(<uses-feature>), uygulamam düşük hafızalı cihazlara dağıtılmasın diyebiliyoruz.

Örneğin:

<uses-feature android:name="android.hardware.ram.low" />

<uses-feature android:name="android.hardware.ram.normal" />

 

BİLDİRİMLER

Android Oreo ile pil ömrü ve kullanıcı deneyimi açısından uygulamalara bazı sınırlamalar getirildi. Bildirimler de bundan nasibini almaya devam ediyor. Sesli bildirim mesajları için saniyede bir bildirim şeklinde bir kısıtlama geldi. Yani uygulamanız sesli bildirim atarken bir saniye içinde birden fazla bildirim atarsa sadece bir tanesinin sesi duyulacak. Kalan bildirimler gösterilse de sessiz olacak. Bizim için büyük bir kayıp değil aslında. :)

Bir diğer değişiklik ise düşük hafızalı cihazlarda NotificationListenerService ve ConditionProviderService artık kullanılamayacak.

EDITTEXT GÜNCELLEMESİ

Şuan Android Studio’ya girip Edittext.getText() yazdığınız zaman size CharSequence türünden bir nesne döndürecektir. Fakat Android 8.1 (API 27) ile birlikte artık Editable döndürecek. Endişelenmenize gerek yok, eski uygulamalarınız hata vermeyecek çünkü Editable sınıfı CharSequence arayüzünü implemente ediyor. Yani geriye yönelik uyumlu bir değişiklik.

Bunun ne faydası olacak derseniz, Editable sınıfı Spannable arayüzünü de implemente ettiği için Edittext’in fontunu değiştirebilir, makyajlamasını yapabileceksiniz.

 

DAHA GÜVENLİ WEBVİEW

Uygulama içindeki WebView’ların daha güvenli çalışması için Safe Browsing API (Güvenli Tarama Arayüzü) geldi. Bu sayede uygulama içindeki webview’dan, Google’ın tehlikeli olarak belirlediği bir web sayfasına girildiği zaman uygulama bu durumu anlayarak kullanıcıyı uyaracak. Devam etmek ya da geri dönmek kullanıcının tercihine bağlı.

Bunun için AndroidManifest.xml dosyasına aşağıdaki meta-data tag’ini eklememiz gerekiyor.

<meta-data android:name="android.webkit.WebView.EnableSafeBrowsing"

                  android:value="true" />

 

Ayrıca webView’ler için startSafeBrowsing() isimli yeni bir metod da bizi bekliyor.

 

VİDEO’DAN KARE YAKALAMA

MediaMetaDataRetriever sınıfının artık getScaledFrameAtTime() isimli yeni bir metodu var. Bu metod video içinde istenilen ana ait görüntüyü yakalayarak bize Bitmap olarak döndürebiliyor. Dönen Bitmap’in boyutlarını da ayarlama yeteneği var.

Daha önce var olan getFrameAtTime() metoduna göre daha performanslı çalıştığı için Google tarafından tavsiye ediliyor.

 

SHARED MEMORY API

Sıklıkla kullandığımız SharedPreferences yapısına alternatif bir sınıf. Anonim bir ortak hafıza alanı üzerine yazıp, okumayı sağlıyor. Yazma ve okuma işlemleri için güvenlik seviyesi belirlenebiliyor. Ayrıca bir SharedMemory nesnesi Parcellable arayüzünü implemente ettiği için Activity’ler arasında da rahatlıkla gönderilebiliyor.

NDK içindeki ASharedMemory sınıfıyla da uyumlu olduğu için NDK tarafında da kullanılarak büyük miktarda verinin uygulamalar arası transferine imkan sağlıyor.

 

WALLPAPER COLORS API

Cihazınızın duvar resmindeki renkleri tespit etmek için geliştirilen bu API sayesinde uygulamamıza farklı renklerde dinamik bir stil kazandırabiliyoruz. Özellikle Launcher uygulamaları için güzel bir özellik olabilir. WallPaperColor sınıfını buradan inceleyebilirsiniz.



 

Burhan Aras |

06.12.2017

Yorumlar